From 49584d6efc6a10fa0b76ce81b2638d424f2208a8 Mon Sep 17 00:00:00 2001 From: Adam Young Date: Mon, 23 Aug 2010 22:32:23 -0400 Subject: hashchange We now catch the hashchange event and use that to drive most of the site. To trigger page transitions, modify location.hash. Params start with # not ?. Removed user-group.inc. converted tabs to spaces trivial imlementation of add and details for netgroup and hostgroup lots of bug fixes based on routing problems and the refactorings. --- install/static/add.js | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 install/static/add.js (limited to 'install/static/add.js') diff --git a/install/static/add.js b/install/static/add.js new file mode 100644 index 00000000..4af6a8e7 --- /dev/null +++ b/install/static/add.js @@ -0,0 +1,110 @@ +/* Authors: + * Adam Young + * + * 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; version 2 only + * + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* IPA Object Add - creating new instances of entities */ + +/* REQUIRES: ipa.js */ + +/* + * An associatev array between entity names and their builders + */ +var builders = {} ; + + +function add_fail(desc){ + alert(desc); +} + + +//Process for managing the 'add' functionality +function EntityBuilder(obj,addProperties,addOptionsFunction ){ + this.obj = obj; + this.addProperties = addProperties; + if (addOptionsFunction){ + this.addOptionsFunction = addOptionsFunction; + }else{ + this.addOptionsFunction = function(){ + var options = { }; + return options; + } + } + + this.add = function(on_success){ + var options = this.addOptionsFunction(); + var params = [$("#pkey").val()]; + ipa_cmd( 'add', params, options, on_success, add_fail, this.obj ); + } + + this.setup = function(){ + showContent(); + $("

" ,{ html : "Add new " + this.obj } ).appendTo("#content"); + $("
") + .appendTo("#content"); + var label =$("Add and ").appendTo("#addForm") + $("", + {id:'addEdit', + type:'button', + value:'Edit', + click: function(){ + var params = ipa_parse_qs(); + builders[params["tab"]].add (addEdit) + } + }).appendTo(label); + $("", { + id:'addAnother', + type:'button', + value:'Add Another', + click: function(){ + var params = ipa_parse_qs(); + builders[params["tab"]].add (addAnother) + } + }).appendTo(label); + $("
").appendTo("#addForm"); + + for (index = 0; index < this.addProperties.length; index++){ + var prop = this.addProperties[index]; + var title = $("
",{html:prop.title}); + var definition = $("
"); + $("",{ + id:prop.id, + type:prop.type + }).appendTo(definition); + definition.appendTo(title); + title.appendTo("#addProperties"); + } + } + //register the new object with the associatev array of builders. + builders[obj] = this; +} + + +function addAnother(response){ + var params = ipa_parse_qs(); + builders[params["tab"]].setup(); +} + +function addEdit(response){ + var params = ipa_parse_qs(); + var hash= "tab=" + + params["tab"] + +"&facet=details&pkey=" + +$("#pkey").val(); + window.location.hash = hash; +} \ No newline at end of file -- cgit