1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-20 10:50:08 +03:00

Feature #4126: Add .rename actions to view yaml files

(cherry picked from commit 51785f50182caa7b10264534a3f99c9d35ad2e8c)
This commit is contained in:
Carlos Martín 2015-11-16 16:11:33 +01:00
parent 7ac678fe0b
commit 8490cf3d6a
22 changed files with 113 additions and 63 deletions

View File

@ -112,6 +112,7 @@ tabs:
Vdc.refresh: true
Vdc.create_dialog: true
Vdc.update_dialog: true
Vdc.rename: true
Vdc.delete: true
acls-tab:
@ -160,6 +161,7 @@ tabs:
actions:
VM.refresh: true
VM.create_dialog: true
VM.rename: true
VM.chown: true
VM.chgrp: true
VM.chmod: true
@ -213,6 +215,7 @@ tabs:
Template.import_dialog: false
Template.update_dialog: true
Template.instantiate_vms: true
Template.rename: true
Template.chown: true
Template.chgrp: true
Template.chmod: true
@ -251,6 +254,7 @@ tabs:
actions:
Image.refresh: true
Image.create_dialog: true
Image.rename: true
Image.chown: true
Image.chgrp: true
Image.chmod: true
@ -283,6 +287,7 @@ tabs:
actions:
File.refresh: true
File.create_dialog: true
File.rename: true
File.chown: true
File.chgrp: true
File.chmod: true
@ -310,6 +315,7 @@ tabs:
Cluster.create_dialog: true
Cluster.update_dialog: true
Cluster.delete: true
Cluster.rename: true
hosts-tab:
panel_tabs:
host_info_tab: true
@ -336,6 +342,7 @@ tabs:
Host.refresh: true
Host.create_dialog: true
Host.addtocluster: true
Host.rename: true
Host.enable: true
Host.disable: true
Host.delete: true
@ -360,6 +367,7 @@ tabs:
Datastore.refresh: true
Datastore.create_dialog: true
Datastore.addtocluster: true
Datastore.rename: true
Datastore.chown: true
Datastore.chgrp: true
Datastore.chmod: true
@ -389,6 +397,7 @@ tabs:
Network.import_dialog: false
Network.update_dialog: true
Network.addtocluster: true
Network.rename: true
Network.chown: true
Network.chgrp: true
Network.chmod: true
@ -411,6 +420,7 @@ tabs:
SecurityGroup.refresh: true
SecurityGroup.create_dialog: true
SecurityGroup.update_dialog: true
SecurityGroup.rename: true
SecurityGroup.chown: true
SecurityGroup.chgrp: true
SecurityGroup.chmod: true
@ -518,6 +528,7 @@ tabs:
actions:
Zone.refresh: true
Zone.create_dialog: true
Zone.rename: true
Zone.delete: true
support-tab:
panel_tabs:

View File

@ -112,6 +112,7 @@ tabs:
Vdc.refresh: true
Vdc.create_dialog: true
Vdc.update_dialog: true
Vdc.rename: true
Vdc.delete: true
acls-tab:
@ -160,6 +161,7 @@ tabs:
actions:
VM.refresh: true
VM.create_dialog: true
VM.rename: true
VM.chown: true
VM.chgrp: true
VM.chmod: true
@ -213,6 +215,7 @@ tabs:
Template.import_dialog: true
Template.update_dialog: true
Template.instantiate_vms: true
Template.rename: true
Template.chown: true
Template.chgrp: true
Template.chmod: true
@ -251,6 +254,7 @@ tabs:
actions:
Image.refresh: true
Image.create_dialog: true
Image.rename: true
Image.chown: true
Image.chgrp: true
Image.chmod: true
@ -283,6 +287,7 @@ tabs:
actions:
File.refresh: true
File.create_dialog: true
File.rename: true
File.chown: true
File.chgrp: true
File.chmod: true
@ -310,6 +315,7 @@ tabs:
Cluster.create_dialog: true
Cluster.update_dialog: true
Cluster.delete: true
Cluster.rename: true
hosts-tab:
panel_tabs:
host_info_tab: true
@ -336,6 +342,7 @@ tabs:
Host.refresh: true
Host.create_dialog: true
Host.addtocluster: true
Host.rename: true
Host.enable: true
Host.disable: true
Host.delete: true
@ -360,6 +367,7 @@ tabs:
Datastore.refresh: true
Datastore.create_dialog: true
Datastore.addtocluster: true
Datastore.rename: true
Datastore.chown: true
Datastore.chgrp: true
Datastore.chmod: true
@ -389,6 +397,7 @@ tabs:
Network.import_dialog: true
Network.update_dialog: true
Network.addtocluster: true
Network.rename: true
Network.chown: true
Network.chgrp: true
Network.chmod: true
@ -411,6 +420,7 @@ tabs:
SecurityGroup.refresh: true
SecurityGroup.create_dialog: true
SecurityGroup.update_dialog: true
SecurityGroup.rename: true
SecurityGroup.chown: true
SecurityGroup.chgrp: true
SecurityGroup.chmod: true
@ -518,6 +528,7 @@ tabs:
actions:
Zone.refresh: true
Zone.create_dialog: true
Zone.rename: true
Zone.delete: true
support-tab:
panel_tabs:

View File

@ -24,6 +24,7 @@ tabs:
actions: &provisionactions
Template.chmod: false
Template.delete: true
VM.rename: true
VM.resume: true
VM.reboot: true
VM.reboot_hard: true

View File

@ -24,6 +24,7 @@ tabs:
actions: &provisionactions
Template.chmod: false
Template.delete: true
VM.rename: true
VM.resume: true
VM.reboot: true
VM.reboot_hard: true

View File

@ -24,6 +24,7 @@ tabs:
actions: &provisionactions
Template.chmod: true
Template.delete: true
VM.rename: true
VM.resume: true
VM.reboot: true
VM.reboot_hard: true

View File

@ -24,6 +24,7 @@ tabs:
actions: &provisionactions
Template.chmod: false
Template.delete: true
VM.rename: true
VM.resume: true
VM.reboot: true
VM.reboot_hard: true

View File

@ -113,6 +113,7 @@ tabs:
Vdc.refresh: true
Vdc.create_dialog: true
Vdc.update_dialog: true
Vdc.rename: true
Vdc.delete: true
acls-tab:
@ -161,6 +162,7 @@ tabs:
actions:
VM.refresh: true
VM.create_dialog: true
VM.rename: true
VM.chown: false
VM.chgrp: false
VM.chmod: true
@ -214,6 +216,7 @@ tabs:
Template.import_dialog: false
Template.update_dialog: true
Template.instantiate_vms: true
Template.rename: true
Template.chown: false
Template.chgrp: false
Template.chmod: true
@ -252,6 +255,7 @@ tabs:
actions:
Image.refresh: true
Image.create_dialog: true
Image.rename: true
Image.chown: false
Image.chgrp: false
Image.chmod: true
@ -284,6 +288,7 @@ tabs:
actions:
File.refresh: true
File.create_dialog: true
File.rename: true
File.chown: false
File.chgrp: false
File.chmod: true
@ -311,6 +316,7 @@ tabs:
Cluster.create_dialog: true
Cluster.update_dialog: true
Cluster.delete: true
Cluster.rename: true
hosts-tab:
panel_tabs:
host_info_tab: true
@ -337,6 +343,7 @@ tabs:
Host.refresh: true
Host.create_dialog: true
Host.addtocluster: true
Host.rename: true
Host.enable: true
Host.disable: true
Host.delete: true
@ -361,6 +368,7 @@ tabs:
Datastore.refresh: true
Datastore.create_dialog: false
Datastore.addtocluster: false
Datastore.rename: true
Datastore.chown: false
Datastore.chgrp: false
Datastore.chmod: true
@ -390,6 +398,7 @@ tabs:
Network.import_dialog: false
Network.update_dialog: true
Network.addtocluster: false
Network.rename: true
Network.chown: false
Network.chgrp: false
Network.chmod: true
@ -412,6 +421,7 @@ tabs:
SecurityGroup.refresh: true
SecurityGroup.create_dialog: true
SecurityGroup.update_dialog: true
SecurityGroup.rename: true
SecurityGroup.chown: true
SecurityGroup.chgrp: true
SecurityGroup.chmod: true
@ -519,6 +529,7 @@ tabs:
actions:
Zone.refresh: true
Zone.create_dialog: true
Zone.rename: true
Zone.delete: true
support-tab:
panel_tabs:

View File

@ -57,7 +57,7 @@ define(function(require) {
*/
function _html() {
var renameTrHTML = RenameTr.html(RESOURCE, this.element.NAME);
var renameTrHTML = RenameTr.html(TAB_ID, RESOURCE, this.element.NAME);
var templateTableHTML = TemplateTable.html(this.element.TEMPLATE, RESOURCE,
Locale.tr("Attributes"));
@ -69,7 +69,7 @@ define(function(require) {
}
function _setup(context) {
RenameTr.setup(RESOURCE, this.element.ID, context);
RenameTr.setup(TAB_ID, RESOURCE, this.element.ID, context);
TemplateTable.setup(this.element.TEMPLATE, RESOURCE, this.element.ID, context);
}

View File

@ -67,7 +67,7 @@ define(function(require) {
function _html() {
var renameTrHTML = RenameTr.html(RESOURCE, this.element.NAME);
var renameTrHTML = RenameTr.html(TAB_ID, RESOURCE, this.element.NAME);
var clusterTrHTML = ClusterTr.html(this.element.CLUSTER);
var templateTableHTML = TemplateTable.html(
this.element.TEMPLATE, RESOURCE,
@ -96,7 +96,7 @@ define(function(require) {
}
function _setup(context) {
RenameTr.setup(RESOURCE, this.element.ID, context);
RenameTr.setup(TAB_ID, RESOURCE, this.element.ID, context);
ClusterTr.setup(RESOURCE, this.element.ID, this.element.CLUSTER_ID, context);
TemplateTable.setup(this.element.TEMPLATE, RESOURCE, this.element.ID, context);
PermissionsTable.setup(TAB_ID, RESOURCE, this.element, context);

View File

@ -67,7 +67,7 @@ define(function(require) {
*/
function _html() {
var renameTrHTML = RenameTr.html(RESOURCE, this.element.NAME);
var renameTrHTML = RenameTr.html(TAB_ID, 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));
@ -89,7 +89,7 @@ define(function(require) {
}
function _setup(context) {
RenameTr.setup(RESOURCE, this.element.ID, context);
RenameTr.setup(TAB_ID, RESOURCE, this.element.ID, context);
TemplateTable.setup(this.element.TEMPLATE, RESOURCE, this.element.ID, context);
PermissionsTable.setup(TAB_ID, RESOURCE, this.element, context);

View File

@ -92,7 +92,7 @@ define(function(require) {
RESOURCE,
Locale.tr("Attributes"));
var renameTrHTML = RenameTr.html(RESOURCE, this.element.NAME);
var renameTrHTML = RenameTr.html(TAB_ID, RESOURCE, this.element.NAME);
var clusterTrHTML = ClusterTr.html(this.element.CLUSTER);
var permissionsTableHTML = PermissionsTable.html(TAB_ID, RESOURCE, this.element);
var cpuBars = CPUBars.html(this.element);
@ -113,7 +113,7 @@ define(function(require) {
}
function _setup(context) {
RenameTr.setup(RESOURCE, this.element.ID, context);
RenameTr.setup(TAB_ID, RESOURCE, this.element.ID, context);
ClusterTr.setup(RESOURCE, this.element.ID, this.element.CLUSTER_ID, context);
TemplateTable.setup(this.strippedTemplate, RESOURCE, this.element.ID, context, this.unshownTemplate);
PermissionsTable.setup(TAB_ID, RESOURCE, this.element, context);

View File

@ -66,7 +66,7 @@ define(function(require) {
*/
function _html() {
var renameTrHTML = RenameTr.html(RESOURCE, this.element.NAME);
var renameTrHTML = RenameTr.html(TAB_ID, 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 prettyRegTime = Humanize.prettyTime(this.element.REGTIME);
@ -90,7 +90,7 @@ define(function(require) {
}
function _setup(context) {
RenameTr.setup(RESOURCE, this.element.ID, context);
RenameTr.setup(TAB_ID, RESOURCE, this.element.ID, context);
TemplateTable.setup(this.element.TEMPLATE, RESOURCE, this.element.ID, context);
PermissionsTable.setup(TAB_ID, RESOURCE, this.element, context);

View File

@ -25,10 +25,12 @@
{{!opts.title}}
</span>
<span class="provision_info_vm_name only-not-active"></span>
{{#isTabActionEnabled "provision-tab" "VM.rename"}}
&emsp;
<span class="provision_info_vm_rename only-not-active">
<a href="#"> <i class="fa fa-pencil"/></a>
</span>
{{/isTabActionEnabled}}
<span href"#" class="right only-active button small radius secondary provision_vms_list_refresh_button"
{{#unless opts.refresh}}style="display:none"{{/unless}} title=" {{tr "Refresh"}}">
<i class="fa fa-fw fa-lg fa-refresh"/></span>

View File

@ -341,32 +341,34 @@ define(function(require) {
$(".provision_info_vm_name", context).text(data.NAME);
context.off("click", ".provision_info_vm_rename a");
context.on("click", ".provision_info_vm_rename a", function() {
var valueStr = $(".provision_info_vm_name", context).text();
$(".provision_info_vm_name", context).html('<input class="input_edit_value_rename" type="text" value="' + valueStr + '"/>');
});
if (Config.isTabActionEnabled("provision-tab", 'VM.rename')) {
context.off("click", ".provision_info_vm_rename a");
context.on("click", ".provision_info_vm_rename a", function() {
var valueStr = $(".provision_info_vm_name", context).text();
$(".provision_info_vm_name", context).html('<input class="input_edit_value_rename" type="text" value="' + valueStr + '"/>');
});
context.off("change", ".input_edit_value_rename");
context.on("change", ".input_edit_value_rename", function() {
var valueStr = $(".input_edit_value_rename", context).val();
if (valueStr != "") {
OpenNebula.VM.rename({
data : {
id: vm_id,
extra_param: {
"name" : valueStr
context.off("change", ".input_edit_value_rename");
context.on("change", ".input_edit_value_rename", function() {
var valueStr = $(".input_edit_value_rename", context).val();
if (valueStr != "") {
OpenNebula.VM.rename({
data : {
id: vm_id,
extra_param: {
"name" : valueStr
}
},
success: function(request, response){
update_provision_vm_info(vm_id, context);
},
error: function(request, response){
Notifier.onError(request, response);
}
},
success: function(request, response){
update_provision_vm_info(vm_id, context);
},
error: function(request, response){
Notifier.onError(request, response);
}
});
}
});
});
}
});
}
$(".provision-pricing-table_vm_info", context).html(
'<li class="text-left provision-bullet-item">'+

View File

@ -65,7 +65,7 @@ define(function(require) {
*/
function _html() {
var renameTrHTML = RenameTr.html(RESOURCE, this.element.NAME);
var renameTrHTML = RenameTr.html(TAB_ID, RESOURCE, this.element.NAME);
var permissionsTableHTML = PermissionsTable.html(TAB_ID, RESOURCE, this.element);
var rules = Utils.getRules(this.element);
@ -97,7 +97,7 @@ define(function(require) {
}
function _setup(context) {
RenameTr.setup(RESOURCE, this.element.ID, context);
RenameTr.setup(TAB_ID, RESOURCE, this.element.ID, context);
PermissionsTable.setup(TAB_ID, RESOURCE, this.element, context);
// TODO: simplify interface?

View File

@ -63,7 +63,7 @@ define(function(require) {
*/
function _html() {
var renameTrHTML = RenameTr.html(RESOURCE, this.element.NAME);
var renameTrHTML = RenameTr.html(TAB_ID, RESOURCE, this.element.NAME);
var permissionsTableHTML = PermissionsTable.html(TAB_ID, RESOURCE, this.element);
var prettyRegTime = Humanize.prettyTime(this.element.REGTIME);
@ -76,7 +76,7 @@ define(function(require) {
}
function _setup(context) {
RenameTr.setup(RESOURCE, this.element.ID, context);
RenameTr.setup(TAB_ID, RESOURCE, this.element.ID, context);
PermissionsTable.setup(TAB_ID, RESOURCE, this.element, context);
}
});

View File

@ -57,7 +57,7 @@ define(function(require) {
*/
function _html() {
var renameTrHTML = RenameTr.html(RESOURCE, this.element.NAME);
var renameTrHTML = RenameTr.html(TAB_ID, RESOURCE, this.element.NAME);
var templateTableHTML = TemplateTable.html(this.element.TEMPLATE, RESOURCE,
Locale.tr("Attributes"));
@ -69,7 +69,7 @@ define(function(require) {
}
function _setup(context) {
RenameTr.setup(RESOURCE, this.element.ID, context);
RenameTr.setup(TAB_ID, RESOURCE, this.element.ID, context);
TemplateTable.setup(this.element.TEMPLATE, RESOURCE, this.element.ID, context);
}

View File

@ -65,7 +65,7 @@ define(function(require) {
*/
function _html() {
var renameTrHTML = RenameTr.html(RESOURCE, this.element.NAME);
var renameTrHTML = RenameTr.html(TAB_ID, RESOURCE, this.element.NAME);
var permissionsTableHTML = PermissionsTable.html(TAB_ID, RESOURCE, this.element);
var prettyStartTime = Humanize.prettyTime(this.element.STIME);
@ -107,7 +107,7 @@ define(function(require) {
}
function _setup(context) {
RenameTr.setup(RESOURCE, this.element.ID, context);
RenameTr.setup(TAB_ID, RESOURCE, this.element.ID, context);
PermissionsTable.setup(TAB_ID, RESOURCE, this.element, context);
// Get rid of the unwanted (for show) SCHED_* keys

View File

@ -65,7 +65,7 @@ define(function(require) {
*/
function _html() {
var renameTrHTML = RenameTr.html(RESOURCE, this.element.NAME);
var renameTrHTML = RenameTr.html(TAB_ID, RESOURCE, this.element.NAME);
var clusterTrHTML = ClusterTr.html(this.element.CLUSTER);
var permissionsTableHTML = PermissionsTable.html(TAB_ID, RESOURCE, this.element);
@ -109,7 +109,7 @@ define(function(require) {
}
function _setup(context) {
RenameTr.setup(RESOURCE, this.element.ID, context);
RenameTr.setup(TAB_ID, RESOURCE, this.element.ID, context);
ClusterTr.setup(RESOURCE, this.element.ID, this.element.CLUSTER_ID, context);
PermissionsTable.setup(TAB_ID, RESOURCE, this.element, context);

View File

@ -61,7 +61,7 @@ define(function(require) {
*/
function _html() {
var renameTrHTML = RenameTr.html(RESOURCE, this.element.NAME);
var renameTrHTML = RenameTr.html(TAB_ID, RESOURCE, this.element.NAME);
var templateTableHTML = TemplateTable.html(this.element.TEMPLATE, RESOURCE,
Locale.tr("Attributes"));
@ -73,7 +73,7 @@ define(function(require) {
}
function _setup(context) {
RenameTr.setup(RESOURCE, this.element.ID, context);
RenameTr.setup(TAB_ID, RESOURCE, this.element.ID, context);
TemplateTable.setup(this.element.TEMPLATE, RESOURCE, this.element.ID, context);
return false;
}

View File

@ -22,43 +22,50 @@ define(function(require) {
var TemplateRenameTr = require('hbs!./rename-tr/html');
var Sunstone = require('sunstone');
var Config = require('sunstone-config');
/*
Generate the tr HTML with the name of the resource and an edit icon
@param {String} tabName
@param {String} resourceType Resource type (i.e: Zone, Host, Image...)
@param {String} resourceName Name of the resource
@returns {String} HTML row
*/
var _html = function(resourceType, resourceName) {
var _html = function(tabName, resourceType, resourceName) {
var renameTrHTML = TemplateRenameTr({
'resourceType': resourceType.toLowerCase(),
'resourceName': resourceName
})
'resourceName': resourceName,
'tabName': tabName,
'action': resourceType + '.rename',
});
return renameTrHTML;
};
/*
Initialize the row, clicking the edit icon will add an input to edit the name
@param {String} tabName
@param {String} resourceType Resource type (i.e: Zone, Host, Image...)
@param {String} resourceId ID of the resource
@param {jQuery Object} context Selector including the tr
*/
var _setup = function(resourceType, resourceId, context) {
context.off("click", "#div_edit_rename_link");
context.on("click", "#div_edit_rename_link", function() {
var valueStr = $(".value_td_rename", context).text();
$(".value_td_rename", context).html('<input class="input_edit_value_rename" id="input_edit_rename" type="text" value="' + valueStr + '"/>');
});
var _setup = function(tabName, resourceType, resourceId, context) {
if (Config.isTabActionEnabled(tabName, resourceType + '.rename')) {
context.off("click", "#div_edit_rename_link");
context.on("click", "#div_edit_rename_link", function() {
var valueStr = $(".value_td_rename", context).text();
$(".value_td_rename", context).html('<input class="input_edit_value_rename" id="input_edit_rename" type="text" value="' + valueStr + '"/>');
});
context.off("change", ".input_edit_value_rename");
context.on("change", ".input_edit_value_rename", function() {
var valueStr = $(".input_edit_value_rename", context).val();
if (valueStr != "") {
var nameTemplate = {"name": valueStr};
Sunstone.runAction(resourceType + ".rename", resourceId, nameTemplate);
}
});
context.off("change", ".input_edit_value_rename");
context.on("change", ".input_edit_value_rename", function() {
var valueStr = $(".input_edit_value_rename", context).val();
if (valueStr != "") {
var nameTemplate = {"name": valueStr};
Sunstone.runAction(resourceType + ".rename", resourceId, nameTemplate);
}
});
}
return false;
}

View File

@ -18,8 +18,10 @@
<td class="key_td">{{tr "Name"}}</td>
<td class="value_td_rename">{{resourceName}}</td>
<td>
{{#isTabActionEnabled tabName action}}
<div id="div_edit_rename">
<a id="div_edit_rename_link" class="edit_e" href="#"> <i class="fa fa-pencil-square-o right"/></a>
</div>
{{/isTabActionEnabled}}
</td>
</tr>