Compare commits
10
Commits
56064d672f
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6628d8a06c | ||
|
|
e0aafd0734 | ||
|
|
12d5c96dcb | ||
|
|
0d2f5a1412 | ||
|
|
8a0be322d2 | ||
|
|
3116696a79 | ||
|
|
f01587a4f7 | ||
|
|
77ed6e0869 | ||
|
|
2c22601cd6 | ||
|
|
1a06080a82 |
@@ -49,7 +49,7 @@ func InitHttpServer(config *viper.Viper, dbHandler *sql.DB) HttpServer {
|
||||
router := gin.Default()
|
||||
|
||||
// initialize templates
|
||||
//router.LoadHTMLGlob("../templates/**/*.html")
|
||||
router.LoadHTMLGlob("../templates/**/*.html")
|
||||
|
||||
router.Use(cors.Default())
|
||||
|
||||
|
||||
@@ -0,0 +1,410 @@
|
||||
--
|
||||
-- PostgreSQL database dump
|
||||
--
|
||||
|
||||
\restrict iW2a413pT5zeXKomXxEgRQTiRNeAak9Q02Hycl1aipdPB0heQsWpdaKpyL4HOzT
|
||||
|
||||
-- Dumped from database version 18.4 (Debian 18.4-1.pgdg13+1)
|
||||
-- Dumped by pg_dump version 18.4
|
||||
|
||||
-- Started on 2026-09-26 09:01:38
|
||||
|
||||
SET statement_timeout = 0;
|
||||
SET lock_timeout = 0;
|
||||
SET idle_in_transaction_session_timeout = 0;
|
||||
SET transaction_timeout = 0;
|
||||
SET client_encoding = 'UTF8';
|
||||
SET standard_conforming_strings = on;
|
||||
SELECT pg_catalog.set_config('search_path', '', false);
|
||||
SET check_function_bodies = false;
|
||||
SET xmloption = content;
|
||||
SET client_min_messages = warning;
|
||||
SET row_security = off;
|
||||
|
||||
--
|
||||
-- TOC entry 6 (class 2615 OID 20689)
|
||||
-- Name: properties; Type: SCHEMA; Schema: -; Owner: tsindt
|
||||
--
|
||||
|
||||
CREATE SCHEMA properties;
|
||||
|
||||
|
||||
ALTER SCHEMA properties OWNER TO tsindt;
|
||||
|
||||
--
|
||||
-- TOC entry 3481 (class 0 OID 0)
|
||||
-- Dependencies: 6
|
||||
-- Name: SCHEMA properties; Type: COMMENT; Schema: -; Owner: tsindt
|
||||
--
|
||||
|
||||
COMMENT ON SCHEMA properties IS 'Alle Tabellen, die mit Properties und Values zu tun haben.';
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 220 (class 1259 OID 20691)
|
||||
-- Name: properties_id_seq; Type: SEQUENCE; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
CREATE SEQUENCE properties.properties_id_seq
|
||||
START WITH 1000000
|
||||
INCREMENT BY 1
|
||||
MINVALUE 1000000
|
||||
MAXVALUE 4999999
|
||||
CACHE 1;
|
||||
|
||||
|
||||
ALTER SEQUENCE properties.properties_id_seq OWNER TO tsindt;
|
||||
|
||||
--
|
||||
-- TOC entry 3482 (class 0 OID 0)
|
||||
-- Dependencies: 220
|
||||
-- Name: SEQUENCE properties_id_seq; Type: COMMENT; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
COMMENT ON SEQUENCE properties.properties_id_seq IS 'Zähler für property und value IDs ';
|
||||
|
||||
|
||||
SET default_tablespace = '';
|
||||
|
||||
SET default_table_access_method = heap;
|
||||
|
||||
--
|
||||
-- TOC entry 223 (class 1259 OID 20722)
|
||||
-- Name: properties; Type: TABLE; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
CREATE TABLE properties.properties (
|
||||
id bigint DEFAULT nextval('properties.properties_id_seq'::regclass) NOT NULL,
|
||||
name text,
|
||||
description text,
|
||||
parent_property_id bigint DEFAULT 0 NOT NULL,
|
||||
property_type_id bigint NOT NULL,
|
||||
products_groups_id bigint DEFAULT 0 NOT NULL,
|
||||
products_id bigint DEFAULT 0 NOT NULL,
|
||||
image_url text DEFAULT 'https://www.thomas-sindt.de/img/properties_group.svg'::text
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE properties.properties OWNER TO tsindt;
|
||||
|
||||
--
|
||||
-- TOC entry 3483 (class 0 OID 0)
|
||||
-- Dependencies: 223
|
||||
-- Name: TABLE properties; Type: COMMENT; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
COMMENT ON TABLE properties.properties IS 'Eigenschaften, die Listen von Werten enthalten und eine Information, von welchem property sich dieses Property ableitet. Ist parent_property_id = 0, dann ist dieses ein Root-Property zu dem referenzierten PropertyType.';
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3484 (class 0 OID 0)
|
||||
-- Dependencies: 223
|
||||
-- Name: COLUMN properties.name; Type: COMMENT; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
COMMENT ON COLUMN properties.properties.name IS 'Der Name sollte derselbe sein, wie der referenzierte Property Type.';
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3485 (class 0 OID 0)
|
||||
-- Dependencies: 223
|
||||
-- Name: COLUMN properties.products_groups_id; Type: COMMENT; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
COMMENT ON COLUMN properties.properties.products_groups_id IS 'Referenziert auf dieProduktgruppe, zu dem dieses Property gehört. Wenn es zu keiner Produktgruppe gehört ist diese referenz = 0';
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3486 (class 0 OID 0)
|
||||
-- Dependencies: 223
|
||||
-- Name: COLUMN properties.products_id; Type: COMMENT; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
COMMENT ON COLUMN properties.properties.products_id IS 'Referenziert auf das Produkt, zu dem dieses Property gehört. Wenn es zu keinem Produkt gehört ist diese referenz = 0';
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 222 (class 1259 OID 20707)
|
||||
-- Name: property_types; Type: TABLE; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
CREATE TABLE properties.property_types (
|
||||
id bigint DEFAULT nextval('properties.properties_id_seq'::regclass) NOT NULL,
|
||||
name text,
|
||||
description text,
|
||||
property_types_groups_id bigint NOT NULL,
|
||||
image_url text DEFAULT 'https://www.thomas-sindt.de/img/category.svg'::text
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE properties.property_types OWNER TO tsindt;
|
||||
|
||||
--
|
||||
-- TOC entry 3487 (class 0 OID 0)
|
||||
-- Dependencies: 222
|
||||
-- Name: TABLE property_types; Type: COMMENT; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
COMMENT ON TABLE properties.property_types IS 'Definition von properties';
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 221 (class 1259 OID 20698)
|
||||
-- Name: property_types_groups; Type: TABLE; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
CREATE TABLE properties.property_types_groups (
|
||||
id bigint DEFAULT nextval('properties.properties_id_seq'::regclass) CONSTRAINT property_types_group_id_not_null NOT NULL,
|
||||
name text,
|
||||
description text,
|
||||
parent_property_type_group_id bigint,
|
||||
image_url text DEFAULT 'https://thomas-sindt/img/category.svg'::text
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE properties.property_types_groups OWNER TO tsindt;
|
||||
|
||||
--
|
||||
-- TOC entry 3488 (class 0 OID 0)
|
||||
-- Dependencies: 221
|
||||
-- Name: TABLE property_types_groups; Type: COMMENT; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
COMMENT ON TABLE properties.property_types_groups IS 'Baumstruktur zur Organisation von Property types
|
||||
Wenn parent_property_types_group = 0, dann ist diese Gruppe eine Rootgruppe.';
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 224 (class 1259 OID 20743)
|
||||
-- Name: values; Type: TABLE; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
CREATE TABLE properties."values" (
|
||||
id bigint DEFAULT nextval('properties.properties_id_seq'::regclass) NOT NULL,
|
||||
value text,
|
||||
properties_id bigint NOT NULL,
|
||||
image_url text DEFAULT 'https://www.thomas-sindt.de/img/property.svg'::text
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE properties."values" OWNER TO tsindt;
|
||||
|
||||
--
|
||||
-- TOC entry 3474 (class 0 OID 20722)
|
||||
-- Dependencies: 223
|
||||
-- Data for Name: properties; Type: TABLE DATA; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
COPY properties.properties (id, name, description, parent_property_id, property_type_id, products_groups_id, products_id, image_url) FROM stdin;
|
||||
1000095 Spannungsversorgung (V) Spannungsversorgung (V) 0 1000094 0 0
|
||||
1000099 Leistung (W) Leistung 0 1000098 0 0
|
||||
1000117 Eingangsimpedanz (Ω) Wiederstand der Eingangsimpedanz 0 1000116 0 0
|
||||
1000120 Frequenzbereich (Hz‑kHz) Frequenzbereich (Hz‑kHz) 0 1000119 0 0
|
||||
1000123 Signal‑Rausch‑Verhältnis (dB) Signal‑Rausch‑Verhältnis (dB) 0 1000122 0 0
|
||||
1000131 Anschlüsse Anschlüsse 0 1000130 0 0
|
||||
1000142 Ausgangsimpedanz (Ω) Ausgangsimpedanz (Ω) 0 1000141 0 0
|
||||
1000146 Gewicht (kg) All mechanical properties 0 1000145 0 0
|
||||
1000152 Kapazität (kg) All mechanical properties 0 1000151 0 0
|
||||
1000155 Programms/Features All mechanical properties 0 1000154 0 0
|
||||
1000157 Wasserverbrauch pro Zyklus (L) All mechanical properties 0 1000156 0 0
|
||||
1000159 Material Innenraum All mechanical properties 0 1000158 0 0
|
||||
1000161 Kapazität/Volumen (L) All mechanical properties 0 1000160 0 0
|
||||
1000163 Schleuderdrehzahl (U/min) All mechanical properties 0 1000162 0 0
|
||||
1000166 Preis (USD) All other properties 0 1000165 0 0
|
||||
1000168 Zusatzfunktionen All other properties 0 1000167 0 0
|
||||
1000170 Bedienungsart All other properties 0 1000169 0 0
|
||||
1000172 Energieeffizienzklasse All other properties 0 1000171 0 0
|
||||
\.
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3473 (class 0 OID 20707)
|
||||
-- Dependencies: 222
|
||||
-- Data for Name: property_types; Type: TABLE DATA; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
COPY properties.property_types (id, name, description, property_types_groups_id, image_url) FROM stdin;
|
||||
1000094 Spannungsversorgung (V) Spannungsversorgung (V) 1000093
|
||||
1000098 Leistung (W) Leistung 1000093
|
||||
1000116 Eingangsimpedanz (Ω) Wiederstand der Eingangsimpedanz 1000093
|
||||
1000119 Frequenzbereich (Hz‑kHz) Frequenzbereich (Hz‑kHz) 1000093
|
||||
1000122 Signal‑Rausch‑Verhältnis (dB) Signal‑Rausch‑Verhältnis (dB) 1000093
|
||||
1000130 Anschlüsse Anschlüsse 1000093
|
||||
1000141 Ausgangsimpedanz (Ω) Ausgangsimpedanz (Ω) 1000093
|
||||
1000145 Abmessungen (mm) All mechanical properties 1000144
|
||||
1000151 Kapazität (kg) All mechanical properties 1000144
|
||||
1000154 Programms/Features All mechanical properties 1000144
|
||||
1000156 Wasserverbrauch pro Zyklus (L) All mechanical properties 1000144
|
||||
1000158 Material Innenraum All mechanical properties 1000144
|
||||
1000160 Kapazität/Volumen (L) All mechanical properties 1000144
|
||||
1000162 Schleuderdrehzahl (U/min) All mechanical properties 1000144
|
||||
1000165 Preis (USD) All other properties 1000164
|
||||
1000167 Zusatzfunktionen All other properties 1000164
|
||||
1000169 Bedienungsart All other properties 1000164
|
||||
1000171 Energieeffizienzklasse All other properties 1000164
|
||||
\.
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3472 (class 0 OID 20698)
|
||||
-- Dependencies: 221
|
||||
-- Data for Name: property_types_groups; Type: TABLE DATA; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
COPY properties.property_types_groups (id, name, description, parent_property_type_group_id, image_url) FROM stdin;
|
||||
1000092 X-CPQ Property Type Group for X-CPQ 0
|
||||
1000093 electrical All electrical property types 1000092
|
||||
1000144 mechanical All mechanical properties 1000092
|
||||
1000164 other All other properties 1000092
|
||||
\.
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3475 (class 0 OID 20743)
|
||||
-- Dependencies: 224
|
||||
-- Data for Name: values; Type: TABLE DATA; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
COPY properties."values" (id, value, properties_id, image_url) FROM stdin;
|
||||
1000096 220 1000095
|
||||
1000097 230 1000095
|
||||
1000100 0 1000099
|
||||
1000101 140 1000099
|
||||
1000102 130 1000099
|
||||
1000103 120 1000099
|
||||
1000104 110 1000099
|
||||
1000105 100 1000099
|
||||
1000106 90 1000099
|
||||
1000107 80 1000099
|
||||
1000108 70 1000099
|
||||
1000109 60 1000099
|
||||
1000110 50 1000099
|
||||
1000111 28 1000099
|
||||
1000112 26 1000099
|
||||
1000113 24 1000099
|
||||
1000114 22 1000099
|
||||
1000115 20 1000099
|
||||
1000118 10 1000117
|
||||
1000121 87‑108 1000120
|
||||
1000124 48 1000123
|
||||
1000125 46 1000123
|
||||
1000126 47 1000123
|
||||
1000127 45 1000123
|
||||
1000128 49 1000123
|
||||
1000129 44 1000123
|
||||
1000132 UKW+Bluetooth+DL 1000131
|
||||
1000133 UKW+Wi‑Fi+DL 1000131
|
||||
1000134 UKW+DL+Bluetooth 1000131
|
||||
1000135 UKW+Bluetooth+Wi‑Fi 1000131
|
||||
1000136 UKW+Wi‑Fi+DL 1000131
|
||||
1000137 UKW+Wi‑Fi 1000131
|
||||
1000138 UKW+Bluetooth 1000131
|
||||
1000139 UKW+DL 1000131
|
||||
1000140 UKW 1000131
|
||||
1000143 75 1000142
|
||||
1000147 3 1000146
|
||||
1000148 6 1000146
|
||||
1000149 4 1000146
|
||||
1000150 2 1000146
|
||||
1000153 0 1000152
|
||||
\.
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3489 (class 0 OID 0)
|
||||
-- Dependencies: 220
|
||||
-- Name: properties_id_seq; Type: SEQUENCE SET; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
SELECT pg_catalog.setval('properties.properties_id_seq', 1000172, true);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3318 (class 2606 OID 20733)
|
||||
-- Name: properties properties_pkey; Type: CONSTRAINT; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY properties.properties
|
||||
ADD CONSTRAINT properties_pkey PRIMARY KEY (id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3314 (class 2606 OID 20706)
|
||||
-- Name: property_types_groups property_types_group_pkey; Type: CONSTRAINT; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY properties.property_types_groups
|
||||
ADD CONSTRAINT property_types_group_pkey PRIMARY KEY (id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3316 (class 2606 OID 20716)
|
||||
-- Name: property_types property_types_pkey; Type: CONSTRAINT; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY properties.property_types
|
||||
ADD CONSTRAINT property_types_pkey PRIMARY KEY (id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3320 (class 2606 OID 20752)
|
||||
-- Name: values values_pkey; Type: CONSTRAINT; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY properties."values"
|
||||
ADD CONSTRAINT values_pkey PRIMARY KEY (id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3322 (class 2606 OID 20734)
|
||||
-- Name: properties parent_property_type_id_fk; Type: FK CONSTRAINT; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY properties.properties
|
||||
ADD CONSTRAINT parent_property_type_id_fk FOREIGN KEY (property_type_id) REFERENCES properties.property_types(id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3490 (class 0 OID 0)
|
||||
-- Dependencies: 3322
|
||||
-- Name: CONSTRAINT parent_property_type_id_fk ON properties; Type: COMMENT; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
COMMENT ON CONSTRAINT parent_property_type_id_fk ON properties.properties IS 'Verweißt auf den Property Type dieses Properties';
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3323 (class 2606 OID 20753)
|
||||
-- Name: values properties_id_fk; Type: FK CONSTRAINT; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY properties."values"
|
||||
ADD CONSTRAINT properties_id_fk FOREIGN KEY (properties_id) REFERENCES properties.properties(id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3321 (class 2606 OID 20717)
|
||||
-- Name: property_types property_types_groups_id_fk; Type: FK CONSTRAINT; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY properties.property_types
|
||||
ADD CONSTRAINT property_types_groups_id_fk FOREIGN KEY (property_types_groups_id) REFERENCES properties.property_types_groups(id);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 3491 (class 0 OID 0)
|
||||
-- Dependencies: 3321
|
||||
-- Name: CONSTRAINT property_types_groups_id_fk ON property_types; Type: COMMENT; Schema: properties; Owner: tsindt
|
||||
--
|
||||
|
||||
COMMENT ON CONSTRAINT property_types_groups_id_fk ON properties.property_types IS 'Referenz auf die Property Type Gruppe, zu der dieser Property Type gehört.';
|
||||
|
||||
|
||||
-- Completed on 2026-09-26 09:01:39
|
||||
|
||||
--
|
||||
-- PostgreSQL database dump complete
|
||||
--
|
||||
|
||||
\unrestrict iW2a413pT5zeXKomXxEgRQTiRNeAak9Q02Hycl1aipdPB0heQsWpdaKpyL4HOzT
|
||||
|
||||
@@ -18,4 +18,5 @@ func NewMainHandler(p *services.PropertyTypeService) *MainHandler {
|
||||
|
||||
func (h *MainHandler) Home(ctx *gin.Context) {
|
||||
// Implement the logic for the main handler's home endpoint here
|
||||
ctx.HTML(200, "index.html", nil)
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
main {
|
||||
padding: var(--main-content-padding);
|
||||
margin: 16px;
|
||||
height: calc(100vh - var(--header-height) - var(--footer-height) - 4 * var(--main-content-padding) - 64px);
|
||||
height: calc(100vh - var(--header-height) - var(--footer-height) - 4 * var(--main-content-padding));
|
||||
/* 32px für die Margen */
|
||||
overflow-y: auto;
|
||||
/* Scrollbar, wenn der Inhalt zu groß ist */
|
||||
@@ -11,8 +11,49 @@ main {
|
||||
border-radius: var(--box-border-radius);
|
||||
}
|
||||
|
||||
nav {
|
||||
height: calc(100vh - var(--header-height) - var(--footer-height) - 4 * var(--main-content-padding));
|
||||
overflow-y: auto;
|
||||
/* Scrollbar, wenn der Inhalt zu groß ist */
|
||||
display: flex; /* Macht die Liste horizontal */
|
||||
justify-content: flex-start; /* Elemente am Anfang ausrichten */
|
||||
flex-direction: column; /* Elemente vertikal anordnen */
|
||||
border: 1px solid var(--secondary-color);
|
||||
border-radius: var(--box-border-radius);
|
||||
margin-left: 16px;
|
||||
@media (max-width: 768px) {
|
||||
height: 100%;
|
||||
}
|
||||
padding: 5px;
|
||||
background-color: var(--primary-color);
|
||||
color: var(--secondary-font-color);
|
||||
}
|
||||
|
||||
nav ul {
|
||||
list-style-type: none; /* Entfernt die Standard-Aufzählungszeichen */
|
||||
|
||||
flex-wrap: wrap; /* Elemente umbrechen, wenn der Platz nicht ausreicht */
|
||||
gap: 20px; /* Abstand zwischen den Listenelementen */
|
||||
}
|
||||
|
||||
nav ul li a {
|
||||
text-decoration: none; /* Entfernt die Unterstreichung */
|
||||
color: var(--secondary-font-color); /* Setzt die Schriftfarbe */
|
||||
}
|
||||
nav ul li a:hover {
|
||||
text-decoration: underline; /* Unterstreichung beim Überfahren mit der Maus */
|
||||
font-weight: bold; /* Macht den Text fett */
|
||||
}
|
||||
|
||||
.rootNode {
|
||||
padding-top: 28px;
|
||||
/* Einrückung für die Wurzelknoten */
|
||||
color: var(--primary-color);
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.editor-container {
|
||||
height: calc(100vh - var(--header-height) - var(--footer-height) - 4 * var(--main-content-padding) - 132px);
|
||||
height: calc(100vh - var(--header-height) - var(--footer-height) - 4 * var(--main-content-padding) - 96px);
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
/* Elemente horizontal anordnen */
|
||||
@@ -48,13 +89,12 @@ main {
|
||||
}
|
||||
|
||||
.leaf {
|
||||
padding-left: 20px;
|
||||
padding-left: 28px;
|
||||
/* Einrückung für Blätter */
|
||||
color: var(--primary-color);
|
||||
font-weight: lighter;
|
||||
}
|
||||
|
||||
|
||||
/* form styles */
|
||||
.cform {
|
||||
display: flex;
|
||||
@@ -101,3 +141,28 @@ main {
|
||||
.mt-16 {
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
/* Table styles */
|
||||
table {
|
||||
margin: 16px;
|
||||
width: 80%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table, th, td {
|
||||
border: 1px solid var(--primary-color);
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: 8px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
td {
|
||||
background-color: var(--data-background-color);
|
||||
}
|
||||
|
||||
th {
|
||||
color: var(--primary-color);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
@@ -7,5 +7,18 @@ footer {
|
||||
border-radius: var(--box-border-radius);
|
||||
color: var(--secondary-font-color);
|
||||
margin: 16px;
|
||||
padding: 10px;
|
||||
@media (max-width: 768px) {
|
||||
padding: 0px; /* Adjust the padding for smaller screens */
|
||||
margin: 8px; /* Adjust the margin for smaller screens */
|
||||
}
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration: none; /* Entfernt die Unterstreichung */
|
||||
color: var(--secondary-font-color); /* Setzt die Schriftfarbe */
|
||||
}
|
||||
footer a:hover {
|
||||
text-decoration: underline; /* Unterstreichung beim Überfahren mit der Maus */
|
||||
font-weight: bold; /* Macht den Text fett */
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
--data-background-color: #ffffff;
|
||||
|
||||
/* Dimensions */
|
||||
--header-height: 32px;
|
||||
--header-height: 64px;
|
||||
--footer-height: 32px;
|
||||
--main-content-padding: 20px;
|
||||
--box-border-radius: 10px;
|
||||
@@ -32,8 +32,60 @@
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
// 12 Spalten Grid System
|
||||
.row::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
[class*="col-"] {
|
||||
float: left;
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
/* Responsive Anpassungen Handy */
|
||||
[class*="col-"] {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Responsive Anpassungen Tablet */
|
||||
@media screen and (min-width: 600px) {
|
||||
.col-s-1 {width: 8.33%;}
|
||||
.col-s-2 {width: 16.66%;}
|
||||
.col-s-3 {width: 25%;}
|
||||
.col-s-4 {width: 33.33%;}
|
||||
.col-s-5 {width: 41.66%;}
|
||||
.col-s-6 {width: 50%;}
|
||||
.col-s-7 {width: 58.33%;}
|
||||
.col-s-8 {width: 66.66%;}
|
||||
.col-s-9 {width: 75%;}
|
||||
.col-s-10 {width: 83.33%;}
|
||||
.col-s-11 {width: 91.66%;}
|
||||
.col-s-12 {width: 100%;}
|
||||
}
|
||||
|
||||
/* Spaltenbreiten für 12 Spalten Grid */
|
||||
@media screen and (min-width: 768px) {
|
||||
.col-1 {width: 8.33%;}
|
||||
.col-2 {width: 16.66%;}
|
||||
.col-3 {width: 25%;}
|
||||
.col-4 {width: 33.33%;}
|
||||
.col-5 {width: 41.66%;}
|
||||
.col-6 {width: 50%;}
|
||||
.col-7 {width: 58.33%;}
|
||||
.col-8 {width: 66.66%;}
|
||||
.col-9 {width: 75%;}
|
||||
.col-10 {width: 83.33%;}
|
||||
.col-11 {width: 91.66%;}
|
||||
.col-12 {width: 100%;}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* 2. Schriftart anwenden und Ränder entfernen*/
|
||||
body {
|
||||
font-family: 'Inter', Arial, sans-serif;
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
header {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
flex-direction: row;
|
||||
@media (max-width: 768px) {
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
align-items: center;
|
||||
|
||||
height: var(--header-height);
|
||||
@@ -21,28 +27,22 @@ header img {
|
||||
padding-right: 16px; /* Space between the image and the header text */
|
||||
}
|
||||
|
||||
header h1 {
|
||||
font-weight: 600;
|
||||
font-size: 2em; /* Adjust the font size as needed */
|
||||
margin-left: 5px;
|
||||
padding: 16px;
|
||||
@media (max-width: 768px) {
|
||||
font-size: 1em; /* Adjust the font size for smaller screens */
|
||||
padding: 0px; /* Adjust the padding for smaller screens */
|
||||
}
|
||||
}
|
||||
|
||||
header p {
|
||||
font-weight: 100;
|
||||
margin-left: 16px;
|
||||
padding-right: 16px;
|
||||
}
|
||||
|
||||
nav {
|
||||
margin: 16px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
nav ul {
|
||||
list-style-type: none; /* Entfernt die Standard-Aufzählungszeichen */
|
||||
display: flex; /* Macht die Liste horizontal */
|
||||
gap: 20px; /* Abstand zwischen den Listenelementen */
|
||||
}
|
||||
|
||||
nav ul li a {
|
||||
text-decoration: none; /* Entfernt die Unterstreichung */
|
||||
color: var(--secondary-font-color); /* Setzt die Schriftfarbe */
|
||||
}
|
||||
nav ul li a:hover {
|
||||
text-decoration: underline; /* Unterstreichung beim Überfahren mit der Maus */
|
||||
font-weight: bold; /* Macht den Text fett */
|
||||
}
|
||||
|
||||
@@ -0,0 +1,157 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="/static/css/scpq_global.css">
|
||||
<link rel="stylesheet" href="/static/css/scpq_header.css">
|
||||
<link rel="stylesheet" href="/static/css/scpq_footer.css">
|
||||
<link rel="stylesheet" href="/static/css/scpq_content.css">
|
||||
<title>Simply CPQ Material Editor V2</title>
|
||||
</head>
|
||||
<body>
|
||||
<header class="row">
|
||||
<div class="col-8 col-s-12">
|
||||
<h1>Simply CPQ Material Editor V2</h1>
|
||||
</div>
|
||||
</header>
|
||||
<div class="row">
|
||||
<nav class="col-2 col-s-12">
|
||||
<ul>
|
||||
<li>
|
||||
<ul>
|
||||
<details closed>
|
||||
<summary>
|
||||
Eigenschaften
|
||||
</summary>
|
||||
<ul class="node">
|
||||
<li class="leaf"><a href="#">Unterpunkt 1</a></li>
|
||||
<li class="leaf"><a href="#">Unterpunkt 2</a></li>
|
||||
</ul>
|
||||
</details>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<ul>
|
||||
<details closed>
|
||||
<summary>
|
||||
Produkte
|
||||
</summary>
|
||||
<ul class="node">
|
||||
<li class="leaf"><a href="#">Unterpunkt 1</a></li>
|
||||
<li class="leaf"><a href="#">Unterpunkt 2</a></li>
|
||||
</ul>
|
||||
</details>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<ul>
|
||||
<details closed>
|
||||
<summary>
|
||||
Regeln
|
||||
</summary>
|
||||
<ul class="node">
|
||||
<li class="leaf"><a href="#">Unterpunkt 1</a></li>
|
||||
<li class="leaf"><a href="#">Unterpunkt 2</a></li>
|
||||
</ul>
|
||||
</details>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<ul>
|
||||
<details closed>
|
||||
<summary>
|
||||
Preiskalkulation
|
||||
</summary>
|
||||
<ul class="node">
|
||||
<li class="leaf"><a href="#">Unterpunkt 1</a></li>
|
||||
<li class="leaf"><a href="#">Unterpunkt 2</a></li>
|
||||
</ul>
|
||||
</details>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<ul>
|
||||
<details closed>
|
||||
<summary>
|
||||
Übersetzungen
|
||||
</summary>
|
||||
<ul class="node">
|
||||
<li class="leaf"><a href="#">Unterpunkt 1</a></li>
|
||||
<li class="leaf"><a href="#">Unterpunkt 2</a></li>
|
||||
</ul>
|
||||
</details>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<main>
|
||||
<div class="col-6 col-s-6">
|
||||
<h3>Property-Type Group </h3>
|
||||
<section class="editor-view">
|
||||
<section id="PropertyTypeGroupData">
|
||||
<form class="cform" method="post" action="/updatePropertyTypeGroup">
|
||||
<label for="propertyTypeGroupID">ID:</label>
|
||||
<input type="text" id="propertyTypeGroupID" name="propertyTypeGroupID" value="{PropertyTypeGroupID}" disabled>
|
||||
<label for="propertyTypeGroupName">Name:</label>
|
||||
<input type="text" id="propertyTypeGroupName" name="propertyTypeGroupName" value="{PropertyTypeGroupName}">
|
||||
<label for="propertyTypeGroupDescription">Beschreibung:</label>
|
||||
<textarea id="propertyTypeGroupDescription" name="propertyTypeGroupDescription">{PropertyTypeGroupDescription}</textarea>
|
||||
<div class="button_row">
|
||||
<button type="submit">Speichern</button>
|
||||
<button type="submit">Neu</button>
|
||||
<button type="submit">Löschen</button>
|
||||
</div>
|
||||
</form>
|
||||
</section>
|
||||
</section>
|
||||
</div>
|
||||
<div class="col-6 col-s-12">
|
||||
<div class="aside">
|
||||
<h3>Values für {PropertyTypeName}</h3>
|
||||
<section class="editor-view">
|
||||
<section id="ValueData">
|
||||
<table>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>Value 1</td>
|
||||
<td>Description 1</td>
|
||||
<td>
|
||||
<div class="button_row">
|
||||
<button type="button">Edit</button>
|
||||
<button type="button">Delete</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>Value 2</td>
|
||||
<td>Description 2</td>
|
||||
<td>
|
||||
<div class="button_row">
|
||||
<button type="button">Edit</button>
|
||||
<button type="button">Delete</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</section>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div> <!-- Closing the initial row div -->
|
||||
<footer class="row">
|
||||
<div class="col-12 col-s-12">
|
||||
<h6>© 2026 Simply CPQ - All rights reserved - contact: <a href="mailto:Thomas.Sindt@gmx.de">Thomas.Sindt@gmx.de</a></h6>
|
||||
</div>
|
||||
</footer> <!-- Closing the footer row div -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,20 @@
|
||||
# Use postgres/example user/password credentials
|
||||
|
||||
services:
|
||||
|
||||
db:
|
||||
image: postgres
|
||||
restart: always
|
||||
# set shared memory limit when using docker compose
|
||||
shm_size: 128mb
|
||||
# or set shared memory limit when deploy via swarm stack
|
||||
#volumes:
|
||||
# - type: tmpfs
|
||||
# target: /dev/shm
|
||||
# tmpfs:
|
||||
# size: 134217728 # 128*2^20 bytes = 128Mb
|
||||
ports:
|
||||
- 5432:5432
|
||||
environment:
|
||||
POSTGRES_USER: tsindt
|
||||
POSTGRES_PASSWORD: XD14ko8d
|
||||
Reference in New Issue
Block a user