[% IF field == 'alert_message' %]
<textarea ng-change="field_modified()"
+ ng-blur="handle_field_changed(patron, '[% field %]')"
class="form-control" ng-model="[% model %]"/>
[% ELSIF field == 'post_code' %]
<input type="text" ng-change="field_modified()"
- ng-blur="post_code_changed(patron.[% path %])"
+ ng-blur="handle_field_changed(patron.[% path %], 'post_code')"
class="form-control" ng-model="[% model %]"/>
[% ELSIF field == 'barcode' %]
<input type="text"
focus-me="focus_bc"
ng-change="field_modified()"
ng-disabled="disable_bc"
- ng-blur="barcode_changed(patron.card.barcode)"
+ ng-blur="handle_field_changed(patron.card, 'barcode')"
class="form-control" ng-model="[% model %]"/>
[% ELSIF field == 'usrname' %]
<input type="text"
focus-me="focus_usrname"
ng-change="field_modified()"
- ng-blur="usrname_changed(patron.usrname)"
+ ng-blur="handle_field_changed(patron, '[% field %]')"
class="form-control" ng-model="[% model %]"/>
[% ELSIF field == 'day_phone' %]
<input type="text"
- ng-blur="day_phone_changed(patron.day_phone)"
+ ng-blur="handle_field_changed(patron, 'day_phone')"
ng-change="field_modified()"
class="form-control" ng-model="[% model %]"/>
[% ELSIF field.match('phone') %]
<input type="text"
ng-change="field_modified()"
- ng-blur="dupe_value_changed('phone', patron.[% field %])"
+ ng-blur="handle_field_changed(patron, '[% field %]')"
class="form-control" ng-model="[% model %]"/>
[% ELSIF field.match('ident_value') %]
<input type="text"
ng-change="field_modified()"
- ng-blur="dupe_value_changed('ident', patron.[% field %])"
+ ng-blur="handle_field_changed(patron, '[% field %]')"
class="form-control" ng-model="[% model %]"/>
[% ELSIF field == 'first_given_name' OR field == 'family_name' %]
<input type="text"
ng-change="field_modified()"
- ng-blur="dupe_value_changed('name', patron.[% field %])"
+ ng-blur="handle_field_changed(patron, '[% field %]')"
class="form-control" ng-model="[% model %]"/>
[% ELSIF field == 'email' %]
<input type="[% input_type %]"
ng-change="field_modified()"
- ng-blur="dupe_value_changed('email', patron.email)"
+ ng-blur="handle_field_changed(patron, '[% field %]')"
class="form-control" ng-model="[% model %]"/>
[% ELSIF field.match('street') OR field == 'city' %]
<!-- note: passing address object to dupe_value_changed -->
<input type="[% input_type %]"
ng-change="field_modified()"
- ng-blur="dupe_value_changed('address', patron.[% path %])"
+ ng-blur="handle_field_changed(patron.[% path %], '[% field %]')"
class="form-control" ng-model="[% model %]"/>
[% ELSE %]
<input type="[% input_type %]"
}
$scope.day_phone_changed = function(phone) {
+ console.log('patron day phone changed to ' + phone);
if (phone && $scope.patron.isnew &&
$scope.org_settings['patron.password.use_phone']) {
$scope.patron.passwd = phone.substr(-4);
});
}
+ // obj could be the patron, an address, etc.
+ $scope.handle_field_changed = function(obj, field_name) {
+
+ var cls = obj.classname; // set by egIdl
+ var value = obj[field_name];
+
+ console.log('changing field ' + field_name + ' to ' + value);
+
+ switch (field_name) {
+ case 'day_phone' :
+ if ($scope.patron.day_phone &&
+ $scope.patron.isnew &&
+ $scope.org_settings['patron.password.use_phone']) {
+ $scope.patron.passwd = phone.substr(-4);
+ }
+ case 'evening_phone' :
+ case 'other_phone' :
+ $scope.dupe_value_changed('phone', value);
+ break;
+
+ case 'ident_value':
+ case 'ident_value2':
+ $scope.dupe_value_changed('ident', value);
+ break;
+
+ case 'first_given_name':
+ case 'family_name':
+ $scope.dupe_value_changed('name', value);
+ break;
+
+ case 'email':
+ $scope.dupe_value_changed('email', value);
+ break;
+
+ case 'street1':
+ case 'street2':
+ case 'city':
+ // dupe search on address wants the address object as the value.
+ $scope.dupe_value_changed('address', obj);
+ break;
+
+ case 'post_code':
+ $scope.post_code_changed(obj);
+ break;
+
+ case 'usrname':
+ // TODO: check dupe usernames
+ break;
+
+ case 'barcode':
+ $scope.barcode_changed(value);
+ break;
+ }
+ }
+
+
$scope.edit_passthru.save = function(save_args) {
if (!save_args) save_args = {};