Sha256: 1cb8145322320a8fb98c334571ff7f91c7e25db080dda231c916917ac5fe77c5
Contents?: true
Size: 1.95 KB
Versions: 1
Compression:
Stored size: 1.95 KB
Contents
angular.module('EssayApp.directives').directive "ngCheckItem", ['$timeout', ($timeout) -> restrict: 'A' scope: true require: "ngModel" link: (scope, element, attrs, ngModel) -> item = scope.$eval(attrs.ngCheckItem) return unless item scope.value = $.extend { selected: false }, item, true activateCell = (cell) -> # element.addClass('active') clearCell = (cell) -> # element.removeClass('active') checkCell = () -> if isSelected(scope.value) scope.value.selected = true activateCell(element) else scope.value.selected = false clearCell(element) isSelected = (record) -> if ngModel?.$modelValue?.length > 0 ngModel?.$modelValue?.filter( (x) -> x.id == scope.value?.id ).length > 0 else return false unSelect = (value, items) -> # value.selected = false for x in items if x.id == value.id x.selected = false fn = () -> ngModel?.$modelValue?.length toggle = (value = undefined)-> active = scope.value.selected if value? active = !active else active = value items = ngModel?.$modelValue return unless items? unSelect(scope.value, items) if scope.value && items?.length > 0 scope.value.selected = active items.push(scope.value) if active items = items.filter (i)-> i.selected ngModel?.$setViewValue(items) if attrs?.ngCheckCallback? scope.$eval(attrs.ngCheckCallback) scope.$apply() $timeout (-> element.find('a, [clickable]').off('click.check-item').on 'click.check-item', (e)-> e.preventDefault() toggle() return false element.find('input[type="checkbox"]').off('change.check-item').on 'change.check-item', (e)-> toggle(this.checked) return false return ), 0, false scope.$watch fn, () -> checkCell() checkCell() ]
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
translation_cms-0.1.5 | app/assets/javascripts/app/directives/ng-check-item.js.coffee |