diff --git a/src/sunstone/public/app/sunstone.js b/src/sunstone/public/app/sunstone.js
index 53343c8864..a3e09bf87a 100644
--- a/src/sunstone/public/app/sunstone.js
+++ b/src/sunstone/public/app/sunstone.js
@@ -1237,7 +1237,7 @@ define(function(require) {
}
}.bind(tabName));
- router.on(new RegExp("(?:#|/)"+tabName+"/(\\d+)"), function(id){
+ router.on(new RegExp("(?:#|/)"+tabName+"/(\\w+)"), function(id){
_routerShowElement(this, id);
}.bind(tabName));
diff --git a/src/sunstone/public/app/utils/labels/utils.js b/src/sunstone/public/app/utils/labels/utils.js
index e1d88d2b1a..a6e1d5f0b4 100644
--- a/src/sunstone/public/app/utils/labels/utils.js
+++ b/src/sunstone/public/app/utils/labels/utils.js
@@ -14,7 +14,7 @@
/* limitations under the License. */
/* -------------------------------------------------------------------------- */
-define(function(require) {
+define(function (require) {
/* DEPENDENCIES */
var Tree = require('./tree');
@@ -77,11 +77,11 @@ define(function(require) {
Tree.setup($('.labels-tree', context));
- var currentLabel = $('span[one-label-full-name="'+_getLabelsFilter(dataTable)+'"]', context);
+ var currentLabel = $('span[one-label-full-name="' + _getLabelsFilter(dataTable) + '"]', context);
- if (currentLabel.length == 0){
+ if (currentLabel.length == 0) {
_clearLabelsFilter(dataTable, labelsColumn);
- }else{
+ } else {
currentLabel.parent(".labeltree-line").click();
currentLabel.parentsUntil(".labels-tree", "li").children(".tree-toggle").click();
}
@@ -91,10 +91,10 @@ define(function(require) {
Filter datatable when a label in the left menu is clicked
*/
context.off('click', '.labeltree-line');
- context.on('click', '.labeltree-line', function() {
+ context.on('click', '.labeltree-line', function () {
var span = $(".one-label", this);
- if($(span).hasClass("active")){
+ if ($(span).hasClass("active")) {
if (opts.tabName && !Sunstone.rightListVisible($('#' + opts.tabName))) {
Sunstone.showTab(opts.tabName);
}
@@ -119,65 +119,65 @@ define(function(require) {
var labelsDropdown = $('#' + tabName + 'LabelsDropdown');
OpenNebulaUser.show({
- data : {
- id: config['user_id']
- },
- success: function(request, user_json) {
- var labels_persis = '';
- if (user_json["USER"]["TEMPLATE"]) {
- if (user_json["USER"]["TEMPLATE"]["LABELS"]) {
- labels_persis = user_json["USER"]["TEMPLATE"]["LABELS"];
- }
+ data: {
+ id: config['user_id']
+ },
+ success: function (request, user_json) {
+ var labels_persis = '';
+ if (user_json["USER"]["TEMPLATE"]) {
+ if (user_json["USER"]["TEMPLATE"]["LABELS"]) {
+ labels_persis = user_json["USER"]["TEMPLATE"]["LABELS"];
}
- var labels = _getLabels(dataTable, labelsColumn);
- labels_persis = _deserializeLabels(labels_persis);
- var array_labels_yaml = [];
- var labels_yaml = {};
- if(config['all_labels'][0] != ""){
- $.each(config['all_labels'], function(index){
- array_labels_yaml.push(config['all_labels'][index]+'_YAML');
- if(labels[config['all_labels'][index]]){
- delete labels[config['all_labels'][index]];
- }
- })
- labels_yaml = _deserializeLabels(array_labels_yaml.join(','));
- }
- var keys = Object.keys(labels_persis).sort();
- for (var i = 0; i < keys.length; i++){
- if(labels[keys[i]]){
- delete labels[keys[i]];
- }
- labels_persis[keys[i]+"_PERSIS"] = labels_persis[keys[i]];
- delete labels_persis[keys[i]];
- }
- $.extend(labels, labels_persis);
- var html_yaml = ""
- if(!$.isEmptyObject(labels_yaml)){
- html_yaml = '
' + Locale.tr('System Labels') + '
' +
- '' +
- Tree.html(_makeTree(labels_yaml), false) +
- '
';
- }
- labelsDropdown.html(
- '' +
- '
' + Locale.tr('Edit Labels') + '
' +
- '
' +
- Tree.html(_makeTree(labels), false) +
- '
' +
- html_yaml+
- '
' +
- '' +
- '
' +
- '
');
-
- Tree.setup(labelsDropdown);
- recountLabels();
- $('[data-toggle="' + tabName + 'LabelsDropdown"]').off('click');
- $('[data-toggle="' + tabName + 'LabelsDropdown"]').on('click', function(){
- recountLabels();
- });
}
- });
+ var labels = _getLabels(dataTable, labelsColumn);
+ labels_persis = _deserializeLabels(labels_persis);
+ var array_labels_yaml = [];
+ var labels_yaml = {};
+ if (config['all_labels'][0] != "") {
+ $.each(config['all_labels'], function (index) {
+ array_labels_yaml.push(config['all_labels'][index] + '_YAML');
+ if (labels[config['all_labels'][index]]) {
+ delete labels[config['all_labels'][index]];
+ }
+ })
+ labels_yaml = _deserializeLabels(array_labels_yaml.join(','));
+ }
+ var keys = Object.keys(labels_persis).sort();
+ for (var i = 0; i < keys.length; i++) {
+ if (labels[keys[i]]) {
+ delete labels[keys[i]];
+ }
+ labels_persis[keys[i] + "_PERSIS"] = labels_persis[keys[i]];
+ delete labels_persis[keys[i]];
+ }
+ $.extend(labels, labels_persis);
+ var html_yaml = ""
+ if (!$.isEmptyObject(labels_yaml)) {
+ html_yaml = '' + Locale.tr('System Labels') + '
' +
+ '' +
+ Tree.html(_makeTree(labels_yaml), false) +
+ '
';
+ }
+ labelsDropdown.html(
+ '' +
+ '
' + Locale.tr('Edit Labels') + '
' +
+ '
' +
+ Tree.html(_makeTree(labels), false) +
+ '
' +
+ html_yaml +
+ '
' +
+ '' +
+ '
' +
+ '
');
+
+ Tree.setup(labelsDropdown);
+ recountLabels();
+ $('[data-toggle="' + tabName + 'LabelsDropdown"]').off('click');
+ $('[data-toggle="' + tabName + 'LabelsDropdown"]').on('click', function () {
+ recountLabels();
+ });
+ }
+ });
/*
Update Dropdown with selected items
[v] If all the selected items has a label
@@ -189,10 +189,10 @@ define(function(require) {
var labelsStr, labelsIndexed = {};
var selectedItems = tabTable.elements();
- $.each(selectedItems, function(index, resourceId) {
+ $.each(selectedItems, function (index, resourceId) {
labelsStr = _getLabel(tabName, dataTable, labelsColumn, resourceId);
if (labelsStr != '') {
- $.each(labelsStr.split(','), function(){
+ $.each(labelsStr.split(','), function () {
if (labelsIndexed[this]) {
labelsIndexed[this] += 1
} else {
@@ -211,7 +211,7 @@ define(function(require) {
.addClass('fa-square-o');
var labelsCheckbox;
- $.each(labelsIndexed, function(labelName, numberOfItems) {
+ $.each(labelsIndexed, function (labelName, numberOfItems) {
labelsCheckbox = $('.labelsCheckbox',
$('[one-label-full-name="' + labelName + '"]', labelsDropdown).closest('li'));
if (labelsCheckbox.length > 0) {
@@ -234,7 +234,7 @@ define(function(require) {
Check/Uncheck label & Update Templates
*/
labelsDropdown.off('click', '.labeltree-line');
- labelsDropdown.on('click', '.labeltree-line', function() {
+ labelsDropdown.on('click', '.labeltree-line', function () {
var action;
var that = $(".labelsCheckbox", this);
@@ -246,10 +246,10 @@ define(function(require) {
$(that).removeClass('fa-check-square-o fa-minus-square-o').addClass('fa-square-o');
}
OpenNebulaUser.show({
- data : {
+ data: {
id: config['user_id']
},
- success: function(request, user_json) {
+ success: function (request, user_json) {
var labels_persis = '';
if (user_json["USER"]["TEMPLATE"]) {
if (user_json["USER"]["TEMPLATE"]["LABELS"]) {
@@ -257,14 +257,14 @@ define(function(require) {
}
}
var labelName = $('.one-label', $(that).closest('li')).attr('one-label-full-name');
- var labelsArray,labelsArray_persis, labelIndex;
+ var labelsArray, labelsArray_persis, labelIndex;
var selectedItems = tabTable.elements();
if (labels_persis != '') {
- labelsArray_persis = labels_persis.split(',')
+ labelsArray_persis = labels_persis.split(',')
} else {
- labelsArray_persis = []
+ labelsArray_persis = []
}
- $.each(selectedItems, function(index, resourceId) {
+ $.each(selectedItems, function (index, resourceId) {
labelsStr = _getLabel(tabName, dataTable, labelsColumn, resourceId);
if (labelsStr != '') {
labelsArray = labelsStr.split(',')
@@ -277,7 +277,7 @@ define(function(require) {
_updateResouceLabels(tabName, resourceId, labelsArray);
} else if (action == 'remove' && labelIndex != -1) {
if ((!labelsArray_persis || (labelsArray_persis && $.inArray(labelName, labelsArray_persis) == -1)) ||
- (!config['all_labels'] || (config['all_labels'] && $.inArray(labelName, config['all_labels']) == -1))) {
+ (!config['all_labels'] || (config['all_labels'] && $.inArray(labelName, config['all_labels']) == -1))) {
labelsArray.splice(labelIndex, 1);
_updateResouceLabels(tabName, resourceId, labelsArray);
}
@@ -291,7 +291,7 @@ define(function(require) {
Add a new label when ENTER is presed in the input
*/
labelsDropdown.off('keypress', '.newLabelInput');
- labelsDropdown.on('keypress', '.newLabelInput', function(e) {
+ labelsDropdown.on('keypress', '.newLabelInput', function (e) {
var ev = e || window.event;
var key = ev.keyCode;
var labelName = $(this).val();
@@ -299,7 +299,7 @@ define(function(require) {
if (key == 13 && !ev.altKey && labelName != '') {
var labelsArray, labelIndex;
var selectedItems = tabTable.elements();
- $.each(selectedItems, function(index, resourceId) {
+ $.each(selectedItems, function (index, resourceId) {
labelsStr = _getLabel(tabName, dataTable, labelsColumn, resourceId);
if (labelsStr != '') {
labelsArray = labelsStr.split(',');
@@ -318,10 +318,10 @@ define(function(require) {
});
}
- function existInArrInsensitive(val, arr){
- if (arr.length){
- for (var i = 0; arr.length > i; i++){
- if (val.toLowerCase() == arr[i].toLowerCase()){
+ function existInArrInsensitive(val, arr) {
+ if (arr.length) {
+ for (var i = 0; arr.length > i; i++) {
+ if (val.toLowerCase() == arr[i].toLowerCase()) {
return true;
}
}
@@ -341,24 +341,24 @@ define(function(require) {
OpenNebula[resource].append({
timeout: true,
- data : {
- id: resourceId,
- extra_param: templateStr
+ data: {
+ id: resourceId,
+ extra_param: templateStr
},
- success: function(request) {
+ success: function (request) {
OpenNebula[resource].show({
timeout: true,
- data : {
- id: resourceId
+ data: {
+ id: resourceId
},
- success: function(request, response) {
+ success: function (request, response) {
tabTable.updateElement(request, response);
if (Sunstone.rightInfoVisible($('#' + tabName))) {
Sunstone.insertPanels(tabName, response);
}
- _insertLabelsMenu({'tabName': tabName});
+ _insertLabelsMenu({ 'tabName': tabName });
_insertLabelsDropdown(tabName);
},
error: Notifier.onError
@@ -372,7 +372,7 @@ define(function(require) {
if (elementTemplate['BODY'] && elementTemplate["BODY"][LABELS_ATTR.toLowerCase()]) {
return TemplateUtils.htmlEncode(elementTemplate["BODY"][LABELS_ATTR.toLowerCase()]);
} else {
- return TemplateUtils.htmlEncode( elementTemplate[LABELS_ATTR] );
+ return TemplateUtils.htmlEncode(elementTemplate[LABELS_ATTR]);
}
}
@@ -381,9 +381,9 @@ define(function(require) {
if (labelsStr) {
var parent;
- $.each(labelsStr.split(','), function() {
+ $.each(labelsStr.split(','), function () {
parent = indexedLabels;
- $.each(this.split('/'), function() {
+ $.each(this.split('/'), function () {
if (parent[this] == undefined) {
parent[this] = {};
}
@@ -397,12 +397,12 @@ define(function(require) {
function _makeTree(indexedLabels, currentLabel) {
var treeRoot = {
- htmlStr : '',
- subTree : []
+ htmlStr: '',
+ subTree: []
};
var keys = Object.keys(indexedLabels).sort();
- for (var i = 0; i < keys.length; i++){
+ for (var i = 0; i < keys.length; i++) {
var folderName = keys[i];
var childs = indexedLabels[folderName];
treeRoot.subTree.push(_makeSubTree('', folderName, childs, currentLabel));
@@ -415,41 +415,41 @@ define(function(require) {
var name_split = folderName.split("_");
var persis = false;
var yaml = false;
- if(name_split.indexOf("PERSIS") > -1){
+ if (name_split.indexOf("PERSIS") > -1) {
folderName = "";
- $.each(name_split, function(value){
- if(name_split[value] != "PERSIS"){
- folderName += name_split[value]+"_";
+ $.each(name_split, function (value) {
+ if (name_split[value] != "PERSIS") {
+ folderName += name_split[value] + "_";
}
});
- folderName = folderName.slice(0,-1);
+ folderName = folderName.slice(0, -1);
persis = true;
}
- else if(name_split.indexOf("YAML") > -1){
+ else if (name_split.indexOf("YAML") > -1) {
folderName = "";
- $.each(name_split, function(value){
- if(name_split[value] != "YAML"){
- folderName += name_split[value]+"_";
+ $.each(name_split, function (value) {
+ if (name_split[value] != "YAML") {
+ folderName += name_split[value] + "_";
}
});
- folderName = folderName.slice(0,-1);
+ folderName = folderName.slice(0, -1);
yaml = true;
}
var fullName = parentName + folderName;
- if(persis){
+ if (persis) {
var htmlStr =
- '' +
+ '' +
folderName +
- '';
+ '';
} else if (yaml) {
var htmlStr =
'' +
- folderName +
+ folderName +
'';
} else {
- var htmlStr =
+ var htmlStr =
'' +
- folderName +
+ folderName +
'';
}
@@ -460,7 +460,7 @@ define(function(require) {
};
var keys = Object.keys(childs).sort();
- for (var i = 0; i < keys.length; i++){
+ for (var i = 0; i < keys.length; i++) {
var subFolderName = keys[i];
var subChilds = childs[subFolderName];
tree.subTree.push(_makeSubTree(fullName + '/', subFolderName, subChilds, currentLabel));
@@ -479,10 +479,10 @@ define(function(require) {
// https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions
var escapedLabel = label.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
- var regExp = '^' + escapedLabel + '$|'+
- ',' + escapedLabel + '$|'+
- '^' + escapedLabel + ',|'+
- ',' + escapedLabel + ','
+ var regExp = '^' + escapedLabel + '$|' +
+ ',' + escapedLabel + '$|' +
+ '^' + escapedLabel + ',|' +
+ ',' + escapedLabel + ','
dataTable.data("sunstone-label-filter", label);
dataTable.fnFilter(regExp, labelsColumn, true, false);
@@ -500,10 +500,10 @@ define(function(require) {
function _getLabels(dataTable, labelsColumn, labelsPath) {
var labels = [];
var tmp;
- $.each(dataTable.fnGetData(), function() {
+ $.each(dataTable.fnGetData(), function () {
if (labelsPath) {
tmp = this;
- $.each(labelsPath.split('.'), function() {
+ $.each(labelsPath.split('.'), function () {
if (tmp) {
tmp = tmp[this];
}
@@ -530,13 +530,15 @@ define(function(require) {
} else {
template = element.TEMPLATE;
}
-
- if (template["BODY"] && template["BODY"][LABELS_ATTR.toLowerCase()]) {
- return template["BODY"][LABELS_ATTR.toLowerCase()];
+ if (template) {
+ if (template["BODY"] && template["BODY"][LABELS_ATTR.toLowerCase()]) {
+ return template["BODY"][LABELS_ATTR.toLowerCase()];
+ } else {
+ return template[LABELS_ATTR] || '';
+ }
} else {
- return template[LABELS_ATTR]||'';
+ return '';
}
-
} else {
return '';
}