').addClass('range-item'));
- $input.addClass("disallowSpecialCharacters");
-
- } else { //text field
- $input = $('
').attr({
- name: key,
- type: field.password || field.isPassword ? 'password' : 'text'
- }).appendTo($value);
+ } else if(field.range) {//2 text fields on the same line (e.g. port range: startPort - endPort)
+ $input = $.merge(
+ // Range start
+ $('
').attr({
+ type: 'text',
+ name: field.range[0]
+ }),
- if (field.defaultValue) {
- $input.val(field.defaultValue);
- }
- if (field.id) {
- $input.attr('id', field.id);
- }
+ // Range end
+ $('
').attr({
+ type: 'text',
+ name: field.range[1]
+ })
+ ).appendTo(
+ $('
').addClass('range-edit').appendTo($value)
+ );
+ $input.wrap($('
').addClass('range-item'));
+ $input.addClass("disallowSpecialCharacters");
+
+ } else { //text field
+ $input = $('').attr({
+ name: key,
+ type: field.password || field.isPassword ? 'password' : 'text'
+ }).appendTo($value);
+
+ if (field.defaultValue) {
+ $input.val(field.defaultValue);
+ }
+ if (field.id) {
+ $input.attr('id', field.id);
+ }
$input.addClass("disallowSpecialCharacters");
}
- if(field.validation != null)
+ if(field.validation != null)
$input.data('validation-rules', field.validation);
- else
+ else
$input.data('validation-rules', {});
var fieldLabel = field.label;
+
var inputId = $input.attr('id') ? $input.attr('id') : fieldLabel.replace(/\./g,'_');
-
+
$input.attr('id', inputId);
$name.find('label').attr('for', inputId);
@@ -380,29 +449,32 @@
attachTo: '.form-item'
});
}
+
+
/* $input.blur(function() {
console.log('tooltip remove->' + $input.attr('name'));
});*/
});
-
+
+
var getFormValues = function() {
var formValues = {};
$.each(args.form.fields, function(key) {});
};
- // Setup form validation
+ // Setup form validation
$formContainer.find('form').validate();
- $formContainer.find('input, select').each(function() {
+ $formContainer.find('input, select').each(function() {
if ($(this).data('validation-rules')) {
$(this).rules('add', $(this).data('validation-rules'));
}
- else {
- $(this).rules('add', {});
- }
- });
- $form.find('select').trigger('change');
-
-
+ else {
+ $(this).rules('add', {});
+ }
+ });
+ $form.find('select').trigger('change');
+
+
var complete = function($formContainer) {
var $form = $formContainer.find('form');
var data = cloudStack.serializeForm($form);
@@ -429,93 +501,48 @@
$formContainer: $formContainer,
completeAction: complete
};
+ } else if (!isAsync) {
+ return ret();
}
-
- return $formContainer.dialog({
- dialogClass: 'create-form',
- closeOnEscape: false,
- draggable: false,
- width: 400,
- title: _l(args.form.title),
- open: function() {
- if (args.form.preFilter) {
- args.form.preFilter({ $form: $form, context: args.context });
- }
- },
- buttons: [
- {
- text: createLabel ? createLabel : _l('label.ok'),
- 'class': 'ok',
- click: function() {
- if (!complete($formContainer)) { return false; }
-
- $('div.overlay').remove();
- $('.tooltip-box').remove();
- $formContainer.remove();
- $(this).dialog('destroy');
-
- $('.hovered-elem').hide();
-
- return true;
- }
- },
- {
- text: _l('label.cancel'),
- 'class': 'cancel',
- click: function() {
- $('div.overlay').remove();
- $('.tooltip-box').remove();
- $formContainer.remove();
- $(this).dialog('destroy');
-
- $('.hovered-elem').hide();
- }
- }
- ]
- }).closest('.ui-dialog').overlay();
},
- /**
+ /**
* to change a property(e.g. validation) of a createForm field after a createForm is rendered
*/
- createFormField: {
- validation: {
- required: {
- add: function($formField) {
- var $input = $formField.find('input, select');
- var validationRules = $input.data('validation-rules');
-
- if(validationRules == null || validationRules.required == null || validationRules.required == false) {
- $formField.find('.name').find('label').find('span.field-required').css('display', 'inline'); //show red asterisk
-
- if(validationRules == null)
- validationRules = {};
- validationRules.required = true;
- $input.data('validation-rules', validationRules);
-
- $input.rules('add', { required: true });
- }
-
- },
- remove: function($formField) {
+ createFormField: {
+ validation: {
+ required: {
+ add: function($formField) {
var $input = $formField.find('input, select');
- var validationRules = $input.data('validation-rules');
-
- if(validationRules != null && validationRules.required != null && validationRules.required == true) {
- $formField.find('.name').find('label').find('span.field-required').hide(); //hide red asterisk
-
- delete validationRules.required;
- $input.data('validation-rules', validationRules);
+ var validationRules = $input.data('validation-rules');
+
+ if(validationRules == null || validationRules.required == null || validationRules.required == false) {
+ $formField.find('.name').find('label').find('span.field-required').css('display', 'inline'); //show red asterisk
+
+ if(validationRules == null)
+ validationRules = {};
+ validationRules.required = true;
+ $input.data('validation-rules', validationRules);
+ $input.rules('add', { required: true });
+ }
+ },
+ remove: function($formField) {
+ var $input = $formField.find('input, select');
+ var validationRules = $input.data('validation-rules');
+
+ if(validationRules != null && validationRules.required != null && validationRules.required == true) {
+ $formField.find('.name').find('label').find('span.field-required').hide(); //hide red asterisk
+ delete validationRules.required;
+ $input.data('validation-rules', validationRules);
+
+ $input.rules('remove', 'required');
+ $formField.find('.value').find('label.error').hide();
+ }
+ }
+ }
+ }
+ },
- $input.rules('remove', 'required');
-
- $formField.find('.value').find('label.error').hide();
- }
- }
- }
- }
- },
-
/**
* Confirmation dialog
*/