// Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. (function($, cloudStack, _l) { cloudStack.dialog = { /** * Error message form * * Returns callback, that can be plugged into a standard data provider response */ error: function(callback) { return function(args) { var message = args.message ? args.message : args; if (message) cloudStack.dialog.notice({ message: message }); if (callback) callback(); }; }, /** * Dialog with form */ createForm: function(args) { var cancel = args.cancel; var $formContainer = $('
').addClass('form-container'); var $form = $('
').appendTo($formContainer) .submit(function() { $(this).closest('.ui-dialog').find('button.ok').click(); return false; }); var createLabel = _l(args.form.createLabel); // Description text var formDesc; if (typeof(args.form.desc) == 'function') { formDesc = args.form.desc(args); } else { //typeof(args.form.desc) == 'string' or 'undefined' formDesc = args.form.desc; } $('').addClass('message').prependTo($formContainer).html( _l(formDesc) ); // Submit button $('') .attr({ type: 'submit' }) .hide() .appendTo($form); // Render fields and events var fields = $.map(args.form.fields, function(value, key) { return key; }); $(window).trigger('cloudStack.createForm.makeFields', { $form: $form, fields: args.form.fields }); var ret = function() { $('.overlay').remove(); return $formContainer.dialog({ dialogClass: args.form.isWarning ? 'create-form warning' : '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 }); } $(window).trigger('cloudStack.createForm.open', { $form: $form }); }, 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(); if (cancel) { cancel(); } } }] }).closest('.ui-dialog').overlay(); }; var isLastAsync = function(idx) { for (var i = idx + 1; i < $(fields).length; i++) { var f = args.form.fields[$(fields).get(i)]; if (f.select || f.dynamic) { return false; } } return true; }; var isAsync = false; var isNoDialog = args.noDialog ? args.noDialog : false; $(fields).each(function(idx, element) { var key = this; var field = args.form.fields[key]; var $formItem = $('
') .addClass('form-item') .attr({ rel: key }); if (field.isHidden != null) { if (typeof(field.isHidden) == 'boolean' && field.isHidden == true) $formItem.hide(); else if (typeof(field.isHidden) == 'function' && field.isHidden(args) == true) $formItem.hide(); } $formItem.appendTo($form); //Handling Escape KeyPress events /* $('.ui-dialog').keypress(function(event) { if ( event.which == 27 ) { event.stopPropagation(); } }); $(document).ready(function(){ $('.ui-dialog').keydown(function(event) { if(event.keyCode == 27) { alert("you pressed the Escape key"); event.preventdefault(); } }) }); $(':ui-dialog').dialog({ closeOnEscape: false }); */ // Label field var $name = $('
').addClass('name') .appendTo($formItem) .append( $('