mirror of
https://github.com/OpenNebula/one.git
synced 2025-02-10 13:57:22 +03:00
feature #4184: Move labels methods to tab-datatable
This commit is contained in:
parent
fd36bb5a10
commit
840ed18210
@ -25,9 +25,9 @@ define(function(require) {
|
||||
var OpenNebula = require('opennebula');
|
||||
var Locale = require('utils/locale');
|
||||
var Humanize = require('utils/humanize');
|
||||
var LabelsUtils = require('utils/labels/utils');
|
||||
var Tree = require('utils/labels/tree');
|
||||
var Notifier = require('utils/notifier');
|
||||
var LabelsUtils = require('utils/labels/utils');
|
||||
|
||||
/*
|
||||
CONSTANTS
|
||||
@ -37,6 +37,7 @@ define(function(require) {
|
||||
var XML_ROOT = "VMTEMPLATE";
|
||||
var TAB_NAME = require('./tabId');
|
||||
var LABELS_COLUMN = 6;
|
||||
var TEMPLATE_ATTR = 'TEMPLATE';
|
||||
|
||||
/*
|
||||
CONSTRUCTOR
|
||||
@ -48,6 +49,7 @@ define(function(require) {
|
||||
this.dataTableId = dataTableId;
|
||||
this.resource = RESOURCE;
|
||||
this.xmlRoot = XML_ROOT;
|
||||
this.labelsColumn = LABELS_COLUMN;
|
||||
|
||||
this.dataTableOptions = {
|
||||
"bAutoWidth": false,
|
||||
@ -89,11 +91,6 @@ define(function(require) {
|
||||
Table.prototype.elementArray = _elementArray;
|
||||
Table.prototype.preUpdateView = _preUpdateView;
|
||||
Table.prototype.postUpdateView = _postUpdateView;
|
||||
Table.prototype.clearLabelsFilter = _clearLabelsFilter;
|
||||
Table.prototype.setLabelsFilter = _setLabelsFilter;
|
||||
Table.prototype.getLabels = _getLabels;
|
||||
Table.prototype.getLabel = _getLabel;
|
||||
Table.prototype.LABELS_COLUMN = LABELS_COLUMN;
|
||||
|
||||
return Table;
|
||||
|
||||
@ -104,8 +101,6 @@ define(function(require) {
|
||||
function _elementArray(element_json) {
|
||||
var element = element_json[XML_ROOT];
|
||||
|
||||
var labelsStr = LabelsUtils.labelsStr(element);
|
||||
|
||||
return [
|
||||
'<input class="check_item" type="checkbox" id="' + RESOURCE.toLowerCase() + '_' +
|
||||
element.ID + '" name="selected_items" value="' +
|
||||
@ -115,7 +110,7 @@ define(function(require) {
|
||||
element.GNAME,
|
||||
element.NAME,
|
||||
Humanize.prettyTime(element.REGTIME),
|
||||
(labelsStr||'')
|
||||
(LabelsUtils.labelsStr(element[TEMPLATE_ATTR])||'')
|
||||
];
|
||||
}
|
||||
|
||||
@ -123,30 +118,5 @@ define(function(require) {
|
||||
}
|
||||
|
||||
function _postUpdateView() {
|
||||
LabelsUtils.insertLabelsMenu(TAB_NAME);
|
||||
LabelsUtils.insertLabelsDropdown(TAB_NAME);
|
||||
}
|
||||
|
||||
function _setLabelsFilter(regExp) {
|
||||
this.dataTable.fnFilter(regExp, LABELS_COLUMN, true, false);
|
||||
}
|
||||
|
||||
function _clearLabelsFilter() {
|
||||
this.dataTable.fnFilter('', LABELS_COLUMN, true, false);
|
||||
}
|
||||
|
||||
function _getLabels() {
|
||||
var labels = [];
|
||||
$.each(this.dataTable.fnGetData(), function() {
|
||||
if (this[LABELS_COLUMN] != '') {
|
||||
labels.push(this[LABELS_COLUMN]);
|
||||
}
|
||||
})
|
||||
return LabelsUtils.deserializeLabels(labels.join(','));
|
||||
}
|
||||
|
||||
function _getLabel(resourceId) {
|
||||
var aData = this.getElementData(resourceId, RESOURCE.toLowerCase());
|
||||
return aData[this.LABELS_COLUMN];
|
||||
}
|
||||
});
|
||||
|
@ -38,7 +38,7 @@ define(function(require) {
|
||||
this.element = opts.element;
|
||||
this.resource = opts.resource;
|
||||
this.xmlRoot = opts.xmlRoot;
|
||||
this.labels = LabelsUtils.deserializeLabels(LabelsUtils.labelsStr(this.element));
|
||||
this.labels = LabelsUtils.deserializeLabels(LabelsUtils.labelsStr(this.element[TEMPLATE_ATTR]));
|
||||
|
||||
return this;
|
||||
};
|
||||
@ -51,7 +51,7 @@ define(function(require) {
|
||||
/* FUNCTION DEFINITIONS */
|
||||
|
||||
function _html() {
|
||||
var labelsTreeHTML = Tree.html(LabelsUtils.makeTree(this.labels));
|
||||
var labelsTreeHTML = Tree.html(LabelsUtils.makeTree(this.labels, true));
|
||||
return TableTemplate({
|
||||
'labelsTreeHTML': labelsTreeHTML
|
||||
})
|
||||
|
@ -23,12 +23,9 @@ define(function(require) {
|
||||
var Locale = require('utils/locale');
|
||||
var Notifier = require('utils/notifier');
|
||||
|
||||
var TEMPLATE_ATTR = 'TEMPLATE';
|
||||
var LABELS_ATTR = 'LABELS';
|
||||
|
||||
return {
|
||||
'TEMPLATE_ATTR': TEMPLATE_ATTR,
|
||||
'LABELS_ATTR': LABELS_ATTR,
|
||||
'labelsStr': _labelsStr,
|
||||
'deserializeLabels': _deserializeLabels,
|
||||
'makeTree': _makeTree,
|
||||
@ -227,7 +224,9 @@ define(function(require) {
|
||||
if (Sunstone.rightInfoVisible($('#' + tabName))) {
|
||||
Sunstone.insertPanels(tabName, response);
|
||||
}
|
||||
dataTable.postUpdateView();
|
||||
|
||||
_insertLabelsMenu(tabName);
|
||||
_insertLabelsDropdown(tabName);
|
||||
},
|
||||
error: Notifier.onError
|
||||
});
|
||||
@ -236,8 +235,8 @@ define(function(require) {
|
||||
})
|
||||
}
|
||||
|
||||
function _labelsStr(element) {
|
||||
return element[TEMPLATE_ATTR][LABELS_ATTR];
|
||||
function _labelsStr(elementTemplate) {
|
||||
return elementTemplate[LABELS_ATTR];
|
||||
}
|
||||
|
||||
function _deserializeLabels(labelsStr) {
|
||||
|
@ -28,6 +28,7 @@ define(function(require) {
|
||||
var OpenNebula = require('opennebula');
|
||||
var Notifier = require('utils/notifier');
|
||||
var OpenNebulaUser = require('opennebula/user');
|
||||
var LabelsUtils = require('utils/labels/utils');
|
||||
|
||||
/*
|
||||
TEMPLATES
|
||||
@ -153,7 +154,11 @@ define(function(require) {
|
||||
'idInput': _idInput,
|
||||
'initSelectResourceTableSelect': _initSelectResourceTableSelect,
|
||||
'updateFn': _updateFn,
|
||||
'list': _list
|
||||
'list': _list,
|
||||
'clearLabelsFilter': _clearLabelsFilter,
|
||||
'setLabelsFilter': _setLabelsFilter,
|
||||
'getLabels': _getLabels,
|
||||
'getLabel': _getLabel
|
||||
}
|
||||
|
||||
return TabDatatable;
|
||||
@ -481,11 +486,44 @@ define(function(require) {
|
||||
});
|
||||
}
|
||||
|
||||
if (that.labelsColumn) {
|
||||
LabelsUtils.insertLabelsMenu(that.tabId);
|
||||
LabelsUtils.insertLabelsDropdown(that.tabId);
|
||||
}
|
||||
|
||||
if (that.postUpdateView) {
|
||||
that.postUpdateView();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
LABELS
|
||||
*/
|
||||
|
||||
function _setLabelsFilter(regExp) {
|
||||
this.dataTable.fnFilter(regExp, this.labelsColumn, true, false);
|
||||
}
|
||||
|
||||
function _clearLabelsFilter() {
|
||||
this.dataTable.fnFilter('', this.labelsColumn, true, false);
|
||||
}
|
||||
|
||||
function _getLabels() {
|
||||
var that = this;
|
||||
var labels = [];
|
||||
$.each(this.dataTable.fnGetData(), function() {
|
||||
if (this[that.labelsColumn] != '') {
|
||||
labels.push(this[that.labelsColumn]);
|
||||
}
|
||||
})
|
||||
return LabelsUtils.deserializeLabels(labels.join(','));
|
||||
}
|
||||
|
||||
function _getLabel(resourceId) {
|
||||
var aData = this.getElementData(resourceId, this.resource.toLowerCase());
|
||||
return aData[this.labelsColumn];
|
||||
}
|
||||
|
||||
//replaces an element with id 'tag' in a dataTable with a new one
|
||||
function _updateElement(request, element_json) {
|
||||
var id = element_json[this.xmlRoot].ID;
|
||||
|
Loading…
x
Reference in New Issue
Block a user