From 5245598fd6e2172ca25504c1d8f3610298e2d5f5 Mon Sep 17 00:00:00 2001 From: grainsoft Date: Thu, 22 Jan 2026 03:34:49 +0200 Subject: [PATCH] updates --- src/core/App.js | 2 +- src/core/Boot.js | 2 +- src/core/Render.js | 3 ++- src/widgets/popover/Popover.js | 3 ++- src/widgets/uploader/Uploader.js | 33 +++++++++++++++----------------- 5 files changed, 21 insertions(+), 22 deletions(-) diff --git a/src/core/App.js b/src/core/App.js index e53e6ff..0a68abe 100644 --- a/src/core/App.js +++ b/src/core/App.js @@ -529,7 +529,7 @@ export class App extends Boot { /** * Left Logo - Ev Handler */ - $('.left-logo').dxOn('click', (_, t) => { + $('.left-logo')?.dxOn('click', (_, t) => { if (App.section != App.config.home) { App.initModule(App.config.home, {}, { eTarget: t }); } diff --git a/src/core/Boot.js b/src/core/Boot.js index 6f4f657..2bc9fe7 100644 --- a/src/core/Boot.js +++ b/src/core/Boot.js @@ -44,7 +44,7 @@ export class Boot { } Boot.preInit(); - + Rt.setCsrfToken(document.documentElement.dxFind('meta[name="csrf-token"]')?.content); Boot.intData = mod.intData; diff --git a/src/core/Render.js b/src/core/Render.js index d09d54b..8f30dd0 100644 --- a/src/core/Render.js +++ b/src/core/Render.js @@ -8,6 +8,7 @@ import { DatePicker } from '../widgets/date-picker/DatePicker'; import { TwoDatePicker } from '../widgets/two-datepicker/TwoDatepicker'; import { IntervalPicker } from '../widgets/interval-picker/IntervalPicker'; import { Uploader } from '../widgets/uploader/Uploader'; +import { PinBox } from '../widgets/pin-box/PinBox'; export class Render { @@ -979,7 +980,7 @@ export class Render { Render.makeFieldWrapper(field, parent).append(input); - input.PinBox({ digits: field.digits || 6 }); + new PinBox(input, { digits: field.digits || 6 }); return input; } diff --git a/src/widgets/popover/Popover.js b/src/widgets/popover/Popover.js index b093c0c..fd31185 100644 --- a/src/widgets/popover/Popover.js +++ b/src/widgets/popover/Popover.js @@ -3,6 +3,7 @@ import './popover.css'; import { Ut } from '../../utils/Ut'; import { El, $ } from "../../utils/dom"; import { Overlay } from '../overlay'; +import { Boot } from '../../core/Boot'; export class Popover { @@ -30,7 +31,7 @@ export class Popover { if (!this.opts.multiple) { // Destroy old instances - Boot.widgetStack?.Popover.forEach(popover => popover.destroy()); + Boot.widgetStack?.Popover?.forEach(popover => popover.destroy()); } this.create(); diff --git a/src/widgets/uploader/Uploader.js b/src/widgets/uploader/Uploader.js index e855518..9e47c06 100644 --- a/src/widgets/uploader/Uploader.js +++ b/src/widgets/uploader/Uploader.js @@ -68,13 +68,7 @@ export class Uploader { */ setRouter() { - let router = Boot.intData?.config?.media; - - if (!router) { - return false; - } - - this.router = router[ this.target.name ]; + this.router = pubData?.media?.[this.target.name]; if (!this.router) { return false; @@ -91,7 +85,7 @@ export class Uploader { } if (this.router.img) { - ext.push('jpg', 'jpeg', 'png', 'webp'); + ext.push('jpg', 'jpeg', 'png', 'webp', 'svg'); } this.router.ext = [ ... new Set(ext) ].join('|'); @@ -462,7 +456,10 @@ export class Uploader { thumb.dataset.id = src; - thumb.href = that.dir + '/' + src.replace('0_', '1_') + '?' + _now; + const ext = that.getFileExt(src); + + thumb.href = that.dir + '/' + (ext != 'svg' ? src.replace('0_', '1_') : src) + '?' + _now; + } else { // Multiple Files > Another File Extension @@ -495,12 +492,14 @@ export class Uploader { // Single File - let ext = that.getFileExt(files[0]); - let _now = Date.now(); + const ext = that.getFileExt(files[0]); + const _now = Date.now(); let filename = files[0]; if (that.isImageFile(files[0])) { // Single File > Image Extension + + if (!thumbs.length) { let thumb = El('a', { className: 'loading' }, @@ -509,7 +508,7 @@ export class Uploader { ); thumb.dataset.id = filename; - thumb.href = this.dir + '/' + filename.replace('0_', '1_') + '?' + _now; + thumb.href = this.dir + '/' + (ext != 'svg' ? filename.replace('0_', '1_') : filename) + '?' + _now; this.ui.prepend(thumb); } @@ -522,10 +521,9 @@ export class Uploader { img.classList.remove('icon'); thumb.dataset.id = filename; - - thumb.removeAttribute('target'); + thumb.href = this.dir + '/' + (ext != 'svg' ? filename.replace('0_', '1_') : filename) + '?' + _now; - thumb.href = this.dir + '/' + filename.replace('0_', '1_') + '?' + _now; + thumb.removeAttribute('target'); } } else { // Single File > Another File Extension @@ -608,8 +606,7 @@ export class Uploader { * Uploader , Check for imgs ext */ isImageFile(filename) { - let ext = this.getFileExt(filename); - return (ext == 'jpg' || ext == 'jpeg' || ext == 'png' || ext == 'webp') + return ['jpg', 'jpeg', 'png', 'webp', 'svg'].includes( this.getFileExt(filename) ); } /** @@ -662,7 +659,7 @@ export class Uploader { */ getFileExt(file) { let token = file.split('?')[0].split('.', 2); - return token.length == 2 ? token[1] : ''; + return token.length === 2 ? token[1] : ''; } /**