added onchange to set expire date based on profile group selected
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 18 Feb 2009 04:49:20 +0000 (04:49 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 18 Feb 2009 04:49:20 +0000 (04:49 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@12214 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/js/ui/default/actor/user/register.js

index ccd6e61..6cff108 100644 (file)
@@ -8,6 +8,7 @@ dojo.require('openils.widget.AutoGrid');
 dojo.require('openils.widget.AutoFieldWidget');
 dojo.require('dijit.form.CheckBox');
 dojo.require('dijit.form.Button');
+dojo.require('dojo.date');
 
 var pcrud;
 var fmClasses = ['au', 'ac', 'aua', 'actsc', 'asv', 'asvq', 'asva'];
@@ -179,9 +180,36 @@ function fleshFMRow(row, fmcls, args) {
     widget._fmfield = fmfield;
     widget._addr = args.addr;
     widgetPile.push(widget);
+    attachEvents(fmcls, fmfield, widget);
     return widget;
 }
 
+function attachEvents(fmcls, fmfield, widget) {
+    if(fmcls == 'au') {
+        switch(fmfield) {
+
+            case 'profile': // when the profile changes, update the expire date
+                dojo.connect(widget.widget, 'onChange', 
+                    function() {
+
+                        var expireWidget = widgetPile.filter(
+                            function(i){return (i._fmfield == 'expire_date')})[0];
+                        var self = this;
+
+                        function found(items) {
+                            if(items.length == 0) return;
+                            var item = items[0];
+                            var interval = self.store.getValue(item, 'perm_interval');
+                            expireWidget.widget.attr('value', 
+                                dojo.date.add(new Date(), 'second', openils.Util.intervalToSeconds(interval)));
+                        }
+                        this.store.fetch({onComplete:found, query:{id:this.attr('value')}});
+                    }
+                );
+        }
+    }
+}
+
 function getByName(node, name) {
     return dojo.query('[name='+name+']', node)[0];
 }