<div class="col-md-3 reg-field-label">
<label>{{cat.name()}}</label>
</div>
- <div class="col-md-3 reg-field-input">
+
+ <div class="col-md-6">
<div ng-if="cat.entries().length != 0">
- <div class="btn-group" uib-dropdown>
- <button type="button" class="btn btn-default" ng-class="{'ng-invalid': cat.required() == 1 && !stat_cat_entry_maps[cat.id()] }" uib-dropdown-toggle>
- <span style="padding-right: 5px;">
- {{stat_cat_entry_maps[cat.id()]}}</span>
- <span class="caret"></span>
- </button>
- <ul uib-dropdown-menu>
- <li ng-repeat="entry in cat.entries()">
- <a href
- ng-click="field_modified();stat_cat_entry_maps[cat.id()]=entry.value()">
- {{entry.value()}}
- </a>
- </li>
- </ul>
- </div>
+ <eg-basic-combo-box list="cat.sc_entry_values" class="reg-field-input" selected="selected_statcat_entries[cat.id()]"
+ ng-class="{'ng-invalid': cat.required() == 1 && !cat.sc_entry_values[selected_statcat_entry] }" ng-model="stat_cat_entry_maps[cat.id()]"
+ on-select="field_modified();stat_cat_entry_maps[cat.id()]=selected_statcat_entries[cat.id()];" ng-required="cat.required() == 1">
+ </eg-basic-combo-box>
</div>
</div>
- <!-- Stat cat retrieval API uses open-ils.storage under the covers
- which represents DB bools at 1/0 instead of cstore-style t/f -->
- <div class="col-md-3 reg-field-input"
- ng-show="show_field('stat_cats') || hasRequiredStatCat"
- ng-if="cat.allow_freetext() == '1'">
- <input type="text" ng-model="stat_cat_entry_maps[cat.id()]"
- class="form-control" ng-required="cat.required() == 1"/>
- </div>
</div><!-- show/hide wrapper -->
</div>
$scope.stat_cat_entry_maps = prs.stat_cat_entry_maps;
$scope.stage_user = prs.stage_user;
$scope.stage_user_requestor = prs.stage_user_requestor;
-
$scope.user_settings = prs.user_settings;
prs.user_settings = {};
+ $scope.selected_statcat_entries = [];
+
+ angular.forEach($scope.stat_cats, function(statcat) {
+ statcat.sc_entry_values = statcat.entries().map(entry => {
+ return entry.value();
+ });
+
+ angular.forEach(statcat.entries(), function(entry) {
+ if (entry.value() === $scope.stat_cat_entry_maps[statcat.id()]) {
+ $scope.selected_statcat_entries[statcat.id()] = entry.value();
+ $scope.stat_cat_entry_maps[statcat.id()] = entry.value();
+ }
+ });
+ });
// If a default pickup lib is applied to the patron, apply it
// to the UI at page load time. Otherwise, leave the value unset.
// Stat cats are fetched from open-ils.storage, where 't'==1
$scope.hasRequiredStatCat = prs.stat_cats.filter(
function(cat) {return cat.required() == 1} ).length > 0;
-
$scope.page_data_loaded = true;
prs.set_field_patterns(field_patterns);