Skip to content

Instantly share code, notes, and snippets.

@sitefinitySDK
Last active September 8, 2023 08:18
SF_11.0, SF_11.1, SF_11.2, SF_12.0, SF_12.1, SF_12.2, SF_13.0, SF_13.1, SF_13.2, SF_13.3, SF_14.0, SF_14.1, SF_14.2, SF_14.3, SF_14.4 - https://docs.sitefinity.com/feather-use-content-item-selectors
(function () {
// declare dependency on the sfSelectors module
angular.module('designer').requires.push('sfSelectors');
angular.module('designer').controller('SimpleSelectorCtrl', ['$scope', 'propertyService', function ($scope, propertyService) {
$scope.feedback.showLoadingIndicator = true;
// initialize the news selector model
$scope.newsSelector = {
selectedItemId: [],
selectedItem: []
};
// whenever newsSelector.selectedItemId changes, bind the new value to the widget controller property
$scope.$watch(
'newsSelector.selectedItemId',
function (newSelectedItemId, oldSelectedItemId) {
if (newSelectedItemId !== oldSelectedItemId) {
if (newSelectedItemId) {
$scope.properties.SerializedSelectedItemId.PropertyValue = newSelectedItemId;
}
}
},
true
);
// whenever newsSelector.selectedItem changes, bind the new value to the widget controller property
$scope.$watch(
'newsSelector.selectedItem',
function (newSelectedItem, oldSelectedItem) {
if (newSelectedItem !== oldSelectedItem) {
if (newSelectedItem) {
$scope.properties.SerializedSelectedItem.PropertyValue = JSON.stringify(newSelectedItem);
}
}
},
true
);
propertyService.get()
.then(function (data) {
if (data) {
$scope.properties = propertyService.toAssociativeArray(data.Items);
// copy the selected item id so that the selector can initialize with the selected items
var selectedItemId = $scope.properties.SerializedSelectedItemId.PropertyValue || null;
if (selectedItemId) {
$scope.newsSelector.selectedItemId = selectedItemId;
}
}
},
function (data) {
$scope.feedback.showError = true;
if (data)
$scope.feedback.errorMessage = data.Detail;
})
.finally(function () {
$scope.feedback.showLoadingIndicator = false;
});
}]);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment