Skip to content

Commit 9982f96

Browse files
committed
Merge pull request #46 from eburi/master
Fixed duplicate initialization - fixes #45
2 parents 5a98fa2 + 986cd14 commit 9982f96

File tree

4 files changed

+10
-6
lines changed

4 files changed

+10
-6
lines changed

angular-schema-form-dynamic-select.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
}(this, function(schemaForm) {
1010
angular.module("schemaForm").run(["$templateCache", function($templateCache) {$templateCache.put("directives/decorators/bootstrap/strap/strapmultiselect.html","<div ng-controller=\"dynamicSelectController\" class=\"form-group {{form.htmlClass}}\"\n ng-class=\"{\'has-error\': hasError(), \'has-success\': hasSuccess()}\">\n <label class=\"control-label {{form.labelHtmlClass}}\" ng-show=\"showTitle()\">{{form.title}}</label>\n\n <div class=\"form-group {{form.fieldHtmlClass}}\" ng-init=\"populateTitleMap(form)\">\n <button type=\"button\" class=\"btn btn-default\" sf-changed=\"form\" schema-validate=\"form\" ng-model=\"$$value$$\"\n data-placeholder=\"{{form.placeholder || form.schema.placeholder || (\'placeholders.select\')}}\"\n data-html=\"1\"\n data-multiple=\"1\" data-multiple=\"1\" data-max-length=\"{{form.options.inlineMaxLength}}\"\n data-max-length-html=\"{{form.options.inlineMaxLengthHtml}}\"\n bs-options=\"item.value as item.name for item in form.titleMap | selectFilter:this:$$value$$:&quot;$$value$$&quot;\"\n bs-select>\n </button>\n <span class=\"help-block\">{{ (hasError() && errorMessage(schemaError())) || form.description}}</span>\n </div>\n</div>\n");
1111
$templateCache.put("directives/decorators/bootstrap/strap/strapselect.html","<div ng-controller=\"dynamicSelectController\" class=\"form-group {{form.htmlClass}}\"\n ng-class=\"{\'has-error\': hasError(), \'has-success\': hasSuccess()}\">\n <label class=\"control-label {{form.labelHtmlClass}}\" ng-show=\"showTitle()\">{{form.title}}</label>\n\n <div class=\"form-group {{form.fieldHtmlClass}}\" ng-init=\"populateTitleMap(form)\">\n <button ng-if=\"(form.options.multiple == \'true\') || (form.options.multiple == true)\"\n type=\"button\" class=\"btn btn-default\" sf-changed=\"form\" schema-validate=\"form\" ng-model=\"$$value$$\"\n data-placeholder=\"{{form.placeholder || form.schema.placeholder || (\'placeholders.select\')}}\"\n data-html=\"1\" data-multiple=\"1\" data-max-length=\"{{form.options.inlineMaxLength}}\"\n data-max-length-html=\"{{form.options.inlineMaxLengthHtml}}\"\n bs-options=\"item.value as item.name for item in form.titleMap | selectFilter:this:$$value$$:&quot;$$value$$&quot;\"\n bs-select>\n </button>\n <button ng-if=\"!((form.options.multiple == \'true\') || (form.options.multiple == true))\"\n type=\"button\" class=\"btn btn-default\" sf-changed=\"form\" schema-validate=\"form\" ng-model=\"$$value$$\"\n data-placeholder=\"{{form.placeholder || form.schema.placeholder || (\'placeholders.select\')}}\"\n data-html=\"1\"\n bs-options=\"item.value as item.name for item in form.titleMap | selectFilter:this:$$value$$:&quot;$$value$$&quot;\"\n bs-select>\n </button>\n <span class=\"help-block\">{{ (hasError() && errorMessage(schemaError())) || form.description}} </span>\n </div>\n</div>\n\n");}]);
12-
angular.module("schemaForm").run(["$templateCache", function($templateCache) {$templateCache.put("directives/decorators/bootstrap/uiselect/uiselect.html","<div ng-controller=\"dynamicSelectController\" class=\"form-group\"\n ng-class=\"{\'has-error\': hasError(), \'has-success\': hasSuccess(), \'has-feedback\': form.feedback !== false}\"\n ng-init=\"insideModel=$$value$$;\">\n <label class=\"control-label\" ng-show=\"showTitle()\">{{form.title}}</label>\n\n <div class=\"form-group\" ng-init=\"populateTitleMap(form, $select.search);select_model.selected=find_in_titleMap($$value$$)\">\n <ui-select ng-model=\"select_model.selected\"\n ng-if=\"!(form.options.tagging||false)\" theme=\"bootstrap\" ng-disabled=\"form.disabled\"\n on-select=\"$$value$$=$item.value\" class=\"{{form.options.uiClass}}\">\n <ui-select-match\n placeholder=\"{{form.placeholder || form.schema.placeholder || (\'placeholders.select\' | translate)}}\">\n {{select_model.selected.name}}\n </ui-select-match>\n <ui-select-choices refresh=\"populateTitleMap(form, $select.search)\"\n refresh-delay=\"form.options.refreshDelay\" group-by=\"form.options.groupBy\"\n repeat=\"item in form.titleMap | propsFilter: {name: $select.search, description: (form.options.searchDescriptions===true ? $select.search : \'NOTSEARCHINGFORTHIS\') }\">\n <div ng-bind-html=\"item.name | highlight: $select.search\"></div>\n <div ng-if=\"item.description\">\n <span ng-bind-html=\"\'<small>\' + (\'\'+item.description | highlight: (form.options.searchDescriptions===true ? $select.search : \'NOTSEARCHINGFORTHIS\'))+ \'</small>\'\"></span>\n </div>\n </ui-select-choices>\n </ui-select>\n <ui-select ng-controller=\"dynamicSelectController\" ng-model=\"select_model.selected\"\n ng-if=\"(form.options.tagging||false) && !(form.options.groupBy || false)\"\n tagging=\"form.options.tagging||false\" tagging-label=\"form.options.taggingLabel\"\n tagging-tokens=\"form.options.taggingTokens\"\n theme=\"bootstrap\" ng-disabled=\"form.disabled\" on-select=\"$$value$$=$item.value\"\n class=\"{{form.options.uiClass}}\">\n <ui-select-match\n placeholder=\"{{form.placeholder || form.schema.placeholder || (\'placeholders.select\' | translate)}}\">\n {{select_model.selected.name}}&nbsp;\n <small>{{(select_model.selected.isTag===true ? form.options.taggingLabel : \'\')}}</small>\n </ui-select-match>\n <!--repeat code because tagging does not display properly under group by but is still useful -->\n <ui-select-choices refresh=\"populateTitleMap(form, $select.search))\"\n refresh-delay=\"form.options.refreshDelay\"\n repeat=\"item in form.titleMap | propsFilter: {name: $select.search, description: (form.options.searchDescription===true ? $select.search : \'NOTSEARCHINGFORTHIS\') }\">\n <div ng-if=\"item.isTag\"\n ng-bind-html=\"\'<div>\' + (item.name | highlight: $select.search) + \' \' + form.options.taggingLabel + \'</div><div class=&quot;divider&quot;></div>\'\"></div>\n <div ng-if=\"!item.isTag\" ng-bind-html=\"item.name + item.isTag| highlight: $select.search\"></div>\n <div ng-if=\"item.description\">\n <span ng-bind-html=\"\'<small>\' + (\'\'+item.description | highlight: (form.options.searchDescriptions===true ? $select.search : \'NOTSEARCHINGFORTHIS\')) + \'</small>\'\"></span>\n </div>\n </ui-select-choices>\n </ui-select>\n\n <!--repeat code because tagging does not display properly under group by but is still useful -->\n\n <ui-select ng-controller=\"dynamicSelectController\" ng-model=\"select_model.selected\"\n ng-if=\"(form.options.tagging||false) && (form.options.groupBy || false)\"\n tagging=\"form.options.tagging||false\" tagging-label=\"form.options.taggingLabel\"\n tagging-tokens=\"form.options.taggingTokens\"\n theme=\"bootstrap\" ng-disabled=\"form.disabled\" on-select=\"$$value$$=$item.value\"\n class=\"{{form.options.uiClass}}\">\n <ui-select-match\n placeholder=\"{{form.placeholder || form.schema.placeholder || (\'placeholders.select\' | translate)}}\">\n {{select_model.selected.name}}&nbsp;\n <small>{{(select_model.selected.isTag===true ? form.options.taggingLabel : \'\')}}</small>\n </ui-select-match>\n <ui-select-choices group-by=\"form.options.groupBy\"\n refresh=\"populateTitleMap(form, $select.search)\"\n refresh-delay=\"form.options.refreshDelay\"\n repeat=\"item in form.titleMap | propsFilter: {name: $select.search, description: (form.options.searchDescription===true ? $select.search : \'NOTSEARCHINGFORTHIS\') }\">\n <div ng-if=\"item.isTag\"\n ng-bind-html=\"\'<div>\' + (item.name | highlight: $select.search) + \' \' + form.options.taggingLabel + \'</div><div class=&quot;divider&quot;></div>\'\"></div>\n <div ng-if=\"!item.isTag\" ng-bind-html=\"item.name + item.isTag| highlight: $select.search\"></div>\n <div ng-if=\"item.description\">\n <span ng-bind-html=\"\'<small>\' + (\'\'+item.description | highlight: (form.options.searchDescriptions===true ? $select.search : \'NOTSEARCHINGFORTHIS\')) + \'</small>\'\"></span>\n </div>\n </ui-select-choices>\n </ui-select>\n\n <input type=\"hidden\" toggle-single-model sf-changed=\"form\" ng-model=\"insideModel\" schema-validate=\"form\"/>\n <span ng-if=\"form.feedback !== false\"\n class=\"form-control-feedback\"\n ng-class=\"evalInScope(form.feedback) || {\'glyphicon\': true, \'glyphicon-ok\': hasSuccess(), \'glyphicon-remove\': hasError() }\"></span>\n\n <div class=\"help-block\"\n ng-show=\"(hasError() && errorMessage(schemaError())) || form.description\"\n ng-bind-html=\"(hasError() && errorMessage(schemaError())) || form.description\"></div>\n </div>\n</div>");
12+
angular.module("schemaForm").run(["$templateCache", function($templateCache) {$templateCache.put("directives/decorators/bootstrap/uiselect/uiselect.html","<div ng-controller=\"dynamicSelectController\" class=\"form-group\"\n ng-class=\"{\'has-error\': hasError(), \'has-success\': hasSuccess(), \'has-feedback\': form.feedback !== false}\"\n ng-init=\"insideModel=$$value$$;\">\n <label class=\"control-label\" ng-show=\"showTitle()\">{{form.title}}</label>\n\n <div class=\"form-group\">\n <ui-select ng-model=\"select_model.selected\"\n ng-if=\"!(form.options.tagging||false)\" theme=\"bootstrap\" ng-disabled=\"form.disabled\"\n on-select=\"$$value$$=$item.value\" class=\"{{form.options.uiClass}}\">\n <ui-select-match\n placeholder=\"{{form.placeholder || form.schema.placeholder || (\'placeholders.select\' | translate)}}\">\n {{select_model.selected.name}}\n </ui-select-match>\n <ui-select-choices refresh=\"populateTitleMap(form, $select.search)\"\n refresh-delay=\"form.options.refreshDelay\" group-by=\"form.options.groupBy\"\n repeat=\"item in form.titleMap | propsFilter: {name: $select.search, description: (form.options.searchDescriptions===true ? $select.search : \'NOTSEARCHINGFORTHIS\') }\">\n <div ng-bind-html=\"item.name | highlight: $select.search\"></div>\n <div ng-if=\"item.description\">\n <span ng-bind-html=\"\'<small>\' + (\'\'+item.description | highlight: (form.options.searchDescriptions===true ? $select.search : \'NOTSEARCHINGFORTHIS\'))+ \'</small>\'\"></span>\n </div>\n </ui-select-choices>\n </ui-select>\n <ui-select ng-controller=\"dynamicSelectController\" ng-model=\"select_model.selected\"\n ng-if=\"(form.options.tagging||false) && !(form.options.groupBy || false)\"\n tagging=\"form.options.tagging||false\" tagging-label=\"form.options.taggingLabel\"\n tagging-tokens=\"form.options.taggingTokens\"\n theme=\"bootstrap\" ng-disabled=\"form.disabled\" on-select=\"$$value$$=$item.value\"\n class=\"{{form.options.uiClass}}\">\n <ui-select-match\n placeholder=\"{{form.placeholder || form.schema.placeholder || (\'placeholders.select\' | translate)}}\">\n {{select_model.selected.name}}&nbsp;\n <small>{{(select_model.selected.isTag===true ? form.options.taggingLabel : \'\')}}</small>\n </ui-select-match>\n <!--repeat code because tagging does not display properly under group by but is still useful -->\n <ui-select-choices refresh=\"populateTitleMap(form, $select.search))\"\n refresh-delay=\"form.options.refreshDelay\"\n repeat=\"item in form.titleMap | propsFilter: {name: $select.search, description: (form.options.searchDescription===true ? $select.search : \'NOTSEARCHINGFORTHIS\') }\">\n <div ng-if=\"item.isTag\"\n ng-bind-html=\"\'<div>\' + (item.name | highlight: $select.search) + \' \' + form.options.taggingLabel + \'</div><div class=&quot;divider&quot;></div>\'\"></div>\n <div ng-if=\"!item.isTag\" ng-bind-html=\"item.name + item.isTag| highlight: $select.search\"></div>\n <div ng-if=\"item.description\">\n <span ng-bind-html=\"\'<small>\' + (\'\'+item.description | highlight: (form.options.searchDescriptions===true ? $select.search : \'NOTSEARCHINGFORTHIS\')) + \'</small>\'\"></span>\n </div>\n </ui-select-choices>\n </ui-select>\n\n <!--repeat code because tagging does not display properly under group by but is still useful -->\n\n <ui-select ng-controller=\"dynamicSelectController\" ng-model=\"select_model.selected\"\n ng-if=\"(form.options.tagging||false) && (form.options.groupBy || false)\"\n tagging=\"form.options.tagging||false\" tagging-label=\"form.options.taggingLabel\"\n tagging-tokens=\"form.options.taggingTokens\"\n theme=\"bootstrap\" ng-disabled=\"form.disabled\" on-select=\"$$value$$=$item.value\"\n class=\"{{form.options.uiClass}}\">\n <ui-select-match\n placeholder=\"{{form.placeholder || form.schema.placeholder || (\'placeholders.select\' | translate)}}\">\n {{select_model.selected.name}}&nbsp;\n <small>{{(select_model.selected.isTag===true ? form.options.taggingLabel : \'\')}}</small>\n </ui-select-match>\n <ui-select-choices group-by=\"form.options.groupBy\"\n refresh=\"populateTitleMap(form, $select.search)\"\n refresh-delay=\"form.options.refreshDelay\"\n repeat=\"item in form.titleMap | propsFilter: {name: $select.search, description: (form.options.searchDescription===true ? $select.search : \'NOTSEARCHINGFORTHIS\') }\">\n <div ng-if=\"item.isTag\"\n ng-bind-html=\"\'<div>\' + (item.name | highlight: $select.search) + \' \' + form.options.taggingLabel + \'</div><div class=&quot;divider&quot;></div>\'\"></div>\n <div ng-if=\"!item.isTag\" ng-bind-html=\"item.name + item.isTag| highlight: $select.search\"></div>\n <div ng-if=\"item.description\">\n <span ng-bind-html=\"\'<small>\' + (\'\'+item.description | highlight: (form.options.searchDescriptions===true ? $select.search : \'NOTSEARCHINGFORTHIS\')) + \'</small>\'\"></span>\n </div>\n </ui-select-choices>\n </ui-select>\n\n <input type=\"hidden\" toggle-single-model sf-changed=\"form\" ng-model=\"insideModel\" schema-validate=\"form\"/>\n <span ng-if=\"form.feedback !== false\"\n class=\"form-control-feedback\"\n ng-class=\"evalInScope(form.feedback) || {\'glyphicon\': true, \'glyphicon-ok\': hasSuccess(), \'glyphicon-remove\': hasError() }\"></span>\n\n <div class=\"help-block\"\n ng-show=\"(hasError() && errorMessage(schemaError())) || form.description\"\n ng-bind-html=\"(hasError() && errorMessage(schemaError())) || form.description\"></div>\n </div>\n</div>\n");
1313
$templateCache.put("directives/decorators/bootstrap/uiselect/uiselectmultiple.html","\n<div class=\"form-group\" ng-class=\"{\'has-error\': hasError(), \'has-success\': hasSuccess(), \'has-feedback\': form.feedback !== false}\"\n ng-controller=\"dynamicSelectController\" ng-init=\"uiMultiSelectInitInternalModel($$value$$)\">\n <label class=\"control-label\" ng-show=\"showTitle()\">{{form.title}}</label>\n <div class=\"form-group\">\n <ui-select multiple sortable-options=\"{{form.sortableOptions}}\" ng-model=\"internalModel\" theme=\"bootstrap\"\n on-select=\"$$value$$.push($item.value)\" on-remove=\"$$value$$.splice($$value$$.indexOf($item.value), 1)\"\n class=\"{{form.options.uiClass}}\">\n <ui-select-match placeholder=\"{{form.placeholder || form.schema.placeholder || (\'placeholders.select\' | translate)}}\">{{$item.name}}</ui-select-match>\n <ui-select-choices repeat=\"item in form.titleMap | propsFilter: {name: $select.search}\"\n refresh=\"populateTitleMap(form, $select.search)\"\n refresh-delay=\"form.options.refreshDelay\">\n <div ng-bind-html=\"item.name | highlight: $select.search\"></div>\n </ui-select-choices>\n </ui-select>\n <span ng-if=\"form.feedback !== false\"\n class=\"form-control-feedback\"\n ng-class=\"evalInScope(form.feedback) || {\'glyphicon\': true, \'glyphicon-ok\': hasSuccess(), \'glyphicon-remove\': hasError() }\"></span>\n <div class=\"help-block\"\n ng-show=\"(hasError() && errorMessage(schemaError())) || form.description\"\n ng-bind-html=\"(hasError() && errorMessage(schemaError())) || form.description\"></div>\n </div>\n</div>");}]);
1414
angular.module('schemaForm').config(
1515
['schemaFormProvider', 'schemaFormDecoratorsProvider', 'sfPathProvider',
@@ -152,6 +152,8 @@ angular.module('schemaForm').controller('dynamicSelectController', ['$scope', '$
152152
$scope.form.options = {};
153153
}
154154

155+
$scope.select_model = {};
156+
155157
console.log("Setting options." + $scope.form.options.toString());
156158
$scope.form.options.scope = $scope;
157159

@@ -192,9 +194,9 @@ angular.module('schemaForm').controller('dynamicSelectController', ['$scope', '$
192194
if(typeof newOptions.map.nameProperty != 'string'){
193195
//loop through the object/array
194196
for (var i in newOptions.map.nameProperty) {
195-
current_row["name"] += current_row[newOptions .map.nameProperty[i]];
197+
current_row["name"] += current_row[newOptions .map.nameProperty[i]];
196198
if(i != final){current_row["name"] += separator};
197-
}
199+
}
198200
}
199201
else{
200202
//if it is a string

0 commit comments

Comments
 (0)