Projekt

Allgemein

Profil

Herunterladen (4,41 KB) Statistiken
| Zweig: | Markierung: | Revision:
namespace("kivi.Materialize", function(ns) {
"use strict";

ns.init = function() {
ns.reinit_widgets();
};

ns.build_i18n = function() {
return {
months: [
kivi.t8('January'),
kivi.t8('February'),
kivi.t8('March'),
kivi.t8('April'),
kivi.t8('May'),
kivi.t8('June'),
kivi.t8('July'),
kivi.t8('August'),
kivi.t8('September'),
kivi.t8('October'),
kivi.t8('November'),
kivi.t8('December')
],
monthsShort: [
kivi.t8('Jan'),
kivi.t8('Feb'),
kivi.t8('Mar'),
kivi.t8('Apr'),
kivi.t8('May'),
kivi.t8('Jun'),
kivi.t8('Jul'),
kivi.t8('Aug'),
kivi.t8('Sep'),
kivi.t8('Oct'),
kivi.t8('Nov'),
kivi.t8('Dec')
],
weekdays: [
kivi.t8('Sunday'),
kivi.t8('Monday'),
kivi.t8('Tuesday'),
kivi.t8('Wednesday'),
kivi.t8('Thursday'),
kivi.t8('Friday'),
kivi.t8('Saturday')
],
weekdaysShort: [
kivi.t8('Sun'),
kivi.t8('Mon'),
kivi.t8('Tue'),
kivi.t8('Wed'),
kivi.t8('Thu'),
kivi.t8('Fri'),
kivi.t8('Sat')
],

// Buttons
today: kivi.t8('Today'),
done: kivi.t8('Ok'),
clear: kivi.t8('Clear'),
cancel: kivi.t8('Cancel'),

// Accessibility labels
labelMonthNext: kivi.t8('Next month'),
labelMonthPrev: kivi.t8('Previous month')
};
};

ns.flash = function(text) {
M.toast({html: text});
};

ns.reinit_widgets = function() {
$('.sidenav').sidenav();
$('select').formSelect();
$('.datepicker').datepicker({
firstDay: 1,
format: kivi.myconfig.dateformat,
showClearBtn: true,
i18n: ns.build_i18n()
});
$('.modal').modal();
$('.materialboxed').materialbox();
M.updateTextFields();
};

// alternative for kivi.popup_dialog.
// opens materialize modal instead.
//
// differences: M.modal can not load external content, so it needs to be fetched manually and inserted into the DOM.
ns.popup_dialog = function(params) {
params = params || { };
let id = params.id || 'jqueryui_popup_dialog';
let $div;
let custom_close = params.dialog ? params.dialog.close : undefined;
let dialog_params = $.extend(
{ // kivitendo default parameters.
// unlike classic layout, there is not fixed size, and M.modal is always... modal
onCloseStart: custom_close
},
// User supplied options:
params.dialog || { },
{ // Options that must not be changed:
// close options already work
});

if (params.url) {
$.ajax({
url: params.url,
data: params.data,
success: function(data) {
params.html = data;
params.url = undefined;
params.data = undefined;
ns.popup_dialog(params);
},
error: function(x, status, error) { console.error(error); },
dataType: 'text',
});
return 1;
}

if (params.html) {
$div = $('<div>');
$div.attr('id', id);
$div.addClass("modal");
let $modal_content = $('<div>');
$modal_content.addClass('modal-content');
$modal_content.html(params.html);
$div.append($modal_content);
$('body').append($div);
kivi.reinit_widgets();
dialog_params.onCloseEnd = function() { $div.remove(); };

$div.modal(dialog_params);
} else if(params.id) {
$div = $('#' + params.id);
} else {
console.error("insufficient parameters to open dialog");
return 0;
}

$div.modal('open');

return true;
};

/**
* upload file to local storage for later sync
*
* should be used with P.M.file_upload(..., local=>1)
*/
ns.LocalFileUpload = function(options) {
this.storage_token = options.storage_token; // used in localstorage to retrieve the file
this.dom_selector = options.dom_selector; // file inputs to listen on

this.init();
};

ns.LocalFileUpload.prototype = {
init: function() {
$(this.dom_selector).change(this.handle_file_upload);
},
handle_file_upload: function() {

},
load_files: function() {
return JSON.parse(localStorage.getImte(this.storage_token));
},
save_files: function() {
return JSON.parse(localStorage.getImte(this.storage_token));
},

};

});
(48-48/76)