Added Dockerfile and CI/CD for Imapsync

Added Core Functionality for Imapsync
This commit is contained in:
2023-11-29 19:52:37 +01:00
parent ff966418b2
commit d74d7abc90
574 changed files with 956 additions and 89559 deletions

View File

@@ -5,7 +5,8 @@ export default defineNuxtConfig({
'@pinia/nuxt',
'@nuxt/ui',
'@nuxtjs/strapi',
'@nuxtjs/supabase'
'@nuxtjs/supabase',
"nuxt-editorjs"
],
routeRules: {
'/printing': {ssr:false}
@@ -14,7 +15,12 @@ export default defineNuxtConfig({
supabase: {
key: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InV3cHB2Y3hmbHJjc2lidXpzYmlsIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MDA5MzgxOTQsImV4cCI6MjAxNjUxNDE5NH0.CkxYSQH0uLfwx9GVUlO6AYMU2FMLAxGMrwEKvyPv7Oo",
url: "https://uwppvcxflrcsibuzsbil.supabase.co"
}
},
vite: {
optimizeDeps: {
include: ["@editorjs/editorjs"],
},
},
})

View File

@@ -18,6 +18,7 @@
"csv-parser": "^3.0.0",
"jsprintmanager": "^6.0.3",
"neat-csv": "^7.0.0",
"nuxt-editorjs": "^1.0.4",
"papaparse": "^5.4.1",
"pinia": "^2.1.7",
"uuidv4": "^6.2.13",
@@ -794,6 +795,11 @@
"mime": "^3.0.0"
}
},
"node_modules/@codexteam/icons": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/@codexteam/icons/-/icons-0.0.5.tgz",
"integrity": "sha512-s6H2KXhLz2rgbMZSkRm8dsMJvyUNZsEjxobBEg9ztdrb1B2H3pEzY6iTwI4XUPJWJ3c3qRKwV4TrO3J5jUdoQA=="
},
"node_modules/@css-render/plugin-bem": {
"version": "0.15.12",
"resolved": "https://registry.npmjs.org/@css-render/plugin-bem/-/plugin-bem-0.15.12.tgz",
@@ -892,6 +898,32 @@
"postcss-selector-parser": "^6.0.13"
}
},
"node_modules/@editorjs/editorjs": {
"version": "2.28.2",
"resolved": "https://registry.npmjs.org/@editorjs/editorjs/-/editorjs-2.28.2.tgz",
"integrity": "sha512-g6V0Nd3W9IIWMpvxDNTssQ6e4kxBp1Y0W4GIf8cXRlmcBp3TUjrgCYJQmNy3l2a6ZzhyBAoVSe8krJEq4g7PQw=="
},
"node_modules/@editorjs/header": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/@editorjs/header/-/header-2.8.1.tgz",
"integrity": "sha512-y0HVXRP7m2W617CWo3fsb5HhXmSLaRpb9GzFx0Vkp/HEm9Dz5YO1s8tC7R8JD3MskwoYh7V0hRFQt39io/r6hA==",
"dependencies": {
"@codexteam/icons": "^0.0.5"
}
},
"node_modules/@editorjs/list": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/@editorjs/list/-/list-1.9.0.tgz",
"integrity": "sha512-BQEvZW4vi0O0dBvGNljiKxiE89vMSHoM2Tu2OzKUndoj7pY9AxqpgCh1qvwIVsJAlG4Lbt/vBFQilnoStMmI6A==",
"dependencies": {
"@codexteam/icons": "^0.0.4"
}
},
"node_modules/@editorjs/list/node_modules/@codexteam/icons": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/@codexteam/icons/-/icons-0.0.4.tgz",
"integrity": "sha512-V8N/TY2TGyas4wLrPIFq7bcow68b3gu8DfDt1+rrHPtXxcexadKauRJL6eQgfG7Z0LCrN4boLRawR4S9gjIh/Q=="
},
"node_modules/@egoist/tailwindcss-icons": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@egoist/tailwindcss-icons/-/tailwindcss-icons-1.4.0.tgz",
@@ -8936,6 +8968,17 @@
}
}
},
"node_modules/nuxt-editorjs": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/nuxt-editorjs/-/nuxt-editorjs-1.0.4.tgz",
"integrity": "sha512-ibINkIDIuwq0MaP0WjICAWEOsM/5AqZ4na7w/ui6atPo9t5FWwUaWQqrz3hcMie96YzI2gmYqaYdDREAu0A27Q==",
"dependencies": {
"@editorjs/editorjs": "^2.25.0",
"@editorjs/header": "^2.6.2",
"@editorjs/list": "^1.7.0",
"@nuxt/kit": "^3.0.0-rc.4"
}
},
"node_modules/nuxt/node_modules/acorn": {
"version": "8.10.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
@@ -14235,6 +14278,11 @@
"mime": "^3.0.0"
}
},
"@codexteam/icons": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/@codexteam/icons/-/icons-0.0.5.tgz",
"integrity": "sha512-s6H2KXhLz2rgbMZSkRm8dsMJvyUNZsEjxobBEg9ztdrb1B2H3pEzY6iTwI4XUPJWJ3c3qRKwV4TrO3J5jUdoQA=="
},
"@css-render/plugin-bem": {
"version": "0.15.12",
"resolved": "https://registry.npmjs.org/@css-render/plugin-bem/-/plugin-bem-0.15.12.tgz",
@@ -14270,6 +14318,34 @@
"integrity": "sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==",
"requires": {}
},
"@editorjs/editorjs": {
"version": "2.28.2",
"resolved": "https://registry.npmjs.org/@editorjs/editorjs/-/editorjs-2.28.2.tgz",
"integrity": "sha512-g6V0Nd3W9IIWMpvxDNTssQ6e4kxBp1Y0W4GIf8cXRlmcBp3TUjrgCYJQmNy3l2a6ZzhyBAoVSe8krJEq4g7PQw=="
},
"@editorjs/header": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/@editorjs/header/-/header-2.8.1.tgz",
"integrity": "sha512-y0HVXRP7m2W617CWo3fsb5HhXmSLaRpb9GzFx0Vkp/HEm9Dz5YO1s8tC7R8JD3MskwoYh7V0hRFQt39io/r6hA==",
"requires": {
"@codexteam/icons": "^0.0.5"
}
},
"@editorjs/list": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/@editorjs/list/-/list-1.9.0.tgz",
"integrity": "sha512-BQEvZW4vi0O0dBvGNljiKxiE89vMSHoM2Tu2OzKUndoj7pY9AxqpgCh1qvwIVsJAlG4Lbt/vBFQilnoStMmI6A==",
"requires": {
"@codexteam/icons": "^0.0.4"
},
"dependencies": {
"@codexteam/icons": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/@codexteam/icons/-/icons-0.0.4.tgz",
"integrity": "sha512-V8N/TY2TGyas4wLrPIFq7bcow68b3gu8DfDt1+rrHPtXxcexadKauRJL6eQgfG7Z0LCrN4boLRawR4S9gjIh/Q=="
}
}
},
"@egoist/tailwindcss-icons": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@egoist/tailwindcss-icons/-/tailwindcss-icons-1.4.0.tgz",
@@ -20066,6 +20142,17 @@
}
}
},
"nuxt-editorjs": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/nuxt-editorjs/-/nuxt-editorjs-1.0.4.tgz",
"integrity": "sha512-ibINkIDIuwq0MaP0WjICAWEOsM/5AqZ4na7w/ui6atPo9t5FWwUaWQqrz3hcMie96YzI2gmYqaYdDREAu0A27Q==",
"requires": {
"@editorjs/editorjs": "^2.25.0",
"@editorjs/header": "^2.6.2",
"@editorjs/list": "^1.7.0",
"@nuxt/kit": "^3.0.0-rc.4"
}
},
"nypm": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.3.tgz",

View File

@@ -28,6 +28,7 @@
"csv-parser": "^3.0.0",
"jsprintmanager": "^6.0.3",
"neat-csv": "^7.0.0",
"nuxt-editorjs": "^1.0.4",
"papaparse": "^5.4.1",
"pinia": "^2.1.7",
"uuidv4": "^6.2.13",

View File

@@ -2,7 +2,11 @@
import * as JSPM from 'jsprintmanager'
let printers = []
let scanners = []
const doScanning = () => {
}
const doPrintZPL = () => {
/*if(this.selected_printer === '' && !this.print2default) {
@@ -44,6 +48,18 @@ const getPrinters = () => {
} else { console.warn("JSPM WS not open"); ok(printers); }
});
}
const getScanners = () => {
return new Promise((ok, err) => {
let scanners = [];
if(JSPM.JSPrintManager.websocket_status === JSPM.WSStatus.Open) {
JSPM.JSPrintManager.getScanners().then(function (myScanners) {
printers = myScanners;
console.log(scanners);
ok(scanners);
}).catch((e)=>err(e));
} else { console.warn("JSPM WS not open"); ok(printers); }
});
}
const initJSPM = () => {
JSPM.JSPrintManager.auto_reconnect = true
JSPM.JSPrintManager.start();
@@ -51,6 +67,8 @@ const initJSPM = () => {
JSPM.JSPrintManager.WS.onStatusChanged = () => {
console.log("Status Changed")
getPrinters().then(p => printers = p)
getScanners().then(s => scanners = s)
}
}
initJSPM()
@@ -58,6 +76,7 @@ initJSPM()
<template>
{{printers}}
{{scanners}}
<UButton @click="doPrintZPL">Print</UButton>

View File

@@ -3,9 +3,9 @@ definePageMeta({
middleware: "auth"
})
const {find, findOne,create, update} = useStrapi4()
//const {find, findOne,create, update} = useStrapi4()
const route = useRoute()
let project = (await findOne('projects',route.params.id)).data
//let project = (await findOne('projects',route.params.id)).data
const tabItems = [
{
key: "phases",
@@ -13,6 +13,9 @@ const tabItems = [
},{
key: "forms",
label: "Formulare"
},{
key: "description",
label: "Dokumentation"
},{
key: "timetracking",
label: "Zeiterfassung"
@@ -22,8 +25,110 @@ const selectedPhase = ref({})
const changesSaved = ref(true)
const default_data = {
time: 1660335428612,
blocks: [
{
id: "MnGi61oxdF",
type: "header",
data: {
text: "Welcome to nuxt-editorjs!",
level: 1,
},
},
{
id: "b_Ju7U6wPl",
type: "paragraph",
data: {
text: "This is a nuxt3 plugin for editorjs.",
},
},
{
id: "R3o5BpI-r9",
type: "paragraph",
data: {
text: "<b>A paragraph of text:</b>&nbsp;Lorem ipsum dolor sit amet consectetur adipisicing elit. Labore perspiciatis molestias neque autem cumque provident? Laudantium ad, quisquam quos nulla amet, perferendis recusandae voluptates eligendi cupiditate consectetur veniam! Ipsum, ullam?",
},
},
{
id: "b9mkw6ZO92",
type: "header",
data: {
text: "Heading 1",
level: 1,
},
},
{
id: "P2PZsHo2lq",
type: "header",
data: {
text: "Heading 2",
level: 2,
},
},
{
id: "hHJZjkW-TO",
type: "header",
data: {
text: "Heading 3",
level: 3,
},
},
{
id: "k8EDwa0oVG",
type: "header",
data: {
text: "Heading 4",
level: 4,
},
},
{
id: "62ciFnEFjZ",
type: "header",
data: {
text: "Heading 5",
level: 5,
},
},
{
id: "YCBcKhNqib",
type: "header",
data: {
text: "Heading 6",
level: 6,
},
},
{
id: "s_J3d5U8DA",
type: "list",
data: {
style: "ordered",
items: [
"An ordered list item",
"Another ordered list item",
"One more",
],
},
},
{
id: "kMyQbO156y",
type: "list",
data: {
style: "unordered",
items: ["An unordered list item!", "In italics?", "Or bold?"],
},
},
],
version: "2.25.0",
};
const dat = ref(default_data);
const save = () => {
console.log(foo);
};
const updatePhases = async () => {
await update('projects', route.params.id, {phases: project.attributes.phases})
//await update('projects', route.params.id, {phases: project.attributes.phases})
changesSaved.value = true
console.log("Updated")
}
@@ -33,7 +138,7 @@ const phaseInfo = ref({
notes: ""
})
const addPhase = async (phaseBefore) => {
/*const addPhase = async (phaseBefore) => {
let posBefore = phaseBefore.position
@@ -48,7 +153,7 @@ const addPhase = async (phaseBefore) => {
await updatePhases()
}
}*/
</script>
@@ -60,7 +165,7 @@ const addPhase = async (phaseBefore) => {
<div v-if="item.key === 'phases'" class="space-y-3">
<div id="phaseList">
<a
v-for="phase in project.attributes.phases"
v-for="phase in []"
@click="selectedPhase = phase"
>
<div
@@ -80,6 +185,9 @@ const addPhase = async (phaseBefore) => {
<div v-else-if="item.key === 'password'" class="space-y-3">
</div>
<div v-else-if="item.key === 'description'" class="space-y-3">
<client-only><editor-js v-model="dat" /></client-only>
</div>
</template>
</UTabs>
<!-- <div id="left">