mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-27 10:50:10 +03:00
parent
c924f62344
commit
dc19542950
@ -19,32 +19,31 @@ define(function(require) {
|
||||
DEPENDENCIES
|
||||
*/
|
||||
|
||||
// require('foundation.tab');
|
||||
var BaseFormPanel = require('utils/form-panels/form-panel');
|
||||
var Sunstone = require('sunstone');
|
||||
var Locale = require('utils/locale');
|
||||
//var Tips = require('utils/tips');
|
||||
var TemplateUtils = require('utils/template-utils');
|
||||
var WizardFields = require('utils/wizard-fields');
|
||||
var RoleTab = require('tabs/vmgroup-tab/utils/role-tab');
|
||||
var AffinityRoleTab = require('tabs/vmgroup-tab/utils/affinity-role-tab');
|
||||
var Notifier = require('utils/notifier');
|
||||
// require('foundation.tab');
|
||||
var BaseFormPanel = require("utils/form-panels/form-panel");
|
||||
var Sunstone = require("sunstone");
|
||||
var Locale = require("utils/locale");
|
||||
var TemplateUtils = require("utils/template-utils");
|
||||
var WizardFields = require("utils/wizard-fields");
|
||||
var RoleTab = require("tabs/vmgroup-tab/utils/role-tab");
|
||||
var AffinityRoleTab = require("tabs/vmgroup-tab/utils/affinity-role-tab");
|
||||
var Notifier = require("utils/notifier");
|
||||
|
||||
var Utils = require("../utils/common");
|
||||
|
||||
var Utils = require('../utils/common');
|
||||
|
||||
/*
|
||||
TEMPLATES
|
||||
*/
|
||||
|
||||
var TemplateWizardHTML = require('hbs!./create/wizard');
|
||||
var TemplateAdvancedHTML = require('hbs!./create/advanced');
|
||||
var TemplateWizardHTML = require("hbs!./create/wizard");
|
||||
var TemplateAdvancedHTML = require("hbs!./create/advanced");
|
||||
|
||||
/*
|
||||
CONSTANTS
|
||||
*/
|
||||
|
||||
var FORM_PANEL_ID = require('./create/formPanelId');
|
||||
var TAB_ID = require('../tabId');
|
||||
var FORM_PANEL_ID = require("./create/formPanelId");
|
||||
var TAB_ID = require("../tabId");
|
||||
|
||||
/*
|
||||
CONSTRUCTOR
|
||||
@ -55,15 +54,15 @@ define(function(require) {
|
||||
this.tabId = TAB_ID;
|
||||
this.affinity_role_tab = new AffinityRoleTab([]);
|
||||
this.actions = {
|
||||
'create': {
|
||||
'title': Locale.tr("Create Virtual Machine Group"),
|
||||
'buttonText': Locale.tr("Create"),
|
||||
'resetButton': true
|
||||
"create": {
|
||||
"title": Locale.tr("Create Virtual Machine Group"),
|
||||
"buttonText": Locale.tr("Create"),
|
||||
"resetButton": true
|
||||
},
|
||||
'update': {
|
||||
'title': Locale.tr("Update Virtual Machine Group"),
|
||||
'buttonText': Locale.tr("Update"),
|
||||
'resetButton': false
|
||||
"update": {
|
||||
"title": Locale.tr("Update Virtual Machine Group"),
|
||||
"buttonText": Locale.tr("Update"),
|
||||
"resetButton": false
|
||||
}
|
||||
};
|
||||
|
||||
@ -94,11 +93,10 @@ define(function(require) {
|
||||
info: false,
|
||||
select: true
|
||||
};
|
||||
|
||||
|
||||
return TemplateWizardHTML({
|
||||
'affinity-role-tab': this.affinity_role_tab.html(),
|
||||
'formPanelId': this.formPanelId
|
||||
"affinity-role-tab": this.affinity_role_tab.html(),
|
||||
"formPanelId": this.formPanelId
|
||||
});
|
||||
}
|
||||
|
||||
@ -136,20 +134,19 @@ define(function(require) {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
if (parent_role_available) {
|
||||
$(tab_id+" .parent_roles", context).show();
|
||||
}
|
||||
|
||||
var selected_parents = [];
|
||||
$(tab_id+" .parent_roles_body input:checked", context).each(function(){
|
||||
$(tab_id + " .parent_roles_body input:checked", context).each(function(){
|
||||
selected_parents.push($(this).val());
|
||||
});
|
||||
|
||||
$(tab_id+" .parent_roles_body", context).html(str);
|
||||
$(tab_id + " .parent_roles_body", context).html(str);
|
||||
|
||||
$.each(selected_parents, function(){
|
||||
$(tab_id+" .parent_roles_body #"+this, context).attr('checked', true);
|
||||
$(tab_id + " .parent_roles_body #" + this, context).attr("checked", true);
|
||||
});
|
||||
});
|
||||
|
||||
@ -161,35 +158,26 @@ define(function(require) {
|
||||
return false;
|
||||
});
|
||||
|
||||
/*$("#btn_refresh_roles", context).bind("click", function(){
|
||||
$("#btn_refresh_roles", context).html("<i class='fas fa-angle-double-down'></i> "+Locale.tr("Refresh roles"));
|
||||
that.affinity_role_tab.refresh(context, that.roleTabObjects);
|
||||
});*/
|
||||
//---------btn_group_vm_roles
|
||||
|
||||
Foundation.reflow(context, 'tabs');
|
||||
Foundation.reflow(context, "tabs");
|
||||
|
||||
// Add first role
|
||||
$("#tf_btn_roles", context).trigger("click");
|
||||
|
||||
//Tips.setup();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function _submitWizard(context) {
|
||||
that = this;
|
||||
var name = WizardFields.retrieveInput($('#vm_group_name', context));
|
||||
var description = WizardFields.retrieveInput($('#vm_group_description', context));
|
||||
var name = WizardFields.retrieveInput($("#vm_group_name", context));
|
||||
var description = WizardFields.retrieveInput($("#vm_group_description", context));
|
||||
|
||||
var role = [];
|
||||
|
||||
$('.role_content', context).each(function() {
|
||||
var role = [];
|
||||
|
||||
$(".role_content", context).each(function() {
|
||||
var role_id = $(this).attr("role_id");
|
||||
role.push(that.roleTabObjects[role_id].retrieve($(this)));
|
||||
});
|
||||
//call to role-tab.js for retrieve data
|
||||
|
||||
|
||||
var roles_affinity = this.affinity_role_tab.retrieve(context);
|
||||
var vm_group_json = {
|
||||
"NAME" : name,
|
||||
@ -219,12 +207,12 @@ define(function(require) {
|
||||
|
||||
function _submitAdvanced(context) {
|
||||
if (this.action == "create") {
|
||||
var template = $('textarea#template', context).val();
|
||||
var template = $("textarea#template", context).val();
|
||||
var vm_group_json = {vm_group: {vm_group_raw: template}};
|
||||
Sunstone.runAction("VMGroup.create",vm_group_json);
|
||||
return false;
|
||||
} else if (this.action == "update") {
|
||||
var template_raw = $('textarea#template', context).val();
|
||||
var template_raw = $("textarea#template", context).val();
|
||||
Sunstone.runAction("VMGroup.update_template", this.resourceId, template_raw);
|
||||
return false;
|
||||
}
|
||||
@ -232,7 +220,7 @@ define(function(require) {
|
||||
|
||||
function _onShow(context) {
|
||||
var that = this;
|
||||
$('.role_content', context).each(function() {
|
||||
$(".role_content", context).each(function() {
|
||||
var role_id = $(this).attr("role_id");
|
||||
that.roleTabObjects[role_id].onShow();
|
||||
});
|
||||
@ -244,124 +232,67 @@ define(function(require) {
|
||||
this.setHeader(element);
|
||||
this.resourceId = element.ID;
|
||||
|
||||
$('#template', context).val(TemplateUtils.templateToString(element.TEMPLATE));
|
||||
$("#template", context).val(TemplateUtils.templateToString(element.TEMPLATE));
|
||||
|
||||
WizardFields.fillInput($('#vm_group_name',context), element.NAME);
|
||||
$('#vm_group_name',context).prop("disabled", true);
|
||||
WizardFields.fillInput($("#vm_group_name",context), element.NAME);
|
||||
$("#vm_group_name",context).prop("disabled", true);
|
||||
|
||||
WizardFields.fillInput($('#vm_group_description', context), element.TEMPLATE.DESCRIPTION );
|
||||
WizardFields.fillInput($("#vm_group_description", context), element.TEMPLATE.DESCRIPTION );
|
||||
|
||||
//Remove row of roles
|
||||
if (!Array.isArray(element.ROLES.ROLE)){
|
||||
element.ROLES.ROLE = [element.ROLES.ROLE];
|
||||
}
|
||||
|
||||
//Remove row of roles-----------------------------------------------------------------
|
||||
$.each(element.ROLES.ROLE, function(index, value){
|
||||
var name = value.NAME;
|
||||
if(name){
|
||||
var html = "<option id='" + name + "' class='roles' value=" + name + "> " + name + "</option>";
|
||||
$("#list_roles_select").append(html);
|
||||
$("select #" + name).mousedown(function(e) {
|
||||
e.preventDefault();
|
||||
$(this).prop('selected', !$(this).prop('selected'));
|
||||
return false;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
this.affinity_role_tab.fill(context, element);
|
||||
$("#btn_refresh_roles", context).remove();
|
||||
$("#affinity",context).show();
|
||||
|
||||
//Remove row of roles------------------------------------------------------------------
|
||||
|
||||
/*var role_context_first = $('.role_content', context).first();
|
||||
var role_id_first = $(role_context_first).attr("role_id");
|
||||
delete that.roleTabObjects[role_id_first];
|
||||
|
||||
// Populates the Avanced mode Tab
|
||||
|
||||
var roles_names = [];
|
||||
var data = [];
|
||||
if(Array.isArray(element.ROLES.ROLE))
|
||||
data = element.ROLES.ROLE;
|
||||
else
|
||||
data.push(element.ROLES.ROLE);
|
||||
|
||||
$.each(data, function(index, value){
|
||||
roles_names.push(value.NAME);
|
||||
|
||||
$("#tf_btn_roles", context).click();
|
||||
|
||||
var role_context = $('.role_content', context).last();
|
||||
var role_id = $(role_context).attr("role_id");
|
||||
|
||||
that.roleTabObjects[role_id].fill(role_context, value,element);
|
||||
});
|
||||
|
||||
$.each(data, function(index, value){
|
||||
var role_context = $('.role_content', context)[index];
|
||||
var str = "";
|
||||
|
||||
$.each(roles_names, function(){
|
||||
if (this != value.NAME) {
|
||||
str += "<tr>\
|
||||
<td style='width:10%'>\
|
||||
<input class='check_item' type='checkbox' value='"+this+"' id='"+this+"'/>\
|
||||
</td>\
|
||||
<td>"+this+"</td>\
|
||||
</tr>";
|
||||
}
|
||||
});
|
||||
|
||||
$(".parent_roles_body", role_context).html(str);
|
||||
|
||||
if (value.parents) {
|
||||
$.each(value.parents, function(index, value){
|
||||
$(".parent_roles_body #"+this, role_context).attr('checked', true);
|
||||
if (name){
|
||||
var html = "<option id='" + name + "' class='roles' value=" + name + "> " + name + "</option>";
|
||||
$("#list_roles_select").append(html);
|
||||
$("select #" + name).mousedown(function(e) {
|
||||
e.preventDefault();
|
||||
$(this).prop("selected", !$(this).prop("selected"));
|
||||
return false;
|
||||
});
|
||||
}
|
||||
});*/
|
||||
|
||||
|
||||
//Remove first tab role, is empty.
|
||||
|
||||
//$('i.remove-tab', context).first().click();
|
||||
//$("#tf_btn_roles", context).click();
|
||||
|
||||
});
|
||||
|
||||
this.affinity_role_tab.fill(context, element);
|
||||
$("#btn_refresh_roles", context).remove();
|
||||
$("#affinity", context).show();
|
||||
}
|
||||
|
||||
function _add_role_tab(role_id, dialog) {
|
||||
var that = this;
|
||||
var html_role_id = 'role' + role_id;
|
||||
|
||||
var html_role_id = "role" + role_id;
|
||||
|
||||
var role_tab = new RoleTab(html_role_id);
|
||||
that.roleTabObjects[role_id] = role_tab;
|
||||
|
||||
// Append the new div containing the tab and add the tab to the list
|
||||
var role_section = $('<div id="'+html_role_id+'Tab" class="tabs-panel role_content wizard_internal_tab" role_id="'+role_id+'">'+
|
||||
//Append the new div containing the tab and add the tab to the list
|
||||
var role_section = $("<div id=\""+html_role_id+"Tab\" class=\"tabs-panel role_content wizard_internal_tab\" role_id=\""+role_id+"\">"+
|
||||
role_tab.html() +
|
||||
'</div>').appendTo($("#roles_tabs_content", dialog));
|
||||
"</div>").appendTo($("#roles_tabs_content", dialog));
|
||||
|
||||
_redo_service_vmgroup_selector_role(dialog, role_section);
|
||||
|
||||
role_section.on("change", "#role_name", function(){
|
||||
var val = true;
|
||||
var chars = ['/','*','&','|',':', String.fromCharCode(92),'"', ';', '/',String.fromCharCode(39),'#','{','}','$','<','>','*'];
|
||||
var chars = ["/","*","&","|",":", String.fromCharCode(92),"\"", ";", "/",String.fromCharCode(39),"#","{","}","$","<",">","*"];
|
||||
var newName = $(this).val();
|
||||
$.each(chars, function(index, value){
|
||||
if(newName.indexOf(value) != -1 && val){
|
||||
val = false;
|
||||
}
|
||||
});
|
||||
if(val){
|
||||
if (val){
|
||||
that.affinity_role_tab.refresh($(this).val(), role_tab.oldName());
|
||||
role_tab.changeNameTab(newName);
|
||||
} else {
|
||||
Notifier.notifyError(Locale.tr("The new role name contains invalid characters."));
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
//Tips.setup(role_section);
|
||||
|
||||
var a = $("<li class='tabs-title'>\
|
||||
<a class='text-center' id='"+html_role_id+"' href='#"+html_role_id+"Tab'>\
|
||||
<span>\
|
||||
@ -379,8 +310,8 @@ define(function(require) {
|
||||
// close icon: removing the tab on click
|
||||
a.on("click", "i.remove-tab", function() {
|
||||
var target = $(this).parent().attr("href");
|
||||
var li = $(this).closest('li');
|
||||
var ul = $(this).closest('ul');
|
||||
var li = $(this).closest("li");
|
||||
var ul = $(this).closest("ul");
|
||||
var content = $(target);
|
||||
|
||||
var role_id = content.attr("role_id");
|
||||
@ -388,8 +319,8 @@ define(function(require) {
|
||||
li.remove();
|
||||
content.remove();
|
||||
|
||||
if (li.hasClass('is-active')) {
|
||||
$('a', ul.children('li').last()).click();
|
||||
if (li.hasClass("is-active")) {
|
||||
$("a", ul.children("li").last()).click();
|
||||
}
|
||||
that.affinity_role_tab.removeRole(role_tab.oldName());
|
||||
delete that.roleTabObjects[role_id];
|
||||
@ -402,9 +333,9 @@ define(function(require) {
|
||||
}
|
||||
|
||||
function _redo_service_vmgroup_selector_role(dialog, role_section){
|
||||
$('#roles_tabs_content .role_content', dialog).each(function(){
|
||||
$("#roles_tabs_content .role_content", dialog).each(function(){
|
||||
var role_section = this;
|
||||
var role_tab_id = $(role_section).attr('id');
|
||||
var role_tab_id = $(role_section).attr("id");
|
||||
});
|
||||
}
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user