| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- /* eslint-disable
- max-len,
- no-return-assign,
- */
- // TODO: This file was created by bulk-decaffeinate.
- // Fix any style issues and re-enable lint.
- /*
- * decaffeinate suggestions:
- * DS102: Remove unnecessary code created because of implicit returns
- * DS207: Consider shorter variations of null checks
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
- */
- import App from '../base'
- App.directive('selectAllList', function () {
- return {
- controller: [
- '$scope',
- function ($scope) {
- // Selecting or deselecting all should apply to all projects
- this.selectAll = () => $scope.$broadcast('select-all:select')
- this.deselectAll = () => $scope.$broadcast('select-all:deselect')
- this.clearSelectAllState = () => $scope.$broadcast('select-all:clear')
- },
- ],
- link(scope, element, attrs) {},
- }
- })
- App.directive('selectAll', function () {
- return {
- require: '^selectAllList',
- link(scope, element, attrs, selectAllListController) {
- scope.$on('select-all:clear', () => element.prop('checked', false))
- return element.change(function () {
- if (element.is(':checked')) {
- selectAllListController.selectAll()
- } else {
- selectAllListController.deselectAll()
- }
- return true
- })
- },
- }
- })
- App.directive('selectIndividual', function () {
- return {
- require: '^selectAllList',
- scope: {
- ngModel: '=',
- },
- link(scope, element, attrs, selectAllListController) {
- let ignoreChanges = false
- scope.$watch('ngModel', function (value) {
- if (value != null && !ignoreChanges) {
- return selectAllListController.clearSelectAllState()
- }
- })
- scope.$on('select-all:select', function () {
- if (element.prop('disabled')) {
- return
- }
- ignoreChanges = true
- scope.$apply(() => (scope.ngModel = true))
- return (ignoreChanges = false)
- })
- scope.$on('select-all:deselect', function () {
- if (element.prop('disabled')) {
- return
- }
- ignoreChanges = true
- scope.$apply(() => (scope.ngModel = false))
- return (ignoreChanges = false)
- })
- return scope.$on('select-all:row-clicked', function () {
- if (element.prop('disabled')) {
- return
- }
- ignoreChanges = true
- scope.$apply(function () {
- scope.ngModel = !scope.ngModel
- if (!scope.ngModel) {
- return selectAllListController.clearSelectAllState()
- }
- })
- return (ignoreChanges = false)
- })
- },
- }
- })
- export default App.directive('selectRow', function () {
- return {
- scope: true,
- link(scope, element, attrs) {
- return element.on('click', e =>
- scope.$broadcast('select-all:row-clicked')
- )
- },
- }
- })
|