Service Portal: A widget with tabs instead of side menu, for SC Categories

[ code is not yet quite working for the sub-arrays, look at widget "SC Categories" and try to incorporate for the sub category lookups ]



HTML:

<div class="banner-blue"> <ul class="nav nav-tabs"> <li class="dropdown" ng-repeat="parentcategory in ::data.parentCats" > <a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)"> {{parentcategory.title}} <span class="caret"></span> <ul class="dropdown-menu"> <li ng-repeat="childitem in c.childItems" color="black"><a color="black" href="javascript:void(0)">{{childitem.child_title}}</a></li> </ul> </a> </li> </ul> </div>








CSS:

div.banner-blue{ background-color:#145896; color:white; /*overflow:hidden;*/ width:100%; /*padding-left: 50px;*/ } a.dropdown-toggle{ color:white; } span.banner-blue{ background-color:#145896; color:white; }








client controller script

function($scope) { /* widget controller */ var c = this; c.parentCatArr=c.data.parentCats; c.childItems=[]; for (items in c.parentCatArr){ var subitems= c.parentCatArr[items].child_items; for (subitem in subitems){ var childItemsArr={}; childItemsArr.child_title=subitems[subitem].child_title+""; c.childItems.push(childItemsArr); } var childItemsArr={}; for (i = 0; i < subitems.length; i++){ //alert (subitems[i].child_title); } } }

















server script


(function() { /* populate the 'data' object */ /* e.g., data.table = $sp.getValue('table'); */ var sMsgPadder = "*********************************** MSG: "; var ga = new GlideAggregate('sc_category'); ga.addAggregate('COUNT', 'parent'); ga.addActiveQuery(); ga.addQuery('sc_catalog', '9f6ef0cddb028f80edfc7cbdae96ZZZZ');//--a catalogue ga.addNotNullQuery('parent'); ga.addHaving('COUNT', '>', 0); ga.query(); data.parentCats = []; while (ga.next()) { var objParCatsArr = {}; objParCatsArr.title = ga.getElement('parent.title') + ""; var parSYSID= ga.getElement('parent.sys_id') + ""; objParCatsArr.sys_id = parSYSID; var arrChildItems = []; var grCats = new GlideRecord('sc_category'); grCats.addQuery('parent', parSYSID); grCats.addActiveQuery(); grCats.query(); while (grCats.next()) { var objSubItem= {}; objSubItem.child_title=grCats.title+""; objSubItem.child_sys_id=grCats.sys_id+""; arrChildItems.push(objSubItem); } objParCatsArr.child_items = arrChildItems; data.parentCats.push(objParCatsArr); } })();


Comments

Popular posts from this blog

GlideRecord setValue

variable advanced reference qualifier example

URL link in addInfoMessage