diff --git a/www/Makefile b/www/Makefile index a92bdc91..073f0383 100644 --- a/www/Makefile +++ b/www/Makefile @@ -8,6 +8,7 @@ JSSRC= \ form/UserSelector.js \ form/RemoteSelector.js \ form/DataStoreSelector.js \ + form/CalendarEvent.js \ data/RunningTasksStore.js \ button/TaskButton.js \ config/UserView.js \ diff --git a/www/form/CalendarEvent.js b/www/form/CalendarEvent.js new file mode 100644 index 00000000..440bbc5c --- /dev/null +++ b/www/form/CalendarEvent.js @@ -0,0 +1,64 @@ +Ext.define('PBS.data.CalendarEventExamples', { + extend: 'Ext.data.Store', + alias: 'store.calendarEventExamples', + + field: ['value', 'text'], + data: [ + //FIXME { value: '*/30', text: Ext.String.format(gettext("Every {0} minutes"), 30) }, + { value: 'hourly', text: gettext("Every hour") }, + //FIXME { value: '*/2:00', text: gettext("Every two hours") }, + { value: '2,22:30', text: gettext("Every day") + " 02:30, 22:30" }, + { value: 'daily', text: gettext("Every day") + " 00:00" }, + { value: 'mon..fri', text: gettext("Monday to Friday") + " 00:00" }, + //FIXME{ value: 'mon..fri */1:00', text: gettext("Monday to Friday") + ': ' + gettext("hourly") }, + { value: 'sat 18:15', text: gettext("Every Saturday") + " 18:15" }, + //FIXME{ value: 'monthly', text: gettext("Every 1st of Month") + " 00:00" }, // not yet possible.. + ], +}); + +Ext.define('PBS.form.CalendarEvent', { + extend: 'Ext.form.field.ComboBox', + xtype: 'pbsCalendarEvent', + + editable: true, + + valueField: 'value', + displayField: 'text', + queryMode: 'local', + + config: { + deleteEmpty: true, + }, + // overide framework function to implement deleteEmpty behaviour + getSubmitData: function() { + let me = this, data = null; + if (!me.disabled && me.submitValue) { + let val = me.getSubmitValue(); + if (val !== null && val !== '' && val !== '__default__') { + data = {}; + data[me.getName()] = val; + } else if (me.getDeleteEmpty()) { + data = {}; + data.delete = me.getName(); + } + } + return data; + }, + + + store: { + type: 'calendarEventExamples', + }, + + tpl: [ + '