git-subtree-dir: plugins/redmine_hourglass git-subtree-split: ec937a4ed4717e358207dd3857fac248b9e625e9
56 lines
1.6 KiB
CoffeeScript
56 lines
1.6 KiB
CoffeeScript
clearFlash = ->
|
|
$('#content').find('.flash').remove()
|
|
|
|
showMessage = (message, type) ->
|
|
clearFlash()
|
|
if $.isArray message
|
|
$('#content').prepend $('<div/>', class: "flash #{type}").html $('<ul/>').html $.map message, (msg) ->
|
|
$('<li/>').text msg
|
|
else
|
|
$('#content').prepend $('<div/>', class: "flash #{type}").text message
|
|
|
|
showNotice = (message) ->
|
|
showMessage message, 'notice'
|
|
|
|
showErrorMessage = (message) ->
|
|
showMessage message, 'error'
|
|
|
|
showDialog = (className, $content, buttons = []) ->
|
|
$('<div/>', class: className, title: $content.data('dialog-title'))
|
|
.append $content.removeClass('hidden')
|
|
.appendTo 'body'
|
|
.dialog
|
|
autoOpen: true
|
|
resizable: false
|
|
draggable: false
|
|
modal: true
|
|
width: 300
|
|
buttons: buttons
|
|
|
|
formatDuration = (duration, unit = null) ->
|
|
duration = moment.duration duration, unit unless moment.isDuration duration
|
|
moment("1900-01-01 00:00:00").add(duration).format('HH:mm')
|
|
|
|
parseDuration = (durationString) ->
|
|
[hours, minutes] = durationString.split(':')
|
|
moment.duration(hours: hours, minutes: minutes)
|
|
|
|
@hourglass ?= {}
|
|
@hourglass.Utils =
|
|
clearFlash: clearFlash
|
|
formatDuration: formatDuration
|
|
parseDuration: parseDuration
|
|
showDialog: showDialog
|
|
showErrorMessage: showErrorMessage
|
|
showNotice: showNotice
|
|
|
|
$ ->
|
|
$(document)
|
|
.on 'ajax:success', '.js-hourglass-remote', ->
|
|
location.reload()
|
|
.on 'ajax:error', '.js-hourglass-remote', (event) ->
|
|
[responseJSON, status, xhr] = event.detail
|
|
hourglass.Utils.showErrorMessage responseJSON.message
|
|
.on 'click', '.js-toggle', ->
|
|
$($(@).data('target')).toggleClass 'hidden'
|