Commit 6f12c2ea authored by Jan Koester's avatar Jan Koester
Browse files

test

parent 4813c5ed
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -1279,9 +1279,9 @@ static void renderSettingsJson(json_object *jroot, libhtmlpp::HtmlString &out, c
            bool active = jpta && json_object_get_boolean(jpta);
            out << "<a href=\"" << (jptu ? json_object_get_string(jptu) : "#") << "\" style=\""
                << "padding:8px 18px;text-decoration:none;font-size:0.95em;border-bottom:2px solid "
                << (active ? "var(--blogi-accent,#3ad43a)" : "transparent")
                << (active ? "var(--blogi-accent,#83bb32)" : "transparent")
                << ";margin-bottom:-2px;color:"
                << (active ? "var(--blogi-accent,#3ad43a)" : "var(--blogi-text-muted,#aaa)")
                << (active ? "var(--blogi-accent,#83bb32)" : "var(--blogi-text-muted,#aaa)")
                << ";\">" << (jptl ? json_object_get_string(jptl) : "") << "</a>";
        }
        out << "</div>";
@@ -1551,7 +1551,7 @@ static void renderSettingsJson(json_object *jroot, libhtmlpp::HtmlString &out, c
                        // Modal overlay
                        << "var mo=document.createElement('div');mo.id='smb-overlay';"
                        << "mo.style.cssText='display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.6);z-index:9999;justify-content:center;align-items:center;';"
                        << "var md=document.createElement('div');md.style.cssText='background:var(--blogi-surface,#31363b);border-radius:8px;width:620px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,0.5);';"
                        << "var md=document.createElement('div');md.style.cssText='background:var(--blogi-surface,#45484b);border-radius:8px;width:620px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,0.5);';"
                        // Header
                        << "var hdr=document.createElement('div');hdr.style.cssText='display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--blogi-border,#3a3f44);';"
                        << "var ht=document.createElement('span');ht.id='smb-title';ht.textContent='Select Image';ht.style.cssText='font-weight:600;color:var(--blogi-text,#eee);';"
@@ -1580,7 +1580,7 @@ static void renderSettingsJson(json_object *jroot, libhtmlpp::HtmlString &out, c
                        << "var b=document.createElement('div');"
                        << "b.style.cssText='padding:8px 12px;margin:4px 0;background:var(--blogi-bg-alt,#2a2e32);border-radius:4px;cursor:pointer;color:var(--blogi-text,#eee);';"
                        << "b.textContent=a.name+' ('+a.media_count+')';"
                        << "b.onmouseover=function(){b.style.background='var(--blogi-accent,#3ad43a)';b.style.color='#000';};"
                        << "b.onmouseover=function(){b.style.background='var(--blogi-accent,#83bb32)';b.style.color='#000';};"
                        << "b.onmouseout=function(){b.style.background='var(--blogi-bg-alt,#2a2e32)';b.style.color='var(--blogi-text,#eee)';};"
                        << "b.onclick=function(){smbLoadAlbum(a.id,a.name);};"
                        << "ct.appendChild(b);"
@@ -1596,7 +1596,7 @@ static void renderSettingsJson(json_object *jroot, libhtmlpp::HtmlString &out, c
                        // Back button
                        << "var bk=document.createElement('div');"
                        << "bk.textContent='\\u2190 Back to albums';"
                        << "bk.style.cssText='cursor:pointer;color:var(--blogi-accent,#3ad43a);margin-bottom:10px;font-size:0.9em;';"
                        << "bk.style.cssText='cursor:pointer;color:var(--blogi-accent,#83bb32);margin-bottom:10px;font-size:0.9em;';"
                        << "bk.onclick=function(){openSettingsMediaBrowser(_smbTarget);};"
                        << "ct.appendChild(bk);"
                        << "if(!d.media||!d.media.length){var em=document.createElement('p');em.textContent='No images in this album.';ct.appendChild(em);return;}"
@@ -1614,7 +1614,7 @@ static void renderSettingsJson(json_object *jroot, libhtmlpp::HtmlString &out, c
                        << "var sp=document.createElement('span');sp.textContent=m.filename;sp.style.cssText='font-size:0.75em;color:var(--blogi-text-muted,#aaa);text-align:center;padding:4px;word-break:break-all;';"
                        << "c.appendChild(sp);"
                        << "}"
                        << "c.onmouseover=function(){c.style.borderColor='var(--blogi-accent,#3ad43a)';};"
                        << "c.onmouseover=function(){c.style.borderColor='var(--blogi-accent,#83bb32)';};"
                        << "c.onmouseout=function(){c.style.borderColor='transparent';};"
                        << "c.onclick=function(){"
                        << "var hd=document.getElementById(_smbTarget);"
@@ -1793,7 +1793,7 @@ static void renderSettingsJson(json_object *jroot, libhtmlpp::HtmlString &out, c
                << ".set-tabs{display:flex;gap:0;border-bottom:2px solid var(--blogi-border,#3a3f44);margin-bottom:12px;}"
                << ".set-tab-btn{padding:8px 18px;border:none;background:none;color:var(--blogi-text-muted,#aaa);cursor:pointer;font-size:0.95em;border-bottom:2px solid transparent;margin-bottom:-2px;}"
                << ".set-tab-btn:hover{color:var(--blogi-text,#eee);}"
                << ".set-tab-btn.active{color:var(--blogi-accent,#3ad43a);border-bottom-color:var(--blogi-accent,#3ad43a);}"
                << ".set-tab-btn.active{color:var(--blogi-accent,#83bb32);border-bottom-color:var(--blogi-accent,#83bb32);}"
                << ".set-tab-panel{display:none;}"
                << ".set-tab-panel.active{display:block;}"
                << "</style>";
+51 −51
Original line number Diff line number Diff line
@@ -840,23 +840,23 @@ void blogi::Theme::injectThemeColors(const int tid, libhtmlpp::HtmlElement *inde

    struct ColorVar { const char *dbSuffix; const char *cssVar; const char *darkDefault; const char *lightDefault; };
    ColorVar vars[] = {
        {"BG",           "--blogi-bg",            "#232627",  "rgba(235,237,240,1)"},
        {"SURFACE",      "--blogi-surface",       "#31363b",  "rgba(245,246,248,1)"},
        {"SURFACE_A",    "--blogi-surface-a",     "rgba(49,54,59,0.7)", "rgba(245,246,248,0.88)"},
        {"TEXT",         "--blogi-text",           "#eeeeee",  "rgba(44,62,80,1)"},
        {"TEXT_MUTED",   "--blogi-text-muted",     "#aaaaaa",  "rgba(127,140,141,1)"},
        {"ACCENT",       "--blogi-accent",        "#3ad43a",  "rgba(39,148,94,1)"},
        {"ACCENT_DARK",  "--blogi-accent-dark",   "#2ea82e",  "rgba(30,122,75,1)"},
        {"BORDER",       "--blogi-border",        "#3a3f44",  "rgba(220,225,230,1)"},
        {"BG_ALT",       "--blogi-bg-alt",        "#2a2e32",  "rgba(232,236,240,1)"},
        {"ERROR",        "--blogi-error",         "#F36947",  "rgba(231,76,60,1)"},
        {"ERROR_BG",     "--blogi-error-bg",      "#3d1f1a",  "rgba(253,236,234,1)"},
        {"ERROR_TEXT",   "--blogi-error-text",    "#ff9a8a",  "rgba(192,57,43,1)"},
        {"SUCCESS_BG",   "--blogi-success-bg",    "#1a3d1f",  "rgba(234,250,241,1)"},
        {"SUCCESS_TEXT", "--blogi-success-text",   "#8aff9a",  "rgba(39,174,96,1)"},
        {"NAV_ACTIVE",   "--blogi-nav-active",    "#3daee9",  "rgba(41,128,185,1)"},
        {"NAV_HOVER",    "--blogi-nav-hover",     "#232629",  "rgba(232,236,240,1)"},
        {"NAV_BORDER",   "--blogi-nav-border",    "#222529",  "rgba(189,195,199,1)"},
        {"BG",           "--blogi-bg",            "#3a3d40",  "rgba(236,238,240,1)"},
        {"SURFACE",      "--blogi-surface",       "#45484b",  "rgba(255,255,255,1)"},
        {"SURFACE_A",    "--blogi-surface-a",     "rgba(69,72,75,0.75)", "rgba(255,255,255,0.9)"},
        {"TEXT",         "--blogi-text",           "#eceef0",  "rgba(68,68,68,1)"},
        {"TEXT_MUTED",   "--blogi-text-muted",     "#aeb3a6",  "rgba(106,112,96,1)"},
        {"ACCENT",       "--blogi-accent",        "#83bb32",  "rgba(92,179,16,1)"},
        {"ACCENT_DARK",  "--blogi-accent-dark",   "#6dbb28",  "rgba(69,134,12,1)"},
        {"BORDER",       "--blogi-border",        "#55585b",  "rgba(234,234,234,1)"},
        {"BG_ALT",       "--blogi-bg-alt",        "#33363a",  "rgba(247,248,245,1)"},
        {"ERROR",        "--blogi-error",         "#ec6643",  "rgba(236,102,67,1)"},
        {"ERROR_BG",     "--blogi-error-bg",      "#4a332c",  "rgba(253,240,235,1)"},
        {"ERROR_TEXT",   "--blogi-error-text",    "#ff9a7a",  "rgba(179,64,31,1)"},
        {"SUCCESS_BG",   "--blogi-success-bg",    "#38402c",  "rgba(238,247,230,1)"},
        {"SUCCESS_TEXT", "--blogi-success-text",   "#a8d878",  "rgba(69,134,12,1)"},
        {"NAV_ACTIVE",   "--blogi-nav-active",    "#83bb32",  "rgba(92,179,16,1)"},
        {"NAV_HOVER",    "--blogi-nav-hover",     "#3f4245",  "rgba(225,228,230,1)"},
        {"NAV_BORDER",   "--blogi-nav-border",    "#2f3234",  "rgba(189,195,199,1)"},
    };

    // Build dark values
@@ -935,23 +935,23 @@ json_object* blogi::Theme::getThemeColors(const int tid){

    struct ColorVar { const char *dbSuffix; const char *cssVar; const char *darkDefault; const char *lightDefault; };
    ColorVar vars[] = {
        {"BG",           "--blogi-bg",            "#232627",  "rgba(235,237,240,1)"},
        {"SURFACE",      "--blogi-surface",       "#31363b",  "rgba(245,246,248,1)"},
        {"SURFACE_A",    "--blogi-surface-a",     "rgba(49,54,59,0.7)", "rgba(245,246,248,0.88)"},
        {"TEXT",         "--blogi-text",           "#eeeeee",  "rgba(44,62,80,1)"},
        {"TEXT_MUTED",   "--blogi-text-muted",     "#aaaaaa",  "rgba(127,140,141,1)"},
        {"ACCENT",       "--blogi-accent",        "#3ad43a",  "rgba(39,148,94,1)"},
        {"ACCENT_DARK",  "--blogi-accent-dark",   "#2ea82e",  "rgba(30,122,75,1)"},
        {"BORDER",       "--blogi-border",        "#3a3f44",  "rgba(220,225,230,1)"},
        {"BG_ALT",       "--blogi-bg-alt",        "#2a2e32",  "rgba(232,236,240,1)"},
        {"ERROR",        "--blogi-error",         "#F36947",  "rgba(231,76,60,1)"},
        {"ERROR_BG",     "--blogi-error-bg",      "#3d1f1a",  "rgba(253,236,234,1)"},
        {"ERROR_TEXT",   "--blogi-error-text",    "#ff9a8a",  "rgba(192,57,43,1)"},
        {"SUCCESS_BG",   "--blogi-success-bg",    "#1a3d1f",  "rgba(234,250,241,1)"},
        {"SUCCESS_TEXT", "--blogi-success-text",   "#8aff9a",  "rgba(39,174,96,1)"},
        {"NAV_ACTIVE",   "--blogi-nav-active",    "#3daee9",  "rgba(41,128,185,1)"},
        {"NAV_HOVER",    "--blogi-nav-hover",     "#232629",  "rgba(232,236,240,1)"},
        {"NAV_BORDER",   "--blogi-nav-border",    "#222529",  "rgba(189,195,199,1)"},
        {"BG",           "--blogi-bg",            "#3a3d40",  "rgba(236,238,240,1)"},
        {"SURFACE",      "--blogi-surface",       "#45484b",  "rgba(255,255,255,1)"},
        {"SURFACE_A",    "--blogi-surface-a",     "rgba(69,72,75,0.75)", "rgba(255,255,255,0.9)"},
        {"TEXT",         "--blogi-text",           "#eceef0",  "rgba(68,68,68,1)"},
        {"TEXT_MUTED",   "--blogi-text-muted",     "#aeb3a6",  "rgba(106,112,96,1)"},
        {"ACCENT",       "--blogi-accent",        "#83bb32",  "rgba(92,179,16,1)"},
        {"ACCENT_DARK",  "--blogi-accent-dark",   "#6dbb28",  "rgba(69,134,12,1)"},
        {"BORDER",       "--blogi-border",        "#55585b",  "rgba(234,234,234,1)"},
        {"BG_ALT",       "--blogi-bg-alt",        "#33363a",  "rgba(247,248,245,1)"},
        {"ERROR",        "--blogi-error",         "#ec6643",  "rgba(236,102,67,1)"},
        {"ERROR_BG",     "--blogi-error-bg",      "#4a332c",  "rgba(253,240,235,1)"},
        {"ERROR_TEXT",   "--blogi-error-text",    "#ff9a7a",  "rgba(179,64,31,1)"},
        {"SUCCESS_BG",   "--blogi-success-bg",    "#38402c",  "rgba(238,247,230,1)"},
        {"SUCCESS_TEXT", "--blogi-success-text",   "#a8d878",  "rgba(69,134,12,1)"},
        {"NAV_ACTIVE",   "--blogi-nav-active",    "#83bb32",  "rgba(92,179,16,1)"},
        {"NAV_HOVER",    "--blogi-nav-hover",     "#3f4245",  "rgba(225,228,230,1)"},
        {"NAV_BORDER",   "--blogi-nav-border",    "#2f3234",  "rgba(189,195,199,1)"},
    };

    json_object *root = json_object_new_object();
@@ -1060,23 +1060,23 @@ json_object* blogi::Theme::SettingsTheme(const int tid, libhttppp::HttpRequest &

    struct ColorDef { const char *suffix; const char *cssVar; const char *label; const char *darkDef; const char *lightDef; };
    ColorDef colors[] = {
        {"BG",           "--blogi-bg",            "Background",        "#232627",  "rgba(235,237,240,1)"},
        {"SURFACE",      "--blogi-surface",       "Surface",           "#31363b",  "rgba(245,246,248,1)"},
        {"SURFACE_A",    "--blogi-surface-a",     "Surface (alpha)",   "rgba(49,54,59,0.7)", "rgba(245,246,248,0.88)"},
        {"TEXT",         "--blogi-text",          "Text",              "#eeeeee",  "rgba(44,62,80,1)"},
        {"TEXT_MUTED",   "--blogi-text-muted",    "Text Muted",        "#aaaaaa",  "rgba(127,140,141,1)"},
        {"ACCENT",       "--blogi-accent",        "Accent / Links",    "#3ad43a",  "rgba(39,148,94,1)"},
        {"ACCENT_DARK",  "--blogi-accent-dark",   "Accent Dark",       "#2ea82e",  "rgba(30,122,75,1)"},
        {"BORDER",       "--blogi-border",        "Border",            "#3a3f44",  "rgba(220,225,230,1)"},
        {"BG_ALT",       "--blogi-bg-alt",        "Background Alt",    "#2a2e32",  "rgba(232,236,240,1)"},
        {"ERROR",        "--blogi-error",         "Error",             "#F36947",  "rgba(231,76,60,1)"},
        {"ERROR_BG",     "--blogi-error-bg",      "Error Background",  "#3d1f1a",  "rgba(253,236,234,1)"},
        {"ERROR_TEXT",   "--blogi-error-text",    "Error Text",        "#ff9a8a",  "rgba(192,57,43,1)"},
        {"SUCCESS_BG",   "--blogi-success-bg",    "Success Background","#1a3d1f",  "rgba(234,250,241,1)"},
        {"SUCCESS_TEXT", "--blogi-success-text",  "Success Text",      "#8aff9a",  "rgba(39,174,96,1)"},
        {"NAV_ACTIVE",   "--blogi-nav-active",    "Nav Active",        "#3daee9",  "rgba(41,128,185,1)"},
        {"NAV_HOVER",    "--blogi-nav-hover",     "Nav Hover",         "#232629",  "rgba(232,236,240,1)"},
        {"NAV_BORDER",   "--blogi-nav-border",    "Nav Border",        "#222529",  "rgba(189,195,199,1)"},
        {"BG",           "--blogi-bg",            "Background",        "#3a3d40",  "rgba(236,238,240,1)"},
        {"SURFACE",      "--blogi-surface",       "Surface",           "#45484b",  "rgba(255,255,255,1)"},
        {"SURFACE_A",    "--blogi-surface-a",     "Surface (alpha)",   "rgba(69,72,75,0.75)", "rgba(255,255,255,0.9)"},
        {"TEXT",         "--blogi-text",          "Text",              "#eceef0",  "rgba(68,68,68,1)"},
        {"TEXT_MUTED",   "--blogi-text-muted",    "Text Muted",        "#aeb3a6",  "rgba(106,112,96,1)"},
        {"ACCENT",       "--blogi-accent",        "Accent / Links",    "#83bb32",  "rgba(92,179,16,1)"},
        {"ACCENT_DARK",  "--blogi-accent-dark",   "Accent Dark",       "#6dbb28",  "rgba(69,134,12,1)"},
        {"BORDER",       "--blogi-border",        "Border",            "#55585b",  "rgba(234,234,234,1)"},
        {"BG_ALT",       "--blogi-bg-alt",        "Background Alt",    "#33363a",  "rgba(247,248,245,1)"},
        {"ERROR",        "--blogi-error",         "Error",             "#ec6643",  "rgba(236,102,67,1)"},
        {"ERROR_BG",     "--blogi-error-bg",      "Error Background",  "#4a332c",  "rgba(253,240,235,1)"},
        {"ERROR_TEXT",   "--blogi-error-text",    "Error Text",        "#ff9a7a",  "rgba(179,64,31,1)"},
        {"SUCCESS_BG",   "--blogi-success-bg",    "Success Background","#38402c",  "rgba(238,247,230,1)"},
        {"SUCCESS_TEXT", "--blogi-success-text",  "Success Text",      "#a8d878",  "rgba(69,134,12,1)"},
        {"NAV_ACTIVE",   "--blogi-nav-active",    "Nav Active",        "#83bb32",  "rgba(92,179,16,1)"},
        {"NAV_HOVER",    "--blogi-nav-hover",     "Nav Hover",         "#3f4245",  "rgba(225,228,230,1)"},
        {"NAV_BORDER",   "--blogi-nav-border",    "Nav Border",        "#2f3234",  "rgba(189,195,199,1)"},
    };

    if(reset){