From c92aadcc5026eb80f7563e07939bb42b12d6f349 Mon Sep 17 00:00:00 2001 From: Ton Huisman Date: Fri, 20 Sep 2024 21:38:03 +0200 Subject: [PATCH] [Scripts] Fix some issues and upgrade to external changes --- embed_files.sh | 36 ++++++++++++++++++++++++---------- src/src/Static/WebStaticData.h | 3 ++- static/codemirror.min.css | 2 +- static/rules_save.js | 3 ++- 4 files changed, 31 insertions(+), 13 deletions(-) diff --git a/embed_files.sh b/embed_files.sh index 09cdc011e..29590c1e2 100755 --- a/embed_files.sh +++ b/embed_files.sh @@ -15,17 +15,17 @@ rm $outputfile function minify_html { file=$1 - post_To https://www.toptal.com/developers/html-minifier/raw $file + post_To https://www.toptal.com/developers/html-minifier/api/raw $file } function minify_css { file=$1 - post_To https://www.toptal.com/developers/cssminifier/raw $file + post_To https://www.toptal.com/developers/cssminifier/api/raw $file } function minify_js { file=$1 - post_To https://www.toptal.com/developers/javascript-minifier/raw $file + post_To https://www.toptal.com/developers/javascript-minifier/api/raw $file } function post_To { @@ -34,7 +34,7 @@ function post_To { RESPONSE=/tmp/response.txt HEADERS=/tmp/headers.txt curl -X POST -s --data-urlencode "input@$file" $url -D $HEADERS -o $RESPONSE - status=$(cat $HEADERS | grep '^HTTP/1' | tail -1 | awk '{print $2}') + status=$(cat $HEADERS | grep '^HTTP/2' | tail -1 | awk '{print $2}') if [[ "$status" == "200" ]]; then cat $RESPONSE > /tmp/converter.temp rm $RESPONSE @@ -50,18 +50,34 @@ function minify_svg { svgo -i /Users/User/Desktop/icons/tools.svg -o - > /tmp/converter.temp } -function ascii2hexCstyle { +function ascii2hexCstyle { # fold at column 135 so VSCode can 'color-highlight' the array file_name=$(constFileName $1) result=$(cat /tmp/converter.temp | hexdump -ve '1/1 "0x%.2x,"') - result=$(echo $result | sed 's/,$//') - echo "static const char DATA_${file_name}[] PROGMEM = {$result,0};" + result=$(echo $result | sed 's/,$//' | fold -w 135) + echo "static const char DATA_${file_name}[] PROGMEM = {" + echo "$result,0" + echo "};" + echo + echo +} + +# split text in 132 character chunks, replace \ by \\, replace " by ', replace temp linebreak by real linebreak, wrap in quoted PROGMEM char array +function ascii2stringCstyle { + file_name=$(constFileName $1) + result=$(cat /tmp/converter.temp) + # s/\"/\\\"/g # double-quote " to escaped double-quote \", can use for .js but increases byte count + # s/\"/'"'"'/g # replace double-quote by single-quote, in a single-quoted string, can not be used for js + result=$(echo $result | sed -r 's/(.{132})/\1\x02/g; s/\\/\\\\/g; s/\"/'"'"'/g; s/\x02/\"\n\"/g') + echo "static const char DATA_${file_name}[] PROGMEM = {" + echo "\"$result\"" + echo "};" echo echo } function constFileName { extension=$(echo $1 | egrep -io "(json|svg|css|js|html)$" | tr "[:lower:]" "[:upper:]") - file=$(echo $1 | sed 's/\.json//' | sed 's/\.svg//' | sed 's/\.css//' | sed 's/\.html//' | sed 's/\.js//' | sed 's/\.\///' | tr '/' '_' | tr '.' '_' | tr '-' '_' | tr "[:lower:]" "[:upper:]") + file=$(echo $1 | sed 's/\.json//; s/\.svg//; s/\.css//; s/\.html//; s/\.js//; s/\.\///' | tr '/' '_' | tr '.' '_' | tr '-' '_' | tr "[:lower:]" "[:upper:]") underscore="_" echo $file$underscore$extension } @@ -91,12 +107,12 @@ for file in $file_list; do elif [[ "$file" == *.min.css ]]; then echo " CSS already minified" cat $file > /tmp/converter.temp - ascii2hexCstyle $file >> $outputfile + ascii2stringCstyle $file >> $outputfile elif [[ "$file" == *.css ]]; then echo " CSS minify" minify_css $file keepMinifiedFile $file - ascii2hexCstyle $file >> $outputfile + ascii2stringCstyle $file >> $outputfile elif [[ "$file" == *.html ]]; then echo " HTML minify" minify_html $file diff --git a/src/src/Static/WebStaticData.h b/src/src/Static/WebStaticData.h index b2dbd5bf0..a09be5716 100644 --- a/src/src/Static/WebStaticData.h +++ b/src/src/Static/WebStaticData.h @@ -678,7 +678,8 @@ static const char jsSaveRules[] PROGMEM = { "else{" "fetch('/upload',{" "method:'POST'," -"body:a" +"body:a," +"mode:'no-cors'" "}).then(e=>e.text()).then(l=>{" "let a='/rules'+n+'.txt?callback='+Date.now();" "fetch(a).then(e=>e.text()).then(n=>{" diff --git a/static/codemirror.min.css b/static/codemirror.min.css index 8b5e74332..9ed612698 100644 --- a/static/codemirror.min.css +++ b/static/codemirror.min.css @@ -1 +1 @@ -:root{--cmbg1:#fff;--cmc1:black;--cmbg2:#eee;--cmc2:#999;--cmbd:1px solid black;--cmbg3:#d7d4f0;--cmbg4:#e8f2ff;--cmc3:#708;--cmc4:#05a;--cmc5:#085;--cmc6:#7d7d7d;--cmc7:#ff8628;--cmc8:#ff9800;--cmc9:#219;--cmc10:#164;--cmc11:#0080ff;--cmc12:#1eb802;--cmc13:#555;--cmc14:#3f04b5;--cmc15:#ff5501;--cmc16:#1717ff;--cmc17:#e78a4e;--cmc18:black;--cmbg5:#08f;--cmbg6:white;--cmbg7:#eee;--cmbg8:#d9d9d9;--cmbg9:#d7d4f0;--cmc19:black;}[data-theme="dark"]{--cmbg1:black;--cmc1:#e8d1a7;--cmbg2:#212121;--cmc2:#e8d2a7;--cmbd:1px solid #FFCC00;--cmbg3:#80cbc433;--cmbg4:#00000080;--cmc3:#ea6962;--cmc4:#EEFFFF;--cmc5:#f07178;--cmc6:#6c6c6c;--cmc7:#d8a657;--cmc8:#ff9800;--cmc9:#f96407;--cmc10:#d2869b;--cmc11:#8185ae;--cmc12:#a9b665;--cmc13:#FFCB6B;--cmc14:#7caea2;--cmc15:#DECB6B;--cmc16:#5f668e;--cmc17:#e78a4e;--cmc18:#cbcbcb;--cmbg5:#44607a;--cmbg6:#444;--cmbg7:#444444;--cmbg8:#5f5f5f;--cmbg9:#5f5f5f;--cmc19:#eee;}@media (prefers-color-scheme:dark){[data-theme="auto"]{--cmbg1:black;--cmc1:#e8d1a7;--cmbg2:#212121;--cmc2:#e8d2a7;--cmbd:1px solid #FFCC00;--cmbg3:#80cbc433;--cmbg4:#00000080;--cmc3:#ea6962;--cmc4:#EEFFFF;--cmc5:#f07178;--cmc6:#6c6c6c;--cmc7:#d8a657;--cmc8:#ff9800;--cmc9:#f96407;--cmc10:#d2869b;--cmc11:#8185ae;--cmc12:#a9b665;--cmc13:#FFCB6B;--cmc14:#7caea2;--cmc15:#DECB6B;--cmc16:#5f668e;--cmc17:#e78a4e;--cmc18:#cbcbcb;--cmbg5:#44607a;--cmbg6:#444;--cmbg7:#444444;--cmbg8:#5f5f5f;--cmbg9:#5f5f5f;--cmc19:#eee}}.CodeMirror{height:60vh;color:var(--cmc1);direction:ltr;border-color:gray;border-style:solid;border-width:1px;border-radius:5px;}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:white}.CodeMirror-gutters{background:var(--cmbg2);white-space:nowrap;}.CodeMirror-linenumbers{}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:var(--cmc2);white-space:nowrap;}.CodeMirror-guttermarker{color:var(--cmc2);}.CodeMirror-guttermarker-subtle{color:var(--cmc2);}.CodeMirror-cursor{border-left:var(--cmbd);border-right:none;width:0;}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver;}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7;}.cm-fat-cursor div.CodeMirror-cursors{z-index:1;}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:transparent;}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:transparent;}.cm-fat-cursor{caret-color:transparent;}@-moz-keyframes blink{0%{}50%{background-color:transparent}100%{}}@-webkit-keyframes blink{0%{}50%{background-color:transparent}100%{}}@keyframes blink{0%{}50%{background-color:transparent}100%{}}.CodeMirror-overwrite .CodeMirror-cursor{}.cm-tab{display:inline-block;text-decoration:inherit;}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden;}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute;}.cm-s-default .cm-header{color:blue;}.cm-s-default .cm-quote{color:#090;}.cm-negative{color:#d44;}.cm-positive{color:#292;}.cm-header,.cm-strong{font-weight:bold;}.cm-em{font-style:italic;}.cm-link{text-decoration:underline;}.cm-strikethrough{text-decoration:line-through;}.cm-s-default .cm-keyword{color:var(--cmc3);}.cm-s-default .cm-atom{color:var(--cmc9);}.cm-s-default .cm-number{color:var(--cmc10);}.cm-s-default .cm-def{color:var(--cmc11);}.cm-s-default .cm-variable,.cm-s-default .cm-punctuation,.cm-s-default .cm-property,.cm-s-default .cm-qualifier{}.cm-s-default .cm-variable-2{color:var(--cmc4);}.cm-s-default .cm-variable-3,.cm-s-default .cm-type{color:var(--cmc5);}.cm-s-default .cm-comment{color:var(--cmc6);}.cm-s-default .cm-string{color:var(--cmc7);}.cm-s-default .cm-string-2{color:var(--cmc8);}.cm-s-default .cm-meta{color:var(--cmc13);}.cm-s-default .cm-operator{color:var(--cmc15);}.cm-s-default .cm-builtin{color:var(--cmc14);}.cm-s-default .cm-bracket{color:rgb(229,57,229);}.cm-s-default .cm-tag{color:var(--cmc12);}.cm-s-default .cm-attribute{color:var(--cmc16);}.cm-s-default .cm-hr{color:var(--cmc17);}.cm-s-default .cm-link{color:#00c;}.cm-s-default .cm-error{color:#f00;}.cm-invalidchar{color:#f00;}.cm-warning{color:#f00;animation:blinker 1s linear infinite;}@keyframes blinker{50%{opacity:0}}.CodeMirror-composing{border-bottom:2px solid;}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0;}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22;}.CodeMirror-matchingtag{background:rgba(255,150,0,.3);}.CodeMirror-activeline-background{background:#e8f2ff;}.CodeMirror{position:relative;overflow:hidden;background:var(--cmbg1);}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative;z-index:0;}.CodeMirror-sizer{position:absolute;border-right:50px solid transparent;}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{position:absolute;z-index:6;display:none;outline:none;}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll;}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll;}.CodeMirror-scrollbar-filler{right:0;bottom:0;}.CodeMirror-gutter-filler{left:0;bottom:0;}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3;}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px;}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important;}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4;}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4;}.CodeMirror-gutter-wrapper::selection{background-color:transparent}.CodeMirror-gutter-wrapper::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual;}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal;}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0;}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-widget{}.CodeMirror-rtl pre{direction:rtl;}.CodeMirror-code{outline:none;}.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber{-moz-box-sizing:content-box;box-sizing:content-box;}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden;}.CodeMirror-cursor{position:absolute;pointer-events:none;}.CodeMirror-measure pre{position:static;}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3;}div.CodeMirror-dragcursors{visibility:visible;}.CodeMirror-focused div.CodeMirror-cursors{visibility:visible;}.CodeMirror-selected{background:var(--cmbg8);}.CodeMirror-focused .CodeMirror-selected{background:var(--cmbg9);}.CodeMirror-crosshair{cursor:crosshair;}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:var(--cmbg3);}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:var(--cmbg3);}.cm-searching{background-color:rgba(162,162,162,.396);}.cm-force-border{padding-right:.1px;}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:'';}span.CodeMirror-selectedtext{background:none;}.CodeMirror-hints{position:absolute;z-index:10;overflow:hidden;list-style:none;margin:0;padding:2px;-webkit-box-shadow:2px 3px 5px rgba(0,0,0,.2);-moz-box-shadow:2px 3px 5px rgba(0,0,0,.2);box-shadow:2px 3px 5px rgba(0,0,0,.2);border-radius:3px;border:1px solid silver;background:var(--cmbg6);font-size:90%;font-family:monospace;max-height:20em;overflow-y:auto;}.CodeMirror-hint{margin:0;padding:0 4px;border-radius:2px;white-space:pre;color:var(--cmc18);cursor:pointer;}li.CodeMirror-hint-active{background:var(--cmbg5);color:rgb(255,255,255);}@media screen and (max-width:450px){.CodeMirror-sizer{margin-left:0!important}.CodeMirror-gutters{display:none}.CodeMirror-linenumber{display:none}}.CodeMirror-dialog{position:fixed;height:42px;left:0;width:100vw;background:inherit;z-index:15;padding:.1em .8em;overflow:hidden;color:inherit;display:flex;align-items:center;}.CodeMirror-dialog input::selection{color:rgb(255,255,255);background:rgb(118,69,231);}.CodeMirror-dialog-top{border-bottom:.5px solid #444;top:0;}.CodeMirror-dialog-bottom{border-top:1px solid #eee;bottom:0;}.CodeMirror-dialog input{width:50vw!important;color:var(--cmc19);font-family:monospace;background:var(--cmbg7);border-style:solid;border-width:1px;border-color:gray;border-radius:5px;height:28px;font-size:inherit;}.CodeMirror-dialog button{background-color:var(--cmbg5);border:none;border-radius:5px;color:#fff;margin:4px;padding:4px 16px;}span.CodeMirror-search-hint{display:none;} \ No newline at end of file +:root,[data-theme=dark]{--cmc8:#ff9800;--cmc17:#e78a4e}:root{--cmbg1:#fff;--cmc1:black;--cmbg2:#eee;--cmc2:#999;--cmbd:1px solid black;--cmbg3:#d7d4f0;--cmbg4:#e8f2ff;--cmc3:#708;--cmc4:#05a;--cmc5:#085;--cmc6:#7d7d7d;--cmc7:#ff8628;--cmc9:#219;--cmc10:#164;--cmc11:#0080ff;--cmc12:#1eb802;--cmc13:#555;--cmc14:#3f04b5;--cmc15:#ff5501;--cmc16:#1717ff;--cmc18:black;--cmbg5:#08f;--cmbg6:white;--cmbg7:#eee;--cmbg8:#d9d9d9;--cmbg9:#d7d4f0;--cmc19:black}[data-theme=dark]{--cmbg1:black;--cmc1:#e8d1a7;--cmbg2:#212121;--cmc2:#e8d2a7;--cmbd:1px solid #FFCC00;--cmbg3:#80cbc433;--cmbg4:#00000080;--cmc3:#ea6962;--cmc4:#EEFFFF;--cmc5:#f07178;--cmc6:#6c6c6c;--cmc7:#d8a657;--cmc9:#f96407;--cmc10:#d2869b;--cmc11:#8185ae;--cmc12:#a9b665;--cmc13:#FFCB6B;--cmc14:#7caea2;--cmc15:#DECB6B;--cmc16:#5f668e;--cmc18:#cbcbcb;--cmbg5:#44607a;--cmbg6:#444;--cmbg7:#444444;--cmbg8:#5f5f5f;--cmbg9:#5f5f5f;--cmc19:#eee}@media (prefers-color-scheme:dark){[data-theme=auto]{--cmbg1:black;--cmc1:#e8d1a7;--cmbg2:#212121;--cmc2:#e8d2a7;--cmbd:1px solid #FFCC00;--cmbg3:#80cbc433;--cmbg4:#00000080;--cmc3:#ea6962;--cmc4:#EEFFFF;--cmc5:#f07178;--cmc6:#6c6c6c;--cmc7:#d8a657;--cmc8:#ff9800;--cmc9:#f96407;--cmc10:#d2869b;--cmc11:#8185ae;--cmc12:#a9b665;--cmc13:#FFCB6B;--cmc14:#7caea2;--cmc15:#DECB6B;--cmc16:#5f668e;--cmc17:#e78a4e;--cmc18:#cbcbcb;--cmbg5:#44607a;--cmbg6:#444;--cmbg7:#444444;--cmbg8:#5f5f5f;--cmbg9:#5f5f5f;--cmc19:#eee}}.CodeMirror{height:60vh;color:var(--cmc1);direction:ltr;border:1px solid gray;border-radius:5px}.CodeMirror-lines{padding:4px 0}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{background:var(--cmbg2);white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:var(--cmc2);white-space:nowrap}.CodeMirror-guttermarker,.CodeMirror-guttermarker-subtle{color:var(--cmc2)}.CodeMirror-cursor{border-left:var(--cmbd);border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:0 0}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:0 0}.cm-fat-cursor{caret-color:transparent}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:var(--cmc3)}.cm-s-default .cm-atom{color:var(--cmc9)}.cm-s-default .cm-number{color:var(--cmc10)}.cm-s-default .cm-def{color:var(--cmc11)}.cm-s-default .cm-variable-2{color:var(--cmc4)}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:var(--cmc5)}.cm-s-default .cm-comment{color:var(--cmc6)}.cm-s-default .cm-string{color:var(--cmc7)}.cm-s-default .cm-string-2{color:var(--cmc8)}.cm-s-default .cm-meta{color:var(--cmc13)}.cm-s-default .cm-operator{color:var(--cmc15)}.cm-s-default .cm-builtin{color:var(--cmc14)}.cm-s-default .cm-bracket{color:#e539e5}.cm-s-default .cm-tag{color:var(--cmc12)}.cm-s-default .cm-attribute{color:var(--cmc16)}.cm-s-default .cm-hr{color:var(--cmc17)}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.cm-warning{color:red;animation:1s linear infinite blinker}@keyframes blinker{50%{opacity:0}}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:var(--cmbg1)}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:0;position:relative;z-index:0}.CodeMirror-sizer{position:absolute;border-right:50px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none;outline:0}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:var(--cmbg8)}.CodeMirror-focused .CodeMirror-selected{background:var(--cmbg9)}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:var(--cmbg3)}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:var(--cmbg3)}.cm-searching{background-color:rgba(162,162,162,.396)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:0 0}.CodeMirror-hints{position:absolute;z-index:10;overflow:hidden;list-style:none;margin:0;padding:2px;-webkit-box-shadow:2px 3px 5px rgba(0,0,0,.2);-moz-box-shadow:2px 3px 5px rgba(0,0,0,.2);box-shadow:2px 3px 5px rgba(0,0,0,.2);border-radius:3px;border:1px solid silver;background:var(--cmbg6);font-size:90%;font-family:monospace;max-height:20em;overflow-y:auto}.CodeMirror-hint{margin:0;padding:0 4px;border-radius:2px;white-space:pre;color:var(--cmc18);cursor:pointer}li.CodeMirror-hint-active{background:var(--cmbg5);color:#fff}@media screen and (max-width:450px){.CodeMirror-sizer{margin-left:0!important}.CodeMirror-gutters,.CodeMirror-linenumber{display:none}}.CodeMirror-dialog{position:fixed;height:42px;left:0;width:100vw;background:inherit;z-index:15;padding:.1em .8em;overflow:hidden;color:inherit;display:flex;align-items:center}.CodeMirror-dialog input::selection{color:#fff;background:#7645e7}.CodeMirror-dialog-top{border-bottom:.5px solid #444;top:0}.CodeMirror-dialog-bottom{border-top:1px solid #eee;bottom:0}.CodeMirror-dialog input{width:50vw!important;color:var(--cmc19);font-family:monospace;background:var(--cmbg7);border:1px solid gray;border-radius:5px;height:28px;font-size:inherit}.CodeMirror-dialog button{background-color:var(--cmbg5);border:none;border-radius:5px;color:#fff;margin:4px;padding:4px 16px}span.CodeMirror-search-hint{display:none} \ No newline at end of file diff --git a/static/rules_save.js b/static/rules_save.js index 8abc0a23a..805eaef3e 100644 --- a/static/rules_save.js +++ b/static/rules_save.js @@ -17,7 +17,8 @@ function saveRulesFile() { } else { fetch("/upload", { method: "POST", - body: formData + body: formData, + mode: "no-cors" }).then(response => response.text()).then(l => { let url = "/rules" + ruleNumber + ".txt?callback=" + Date.now(); fetch(url).then(res => res.text()).then(ruleTextNewCheck => {