From c285caf260e3dccf5bcf1aa400eb5d468e75daca Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Wed, 28 Sep 2022 23:23:05 +0200 Subject: [PATCH] Add dropdown prevalue editor --- .../prevalueeditors/dropdown.controller.js | 53 +++++++++++++++++++ .../src/views/prevalueeditors/dropdown.html | 11 ++++ 2 files changed, 64 insertions(+) create mode 100644 src/Umbraco.Web.UI.Client/src/views/prevalueeditors/dropdown.controller.js create mode 100644 src/Umbraco.Web.UI.Client/src/views/prevalueeditors/dropdown.html diff --git a/src/Umbraco.Web.UI.Client/src/views/prevalueeditors/dropdown.controller.js b/src/Umbraco.Web.UI.Client/src/views/prevalueeditors/dropdown.controller.js new file mode 100644 index 0000000000..73f3558f34 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/views/prevalueeditors/dropdown.controller.js @@ -0,0 +1,53 @@ +angular.module("umbraco").controller("Umbraco.PrevalueEditors.DropDownListController", + function ($scope) { + + const vm = this; + + vm.configItems = []; + vm.viewItems = []; + + function init() { + + const prevalues = ($scope.model.config ? $scope.model.config.prevalues : $scope.model.prevalues) || []; + + let items = []; + + for (let i = 0; i < prevalues.length; i++) { + const item = {}; + + if (Utilities.isObject(prevalues[i])) { + item.value = prevalues[i].value; + item.label = prevalues[i].label || prevalues[i].value; + } + else { + item.value = prevalues[i]; + item.label = prevalues[i]; + } + + items.push({ value: item.value, label: item.label }); + } + + vm.configItems = items; + + // update view model. + generateViewModel(); + } + + function generateViewModel() { + + vm.viewItems = []; + + let iConfigItem; + for (let i = 0; i < vm.configItems.length; i++) { + iConfigItem = vm.configItems[i]; + vm.viewItems.push({ + value: iConfigItem.value, + label: iConfigItem.label + }); + } + + } + + init(); + + }); diff --git a/src/Umbraco.Web.UI.Client/src/views/prevalueeditors/dropdown.html b/src/Umbraco.Web.UI.Client/src/views/prevalueeditors/dropdown.html new file mode 100644 index 0000000000..fa6f66ac3d --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/views/prevalueeditors/dropdown.html @@ -0,0 +1,11 @@ +
+ + + +