Added tool-tips to Inventory tree buttons.

This commit is contained in:
chouseknecht
2013-07-09 15:40:33 -04:00
parent e3f99c9e13
commit 9372a68f89
2 changed files with 23 additions and 18 deletions

View File

@@ -4,7 +4,7 @@
*
* awx-min.js
*
* master-aa780ad, Tue Jul 9 14:48:58 2013 -0400
* master-9bbee34, Tue Jul 9 15:25:41 2013 -0400
*
*/
var urlPrefix="/static/";
@@ -329,20 +329,21 @@ this.buildField(b,d,c));a+="</div>\x3c!-- column 2 --\x3e\n";a+="</div>\x3c!-- i
'<div class="well form-items">\n';a+=g({iterator:this.form.items[itm].iterator,template:this.form.items[itm],mini:!1,label:"Filter Events"});a+='<div class="item-count pull-right">Viewing {{ '+this.form.items[itm].iterator+"Page + 1 }} of {{ "+this.form.items[itm].iterator+"Count }}</div>\n";a+="<hr />\n";a+='<ul class="pager">\n';a+='<li ng-class="'+this.form.items[itm].iterator+'PrevUrlDisable"><a href="" ng-click="prevSet(\''+this.form.items[itm].set+"','"+this.form.items[itm].iterator+"')\">&larr; Prev</a></li>\n";
a+='<li ng-class="'+this.form.items[itm].iterator+'NextUrlDisable"><a href="" ng-click="nextSet(\''+this.form.items[itm].set+"','"+this.form.items[itm].iterator+"')\">&rarr; Next</a></li>\n";a+="</ul>\n";a+='<form class="form-horizontal" name="'+this.form.name+'_items_form" id="'+this.form.name+'_items_form" novalidate>\n';for(b in this.form.items[itm].fields)d=this.form.items[itm].fields[b],a+=this.buildField(b,d,c);a+="</form>\n";a+='<ul class="pager">\n';a+='<li ng-class="'+this.form.items[itm].iterator+
'PrevUrlDisable"><a href="" ng-click="prevSet(\''+this.form.items[itm].set+"','"+this.form.items[itm].iterator+"')\">&larr; Prev</a></li>\n";a+='<li ng-class="'+this.form.items[itm].iterator+'NextUrlDisable"><a href="" ng-click="nextSet(\''+this.form.items[itm].set+"','"+this.form.items[itm].iterator+"')\">&rarr; Next</a></li>\n";a+="</ul>\n";a+="</div>\x3c!-- well --\x3e\n"}"inventory"==this.form.name&&"edit"==c.mode?a+=this.buildTree(c):!this.modal&&(c.related&&this.form.related)&&(a+=this.buildCollections(c));
return a},buildTree:function(f){var a=1,d=this.form;html='<div id="'+this.form.name+'-collapse-2" data-open="true" class="jqui-accordion">\n';html+="<h3>Inventory Content<h3>\n";html+="<div>\n";for(var b in d.related){if("tree"==d.related[b].type)html+='<div class="span5">',html+='<div class="inventory-buttons">',html+='<button ng-click="addGroup()" ng-hide="groupAddHide" id="inv-group-add" class="btn btn-mini btn-success"><i class="icon-plus"></i> Add Group</button>',html+='<button ng-click="editGroup()" ng-hide="groupEditHide" id="inv-group-edit" class="btn btn-mini btn-success"><i class="icon-edit"></i> Edit Group</button>',
html+='<button ng-click="deleteGroup()" ng-hide="groupDeleteHide" id="inv-group-delete" class="btn btn-mini btn-danger"><i class="icon-remove"></i> Delete Group</button>',html+="</div>\n",html+='<div id="tree-view"></div>\n',html+='<div class=" inventory-filter" ng-show="has_active_failures == true"><label class="checkbox inline"><input ng-model="inventoryFailureFilter" ng-change="filterInventory()" type="checkbox" >Show only groups with failures</label></div>\n',html+="</div>\n";else{html+='<div id="group-view" class="span7">\n';
html+='<div id="hosts-well" class="well">\n';html+='<h4 id="hosts-title">'+d.related[b].title+"</h4>\n";html+=g({iterator:d.related[b].iterator,template:d.related[b],mini:!0});html+='<div class="list-actions">\n';for(var h in d.related[b].actions)html+='<button class="btn btn-mini ',html+=d.related[b].actions[h]["class"]?d.related[b].actions[h]["class"]:"btn-success",html+='" ',html+=d.related[b].actions[h].id?this.attr(d.related[b].actions[h],"id"):"",html+=this.attr(d.related[b].actions[h],"ngClick"),
html+=d.related[b].actions[h].awToolTip?this.attr(d.related[b].actions[h],"awToolTip"):"",html+=d.related[b].actions[h].awToolTip?'data-placement="top" ':"",html+=d.related[b].actions[h].ngHide?this.attr(d.related[b].actions[h],"ngHide"):"",html+='><i class="'+d.related[b].actions[h].icon+'"></i>',html+=d.related[b].actions[h].label?" "+d.related[b].actions[h].label:"",html+="</button>\n";html+="</div>\n";html+='<div class="list">\n';html+='<table class="'+d.related[b].iterator+' table table-condensed table-hover">\n';
html+="<thead>\n";html+="<tr>\n";html+="<th>#</th>\n";for(var k in d.related[b].fields)html+='<th class="list-header" id="'+d.related[b].iterator+"-"+k+'-header" ng-click="sort(\''+d.related[b].iterator+"', '"+k+"')\">"+d.related[b].fields[k].label,html+=' <i class="',html=d.related[b].fields[k].key?d.related[b].fields[k].desc?html+"icon-sort-down":html+"icon-sort-up":html+"icon-sort",html+='"></i></a></th>\n';html+="<th></th>\n";html+="</tr>\n";html+="</thead>";html+="<tbody>\n";html+='<tr ng-repeat="'+
d.related[b].iterator+" in "+b+'" >\n';html+="<td>{{ $index + ("+d.related[b].iterator+"Page * "+d.related[b].iterator+"PageSize) + 1 }}.</td>\n";var m=1,p=d.related[b].base?d.related[b].base:b,p=p.replace(/^\//,"");for(k in d.related[b].fields)m++,html+=e({list:d.related[b],fld:k,options:f,base:p});html+='<td class="actions">';for(h in d.related[b].fieldActions)html+='<button class="btn btn-mini',html+=d.related[b].fieldActions[h]["class"]?" "+d.related[b].fieldActions[h]["class"]:"",html+='" ',
html+=d.related[b].fieldActions[h].awToolTip?this.attr(d.related[b].fieldActions[h],"awToolTip"):"",html+=this.attr(d.related[b].fieldActions[h],"ngClick")+">"+this.icon(d.related[b].fieldActions[h].icon),html+=d.related[b].fieldActions[h].label?" "+d.related[b].fieldActions[h].label:"",html+="</button> ";html+="</td>";html+="</tr>\n";html+='<tr class="info" ng-show="'+d.related[b].iterator+"Loading == false && ("+b+" == null || "+b+'.length == 0)">\n';html+='<td colspan="'+m+'"><div class="alert alert-info">No records matched your search.</div></td>\n';
html+="</tr>\n";html+='<tr class="info" ng-show="'+d.related[b].iterator+'Loading == true">\n';html+='<td colspan="'+m+'"><div class="alert alert-info">Loading...</div></td>\n';html+="</tr>\n";html+="</tbody>\n";html+="</table>\n";html+="</div>\n";html+="</div>\n";html+=c({set:b,iterator:d.related[b].iterator,mini:!0})}a++}html+="</div>\n";return html+="</div>\n"},buildCollections:function(f){var a=1,d=this.form;html='<div id="'+this.form.name+"-collapse-"+a+'" class="jqui-accordion">\n';for(var b in d.related)if("collection"==
d.related[b].type){html+="<h3>"+d.related[b].title+"<h3>\n";html+="<div>\n";d.related[b].instructions&&(html+='<div class="alert alert-info alert-block">\n',html+='<button type="button" class="close" data-dismiss="alert">&times;</button>\n',html+="<strong>Hint: </strong>"+d.related[b].instructions+"\n",html+="</div>\n");html+='<div class="well">\n';html+=g({iterator:d.related[b].iterator,template:d.related[b],mini:!0});html+='<div class="list-actions">\n';for(var h in d.related[b].actions){var k=
d.related[b].actions[h];html+='<button class="btn btn-small ';html+=d.related[b].actions[h]["class"]?d.related[b].actions[h]["class"]:"btn-success";html+='" ';html+=this.attr(k,"ngClick");html+=k.awToolTip?this.attr(k,"awToolTip"):"";html+=k.awToolTip?'data-placement="right" ':"";html+='><i class="'+k.icon+'"></i>';html+=k.label?" "+k.label:"";html+="</button>\n"}html+="</div>\n";html+='<div class="list">\n';html+='<table class="'+d.related[b].iterator+' table table-condensed table-hover">\n';html+=
"<thead>\n";html+="<tr>\n";html+=void 0==d.related[b].index||!1!==d.related[b].index?"<th>#</th>\n":"";for(var m in d.related[b].fields)html+='<th class="list-header" id="'+d.related[b].iterator+"-"+m+'-header" ng-click="sort(\''+d.related[b].iterator+"', '"+m+"')\">"+d.related[b].fields[m].label,html+=' <i class="',html=d.related[b].fields[m].key?d.related[b].fields[m].desc?html+"icon-sort-down":html+"icon-sort-up":html+"icon-sort",html+='"></i></a></th>\n';html+="<th></th>\n";html+="</tr>\n";html+=
"</thead>";html+="<tbody>\n";html+='<tr ng-repeat="'+d.related[b].iterator+" in "+b+'" >\n';if(void 0==d.related[b].index||!1!==d.related[b].index)html+="<td>{{ $index + ("+d.related[b].iterator+"Page * "+d.related[b].iterator+"PageSize) + 1 }}.</td>\n";var p=1,k=d.related[b].base?d.related[b].base:b,k=k.replace(/^\//,"");for(m in d.related[b].fields)p++,html+=e({list:d.related[b],fld:m,options:f,base:k});html+='<td class="actions">';for(h in d.related[b].fieldActions)k=d.related[b].fieldActions[h],
html+='<button class="btn btn-small',html+=k["class"]?" "+k["class"]:"",html+='" '+this.attr(k,"ngClick"),html+=k.awToolTip?this.attr(k,"awToolTip"):"",html+=k.awToolTip?'data-placement="top" ':"",html+=">"+this.icon(k.icon),html+=k.label?" "+k.label:"",html+="</button> ";html+="</td>";html+="</tr>\n";html+='<tr class="info" ng-show="'+d.related[b].iterator+"Loading == false && ("+b+" == null || "+b+'.length == 0)">\n';html+='<td colspan="'+p+'"><div class="alert alert-info">No records matched your search.</div></td>\n';
html+="</tr>\n";html+='<tr class="info" ng-show="'+d.related[b].iterator+'Loading == true">\n';html+='<td colspan="'+p+'"><div class="alert alert-info">Loading...</div></td>\n';html+="</tr>\n";html+="</tbody>\n";html+="</table>\n";html+="</div>\n";html+="</div>\n";html+=c({set:b,iterator:d.related[b].iterator,mini:!0});html+="</div>\n";a++}html+="</div>\n";return html+="</div>\n"}}}]);angular.module("GeneratorHelpers",["GeneratorHelpers"]).factory("Attr",function(){return function(h,m){var k;k="string"===typeof h[m]?h[m].replace(/\'/g,"&quot;"):h[m];switch(m){case "ngClick":k='ng-click="'+k+'" ';break;case "ngOptions":k='ng-options="'+k+'" ';break;case "ngClass":k='ng-class="'+k+'" ';break;case "ngChange":k='ng-change="'+k+'" ';break;case "ngDisabled":k='ng-disabled="'+k+'" ';break;case "ngShow":k='ng-show="'+k+'" ';break;case "ngHide":k='ng-hide="'+k+'" ';break;case "ngBind":k=
return a},buildTree:function(f){var a=1,d=this.form;html='<div id="'+this.form.name+'-collapse-2" data-open="true" class="jqui-accordion">\n';html+="<h3>Inventory Content<h3>\n";html+="<div>\n";for(var b in d.related){if("tree"==d.related[b].type)html+='<div class="span5">',html+='<div class="inventory-buttons">',html+='<button ng-click="addGroup()" ng-hide="groupAddHide" id="inv-group-add" class="btn btn-mini btn-success" aw-tool-tip="Add existing groups or create a new group" data-placement="bottom"><i class="icon-plus"></i> Add Group</button>',
html+='<button ng-click="editGroup()" ng-hide="groupEditHide" id="inv-group-edit" class="btn btn-mini btn-success" aw-tool-tip="Edit the selected group" data-placement="bottom" <i class="icon-edit"></i> Edit Group</button>',html+='<button ng-click="deleteGroup()" ng-hide="groupDeleteHide" id="inv-group-delete" aw-tool-tip="Delete the selected group" data-placement="bottom" class="btn btn-mini btn-danger"><i class="icon-remove"></i> Delete Group</button>',html+="</div>\n",html+='<div id="tree-view"></div>\n',
html+='<div class=" inventory-filter" ng-show="has_active_failures == true"><label class="checkbox inline"><input ng-model="inventoryFailureFilter" ng-change="filterInventory()" type="checkbox" >Show only groups with failures</label></div>\n',html+="</div>\n";else{html+='<div id="group-view" class="span7">\n';html+='<div id="hosts-well" class="well">\n';html+='<h4 id="hosts-title">'+d.related[b].title+"</h4>\n";html+=g({iterator:d.related[b].iterator,template:d.related[b],mini:!0});html+='<div class="list-actions">\n';
for(var h in d.related[b].actions)html+='<button class="btn btn-mini ',html+=d.related[b].actions[h]["class"]?d.related[b].actions[h]["class"]:"btn-success",html+='" ',html+=d.related[b].actions[h].id?this.attr(d.related[b].actions[h],"id"):"",html+=this.attr(d.related[b].actions[h],"ngClick"),html+=d.related[b].actions[h].awToolTip?this.attr(d.related[b].actions[h],"awToolTip"):"",html+=d.related[b].actions[h].awToolTip?'data-placement="top" ':"",html+=d.related[b].actions[h].ngHide?this.attr(d.related[b].actions[h],
"ngHide"):"",html+='><i class="'+d.related[b].actions[h].icon+'"></i>',html+=d.related[b].actions[h].label?" "+d.related[b].actions[h].label:"",html+="</button>\n";html+="</div>\n";html+='<div class="list">\n';html+='<table class="'+d.related[b].iterator+' table table-condensed table-hover">\n';html+="<thead>\n";html+="<tr>\n";html+="<th>#</th>\n";for(var k in d.related[b].fields)html+='<th class="list-header" id="'+d.related[b].iterator+"-"+k+'-header" ng-click="sort(\''+d.related[b].iterator+"', '"+
k+"')\">"+d.related[b].fields[k].label,html+=' <i class="',html=d.related[b].fields[k].key?d.related[b].fields[k].desc?html+"icon-sort-down":html+"icon-sort-up":html+"icon-sort",html+='"></i></a></th>\n';html+="<th></th>\n";html+="</tr>\n";html+="</thead>";html+="<tbody>\n";html+='<tr ng-repeat="'+d.related[b].iterator+" in "+b+'" >\n';html+="<td>{{ $index + ("+d.related[b].iterator+"Page * "+d.related[b].iterator+"PageSize) + 1 }}.</td>\n";var m=1,p=d.related[b].base?d.related[b].base:b,p=p.replace(/^\//,
"");for(k in d.related[b].fields)m++,html+=e({list:d.related[b],fld:k,options:f,base:p});html+='<td class="actions">';for(h in d.related[b].fieldActions)html+='<button class="btn btn-mini',html+=d.related[b].fieldActions[h]["class"]?" "+d.related[b].fieldActions[h]["class"]:"",html+='" ',html+=d.related[b].fieldActions[h].awToolTip?this.attr(d.related[b].fieldActions[h],"awToolTip"):"",html+=this.attr(d.related[b].fieldActions[h],"ngClick")+">"+this.icon(d.related[b].fieldActions[h].icon),html+=d.related[b].fieldActions[h].label?
" "+d.related[b].fieldActions[h].label:"",html+="</button> ";html+="</td>";html+="</tr>\n";html+='<tr class="info" ng-show="'+d.related[b].iterator+"Loading == false && ("+b+" == null || "+b+'.length == 0)">\n';html+='<td colspan="'+m+'"><div class="alert alert-info">No records matched your search.</div></td>\n';html+="</tr>\n";html+='<tr class="info" ng-show="'+d.related[b].iterator+'Loading == true">\n';html+='<td colspan="'+m+'"><div class="alert alert-info">Loading...</div></td>\n';html+="</tr>\n";
html+="</tbody>\n";html+="</table>\n";html+="</div>\n";html+="</div>\n";html+=c({set:b,iterator:d.related[b].iterator,mini:!0})}a++}html+="</div>\n";return html+="</div>\n"},buildCollections:function(f){var a=1,d=this.form;html='<div id="'+this.form.name+"-collapse-"+a+'" class="jqui-accordion">\n';for(var b in d.related)if("collection"==d.related[b].type){html+="<h3>"+d.related[b].title+"<h3>\n";html+="<div>\n";d.related[b].instructions&&(html+='<div class="alert alert-info alert-block">\n',html+=
'<button type="button" class="close" data-dismiss="alert">&times;</button>\n',html+="<strong>Hint: </strong>"+d.related[b].instructions+"\n",html+="</div>\n");html+='<div class="well">\n';html+=g({iterator:d.related[b].iterator,template:d.related[b],mini:!0});html+='<div class="list-actions">\n';for(var h in d.related[b].actions){var k=d.related[b].actions[h];html+='<button class="btn btn-small ';html+=d.related[b].actions[h]["class"]?d.related[b].actions[h]["class"]:"btn-success";html+='" ';html+=
this.attr(k,"ngClick");html+=k.awToolTip?this.attr(k,"awToolTip"):"";html+=k.awToolTip?'data-placement="right" ':"";html+='><i class="'+k.icon+'"></i>';html+=k.label?" "+k.label:"";html+="</button>\n"}html+="</div>\n";html+='<div class="list">\n';html+='<table class="'+d.related[b].iterator+' table table-condensed table-hover">\n';html+="<thead>\n";html+="<tr>\n";html+=void 0==d.related[b].index||!1!==d.related[b].index?"<th>#</th>\n":"";for(var m in d.related[b].fields)html+='<th class="list-header" id="'+
d.related[b].iterator+"-"+m+'-header" ng-click="sort(\''+d.related[b].iterator+"', '"+m+"')\">"+d.related[b].fields[m].label,html+=' <i class="',html=d.related[b].fields[m].key?d.related[b].fields[m].desc?html+"icon-sort-down":html+"icon-sort-up":html+"icon-sort",html+='"></i></a></th>\n';html+="<th></th>\n";html+="</tr>\n";html+="</thead>";html+="<tbody>\n";html+='<tr ng-repeat="'+d.related[b].iterator+" in "+b+'" >\n';if(void 0==d.related[b].index||!1!==d.related[b].index)html+="<td>{{ $index + ("+
d.related[b].iterator+"Page * "+d.related[b].iterator+"PageSize) + 1 }}.</td>\n";var p=1,k=d.related[b].base?d.related[b].base:b,k=k.replace(/^\//,"");for(m in d.related[b].fields)p++,html+=e({list:d.related[b],fld:m,options:f,base:k});html+='<td class="actions">';for(h in d.related[b].fieldActions)k=d.related[b].fieldActions[h],html+='<button class="btn btn-small',html+=k["class"]?" "+k["class"]:"",html+='" '+this.attr(k,"ngClick"),html+=k.awToolTip?this.attr(k,"awToolTip"):"",html+=k.awToolTip?
'data-placement="top" ':"",html+=">"+this.icon(k.icon),html+=k.label?" "+k.label:"",html+="</button> ";html+="</td>";html+="</tr>\n";html+='<tr class="info" ng-show="'+d.related[b].iterator+"Loading == false && ("+b+" == null || "+b+'.length == 0)">\n';html+='<td colspan="'+p+'"><div class="alert alert-info">No records matched your search.</div></td>\n';html+="</tr>\n";html+='<tr class="info" ng-show="'+d.related[b].iterator+'Loading == true">\n';html+='<td colspan="'+p+'"><div class="alert alert-info">Loading...</div></td>\n';
html+="</tr>\n";html+="</tbody>\n";html+="</table>\n";html+="</div>\n";html+="</div>\n";html+=c({set:b,iterator:d.related[b].iterator,mini:!0});html+="</div>\n";a++}html+="</div>\n";return html+="</div>\n"}}}]);angular.module("GeneratorHelpers",["GeneratorHelpers"]).factory("Attr",function(){return function(h,m){var k;k="string"===typeof h[m]?h[m].replace(/\'/g,"&quot;"):h[m];switch(m){case "ngClick":k='ng-click="'+k+'" ';break;case "ngOptions":k='ng-options="'+k+'" ';break;case "ngClass":k='ng-class="'+k+'" ';break;case "ngChange":k='ng-change="'+k+'" ';break;case "ngDisabled":k='ng-disabled="'+k+'" ';break;case "ngShow":k='ng-show="'+k+'" ';break;case "ngHide":k='ng-hide="'+k+'" ';break;case "ngBind":k=
'ng-bind="'+k+'" ';break;case "trueValue":k='ng-true-value="'+k+'" ';break;case "falseValue":k='ng-false-value="'+k+'" ';break;case "awToolTip":k='aw-tool-tip="'+k+'" ';break;case "awPopOver":k="aw-pop-over='"+k+"' ";break;case "dataTitle":k='data-title="'+k+'" ';break;case "dataPlacement":k='data-placement="'+k+'" ';break;case "dataContainer":k='data-container="'+k+'" ';break;default:k=m+'="'+k+'" '}return k}}).factory("Icon",function(){return function(h){return'<i class="'+h+'"></i> '}}).factory("Column",
["Attr","Icon",function(h,m){return function(k){var g=k.list,c=k.fld,p=k.options;k=k.base;var f=g.fields[c],e;e="<td "+('<td class="'+c+"-column");e+=f["class"]?" "+f["class"]:"";e+='" ';e+=f.ngClass?h(f,"ngClass"):"";e+=">\n";e+=f.ngShow?"<span "+h(f,"ngShow")+">":"";g.hasChildren&&f.hasChildren&&(e+='<span style="padding-left: {{ '+g.iterator+'.spaces }}px"><a href="" ng-click="{{ '+g.iterator+'.ngclick }}"> <i class="{{ '+g.iterator+'.ngicon }}" ng-show="\'{{ '+g.iterator+".related.children }}' !== ''\" ></i></a> ");
if((f.key||f.link||f.linkTo||f.ngClick)&&"lookup"!=p.mode&&"select"!=p.mode)if(f.linkTo)e+='<a href="#'+f.linkTo+'">';else if(f.ngClick)e+='<a href=""'+h(f,"ngClick")+'">';else if(void 0==f.link||f.link)e+='<a href="#/'+k+"/{{"+g.iterator+'.id }}">';f.ngShowIcon?e+='<i ng-show="'+f.ngShowIcon+'" class="'+f.icon+'"></i> ':f.icon&&(e+=m(f.icon)+" ");if(void 0==f.showValue||!0==f.showValue)e=f.ngBind?e+("{{ "+f.ngBind+" }}"):e+("{{"+g.iterator+"."+c+"}}");f.text&&(e+=f.text);g.hasChildren&&f.hasChildren&&

View File

@@ -788,10 +788,14 @@ angular.module('FormGenerator', ['GeneratorHelpers', 'ngCookies'])
html += "<div class=\"span5\">";
html += "<div class=\"inventory-buttons\">";
html += "<button ng-click=\"addGroup()\" ng-hide=\"groupAddHide\" id=\"inv-group-add\" " +
"class=\"btn btn-mini btn-success\"><i class=\"icon-plus\"></i> Add Group</button>";
html += "<button ng-click=\"editGroup()\" ng-hide=\"groupEditHide\" id=\"inv-group-edit\" class=\"btn btn-mini btn-success\">" +
"class=\"btn btn-mini btn-success\" aw-tool-tip=\"Add existing groups or create a new group\" " +
"data-placement=\"bottom\"><i class=\"icon-plus\"></i> Add Groups</button>";
html += "<button ng-click=\"editGroup()\" ng-hide=\"groupEditHide\" id=\"inv-group-edit\" class=\"btn btn-mini btn-success\" " +
"aw-tool-tip=\"Edit the selected group\" data-placement=\"bottom\" " +
"<i class=\"icon-edit\"></i> Edit Group</button>";
html += "<button ng-click=\"deleteGroup()\" ng-hide=\"groupDeleteHide\" id=\"inv-group-delete\" class=\"btn btn-mini btn-danger\">" +
html += "<button ng-click=\"deleteGroup()\" ng-hide=\"groupDeleteHide\" id=\"inv-group-delete\" " +
"aw-tool-tip=\"Delete the selected group\" data-placement=\"bottom\" " +
"class=\"btn btn-mini btn-danger\">" +
"<i class=\"icon-remove\"></i> Delete Group</button>";
html += "</div>\n";
html += "<div id=\"tree-view\"></div>\n";