diff --git a/src/sunstone/public/app/tabs/files-tab.js b/src/sunstone/public/app/tabs/files-tab.js index 2b9321c415..31415361c0 100644 --- a/src/sunstone/public/app/tabs/files-tab.js +++ b/src/sunstone/public/app/tabs/files-tab.js @@ -12,7 +12,7 @@ define(function(require) { ]; var _panels = [ - //require('./files-tab/panels/info') + require('./files-tab/panels/info') ]; var Tab = { diff --git a/src/sunstone/public/app/tabs/files-tab/datatable.js b/src/sunstone/public/app/tabs/files-tab/datatable.js index 35e039d681..4876d7c5a6 100644 --- a/src/sunstone/public/app/tabs/files-tab/datatable.js +++ b/src/sunstone/public/app/tabs/files-tab/datatable.js @@ -14,7 +14,7 @@ define(function(require) { CONSTANTS */ - var RESOURCE = "Image"; + var RESOURCE = "File"; var XML_ROOT = "IMAGE"; var TAB_NAME = require('./tabId'); var COLUMN_IDS = { @@ -124,7 +124,9 @@ define(function(require) { } return [ - '', + '', element.ID, element.UNAME, element.GNAME, diff --git a/src/sunstone/public/app/tabs/files-tab/panels/info.js b/src/sunstone/public/app/tabs/files-tab/panels/info.js new file mode 100644 index 0000000000..475b4de180 --- /dev/null +++ b/src/sunstone/public/app/tabs/files-tab/panels/info.js @@ -0,0 +1,103 @@ +define(function(require) { + /* + DEPENDENCIES + */ + + var Locale = require('utils/locale'); + var Humanize = require('utils/humanize'); + var RenameTr = require('utils/panel/rename-tr'); + var TemplateTable = require('utils/panel/template-table'); + var PermissionsTable = require('utils/panel/permissions-table'); + var OpenNebulaImage = require('opennebula/image'); + var Config = require('sunstone-config'); + var Sunstone = require('sunstone'); + + /* + TEMPLATES + */ + + var TemplateInfo = require('hbs!./info/html'); + + /* + CONSTANTS + */ + + var TAB_ID = require('../tabId'); + var PANEL_ID = require('./info/panelId'); + var RESOURCE = "File"; + var XML_ROOT = "IMAGE"; + + /* + CONSTRUCTOR + */ + + function Panel(info) { + this.title = Locale.tr("Info"); + this.icon = "fa-info-circle"; + + this.element = info[XML_ROOT]; + + return this; + } + + Panel.PANEL_ID = PANEL_ID; + Panel.prototype.html = _html; + Panel.prototype.setup = _setup; + + return Panel; + + /* + FUNCTION DEFINITIONS + */ + + function _html() { + var renameTrHTML = RenameTr.html(RESOURCE, this.element.NAME); + var templateTableHTML = TemplateTable.html(this.element.TEMPLATE, RESOURCE, Locale.tr("Attributes")); + var permissionsTableHTML = PermissionsTable.html(TAB_ID, RESOURCE, this.element); + var stateStr = Locale.tr(OpenNebulaImage.stateStr(this.element.STATE)); + var prettyRegTime = Humanize.prettyTime(this.element.REGTIME); + var fsTypeStr = this.element.FS_TYPE != undefined ? this.element.FS_TYPE : '-'; + var sizeStr = Humanize.sizeFromMB(this.element.SIZE); + var typeStr = Locale.tr(OpenNebulaImage.typeStr(this.element.TYPE)); + + return TemplateInfo({ + 'element': this.element, + 'renameTrHTML': renameTrHTML, + 'templateTableHTML': templateTableHTML, + 'permissionsTableHTML': permissionsTableHTML, + 'stateStr': stateStr, + 'prettyRegTime': prettyRegTime, + 'fsTypeStr': fsTypeStr, + 'typeStr': typeStr, + 'sizeStr': sizeStr + }); + } + + function _setup(context) { + RenameTr.setup(RESOURCE, this.element.ID, context); + TemplateTable.setup(this.element.TEMPLATE, RESOURCE, this.element.ID, context); + PermissionsTable.setup(TAB_ID, RESOURCE, this.element, context); + + // Listener for edit link for type change + var that = this; + context.off("click", "#div_edit_chg_type_link") + context.on("click", "#div_edit_chg_type_link", function() { + $(".value_td_type", context).html( + ''); + + $('#chg_type_select', context).val(OpenNebulaImage.typeStr(that.element.TYPE)); + }); + + context.off("change", "#chg_type_select"); + context.on("change", "#chg_type_select", function() { + var new_value = $(this).val(); + Sunstone.runAction("File.chtype", that.element.ID, new_value); + }); + + return false; + } +}); diff --git a/src/sunstone/public/app/tabs/files-tab/panels/info/html.hbs b/src/sunstone/public/app/tabs/files-tab/panels/info/html.hbs new file mode 100644 index 0000000000..8db91e5802 --- /dev/null +++ b/src/sunstone/public/app/tabs/files-tab/panels/info/html.hbs @@ -0,0 +1,61 @@ +
{{tr "Information"}} | +||
---|---|---|
{{tr "ID"}} | +{{element.ID}} | +|
{{tr "Datastore"}} | +{{element.DATASTORE}} | ++ |
{{tr "Register time"}} | +{{prettyRegTime}} | ++ |
{{tr "Type"}} | +{{typeStr}} | ++ + | +
{{tr "Filesystem type"}} | +{{fsTypeStr}} | ++ |
{{tr "Size"}} | +{{sizeStr}} | ++ |
{{tr "State"}} | +{{stateStr}} | ++ |
{{tr "Running VMS"}} | +{{element.RUNNING_VMS}} | ++ |