From: erickson Date: Tue, 31 Aug 2010 19:49:03 +0000 (+0000) Subject: distribution formula config UI repairs/enhancements X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=0991f58a4dc3e50c7ead6f11243bbc503c22c955;p=contrib%2FConifer.git distribution formula config UI repairs/enhancements added distribution formula cloning added ability to change distrib formula name from formula detail page plugged some i18n holes using local copy of dimple grippy icons in distrib formula UI added local copy of dimple.png w/ new license file indicating image origin/license. git-svn-id: svn://svn.open-ils.org/ILS/trunk@17413 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Acq/Order.pm b/Open-ILS/src/perlmods/OpenILS/Application/Acq/Order.pm index 044e5d166a..a99ac82828 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Acq/Order.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Acq/Order.pm @@ -3124,4 +3124,48 @@ sub fetch_and_check_li { } +__PACKAGE__->register_method( + method => "clone_distrib_form", + api_name => "open-ils.acq.distribution_formula.clone", + stream => 1, + signature => { + desc => q/Clone a distribution formula/, + params => [ + {desc => "Authentication token", type => "string"}, + {desc => "Original formula ID", type => 'integer'}, + {desc => "Name of new formula", type => 'string'}, + ], + return => {desc => "ID of newly created formula"} + } +); + +sub clone_distrib_form { + my($self, $client, $auth, $form_id, $new_name) = @_; + + my $e = new_editor("xact"=> 1, "authtoken" => $auth); + return $e->die_event unless $e->checkauth; + + my $old_form = $e->retrieve_acq_distribution_formula($form_id) or return $e->die_event; + return $e->die_event unless $e->allowed('ADMIN_ACQ_DISTRIB_FORMULA', $old_form->owner); + + my $new_form = Fieldmapper::acq::distribution_formula->new; + + $new_form->owner($old_form->owner); + $new_form->name($new_name); + $e->create_acq_distribution_formula($new_form) or return $e->die_event; + + my $entries = $e->search_acq_distribution_formula_entry({formula => $form_id}); + for my $entry (@$entries) { + my $new_entry = Fieldmapper::acq::distribution_formula_entry->new; + $new_entry->$_($entry->$_()) for $entry->real_fields; + $new_entry->formula($new_form->id); + $new_entry->clear_id; + $e->create_acq_distribution_formula_entry($new_entry) or return $e->die_event; + } + + $e->commit; + return $new_form->id; +} + 1; + diff --git a/Open-ILS/web/images/dimple.png b/Open-ILS/web/images/dimple.png new file mode 100644 index 0000000000..4d0b91bfea Binary files /dev/null and b/Open-ILS/web/images/dimple.png differ diff --git a/Open-ILS/web/images/licenses.txt b/Open-ILS/web/images/licenses.txt new file mode 100644 index 0000000000..3392eb524c --- /dev/null +++ b/Open-ILS/web/images/licenses.txt @@ -0,0 +1,3 @@ +dimple.png derived from: +http://mxr.mozilla.org/mozilla-central/source/toolkit/themes/pinstripe/global/splitter/dimple.png +Mozilla Public License/GPL/GLPL diff --git a/Open-ILS/web/js/dojo/openils/conify/nls/conify.js b/Open-ILS/web/js/dojo/openils/conify/nls/conify.js index eea305da1e..363d21dbdf 100644 --- a/Open-ILS/web/js/dojo/openils/conify/nls/conify.js +++ b/Open-ILS/web/js/dojo/openils/conify/nls/conify.js @@ -85,6 +85,8 @@ "SURVEY_QUESTION": "Question:", "SURVEY_ID": "Survey ID # ${0}", "SURVEY_FOOT_LABEL": "Questions & Answers", - "EVENT_DEF_LABEL" : "${0}: ${1}" + "EVENT_DEF_LABEL" : "${0}: ${1}", + "ACQ_DISTRIB_FORMULA_NAME_PROMPT" : "Enter new formula name", + "ACQ_DISTRIB_FORMULA_NAME_CLONE" : "${0} (Clone)" } diff --git a/Open-ILS/web/js/ui/default/conify/global/acq/distribution_formula.js b/Open-ILS/web/js/ui/default/conify/global/acq/distribution_formula.js index 130bcc9226..b992d26006 100644 --- a/Open-ILS/web/js/ui/default/conify/global/acq/distribution_formula.js +++ b/Open-ILS/web/js/ui/default/conify/global/acq/distribution_formula.js @@ -4,6 +4,9 @@ dojo.require('openils.widget.AutoGrid'); dojo.require('dijit.form.FilteringSelect'); dojo.require('openils.PermaCrud'); dojo.require('openils.widget.AutoFieldWidget'); +dojo.requireLocalization('openils.conify', 'conify'); +var localeStrings = dojo.i18n.getLocalization('openils.conify', 'conify'); + var formCache = []; var formula, entryTbody, entryTemplate, dndSource; @@ -42,6 +45,29 @@ function draw() { } } + +function cloneSelectedFormula() { + var item = fListGrid.getSelectedItems()[0]; + if(!item) return; + var formula = new fieldmapper.acqf().fromStoreItem(item); + fieldmapper.standardRequest( + ['open-ils.acq', 'open-ils.acq.distribution_formula.clone'], + { + asnyc : true, + params : [ + openils.User.authtoken, + formula.id(), + dojo.string.substitute(localeStrings.ACQ_DISTRIB_FORMULA_NAME_CLONE, [formula.name()]) + ], + oncomplete : function(r) { + if(r = openils.Util.readResponse(r)) { + location.href = oilsBasePath + '/conify/global/acq/distribution_formula/' + r; + } + } + } + ); +} + openils.Util.addOnLoad(draw); function getItemCount(rowIndex, item) { @@ -65,6 +91,16 @@ function drawFormulaSummary() { formula.entries(entries); dojo.byId('formula_head').innerHTML = formula.name(); + dojo.byId('formula_head').onclick = function() { + var name = prompt(localeStrings.ACQ_DISTRIB_FORMULA_NAME_PROMPT, formula.name()); + if(name && name != formula.name()) { + formula.name(name); + pcrud = new openils.PermaCrud(); + pcrud.update(formula); + dojo.byId('formula_head').innerHTML = name; + } + } + dojo.forEach(entries, function(entry) { addEntry(entry); } ); } diff --git a/Open-ILS/web/templates/default/conify/global/acq/distribution_formula.tt2 b/Open-ILS/web/templates/default/conify/global/acq/distribution_formula.tt2 index 2f900f2db4..94a7e2ec3d 100644 --- a/Open-ILS/web/templates/default/conify/global/acq/distribution_formula.tt2 +++ b/Open-ILS/web/templates/default/conify/global/acq/distribution_formula.tt2 @@ -1,22 +1,23 @@ [% WRAPPER default/base.tt2 %] [% ctx.page_title = 'Distribution Formulas' %] - @@ -27,6 +28,7 @@ function formatName(value) {
+
-
+
@@ -78,20 +80,19 @@ function formatName(value) {
- - - - + + +
- -
-
- - - +
+
+ + + +
[% END %]