diff options
author | Adam Young <ayoung@redhat.com> | 2011-01-19 12:26:14 -0500 |
---|---|---|
committer | Endi Sukma Dewata <edewata@people01.fedoraproject.org> | 2011-01-20 14:12:47 +0000 |
commit | b9ad279ad2d8d93dd501115a028783cf8fe7fcbd (patch) | |
tree | 3c3bd271231ff635278b1cf88bfbd79d792de23d /install/ui/add.js | |
parent | 835436df1549578932705f5722bc78ec985c2f69 (diff) | |
download | freeipa-b9ad279ad2d8d93dd501115a028783cf8fe7fcbd.tar.gz freeipa-b9ad279ad2d8d93dd501115a028783cf8fe7fcbd.tar.xz freeipa-b9ad279ad2d8d93dd501115a028783cf8fe7fcbd.zip |
rename static to ui
Directory rename
Diffstat (limited to 'install/ui/add.js')
-rw-r--r-- | install/ui/add.js | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/install/ui/add.js b/install/ui/add.js new file mode 100644 index 000000000..69b1108c3 --- /dev/null +++ b/install/ui/add.js @@ -0,0 +1,122 @@ +/*jsl:import ipa.js */ + +/* Authors: + * Pavel Zuna <pzuna@redhat.com> + * Endi Sukma Dewata <edewata@redhat.com> + * + * 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 <http://www.gnu.org/licenses/>. +*/ + +/* REQUIRES: ipa.js */ + +IPA.add_dialog = function (spec) { + + spec = spec || {}; + + var that = IPA.dialog(spec); + + that.name = spec.name; + that.title = spec.title; + that._entity_name = spec.entity_name; + + that.init = function() { + + that.add_button('Add', function() { + var record = that.get_record(); + that.add( + record, + function() { + var entity = IPA.get_entity(that.entity_name); + var facet = entity.get_facet('search'); + var table = facet.table; + table.refresh(); + that.close(); + } + ); + }); + + + that.add_button('Add and Add Another', function() { + var record = that.get_record(); + that.add( + record, + function() { + var entity = IPA.get_entity(that.entity_name); + var facet = entity.get_facet('search'); + var table = facet.table; + table.refresh(); + that.reset(); + } + ); + }); + + that.add_button('Add and Edit', function() { + var record = that.get_record(); + that.add( + record, + function() { + that.close(); + + var pkey_name = IPA.metadata[that.entity_name].primary_key; + var pkey = record[pkey_name]; + + var state = {}; + state[that.entity_name + '-facet'] = 'details'; + state[that.entity_name + '-pkey'] = pkey; + $.bbq.pushState(state); + } + ); + }); + + that.add_button('Cancel', function() { + that.close(); + }); + + that.dialog_init(); + }; + + that.add = function(record, on_success, on_error) { + + var pkey_name = IPA.metadata[that.entity_name].primary_key; + + var command = IPA.command({ + method: that.entity_name+'_add', + on_success: on_success, + on_error: on_error + }); + + for (var i=0; i<that.fields.length; i++) { + var field = that.fields[i]; + + var value = record[field.name]; + if (!value) continue; + + if (field.name == pkey_name) { + command.add_arg(value); + } else { + command.set_option(field.name, value); + } + } + + command.execute(); + }; + + that.add_dialog_init = that.init; + + return that; +}; + |