Solved pikaday conflicts with keyboard events
parent
b9e8d1f238
commit
49261d33ca
|
@ -22,33 +22,38 @@ module = angular.module("taigaComponents")
|
||||||
dueDatePopoverDirective = ($translate, datePickerConfigService) ->
|
dueDatePopoverDirective = ($translate, datePickerConfigService) ->
|
||||||
return {
|
return {
|
||||||
link: (scope, el, attrs, ctrl) ->
|
link: (scope, el, attrs, ctrl) ->
|
||||||
|
scope.open = false
|
||||||
|
|
||||||
datePickerConfig = datePickerConfigService.get()
|
datePickerConfig = datePickerConfigService.get()
|
||||||
_.merge(datePickerConfig, {
|
_.merge(datePickerConfig, {
|
||||||
field: el.find('input.due-date')[0]
|
field: el.find('.due-date-button')[0]
|
||||||
container: el.find('.date-picker-container')[0]
|
container: el.find('.date-picker-container')[0]
|
||||||
bound: false
|
bound: true
|
||||||
|
onClose: () ->
|
||||||
|
scope.open = false
|
||||||
|
scope.$apply()
|
||||||
onSelect: () ->
|
onSelect: () ->
|
||||||
ctrl.dueDate = this.getMoment().format('YYYY-MM-DD')
|
ctrl.dueDate = this.getMoment().format('YYYY-MM-DD')
|
||||||
el.find(".date-picker-popover").popover().close()
|
|
||||||
scope.$apply()
|
|
||||||
})
|
})
|
||||||
el.picker = new Pikaday(datePickerConfig)
|
el.picker = new Pikaday(datePickerConfig)
|
||||||
|
|
||||||
el.on "click", ".date-picker-popover-trigger", (event) ->
|
el.on "click", ".due-date-button", (event) ->
|
||||||
if ctrl.disabled()
|
if scope.open
|
||||||
|
el.picker.hide()
|
||||||
return
|
return
|
||||||
event.preventDefault()
|
|
||||||
event.stopPropagation()
|
|
||||||
if !el.picker.getDate() && ctrl.dueDate
|
if !el.picker.getDate() && ctrl.dueDate
|
||||||
el.picker.setDate(moment(ctrl.dueDate).format('YYYY-MM-DD'))
|
el.picker.setDate(moment(ctrl.dueDate).format('YYYY-MM-DD'))
|
||||||
el.find(".date-picker-popover").popover().open()
|
el.picker.show()
|
||||||
|
scope.open = true
|
||||||
|
scope.$apply()
|
||||||
|
|
||||||
el.on "click", ".date-picker-clean", (event) ->
|
el.on "click", ".date-picker-clean", (event) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
event.stopPropagation()
|
event.stopPropagation()
|
||||||
ctrl.dueDate = null
|
ctrl.dueDate = null
|
||||||
el.picker.setDate(ctrl.dueDate)
|
el.picker.setDate(ctrl.dueDate)
|
||||||
el.find(".date-picker-popover").popover().close()
|
scope.open = false
|
||||||
|
el.picker.hide()
|
||||||
scope.$apply()
|
scope.$apply()
|
||||||
|
|
||||||
scope.$on "status:changed", (ctx, status) ->
|
scope.$on "status:changed", (ctx, status) ->
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
type="hidden"
|
type="hidden"
|
||||||
picker-value="{{ vm.dueDate }}"
|
picker-value="{{ vm.dueDate }}"
|
||||||
)
|
)
|
||||||
div.date-picker-popover
|
div.date-picker-popover(ng-hide="!open")
|
||||||
div.date-picker-container
|
div.date-picker-container
|
||||||
div.date-picker-popover-footer(ng-if="vm.dueDate")
|
div.date-picker-popover-footer(ng-if="vm.dueDate")
|
||||||
a.date-picker-clean(href="", title="{{'LIGHTBOX.SET_DUE_DATE.TITLE_ACTION_DELETE_DUE_DATE' | translate}}")
|
a.date-picker-clean(href="", title="{{'LIGHTBOX.SET_DUE_DATE.TITLE_ACTION_DELETE_DUE_DATE' | translate}}")
|
||||||
|
|
|
@ -98,14 +98,14 @@
|
||||||
.date-picker-popover {
|
.date-picker-popover {
|
||||||
background: $white;
|
background: $white;
|
||||||
border: 1px solid $gray;
|
border: 1px solid $gray;
|
||||||
display: none;
|
|
||||||
left: 0;
|
left: 0;
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 56px;
|
top: 56px;
|
||||||
width: auto;
|
width: auto;
|
||||||
.pika-single {
|
.pika-single.is-bound {
|
||||||
border: 0;
|
border: 0;
|
||||||
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue