mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-20 10:50:08 +03:00
Feature #3748: Oneflow service scale dialog
This commit is contained in:
parent
64248d53e8
commit
c46fcc0283
@ -1,6 +1,7 @@
|
||||
define(function(require) {
|
||||
var OpenNebulaAction = require('./action');
|
||||
var OpenNebulaError = require('./error');
|
||||
var OpenNebulaHelper = require('./helper');
|
||||
var Locale = require('utils/locale');
|
||||
|
||||
var RESOURCE = "DOCUMENT";
|
||||
@ -165,7 +166,7 @@ define(function(require) {
|
||||
PATH);
|
||||
},
|
||||
"update" : function(params) {
|
||||
var request = OpenNebula.Helper.request(RESOURCE, "update", params.data.id);
|
||||
var request = OpenNebulaHelper.request(RESOURCE, "update", params.data.id);
|
||||
|
||||
$.ajax({
|
||||
url: PATH + "/" + params.data.id,
|
||||
|
@ -9,6 +9,7 @@ define(function(require) {
|
||||
var RESOURCE = "Service";
|
||||
|
||||
var _dialogs = [
|
||||
require('./oneflow-services-tab/dialogs/scale'),
|
||||
];
|
||||
|
||||
var _panels = [
|
||||
|
@ -12,6 +12,7 @@ define(function(require) {
|
||||
var RESOURCE = "Service";
|
||||
|
||||
var ROLES_PANEL_ID = require('./panels/roles/panelId');
|
||||
var SCALE_DIALOG_ID = require('./dialogs/scale/dialogId');
|
||||
|
||||
var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID);
|
||||
|
||||
@ -85,21 +86,32 @@ define(function(require) {
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
/* TODO
|
||||
"Role.update_dialog" : {
|
||||
"Role.scale_dialog" : {
|
||||
type: "custom",
|
||||
call: popUpScaleDialog
|
||||
call: function(){
|
||||
selected = roleElements();
|
||||
|
||||
if(selected.lenght == 0){
|
||||
return;
|
||||
}
|
||||
|
||||
Sunstone.getDialog(SCALE_DIALOG_ID).setParams({roleIds: selected});
|
||||
Sunstone.getDialog(SCALE_DIALOG_ID).reset();
|
||||
Sunstone.getDialog(SCALE_DIALOG_ID).show();
|
||||
}
|
||||
},
|
||||
|
||||
"Role.update" : {
|
||||
type: "multiple",
|
||||
call: OpenNebulaRole.update,
|
||||
callback: roleCallback,
|
||||
callback: function() {
|
||||
Sunstone.getDialog(SCALE_DIALOG_ID).hide();
|
||||
roleCallback();
|
||||
},
|
||||
elements: roleElements,
|
||||
error: Notifier.onError,
|
||||
notify: true
|
||||
},
|
||||
*/
|
||||
|
||||
"Role.hold" : {
|
||||
type: "multiple",
|
||||
|
@ -0,0 +1,98 @@
|
||||
define(function(require) {
|
||||
/*
|
||||
DEPENDENCIES
|
||||
*/
|
||||
|
||||
var BaseDialog = require('utils/dialogs/dialog');
|
||||
var TemplateHTML = require('hbs!./scale/html');
|
||||
var Sunstone = require('sunstone');
|
||||
var Notifier = require('utils/notifier');
|
||||
var Locale = require('utils/locale');
|
||||
var Tips = require('utils/tips');
|
||||
|
||||
/*
|
||||
CONSTANTS
|
||||
*/
|
||||
|
||||
var DIALOG_ID = require('./scale/dialogId');
|
||||
var TAB_ID = require('../tabId');
|
||||
|
||||
/*
|
||||
CONSTRUCTOR
|
||||
*/
|
||||
|
||||
function Dialog() {
|
||||
this.dialogId = DIALOG_ID;
|
||||
|
||||
BaseDialog.call(this);
|
||||
}
|
||||
|
||||
Dialog.DIALOG_ID = DIALOG_ID;
|
||||
Dialog.prototype = Object.create(BaseDialog.prototype);
|
||||
Dialog.prototype.constructor = Dialog;
|
||||
Dialog.prototype.html = _html;
|
||||
Dialog.prototype.onShow = _onShow;
|
||||
Dialog.prototype.setup = _setup;
|
||||
Dialog.prototype.setParams = _setParams;
|
||||
|
||||
return Dialog;
|
||||
|
||||
/*
|
||||
FUNCTION DEFINITIONS
|
||||
*/
|
||||
|
||||
function _html() {
|
||||
return TemplateHTML({
|
||||
'dialogId': this.dialogId
|
||||
});
|
||||
}
|
||||
|
||||
function _onShow(context) {
|
||||
}
|
||||
|
||||
function _setup(context) {
|
||||
var that = this;
|
||||
|
||||
context.off('invalid.fndtn.abide', '#' + DIALOG_ID + 'Form');
|
||||
context.off('valid.fndtn.abide', '#' + DIALOG_ID + 'Form');
|
||||
|
||||
context.on('invalid.fndtn.abide', '#' + DIALOG_ID + 'Form', function(e) {
|
||||
// Fix for valid event firing twice
|
||||
if (e.namespace != 'abide.fndtn') { return; }
|
||||
|
||||
Notifier.notifyError(Locale.tr("One or more required fields are missing or malformed."));
|
||||
}).on('valid.fndtn.abide', '#' + DIALOG_ID + 'Form', function(e) {
|
||||
// Fix for valid event firing twice
|
||||
if (e.namespace != 'abide.fndtn') { return; }
|
||||
|
||||
|
||||
var force = false;
|
||||
if ($("#force", context).is(":checked")) {
|
||||
force = true;
|
||||
}
|
||||
|
||||
var obj = {
|
||||
"force": force,
|
||||
"cardinality": $("#cardinality", context).val(),
|
||||
};
|
||||
|
||||
Sunstone.runAction('Role.update', that.roleIds, obj);
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
context.foundation('reflow', 'abide');
|
||||
|
||||
Tips.setup(context);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {object} params
|
||||
* - params.roleIds : Array of selected role IDs
|
||||
*/
|
||||
function _setParams(params) {
|
||||
this.roleIds = params.roleIds;
|
||||
}
|
||||
});
|
@ -0,0 +1,3 @@
|
||||
define(function(require){
|
||||
return 'scaleServiceRoleDialog';
|
||||
});
|
@ -0,0 +1,29 @@
|
||||
<div id="{{dialogId}}" class="reveal-modal" role="dialog" data-reveal >
|
||||
<div class="row">
|
||||
<h3 class="subheader">{{tr "Scale"}}</h3>
|
||||
</div>
|
||||
<form data-abide="ajax" id="{{dialogId}}Form">
|
||||
<div class="row">
|
||||
<div class="large-12 columns">
|
||||
<label for="cardinality">{{tr "Cardinality"}}
|
||||
<span class="tip">{{tr "Number of VMs to instantiate with this role"}}</span>
|
||||
</label>
|
||||
<input type="text" name="cardinality" id="cardinality"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="large-12 columns">
|
||||
<input type="checkbox" name="force" id="force"/>
|
||||
<label class="inline" for="force">{{tr "Force"}}
|
||||
<span class="tip">{{tr "Force the new cardinality even if it is outside the limits"}}</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form_buttons row">
|
||||
<button type="submit" class="button radius right">
|
||||
{{tr "Scale"}}
|
||||
</button>
|
||||
</div>
|
||||
<a class="close-reveal-modal">×</a>
|
||||
</form>
|
||||
</div>
|
@ -2,10 +2,9 @@ define(function(require) {
|
||||
var Locale = require('utils/locale');
|
||||
|
||||
var Buttons = {
|
||||
"Role.update_dialog" : {
|
||||
"Role.scale_dialog" : {
|
||||
type: "action",
|
||||
text: Locale.tr("Scale"),
|
||||
tip: Locale.tr("This will hold selected pending VMs from being deployed"),
|
||||
layout: "create"
|
||||
},
|
||||
"Role.hold" : {
|
||||
|
Loading…
x
Reference in New Issue
Block a user