mirror of
https://github.com/9001/copyparty.git
synced 2025-08-17 09:02:15 -06:00
fix #51:
* handle unexpected localstorage values * handle unsupported --lang values
This commit is contained in:
parent
8620ae5bb7
commit
fc9b729fc2
|
@ -1145,7 +1145,7 @@ def add_db_metadata(ap):
|
||||||
def add_ui(ap, retry):
|
def add_ui(ap, retry):
|
||||||
ap2 = ap.add_argument_group('ui options')
|
ap2 = ap.add_argument_group('ui options')
|
||||||
ap2.add_argument("--grid", action="store_true", help="show grid/thumbnails by default (volflag=grid)")
|
ap2.add_argument("--grid", action="store_true", help="show grid/thumbnails by default (volflag=grid)")
|
||||||
ap2.add_argument("--lang", metavar="LANG", type=u, default="eng", help="language")
|
ap2.add_argument("--lang", metavar="LANG", type=u, default="eng", help="language; one of the following: eng nor")
|
||||||
ap2.add_argument("--theme", metavar="NUM", type=int, default=0, help="default theme to use")
|
ap2.add_argument("--theme", metavar="NUM", type=int, default=0, help="default theme to use")
|
||||||
ap2.add_argument("--themes", metavar="NUM", type=int, default=8, help="number of themes installed")
|
ap2.add_argument("--themes", metavar="NUM", type=int, default=8, help="number of themes installed")
|
||||||
ap2.add_argument("--unlist", metavar="REGEX", type=u, default="", help="don't show files matching REGEX in file list. Purely cosmetic! Does not affect API calls, just the browser. Example: [\033[32m\\.(js|css)$\033[0m] (volflag=unlist)")
|
ap2.add_argument("--unlist", metavar="REGEX", type=u, default="", help="don't show files matching REGEX in file list. Purely cosmetic! Does not affect API calls, just the browser. Example: [\033[32m\\.(js|css)$\033[0m] (volflag=unlist)")
|
||||||
|
|
|
@ -524,7 +524,7 @@ window.baguetteBox = (function () {
|
||||||
options[item] = newOptions[item];
|
options[item] = newOptions[item];
|
||||||
}
|
}
|
||||||
|
|
||||||
var an = options.animation = sread('ganim') || anims[ANIM ? 0 : 2];
|
var an = options.animation = sread('ganim', anims) || anims[ANIM ? 0 : 2];
|
||||||
btnAnim.textContent = ['⇄', '⮺', '⚡'][anims.indexOf(an)];
|
btnAnim.textContent = ['⇄', '⮺', '⚡'][anims.indexOf(an)];
|
||||||
btnAnim.setAttribute('tt', 'animation: ' + an);
|
btnAnim.setAttribute('tt', 'animation: ' + an);
|
||||||
|
|
||||||
|
|
|
@ -166,7 +166,7 @@
|
||||||
readme = {{ readme|tojson }},
|
readme = {{ readme|tojson }},
|
||||||
ls0 = {{ ls0|tojson }};
|
ls0 = {{ ls0|tojson }};
|
||||||
|
|
||||||
document.documentElement.className = localStorage.theme || dtheme;
|
document.documentElement.className = localStorage.cpp_thm || dtheme;
|
||||||
</script>
|
</script>
|
||||||
<script src="{{ r }}/.cpr/util.js?_={{ ts }}"></script>
|
<script src="{{ r }}/.cpr/util.js?_={{ ts }}"></script>
|
||||||
<script src="{{ r }}/.cpr/baguettebox.js?_={{ ts }}"></script>
|
<script src="{{ r }}/.cpr/baguettebox.js?_={{ ts }}"></script>
|
||||||
|
|
|
@ -941,12 +941,27 @@ var Ls = {
|
||||||
"lang_set": "passer det å laste siden på nytt?",
|
"lang_set": "passer det å laste siden på nytt?",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
var L = Ls[sread("lang") || lang];
|
var LANGS = ["eng", "nor"],
|
||||||
if (Ls.eng && L != Ls.eng) {
|
L = Ls[sread("cpp_lang", LANGS) || lang] || Ls.eng || Ls.nor;
|
||||||
for (var k in Ls.eng)
|
|
||||||
if (!L[k])
|
for (var a = 0; a < LANGS.length; a++) {
|
||||||
L[k] = Ls.eng[k];
|
for (var b = a + 1; b < LANGS.length; b++) {
|
||||||
|
var i1 = Object.keys(Ls[LANGS[a]]).length > Object.keys(Ls[LANGS[b]]).length ? a : b,
|
||||||
|
i2 = i1 == a ? b : a,
|
||||||
|
t1 = Ls[LANGS[i1]],
|
||||||
|
t2 = Ls[LANGS[i2]];
|
||||||
|
|
||||||
|
for (var k in t1)
|
||||||
|
if (!t2[k]) {
|
||||||
|
console.log("E missing TL", LANGS[i2], k);
|
||||||
|
t2[k] = t1[k];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!has(LANGS, lang))
|
||||||
|
alert('unsupported --lang "' + lang + '" specified in server args;\nplease use one of these: ' + LANGS);
|
||||||
|
|
||||||
modal.load();
|
modal.load();
|
||||||
|
|
||||||
|
|
||||||
|
@ -1354,7 +1369,7 @@ var mpl = (function () {
|
||||||
'<div><h3>' + L.ml_eq + '</h3><div id="audio_eq"></div></div>');
|
'<div><h3>' + L.ml_eq + '</h3><div id="audio_eq"></div></div>');
|
||||||
|
|
||||||
var r = {
|
var r = {
|
||||||
"pb_mode": (sread('pb_mode') || 'next').split('-')[0],
|
"pb_mode": (sread('pb_mode', ['loop', 'next']) || 'next').split('-')[0],
|
||||||
"os_ctl": bcfg_get('au_os_ctl', have_mctl) && have_mctl,
|
"os_ctl": bcfg_get('au_os_ctl', have_mctl) && have_mctl,
|
||||||
'traversals': 0,
|
'traversals': 0,
|
||||||
};
|
};
|
||||||
|
@ -6532,7 +6547,9 @@ var mukey = (function () {
|
||||||
"6d ", "7d ", "8d ", "9d ", "10d", "11d", "12d", "1d ", "2d ", "3d ", "4d ", "5d ",
|
"6d ", "7d ", "8d ", "9d ", "10d", "11d", "12d", "1d ", "2d ", "3d ", "4d ", "5d ",
|
||||||
"6m ", "7m ", "8m ", "9m ", "10m", "11m", "12m", "1m ", "2m ", "3m ", "4m ", "5m "
|
"6m ", "7m ", "8m ", "9m ", "10m", "11m", "12m", "1m ", "2m ", "3m ", "4m ", "5m "
|
||||||
]
|
]
|
||||||
};
|
},
|
||||||
|
defnot = 'rekobo_alnum';
|
||||||
|
|
||||||
var map = {},
|
var map = {},
|
||||||
html = [];
|
html = [];
|
||||||
|
|
||||||
|
@ -6557,7 +6574,7 @@ var mukey = (function () {
|
||||||
}
|
}
|
||||||
|
|
||||||
function load_notation(notation) {
|
function load_notation(notation) {
|
||||||
swrite("key_notation", notation);
|
swrite("cpp_keynot", notation);
|
||||||
map = {};
|
map = {};
|
||||||
var dst = maps[notation];
|
var dst = maps[notation];
|
||||||
for (var k in maps)
|
for (var k in maps)
|
||||||
|
@ -6605,7 +6622,10 @@ var mukey = (function () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var notation = sread("key_notation") || "rekobo_alnum";
|
var notation = sread("cpp_keynot") || defnot;
|
||||||
|
if (!maps[notation])
|
||||||
|
notation = defnot;
|
||||||
|
|
||||||
ebi('key_' + notation).checked = true;
|
ebi('key_' + notation).checked = true;
|
||||||
load_notation(notation);
|
load_notation(notation);
|
||||||
|
|
||||||
|
@ -6624,7 +6644,7 @@ var light, theme, themen;
|
||||||
var settheme = (function () {
|
var settheme = (function () {
|
||||||
var ax = 'abcdefghijklmnopqrstuvwx';
|
var ax = 'abcdefghijklmnopqrstuvwx';
|
||||||
|
|
||||||
theme = sread('theme') || 'a';
|
theme = sread('cpp_thm') || 'a';
|
||||||
if (!/^[a-x][yz]/.exec(theme))
|
if (!/^[a-x][yz]/.exec(theme))
|
||||||
theme = dtheme;
|
theme = dtheme;
|
||||||
|
|
||||||
|
@ -6666,7 +6686,7 @@ var settheme = (function () {
|
||||||
l = light ? 'y' : 'z';
|
l = light ? 'y' : 'z';
|
||||||
theme = c + l + ' ' + c + ' ' + l;
|
theme = c + l + ' ' + c + ' ' + l;
|
||||||
themen = c + l;
|
themen = c + l;
|
||||||
swrite('theme', theme);
|
swrite('cpp_thm', theme);
|
||||||
freshen();
|
freshen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6677,7 +6697,7 @@ var settheme = (function () {
|
||||||
|
|
||||||
(function () {
|
(function () {
|
||||||
function freshen() {
|
function freshen() {
|
||||||
lang = sread("lang") || lang;
|
lang = sread("cpp_lang", LANGS) || lang;
|
||||||
var html = [];
|
var html = [];
|
||||||
for (var k in Ls)
|
for (var k in Ls)
|
||||||
if (Ls.hasOwnProperty(k))
|
if (Ls.hasOwnProperty(k))
|
||||||
|
@ -6693,7 +6713,7 @@ var settheme = (function () {
|
||||||
function setlang(e) {
|
function setlang(e) {
|
||||||
ev(e);
|
ev(e);
|
||||||
L = Ls[this.textContent];
|
L = Ls[this.textContent];
|
||||||
swrite("lang", this.textContent);
|
swrite("cpp_lang", this.textContent);
|
||||||
freshen();
|
freshen();
|
||||||
modal.confirm(Ls.eng.lang_set + "\n\n" + Ls.nor.lang_set, location.reload.bind(location), null);
|
modal.confirm(Ls.eng.lang_set + "\n\n" + Ls.nor.lang_set, location.reload.bind(location), null);
|
||||||
};
|
};
|
||||||
|
|
|
@ -110,7 +110,7 @@ var SR = {{ r|tojson }},
|
||||||
lang="{{ lang }}",
|
lang="{{ lang }}",
|
||||||
dfavico="{{ favico }}";
|
dfavico="{{ favico }}";
|
||||||
|
|
||||||
document.documentElement.className=localStorage.theme||"{{ this.args.theme }}";
|
document.documentElement.className=localStorage.cpp_thm||"{{ this.args.theme }}";
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<script src="{{ r }}/.cpr/util.js?_={{ ts }}"></script>
|
<script src="{{ r }}/.cpr/util.js?_={{ ts }}"></script>
|
||||||
|
|
|
@ -35,7 +35,7 @@ var Ls = {
|
||||||
"v2": "use this server as a local HDD$N$NWARNING: this will show your password!",
|
"v2": "use this server as a local HDD$N$NWARNING: this will show your password!",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
d = Ls[sread("lang") || lang];
|
d = Ls[sread("cpp_lang", ["eng", "nor"]) || lang] || Ls.eng || Ls.nor;
|
||||||
|
|
||||||
for (var k in (d || {})) {
|
for (var k in (d || {})) {
|
||||||
var f = k.slice(-1),
|
var f = k.slice(-1),
|
||||||
|
|
|
@ -218,7 +218,7 @@ var SR = {{ r|tojson }},
|
||||||
lang="{{ lang }}",
|
lang="{{ lang }}",
|
||||||
dfavico="{{ favico }}";
|
dfavico="{{ favico }}";
|
||||||
|
|
||||||
document.documentElement.className=localStorage.theme||"{{ args.theme }}";
|
document.documentElement.className=localStorage.cpp_thm||"{{ args.theme }}";
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<script src="{{ r }}/.cpr/util.js?_={{ ts }}"></script>
|
<script src="{{ r }}/.cpr/util.js?_={{ ts }}"></script>
|
||||||
|
|
|
@ -882,9 +882,10 @@ function jcp(obj) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function sread(key) {
|
function sread(key, al) {
|
||||||
try {
|
try {
|
||||||
return localStorage.getItem(key);
|
var ret = localStorage.getItem(key);
|
||||||
|
return (!al || has(al, ret)) ? ret : null;
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
return null;
|
return null;
|
||||||
|
@ -906,8 +907,14 @@ function jread(key, fb) {
|
||||||
if (!str)
|
if (!str)
|
||||||
return fb;
|
return fb;
|
||||||
|
|
||||||
|
try {
|
||||||
|
// '' throws, null is ok, sasuga
|
||||||
return JSON.parse(str);
|
return JSON.parse(str);
|
||||||
}
|
}
|
||||||
|
catch (e) {
|
||||||
|
return fb;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function jwrite(key, val) {
|
function jwrite(key, val) {
|
||||||
if (!val)
|
if (!val)
|
||||||
|
|
Loading…
Reference in a new issue