/* global $ */ function time_changer_dialog (d, changed_callback) { // d is a Date object var dlg_html = '
\
\ \ \ \
\
' var $dlg = $($.parseHTML(dlg_html)) $('[name=h]', $dlg).val(d.getHours()) $('[name=m]', $dlg).val(d.getMinutes()) $('[name=s]', $dlg).val(d.getSeconds()) $dlg.dialog({ title: 'Modifica inizio', buttons: { 'Ok': function () { $(this).dialog('close') if (changed_callback === undefined) { return } newd = new Date(d.getTime()) newd.setHours($('[name=h]', $dlg).val()) newd.setMinutes($('[name=m]', $dlg).val()) newd.setSeconds($('[name=s]', $dlg).val()) if (newd.getTime() === d.getTime()) { console.debug('Time not changed, discarding') return } changed_callback(newd) // FIXME: crea data a partire dal form }, 'Annulla': function () { $(this).dialog('close') } } }).dialog('open') } $.widget('ror.thebutton', { options: { state: 'Create', filename: null, errormsg: null }, _create: function () { 'use strict' // create an appropriate button var widget = this var state = this.options.rec widget.element.addClass('pure-button') widget.element.on('click', function (evt) { /* global error_dialog */ if (widget.element.hasClass('rec-failed')) { error_dialog(widget.options.errormsg, function () { console.log('Should retry, TODO') $(this).dialog('close') widget._setOption('state', 'Create') widget.element.click() }, function () { $(this).dialog('close') }) } }) this._update() }, _setOption: function (key, value) { this.options[key] = value if (key === 'state') { if (this.options.state !== 'Download') { this.options.filename = null } } this._update() }, _update: function () { this.element.removeClass('pure-button-disabled rec-run rec-create ' + 'rec-encoding rec-download rec-failed rec-stop') switch (this.options.state) { case 'Stop': this.element.addClass('rec-stop rec-run').html( $('').addClass('fa fa-stop')).append(' Stop') break case 'Create': this.element.addClass('rec-create rec-run').html( $('').addClass('fa fa-gear')).append(' Create') break case 'Failed': this.element.addClass('rec-failed').html( $('').addClass('fa fa-warning')).append(' Errori') break case 'Wait': this.element.addClass('pure-button-disabled rec-encoding').html( $('').addClass('fa fa-clock-o')).append(' Wait') break case 'Download': this.element .addClass('rec-download') .prop('href', this.options.filename) .html( $('').addClass('fa fa-download').css('color', 'green')) .append(' Scarica') break } } }) function error_dialog (msg, retry, cancel) { $('
').html($('
').text(msg))
  .dialog({modal: true, title: 'Dettaglio errori',
    buttons: {
      Retry: retry,
      Cancel: cancel
    }
  })
}
/* vim: set ts=2 sw=2 noet fdm=indent: */