dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #19855
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 8834: Added util script for binding callback functions to a key. Used it in caseentry to allow custom v...
------------------------------------------------------------
revno: 8834
committer: Lars Helge Øverland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Fri 2012-11-02 10:39:19 +0300
message:
Added util script for binding callback functions to a key. Used it in caseentry to allow custom validation scripts to run in custom data entry forms.
added:
dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.trigger.js
modified:
dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/entry.js
dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/main.vm
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/entry.js'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/entry.js 2012-11-01 10:00:52 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/entry.js 2012-11-02 07:39:19 +0000
@@ -81,8 +81,6 @@
}
var valueSaver = new ValueSaver( dataElementId, fieldValue, type, SUCCESS_COLOR );
valueSaver.save();
-
- jQuery( "body" ).trigger( "event-value-saved", [ dataElementId, fieldValue ] ); // Hook
}
function saveOpt( dataElementId )
@@ -595,7 +593,6 @@
});
}
-
function autocompletedField( idField )
{
var input = jQuery( "#" + idField );
@@ -620,9 +617,17 @@
},
minLength: 0,
select: function( event, ui ) {
- input.val(ui.item.value);
- if(!unSave)
+ var fieldValue = ui.item.value;
+
+ if ( !dhis2.trigger.invoke( "caseentry-value-selected", [dataElementId, fieldValue] ) ) {
+ input.val( "" );
+ return false;
+ }
+
+ input.val( fieldValue );
+ if ( !unSave ) {
saveVal( dataElementId );
+ }
input.autocomplete( "close" );
},
change: function( event, ui ) {
=== added file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.trigger.js'
--- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.trigger.js 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.trigger.js 2012-11-02 07:39:19 +0000
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2004-2012, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * * Neither the name of the HISP project nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+dhis2.util.namespace( 'dhis2.trigger.funcs' );
+
+/**
+ * Binds a function to be invoked for a given key. Any number of functions can
+ * be set for a key. A function should return true or false.
+ */
+dhis2.trigger.bind = function( key, func )
+{
+ var funcs = dhis2.trigger.funcs[key] || [];
+ funcs.push( func );
+ dhis2.trigger.funcs[key] = funcs;
+}
+
+/**
+ * Invokes functions bound to the given key. A function can short-circuit the
+ * invocations by returning false.
+ */
+dhis2.trigger.invoke = function( key, args )
+{
+ var funcs = dhis2.trigger.funcs[key];
+ var result = true;
+
+ if ( funcs !== undefined )
+ {
+ $.each( funcs, function( index, func )
+ {
+ if ( $.isFunction( func ) )
+ {
+ result = func( args );
+
+ if ( result === false )
+ {
+ return false; // Break loop
+ }
+ }
+ } );
+ }
+
+ return result;
+}
=== modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/main.vm'
--- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/main.vm 2012-10-21 12:56:21 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/main.vm 2012-11-02 07:39:19 +0000
@@ -43,6 +43,7 @@
<script type="text/javascript" src="../dhis-web-commons/javascripts/dhis2/dhis2.select.js"></script>
<script type="text/javascript" src="../dhis-web-commons/javascripts/dhis2/dhis2.comparator.js"></script>
<script type="text/javascript" src="../dhis-web-commons/javascripts/dhis2/dhis2.availability.js"></script>
+ <script type="text/javascript" src="../dhis-web-commons/javascripts/dhis2/dhis2.trigger.js"></script>
<script type="text/javascript" src="../dhis-web-commons/i18nJavaScript.action"></script>
<script type="text/javascript" src="../main.js"></script>
<script type="text/javascript" src="../request.js"></script>