/*jsl:import ipa.js */ /* Authors: * Endi Sukma Dewata * * Copyright (C) 2010 Red Hat * see file 'COPYING' for use and warranty information * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /* REQUIRES: widget.js */ /** * This is a base class for dialog boxes. */ IPA.dialog = function(spec) { spec = spec || {}; var that = {}; that.name = spec.name; that.title = spec.title; that.template = spec.template; that._entity_name = spec.entity_name; that.width = spec.width || '400px'; that.buttons = {}; that.fields = []; that.fields_by_name = {}; that.sections = []; that.__defineGetter__("entity_name", function(){ return that._entity_name; }); that.__defineSetter__("entity_name", function(entity_name){ that._entity_name = entity_name; for (var i=0; i').appendTo(that.container); for (var i=0; i').appendTo(table); var td = $('', { style: 'vertical-align: top;', title: field.label }).appendTo(tr); td.append(field.label+': '); td = $('', { style: 'vertical-align: top;' }).appendTo(tr); var span = $('', { 'name': field.name }).appendTo(td); field.create(span); } for (var j=0; j', { name: section.name, 'class': 'details-section' }).appendTo(that.container); section.create(div); } }; /** * Setup behavior */ that.setup = function() { for (var i=0; i').appendTo(container); if (that.template) { var template = IPA.get_template(that.template); that.container.load( template, function(data, text_status, xhr) { that.setup(); that.container.dialog({ 'title': that.title, 'modal': true, 'width': that.width, 'height': that.height, 'buttons': that.buttons, close: function(event, ui) { that.close(); } }); } ); } else { that.create(); that.setup(); that.container.dialog({ 'title': that.title, 'modal': true, 'width': that.width, 'height': that.height, 'buttons': that.buttons, close: function(event, ui) { that.close(); } }); } }; that.option = function(name, value) { that.container.dialog('option', name, value); }; that.save = function(record) { for (var i=0; i', { 'class': 'adder-dialog-filter' }).appendTo(that.container); $('', { type: 'text', name: 'filter', style: 'width: 244px' }).appendTo(search_panel); search_panel.append(' '); $('', { type: 'button', name: 'find', value: 'Find' }).appendTo(search_panel); $('', { type: 'checkbox', name: 'hidememb', id: 'hidememb', checked: 'checked', style: 'margin-left: 5px; vertical-align: middle' }).appendTo(search_panel); var label = $('