require('./bootstrap'); //---------------------------------------------------------------------- /* Helper function */ window.getMonday=function(date,dateStr) { if(dateStr){ date = new Date(dateStr); } let day = date.getDay(), diff = date.getDate() - day + (day == 0 ? -6:1); // adjust when day is sunday return new Date(date.setDate(diff)); } window.debug=function (txt) { try { console.log(txt); } catch(e){} }; window.buildFormData=function(formData, data, parentKey) { if (data && typeof data === 'object' && !(data instanceof Date) && !(data instanceof File)) { Object.keys(data).forEach(key => { buildFormData(formData, data[key], parentKey ? `${parentKey}[${key}]` : key); }); } else { const value = data == null ? '' : data; formData.append(parentKey, value); } } window.jsonToFormData=function(data) { const formData = new FormData(); buildFormData(formData, data); return formData; } String.prototype.capitalize = function() { return this.charAt(0).toUpperCase() + this.slice(1) } window.arrayRemove=function(arr, value) { return arr.filter(function(ele){ return ele != value; }); } window.getRandomInt=function (max=Number.MAX_SAFE_INTEGER,min=0) { debug(max); debug(min); return Math.floor(Math.random() * (max - min + 1)) + min; } window.setImageFromLocal=function(input,targetImgCssSelector) { if (input.files && input.files[0]) { let reader = new FileReader(); reader.onload = function (e) { $(targetImgCssSelector).attr('src', e.target.result); } reader.readAsDataURL(input.files[0]); } } require('./latinise'); /* disable back button */ $(function() { if (window.history && window.history.pushState) { window.history.pushState('', null, window.location.href); $(window).on('popstate', function(event) { // alert('Back button was pressed.'); //document.location.href = '#'; window.history.pushState('', document.title, window.location.href); //console.log('mevagy'); event.stopPropagation(); }); } }); //---------------------------------------------------------------------- /* init custom radio buttons */ window.initRadioButtons=function (Options){ let Opts = { onChange: function (value,node) { }, }; $.extend(Opts, Options); let activeValue = $('.customRadioBtnGroup .active').data('title'); let target = $('.customRadioBtnGroup .active').data('toggle'); $('input[name='+target+']').prop('value', activeValue); $('.customRadioBtnGroup a').unbind('click'); $('.customRadioBtnGroup a').bind('click',function(){ let sel = $(this).data('title'); let tog = $(this).data('toggle'); $('input[name='+tog+']').prop('value', sel); $('a[data-toggle="'+tog+'"]').not('[data-title="'+sel+'"]').removeClass('active').addClass('notActive'); $('a[data-toggle="'+tog+'"][data-title="'+sel+'"]').removeClass('notActive').addClass('active'); Opts.onChange(sel,tog); }); } //---------------------------------------------------------------------- // Defaults //---------------------------------------------------------------------- $.extend( true, $.fn.dataTable.defaults, { language: { url: '//cdn.datatables.net/plug-ins/1.10.24/i18n/Hungarian.json' }, lengthMenu: [ [ 10, 25, 50, -1 ], [ '10 sor', '25 sor', '50 sor', 'Összes' ] ], buttons:{ dom:{ button:{ className:'fg-button ui-button dataTableHeaderButtons' } }, }, dom: '<"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix ui-corner-tl ui-corner-tr"lBfr>'+ 't'+ '<"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix ui-corner-bl ui-corner-br"ip>', } ); Inputmask.extendDefinitions({ 'x': { validator: "[\.,-áéíóöőúàèìòùüűÁÉÍÓÖŐÚÀÈÌÒÙÜŰA-Za-z0-9 ]", //cardinality: 1 } }); //---------------------------------------------------------------------- Toast.enableTimers(false); $.fn.select2.defaults.set('language', 'jp'); window.select2CreateTag=function (params){ var term = $.trim(params.term); var count = 0 var existsVar = false; //check if there is any option already if($('#keywords option').length > 0){ $('#keywords option').each(function(){ if ($(this).text().toUpperCase() == term.toUpperCase()) { existsVar = true return false; }else{ existsVar = false } }); if(existsVar){ return null; } return { id: params.term, text: params.term, newTag: true } } //since select has 0 options, add new without comparing else{ return { id: params.term, text: params.term, newTag: true } } } window.ajaxErrorHandler= function (xhr, ajaxOptions, thrownError){ debug(this); debug(xhr); debug(ajaxOptions); debug(thrownError); if (xhr.responseJSON.errors) { if("jsonapi" in xhr.responseJSON){ ajaxErrorFieldHandlerJsonAPI(xhr.responseJSON.errors); }else{ ajaxErrorFieldHandler(xhr.responseJSON.errors); } }else{ if(xhr.status==404){ ajaxErrorFieldHandler({'detail':'Nincs ilyen elem.'}); }else{ ajaxErrorFieldHandler({'detail':'Általános hiba.'}); } } } window.ajaxErrorFieldHandlerJsonAPI= function (errors, container) { let toastBodyHtml = ''; let toastTitle = 'Hiba'; console.error(errors); $.each(errors, function (index, value) { console.error(value); toastTitle = 'Hiba'; toastBodyHtml = ''; if("title" in value){ toastTitle=value.title; } if("detail" in value){ toastBodyHtml += '
' + value.detail + '
'; } Toast.create(toastTitle, toastBodyHtml, TOAST_STATUS.DANGER, 10000); }); } window.ajaxErrorFieldHandler = function (errors, container) { let toastBodyHtml = ''; $.each(errors, function (index, value) { toastBodyHtml += '
' + value + '
'; }); Toast.create("Hiba!", toastBodyHtml, TOAST_STATUS.DANGER, 10000); /* Toast.fire({ icon: 'error', html: toastBodyHtml }); */ } $.ajaxSetup({ error:ajaxErrorHandler, }); /* datepicker afterShow function */ $.datepicker._updateDatepicker_original = $.datepicker._updateDatepicker; $.datepicker._updateDatepicker = function(inst) { $.datepicker._updateDatepicker_original(inst); let afterShow = this._get(inst, 'afterShow'); if (afterShow) afterShow.apply((inst.input ? inst.input[0] : null)); // trigger custom callback } //---------------------------------------------------------------------- window.EmegrendelesDefaults={ datatableActionButtonClickCallBack: function () {}, datatableAddRowTrashButton: function (id,args) { return '' }, datatableAddRowEditButton: function (args) { let title='Adatok'; if(typeof args[1].title!=="undefined"){ title=args[1].title; } return '' }, datatableAddRowViewButton: function (id,args) { return '' }, datatableAddRowAttachmentButton: function (id,args) { return '' }, datatableCustomHeadButtonClickCallBack:function (args) { console.log(args); }, afterLoadMainContent:function (args) { console.log(args); }, }; if(typeof DataModel==='undefined'){ class DataModel{ /* * Variables accessible * in the class */ Opts = { active: false, }; /* * Constructor */ constructor (data,options) { $.extend(this, data); $.extend(this.Opts, options); }; setData (data){ $.extend(this, data); } getData(index){ if(index){ return this[index]; }else{ return this; } } }; window.DataModel=DataModel; } window.Emegrendeles = function (options) { /* * Variables accessible * in the class */ let Opts = { myVar: 'Emegrendeles value', datatableAddRowTrashButton:{}, datatableAddRowEditButton:{}, datatableActionButtonClickCallBack:{}, datatableRowActionButtonClickCallBack:{}, datatableCustomHeadButtonClickCallBack:{}, afterLoadMainContent:{}, Url:{}, }; const PublicVar={}; let PublicVar2={'asd':'21'}; let ApiToken=null; let root=this; /* * Constructor */ this.construct = function (options) { //$.extend(Opts, options); console.log(this.constructor.name+' constructor called'); $.extend(Opts, window.EmegrendelesDefaults, options); }; this.setOpts=function(options){ $.extend(Opts, options); } this.getOpts=function(){ return Opts; } this.datatableAddRowTrashButton=function (){ return Opts.datatableAddRowTrashButton(arguments); } this.datatableAddRowEditButton=function (){ return Opts.datatableAddRowEditButton(arguments); } this.datatableAddRowViewButton=function (){ return Opts.datatableAddRowViewButton(arguments); } this.datatableAddRowAttachmentButton=function (){ return Opts.datatableAddRowAttachmentButton(arguments); } this.afterLoadMainContent=function (){ return Opts.afterLoadMainContent(arguments); } this.datatableActionButtonClickCallBack=function (){ return Opts.datatableActionButtonClickCallBack(arguments); } this.datatableRowActionButtonClickCallBack=function (){ return Opts.datatableRowActionButtonClickCallBack(arguments); } this.datatableAddRowAction=function (CSSSelector){ if(!CSSSelector){ return; } $(CSSSelector+' tr button').off('click'); $(CSSSelector+' tr button').on('click',APP.datatableRowActionButtonClickCallBack ); } this.datatableCustomHeadButtonClickCallBack=function (){ return Opts.datatableCustomHeadButtonClickCallBack(arguments); } /* * Public method * Can be called outside class */ this.myPublicMethod = function () { console.log(Opts); myPrivateMethod(); }; this.setApiToken = function (token) { root.ApiToken=token; }; this.getApiToken = function () { return root.ApiToken; }; /* * Private method * Can only be called inside class */ const myPrivateMethod = function () { console.log('accessed private method'); }; /** * @param {string} itemName */ this.setActiveNavBarItem=function(itemName){ $('.speedButtonNavBar li').removeClass('selected'); $('.speedButtonNavBar li.iconholderModul'+itemName).addClass('selected'); return this; } this.getActiveNavBarItem=function(){ return $('.speedButtonNavBar .selected').find('a').data('name'); } this.clearArchiveModuleDataTableState=function(){ if(APP.OrderArchiveModule!=undefined ){ console.log('APP.OrderArchiveModule'); console.log('clear'); APP.OrderArchiveModule.dataTable.state.clear(); } } this.navBarItemBeforepost=function (){ console.log('navBarItemBeforepost'); if(root.getActiveNavBarItem()!=='activeOrder'){ root.clearArchiveModuleDataTableState(); }; } this.navBarItemAfterPost=function (){ } this.initNavBar=function (){ $(".speedButtonNavBar a:not([data-target=_blank]):not([data-no-ajax])").bind('click',function (event){ console.log($(this).data().name); if($(this).data('big-icon')){ $(".speedButtonNavBar").removeClass('smallicons'); }else{ $(".speedButtonNavBar").addClass('smallicons'); } root.setActiveNavBarItem($(this).data().name); event.preventDefault(); }); $(".speedButtonNavBar a:not([data-target=_blank]):not([data-no-ajax])").ajaxlink({ target:$('.mainContent'), ajaxtype:'GET', afterpost:root.navBarItemAfterPost, beforepost:root.navBarItemBeforepost, }); $(".speedButtonNavBar a[data-target=_blank], .speedButtonNavBar a[data-no-ajax]").bind('click',function(){ root.clearArchiveModuleDataTableState(); }); } this.loadMainContent=function (url,data,callBack){ if(!callBack){ callBack=root.afterLoadMainContent; }else{ console.log('van callback'); console.log(callBack); } $('.mainContent').load( url,data,callBack ); } /* * Pass options when class instantiated */ this.construct(options); }; /* $.fn.ajaxlink = function(options){ }; import './ajaxLink'; * */ window.APP={}; $(document).ready(function (){ console.log('ready doc'); //$('.datepicker').datepicker(); Mustache.tags = [ '[[', ']]' ]; // = [ '<%', '%>' ]; });