printshopcreator/src/new/assets/tailwind/backend.js
Thomas Peterson 9937165710
Some checks failed
Gitea Actions / Run-Tests-On-Amd64 (push) Failing after 41m47s
Gitea Actions / Merge (push) Successful in 6m45s
Gitea Actions / Run-Tests-On-Arm64 (push) Has been cancelled
Fixes
2026-02-12 10:31:22 +01:00

90 lines
2.3 KiB
JavaScript

import "./css/backend.css"
import Alpine from 'alpinejs';
import persist from '@alpinejs/persist'
import $ from 'jquery'
import 'summernote/dist/summernote-lite.js'
import 'summernote/dist/summernote-lite.min.css'
import '../backend/dashboard/js/summernote/mediabundle.plugin.js'
import { initTabs } from 'david-ai';
import { registerVueControllerComponents } from '@symfony/ux-vue';
import { startStimulusApp } from '@symfony/stimulus-bundle';
import { order } from './js/order.js';
import { multiselect } from './js/multiselect.js';
window.$ = window.jQuery = $;
// Initialize tabs functionality
initTabs();
registerVueControllerComponents()
const app = startStimulusApp();
Alpine.plugin(persist)
// Initialize PSC global object
window.psc = window.psc || {};
window.psc.order = new order();
window.psc.multiselect = new multiselect();
Alpine.store('theme', {
theme: Alpine.$persist("light").as('theme'),
light() {
this.theme = "light";
},
dark() {
this.theme = "dark"
}
})
Alpine.store('sideBar', {
isOpen: Alpine.$persist(true).as('sidebar_on'),
toggle() {
this.isOpen = ! this.isOpen
},
close() {
this.isOpen = false
},
open() {
this.isOpen = true
}
})
Alpine.start();
// Initialize PSC modules
window.psc.order.init();
window.psc.multiselect.init();
const initSummernote = () => {
if (!$.fn?.summernote) {
return;
}
$(document).on('blur', '.note-codable', function () {
const codeviewHtml = $(this).val();
const $summernoteTextarea = $(this).closest('.note-editor').siblings('textarea');
$summernoteTextarea.val(codeviewHtml);
});
const toolbar = [
['style', ['style']],
['font', ['bold', 'italic', 'underline', 'clear']],
['fontsize', ['fontsize']],
['color', ['color']],
['para', ['ul', 'ol', 'paragraph']],
['height', ['height']],
['table', ['table']],
['insert', ['link', 'hr', 'image']],
['view', ['fullscreen', 'codeview']],
['help', ['help']],
];
if (typeof window.mediaBundleBrowser === 'function') {
toolbar.push(['media', ['media']]);
}
$('.summernote').summernote({
height: 400,
toolbar,
});
};
document.addEventListener('DOMContentLoaded', initSummernote);