Forked from soundyogi/2018_chrome_snippet_gui_import_export.js
Created
December 10, 2016 02:18
-
-
Save modulexcite/dc730f3e731f22a7089ed4df2a5c6a68 to your computer and use it in GitHub Desktop.
Revisions
-
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 5 additions and 4 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -71,7 +71,7 @@ const markup = ` <grid> <row> <column> <item> load chrome snippets: <button id="init">(re)init</button> </item> </column> @@ -108,7 +108,7 @@ const markup = ` <row> <column> <dropzone> <div>Click/Drop .js or .json</div> <input id="drop_files" type='file' multiple='true'/> </dropzone> <label>append files or replace everything? @@ -118,7 +118,7 @@ const markup = ` </select> </label> </column> <column>===== snippets preview =====<ul id="state.scriptSnippets"></ul></column> <column>import files from external sources: <button id="external_bgrins">load some scripts from bgrins/devtools-snippets repo</button> <button id="external_bahmutov">load some scripts from bahmutov/code-snippets repo</button> @@ -266,6 +266,7 @@ function set_pref(name, data_string){ function save_snippets(){ set_pref( "scriptSnippets", serialize(state.scriptSnippets) ) set_pref( "scriptSnippets_lastIdentifier", state.lastIdentifier) prompt('restart chrome now!') } @@ -449,4 +450,4 @@ function html_log(){ } }("goodbye and thanks for all the fish") -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 7 additions and 7 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -8,7 +8,7 @@ void function(){ */ let_us("execute some init tests", () => { if(location.origin !== "chrome-devtools://devtools") throw Error("not in devtools of devtools / please inspect devtools again (ctrl+shift+i)") ok(location.origin === "chrome-devtools://devtools", 'we are in devtools of devtools, good to go') }) @@ -130,10 +130,10 @@ const markup = ` /* Main logic */ const app_window = create_window("menubar=false, height=700, width=1000", "chrome snippets import/export - ALPHA USE AT OWN RISK") const document = app_window.document let_us("bootstrap the whole thing", () => { init() }) @@ -211,10 +211,10 @@ function render_list(){ state.scriptSnippets.forEach((snippet)=>{ const li = document.createElement('li') //const a = document.createElement('a') //a.href = snippet.name li.innerHTML = snippet.name //li.appendChild(a) ul.appendChild(li) }) } -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 1 addition and 9 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -248,19 +248,11 @@ function file_loaded(event){ const ext = /\.[0-9a-z]+$/.exec(fileName)[0] if(ext === ".json") return import_json(content_string) return add_snippet(fileNameNoExt, content_string) } function import_json(content_string){ var json_data = deserialize(content_string) json_data.snippets.forEach(snippet => { add_snippet(snippet.name, snippet.content) }) -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 22 additions and 15 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -17,6 +17,7 @@ let_us("execute some init tests", function(){ const state = { scriptSnippets: [], } window.state = state const style = ` @@ -162,7 +163,7 @@ function setupGUI(){ app_window.document.body.innerHTML = style+markup getID("format").on("change", handle_gui_switches) getID("rename").on("change", handle_gui_switches) getID("append").on("change", handle_gui_switches) getID("drop_files").on("change", import_files) @@ -184,7 +185,6 @@ function handle_gui_switches(ev){ opt.format = target.value return update() } if(target.id === 'rename') { opt.rename = !target.value return update() @@ -194,14 +194,15 @@ function handle_gui_switches(ev){ return update() } if(target.id === 'append') { opt.append = !target.value return update() } } function update(){ render_list() console.log(state.gui_switches) } function render_list(){ @@ -224,7 +225,7 @@ function render_list(){ function import_files(event){ if(!state.gui_switches.append) state.scriptSnippets = [] const files = event.target.files const stack = Object.keys(files) @@ -239,13 +240,6 @@ function import_files(event){ }) } function file_loaded(event){ const content_string = event.target.result @@ -254,8 +248,22 @@ function file_loaded(event){ const ext = /\.[0-9a-z]+$/.exec(fileName)[0] if(ext === ".json") return import_json(content_string) return import_single(fileNameNoExt, content_string) } function import_single(name, content){ add_snippet(name, content) } function import_json(content_string){ var json_data = deserialize(content_string) if(!state.gui_switches.append) { InspectorFrontendHost.setPreference("scriptSnippets", serialize(json_data.snippets)) return init() } json_data.snippets.forEach(snippet => { add_snippet(snippet.name, snippet.content) }) } function set_pref(name, data_string){ @@ -266,19 +274,18 @@ function set_pref(name, data_string){ function save_snippets(){ set_pref( "scriptSnippets", serialize(state.scriptSnippets) ) set_pref( "scriptSnippets_lastIdentifier", state.lastIdentifier) } function reset_snippets(){ var choice = window.confirm("DELETE ALL SNIPPETS IN DEVTOOLS?") if(choice) clear_chrome_snippets() init() } function clear_chrome_snippets(){ set_pref("scriptSnippets", "[]") set_pref("scriptSnippets_lastIdentifier", "0") } function add_snippet(name, snippet_content_string){ -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 27 additions and 16 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -16,12 +16,6 @@ let_us("execute some init tests", function(){ const state = { scriptSnippets: [], } @@ -116,6 +110,12 @@ const markup = ` <div>Drop files or click</div> <input id="drop_files" type='file' multiple='true'/> </dropzone> <label>append files or replace everything? <select id='append'> <option value='true'>Append</option> <option value="false">Replace</option> </select> </label> </column> <column>scriptSnippets preview: <ul id="state.scriptSnippets"></ul></column> <column>import files from external sources: @@ -144,7 +144,8 @@ function init(){ state.gui_switches = { rename: true, format: "json", review: false, append: true } InspectorFrontendHost.getPreferences( prefs => { @@ -192,6 +193,10 @@ function handle_gui_switches(ev){ opt.review = !opt.review return update() } if(target.id === 'append') { opt.review = !target.value return update() } } @@ -219,6 +224,8 @@ function render_list(){ function import_files(event){ if(!state.gui_switches.append) clear_chrome_snippets() const files = event.target.files const stack = Object.keys(files) .forEach((key)=>{ @@ -233,18 +240,20 @@ function import_files(event){ } function import_json(content_string){ var json_data = deserialize(content_string) if(!state.gui_switches.append) return InspectorFrontendHost.setPreference("scriptSnippets", serialize(json_data.snippets)) json_data.snippets.forEach(snippet => { add_snippet(snippet.name, snippet.content) }) } function file_loaded(event){ const content_string = event.target.result const fileName = event.target.fileName const fileNameNoExt = /(.+?)(\.[^.]*$|$)/.exec(fileName)[1] const ext = /\.[0-9a-z]+$/.exec(fileName)[0] if(ext === ".json") return import_json(content_string) add_snippet(fileNameNoExt, content_string) } @@ -262,12 +271,14 @@ function save_snippets(){ function reset_snippets(){ var choice = window.confirm("DELETE ALL SNIPPETS IN DEVTOOLS?") if(choice) return clear_chrome_snippets() } function clear_chrome_snippets(){ set_pref("scriptSnippets", "[]") set_pref("scriptSnippets_lastIdentifier", "0") init() } function add_snippet(name, snippet_content_string){ -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 34 additions and 6 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -118,7 +118,10 @@ const markup = ` </dropzone> </column> <column>scriptSnippets preview: <ul id="state.scriptSnippets"></ul></column> <column>import files from external sources: <button id="external_bgrins">load some scripts from bgrins/devtools-snippets repo</button> <button id="external_bahmutov">load some scripts from bahmutov/code-snippets repo</button> </column> </row> </grid> ` @@ -166,7 +169,9 @@ function setupGUI(){ getID("init").on("click", init) getID("save_snippets").on("click", save_snippets) getID("reset_snippets").on("click", reset_snippets) getID("external_bgrins").on("click", external_bgrins) getID("external_bahmutov").on("click", external_bahmutov) } @@ -227,14 +232,21 @@ function import_files(event){ }) } function import_json(content_string){ prompt("replace all snippets or append json content") } function file_loaded(event){ const content_string = event.target.result const fileName = event.target.fileName const fileNameNoExt = fileName.split(".")[0] const ext = /\.[0-9a-z]+$/.exec(fileName)[0] console.log(ext) // TODO sucks if(ext === "json") return import_json(content_string) add_snippet(fileNameNoExt, content_string) } function set_pref(name, data_string){ @@ -276,7 +288,7 @@ function add_snippet(name, snippet_content_string){ update() } function external_bgrins(){ const brings_snippets = [ 'allcolors', @@ -294,6 +306,22 @@ function external_snippets(){ }) } function external_bahmutov(){ const bahmutov_snippets = [ 'timing', 'profile-method-call', 'time-method-call' ] bahmutov_snippets.forEach((snippet)=>{ request('https://raw.githubusercontent.com/bahmutov/code-snippets/master/'+snippet+'.js', function(request){ const snippet_content_string = request.target.response add_snippet(snippet, snippet_content_string) }) }) } function export_snippets(){ if(state.gui_switches.format === "json") return download_json() return download_js() -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 5 additions and 21 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -144,7 +144,7 @@ function init(){ review: false } InspectorFrontendHost.getPreferences( prefs => { const lastScriptSnippets = prefs.scriptSnippets state.scriptSnippets = deserialize(lastScriptSnippets) state.lastIdentifier = prefs.scriptSnippets_lastIdentifier @@ -242,19 +242,6 @@ function set_pref(name, data_string){ } function save_snippets(){ set_pref( "scriptSnippets", serialize(state.scriptSnippets) ) set_pref( "scriptSnippets_lastIdentifier", state.lastIdentifier) @@ -392,15 +379,12 @@ function create_window(options, title){ /* * UNIT TESTS */ let_us("write some tests", ()=>{ // TODO // TDD tests are deleted now / remove harness }) /* Nanoharness */ function let_us(msg,f){ @@ -427,4 +411,4 @@ function html_log(){ } }("thank you for reading") -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -76,7 +76,7 @@ const markup = ` <grid> <row> <column> <item> load snippets: <button id="init">(re)init</button> </item> </column> -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -126,7 +126,7 @@ const markup = ` /* Main logic */ const app_window = create_window("menubar=false, height=700, width=1000", "chrome snippets import/export by: github.com/soundyogi - ALPHA USE AT OWN RISK") const document = app_window.document let_us("bootstrap the whole thing", function(){ -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -9,7 +9,7 @@ void function(){ let_us("execute some init tests", function(){ if(location.origin !== "chrome-devtools://devtools") throw Error("not in devtools of devtools / please inspect devtools again (ctrl+shift+i)") ok(location.origin === "chrome-devtools://devtools", 'we are in devtools of devtools, good to go') }) -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 21 additions and 17 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,7 +3,7 @@ void function(){ /* * Manage and Import / Export snippets from chrome (2016) * hacked together by: http://github.com/soundyogi * inspired by: https://github.com/bgrins/devtools-snippets/blob/master/import-export/chrome/devtools_import_export.js * ALPHA / SILLY SIDE PROJECT */ @@ -25,9 +25,6 @@ const state = { } const style = ` <style> body{ @@ -49,10 +46,11 @@ row { display: flex; -webkit-flex-flow: row; width: 90vw; margin-bottom: 2vh; } item { background: tomato; min-height: 13vh; color: white; font-weight: bold; font-size: 1.5em; @@ -77,12 +75,12 @@ dropzone { const markup = ` <grid> <row> <column> <item> <button id="init">(re)init</button> </item> </column> <column> <item> <label>on name conflicts: <select id='rename'> @@ -91,29 +89,36 @@ const markup = ` </select> </label> </item> </column> <column> <item> <button id="export_snippets">export</button> <select id='format'> <option value="json">Single .json</option> <option value="js">Multiple .js</option> </select> </item> </column> <column> <item> <button id="save_snippets">Save to Chrome</button> </item> </column> <column> <item> <button id="reset_snippets">DELETE all on Chrome</button> </item> </column> </row> <row> <column> <dropzone> <div>Drop files or click</div> <input id="drop_files" type='file' multiple='true'/> </dropzone> </column> <column>scriptSnippets preview: <ul id="state.scriptSnippets"></ul></column> <column>import files from external sources:<button id="external_snippets">load some scripts from bgrins/devtools-snippets repo</button></column> </row> </grid> ` @@ -155,7 +160,6 @@ function setupGUI(){ getID("rename").on("change", handle_gui_switches) //getID("review").on("change", handle_gui_switches) getID("drop_files").on("change", import_files) getID("export_snippets").on("click", export_snippets) @@ -254,7 +258,7 @@ function get_snippets(cb){ function save_snippets(){ set_pref( "scriptSnippets", serialize(state.scriptSnippets) ) set_pref( "scriptSnippets_lastIdentifier", state.lastIdentifier) init() } -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 4 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,7 +3,7 @@ void function(){ /* * Manage and Import / Export snippets from chrome (2016) * hacked together by: http://github.com/soundyogi * inspired by: aaran etc // TODO * ALPHA / SILLY SIDE PROJECT */ @@ -25,6 +25,9 @@ const state = { } window.state = state const style = ` <style> body{ -
soundyogi revised this gist
Jan 26, 2016 . No changes.There are no files selected for viewing
-
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 0 additions and 3 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -25,9 +25,6 @@ const state = { } const style = ` <style> body{ -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,7 +3,7 @@ void function(){ /* * Manage and Import / Export snippets from chrome (2016) * hacked together by: http://github.com/soundyogi * inspired by: https://github.com/bgrins/devtools-snippets/blob/master/import-export/chrome/devtools_import_export.js * ALPHA / SILLY SIDE PROJECT */ -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 30 additions and 21 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -52,11 +52,12 @@ row { } item { background: tomato; min-height: 5vh; color: white; font-weight: bold; font-size: 1.5em; text-align: center; padding: 20px; } #drop_files { opacity: 0; @@ -67,7 +68,7 @@ dropzone { cursor: pointer; border: 1px black dotted; font-weight: bold; font-size: 1em; text-align: center; } </style> @@ -83,7 +84,7 @@ const markup = ` <input id="import_files" type='file' multiple='true'/> </item> <item> <label>on name conflicts: <select id='rename'> <option value='true'>Rename Import Files</option> <option value="false">Overwrite Snippets</option> @@ -105,11 +106,14 @@ const markup = ` </item> </row> <row> <column> <dropzone> <div>Drop Files Here</div> <input id="drop_files" type='file' multiple='true'/> </dropzone> </column> <column>scriptSnippets preview: <ul id="state.scriptSnippets"></ul></column> <column>import files from external sources:<button id="external_snippets">load some scripts from bgrins/devtools-snippets repo</button></column> </row> </grid> ` @@ -158,15 +162,14 @@ function setupGUI(){ getID("init").on("click", init) getID("save_snippets").on("click", save_snippets) getID("reset_snippets").on("click", reset_snippets) getID("external_snippets").on("click", external_snippets) } function handle_gui_switches(ev){ const target = ev.target const opt = state.gui_switches if(target.id === 'format') { opt.format = target.value return update() @@ -282,6 +285,24 @@ function add_snippet(name, snippet_content_string){ update() } function external_snippets(){ const brings_snippets = [ 'allcolors', 'cachebuster', 'cssreload', 'cssprettifier', 'hashlink' ] brings_snippets.forEach((snippet)=>{ request('https://raw.githubusercontent.com/bgrins/devtools-snippets/master/snippets/'+snippet+'/'+snippet+'.js', function(request){ const snippet_content_string = request.target.response add_snippet(snippet, snippet_content_string) }) }) } function export_snippets(){ if(state.gui_switches.format === "json") return download_json() return download_js() @@ -302,10 +323,6 @@ function download_json(){ /* util & shorthand */ function request(url, success) { @@ -375,17 +392,9 @@ let_us("export a json file", ()=>{ }) /* Nanoharness -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -117,7 +117,7 @@ const markup = ` /* Main logic */ const app_window = create_window("menubar=false, height=700, width=1000", "chrome snippets import/export") const document = app_window.document let_us("bootstrap the whole thing", function(){ -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 4 additions and 3 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -224,7 +224,10 @@ function import_files(event){ function file_loaded(event){ const content_string = event.target.result const fileName = event.target.fileName // TODO: this cant be good lol var removeExtension = fileName.split(".")[0] add_snippet(removeExtension, content_string) } function set_pref(name, data_string){ @@ -377,11 +380,9 @@ let_us("import a snippet from bgrins", ()=> { const brings_snippets = [ 'allcolors' ] brings_snippets.forEach(()=>{ request('https://raw.githubusercontent.com/bgrins/devtools-snippets/master/snippets/allcolors/allcolors.js', function(request){ var snippet = request.currentTarget.response || request.target.responseText; }) }) */ -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 0 additions and 26 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -347,32 +347,6 @@ function download(name, data){ a.click() } function is_duplicate(name, snippets_arr){ const result = snippets_arr.filter(function(snippet){ -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 65 additions and 56 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,7 +3,8 @@ void function(){ /* * Manage and Import / Export snippets from chrome (2016) * hacked together by: http://github.com/soundyogi * inspired by: aaran etc // TODO * ALPHA / SILLY SIDE PROJECT */ @@ -57,19 +58,29 @@ item { font-size: 1.5em; text-align: center; } #drop_files { opacity: 0; width: 100%; height: 20vh; } dropzone { cursor: pointer; border: 1px black dotted; font-weight: bold; font-size: 1.5em; text-align: center; } </style> ` const markup = ` <grid> <row> <item> <button id="init">(re)init</button> </item> <item> <input id="import_files" type='file' multiple='true'/> </item> <item> <label>Rename? @@ -94,7 +105,11 @@ const markup = ` </item> </row> <row> <dropzone> <div>Drop Files Here</div> <input id="drop_files" type='file' multiple='true'/> </dropzone> <column><ul id="state.scriptSnippets"></ul></column> </row> </grid> ` @@ -105,10 +120,12 @@ const markup = ` const app_window = create_window("menubar=false, height=700, width=700", "chrome snippets import/export") const document = app_window.document let_us("bootstrap the whole thing", function(){ init() }) function init(){ setupGUI() state.scriptSnippets = [] state.lastIdentifier = 0 @@ -117,54 +134,28 @@ function init(){ format: "json", review: false } get_prefs( prefs => { const lastScriptSnippets = prefs.scriptSnippets state.scriptSnippets = deserialize(lastScriptSnippets) state.lastIdentifier = prefs.scriptSnippets_lastIdentifier update() }) } function setupGUI(){ app_window.document.body.innerHTML = style+markup getID("format").on("change", handle_gui_switches) getID("rename").on("change", handle_gui_switches) //getID("review").on("change", handle_gui_switches) getID("import_files").on("change", import_files) getID("drop_files").on("change", import_files) getID("export_snippets").on("click", export_snippets) getID("init").on("click", init) getID("save_snippets").on("click", save_snippets) getID("reset_snippets").on("click", reset_snippets) } @@ -193,11 +184,10 @@ function handle_gui_switches(ev){ function update(){ render_list() } function render_list(){ const ul = app_window.document.getElementById("state.scriptSnippets") ul.innerHTML = '' @@ -263,7 +253,7 @@ function save_snippets(){ function reset_snippets(){ prompt("DELETE ALL SNIPPETS IN DEVTOOLS? (this is not working right now)") // TODO: too risky for dev return @@ -296,13 +286,15 @@ function export_snippets(){ function download_js(){ state.scriptSnippets.forEach((snippet)=>{ download(snippet.name+'.js', snippet.content) }) } function download_json(){ console.log("json") const fileName = serialize(Date()) const json_data = serialize({'snippets': state.scriptSnippets}, ['snippets', 'name', 'content'], 2) download(fileName+".json", json_data) } @@ -358,26 +350,26 @@ function download(name, data){ function getDownloadFileName(count) { var abbrevCount; var d = new Date(); var fileName = 'chrome-snippets-' + count + '-'; fileName += d.getFullYear(); var month = d.getMonth() + 1; fileName += "-" + ((month < 10) ? "0" + month : month); //$NON-NLS-1$ // TODO Please note getDay() returns the day of week, // see http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.5.16 var day = d.getDate(); fileName += "-" + ((day < 10) ? "0" + day : day); //$NON-NLS-1$ var hours = d.getHours(); fileName += "T" + ((hours < 10) ? "0" + hours : hours); //$NON-NLS-1$ var minutes = d.getMinutes(); fileName += ((minutes < 10) ? "0" + minutes : minutes); var seconds = d.getSeconds(); fileName += ((seconds < 10) ? "0" + seconds : seconds); var timeZoneOffset = -d.getTimezoneOffset(); var offsetMinutes = timeZoneOffset % 60; var offsetHours = (timeZoneOffset - offsetMinutes) / 60; // TODO FIXME >= 0 ? fileName += (offsetHours > 0 ? "+" : "") + ((offsetHours < 10) ? "0" + offsetHours : offsetHours) + ((offsetMinutes < 10) ? "0" + offsetMinutes : offsetMinutes); //$NON-NLS-2$ //$NON-NLS-1$ fileName += '.json'; return fileName; } @@ -402,6 +394,23 @@ function create_window(options, title){ /* * UNIT TESTS */ let_us("export a json file", ()=>{ }) /* let_us("import a snippet from bgrins", ()=> { const brings_snippets = [ 'allcolors' ] brings_snippets.forEach(()=>{ request('https://raw.githubusercontent.com/bgrins/devtools-snippets/master/snippets/allcolors/allcolors.js', function(request){ var snippet = request.currentTarget.response || request.target.responseText; }) }) */ /* Nanoharness -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 40 additions and 20 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -104,13 +104,19 @@ const markup = ` */ const app_window = create_window("menubar=false, height=700, width=700", "chrome snippets import/export") const document = app_window.document init() function init(){ setupGUI() load_snippets() state.scriptSnippets = [] state.lastIdentifier = 0 state.gui_switches = { rename: true, format: "json", review: false } } function main(prefs){ @@ -119,22 +125,14 @@ function main(prefs){ state.lastIdentifier = prefs.scriptSnippets_lastIdentifier /* var loop = setInterval(function(){ render() console.log(state.gui_switches) }, 1000) window.loop = loop */ render() /* @@ -152,6 +150,26 @@ function main(prefs){ } function load_snippets(){ get_prefs(main) } function setupGUI(){ app_window.document.body.innerHTML = style+markup getID("format").on("change", handle_gui_switches) getID("rename").on("change", handle_gui_switches) //getID("review").on("change", handle_gui_switches) getID("import_files").on("change", import_files) getID("export_snippets").on("click", export_snippets) getID("load_snippets").on("click", init) getID("save_snippets").on("click", save_snippets) getID("reset_snippets").on("click", reset_snippets) } function handle_gui_switches(ev){ const target = ev.target const opt = state.gui_switches @@ -180,14 +198,16 @@ function update(){ function render(){ const ul = app_window.document.getElementById("state.scriptSnippets") ul.innerHTML = '' state.scriptSnippets.forEach((snippet)=>{ const li = document.createElement('li') const a = document.createElement('a') a.href = snippet.name a.innerHTML = snippet.name li.appendChild(a) ul.appendChild(li) }) } -
soundyogi renamed this gist
Jan 26, 2016 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 6 additions and 41 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -20,12 +20,13 @@ const state = { rename: true, format: "json", review: false } } window.state = state const style = ` <style> body{ @@ -58,44 +59,6 @@ item { } </style> ` const markup = ` <grid> @@ -141,8 +104,9 @@ const markup = ` */ const app_window = create_window("menubar=false, height=700, width=700", "chrome snippets import/export") const document = app_window.document const init = load_snippets init() function load_snippets(){ app_window.document.body.innerHTML = style+markup @@ -171,6 +135,7 @@ function main(prefs){ console.log(state) }, 1000) window.kill = clearInterval(loop) render() /* let_us("import a snippet from bgrins", ()=> { -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 50 additions and 13 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -13,6 +13,18 @@ let_us("execute some init tests", function(){ }) const state = { scriptSnippets: [], lastIdentifier: 0, gui_switches: { rename: true, format: "json", review: false }, props: {} } window.state = state const style = ` <style> @@ -46,6 +58,44 @@ item { } </style> ` const template = ` <grid> <row> <item> <button id="load_snippets">Load</button> </item> <item> <label>Drop Files Here <input id="import_files" type='file' multiple='true'/> </label> </item> <item> <label>Rename? <select id='rename'> <option value='true'>Rename Import Files</option> <option value="false">Overwrite Snippets</option> </select> </label> </item> <item> <button id="export_snippets">export</button> <select id='format'> <option value="json">Single .json</option> <option value="js">Multiple .js</option> </select> </item> <item> <button id="save_snippets">Save to Chrome</button> </item> <item> <button id="reset_snippets">DELETE all on Chrome</button> </item> </row> <row> <column><ul id="state.scriptSnippets"></column> </row> </grid> ` const markup = ` <grid> @@ -89,19 +139,6 @@ const markup = ` /* Main logic */ const app_window = create_window("menubar=false, height=700, width=700", "chrome snippets import/export") const document = app_window.document -
soundyogi revised this gist
Jan 26, 2016 . 1 changed file with 23 additions and 12 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -57,9 +57,6 @@ const markup = ` <label>Drop Files Here <input id="import_files" type='file' multiple='true'/> </label> </item> <item> <label>Rename? @@ -99,10 +96,12 @@ const state = { rename: true, format: "json", review: false }, props: {}, markup: markup } window.state = state const app_window = create_window("menubar=false, height=700, width=700", "chrome snippets import/export") const document = app_window.document @@ -121,7 +120,7 @@ function main(prefs){ getID("format").on("change", handle_gui_switches) getID("rename").on("change", handle_gui_switches) //getID("review").on("change", handle_gui_switches) getID("import_files").on("change", import_files) @@ -130,7 +129,11 @@ function main(prefs){ getID("save_snippets").on("click", save_snippets) getID("reset_snippets").on("click", reset_snippets) var loop = setInterval(function(){ render() console.log(state) }, 1000) window.kill = clearInterval(loop) /* let_us("import a snippet from bgrins", ()=> { @@ -153,15 +156,24 @@ function handle_gui_switches(ev){ console.log(target.value) if(target.id === 'format') { opt.format = target.value return update() } if(target.id === 'rename') { opt.rename = !target.value return update() } if(target.id === 'review') { opt.review = !opt.review return update() } } function update(){ render() } @@ -170,7 +182,6 @@ function render(){ list.innerHTML = '' state.scriptSnippets.forEach((snippet)=>{ const a = document.createElement('a') a.href = snippet.name a.innerHTML = snippet.name -
soundyogi revised this gist
Jan 25, 2016 . 1 changed file with 237 additions and 196 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,13 +1,13 @@ void function(){ "use strict" /* * Manage and Import / Export snippets from chrome (2016) * hacked together by: http://github.com/soundyogi * inspired by: aaran etc. */ let_us("execute some init tests", function(){ if(location.origin !== "chrome-devtools://devtools") throw Error("not in devtools of devtools") ok(location.origin === "chrome-devtools://devtools", 'we are in devtools of devtools, good to go') }) @@ -16,17 +16,28 @@ let_us("init tests", function(){ const style = ` <style> body{ margin: 0; padding: 0; } grid { display: flex; align-items: center; justify-content: center; -webkit-flex-flow: column; } column { display: flex; -webkit-flex-flow: column; width: 30vw; } row { display: flex; -webkit-flex-flow: row; width: 90vw; } item { background: tomato; min-height: 20vh; color: white; font-weight: bold; @@ -38,88 +49,147 @@ cell { const markup = ` <grid> <row> <item> <button id="load_snippets">Load</button> </item> <item> <label>Drop Files Here <input id="import_files" type='file' multiple='true'/> </label> <label>Review Imports? <input id='review' type='checkbox'/> </label> </item> <item> <label>Rename? <select id='rename'> <option value='true'>Rename Import Files</option> <option value="false">Overwrite Snippets</option> </select> </label> </item> <item> <button id="export_snippets">export</button> <select id='format'> <option value="json">Single .json</option> <option value="js">Multiple .js</option> </select> </item> <item> <button id="save_snippets">Save to Chrome</button> </item> <item> <button id="reset_snippets">DELETE all on Chrome</button> </item> </row> <row> <column><ul id="state.scriptSnippets"></column> </row> </grid> ` /* Main logic */ const state = { scriptSnippets: [], lastIdentifier: 0, gui_switches: { rename: true, format: "json", review: false } } const app_window = create_window("menubar=false, height=700, width=700", "chrome snippets import/export") const document = app_window.document load_snippets() function load_snippets(){ app_window.document.body.innerHTML = style+markup get_prefs(main) } function main(prefs){ const lastScriptSnippets = prefs.scriptSnippets state.scriptSnippets = deserialize(lastScriptSnippets) state.lastIdentifier = prefs.scriptSnippets_lastIdentifier getID("format").on("change", handle_gui_switches) getID("rename").on("change", handle_gui_switches) getID("review").on("change", handle_gui_switches) getID("import_files").on("change", import_files) getID("export_snippets").on("click", export_snippets) getID("load_snippets").on("click", load_snippets) getID("save_snippets").on("click", save_snippets) getID("reset_snippets").on("click", reset_snippets) render() /* let_us("import a snippet from bgrins", ()=> { const brings_snippets = [ 'allcolors' ] brings_snippets.forEach(()=>{ request('https://raw.githubusercontent.com/bgrins/devtools-snippets/master/snippets/allcolors/allcolors.js', function(request){ var snippet = request.currentTarget.response || request.target.responseText; }) })*/ } function handle_gui_switches(ev){ const target = ev.target const opt = state.gui_switches console.log(target.value) if(target.id === 'format') return opt.format = target.value if(target.id === 'rename') return opt.rename = !target.value if(target.id === 'review') return opt.review = !opt.review } function update(){ render() //save_snippets() } function render(){ const list = app_window.document.getElementById("state.scriptSnippets") list.innerHTML = '' state.scriptSnippets.forEach((snippet)=>{ console.log(snippet) const a = document.createElement('a') a.href = snippet.name a.innerHTML = snippet.name list.appendChild(a) }) } /* Helpers */ function import_files(event){ const files = event.target.files const stack = Object.keys(files) .forEach((key)=>{ const file = files[key] const reader = new FileReader() reader.fileName = file.name reader.onerror = (()=> {throw Error}) reader.onabort = (()=> {throw Error}) reader.onload = file_loaded @@ -128,39 +198,127 @@ function import_files(event){ } function file_loaded(event){ const content_string = event.target.result const fileName = event.target.fileName add_snippet(fileName, content_string) } function set_pref(name, data_string){ InspectorFrontendHost.setPreference(name, data_string) } function get_prefs(cb){ InspectorFrontendHost.getPreferences(function(prefs){ cb(prefs) }) } function get_snippets(cb){ get_prefs(function(prefs){ cb(prefs.scriptSnippets) }) } function save_snippets(){ set_pref( "scriptSnippets", serialize(state.scriptSnippets) ) set_pref( "scriptSnippets_lastIdentifier", state.lastIdentifier) load_snippets() } function reset_snippets(){ prompt("DELETE ALL SNIPPETS IN DEVTOOLS?") // TODO: too risky for dev return set_pref("scriptSnippets", "[]") set_pref("scriptSnippets_lastIdentifier", "0") } function add_snippet(name, snippet_content_string){ if(is_duplicate(name, state.scriptSnippets)) { if(!state.gui_switches.rename) return state.scriptSnippets[name] = snippet_content_string return add_snippet(name+"copy", snippet_content_string) } const currentIdentifier = serialize(parseInt(state.lastIdentifier)+1) const new_snip = { content: snippet_content_string, id: currentIdentifier, name: name } state.scriptSnippets.push( new_snip ) state.lastIdentifier = currentIdentifier update() } function export_snippets(){ if(state.gui_switches.format === "json") return download_json() return download_js() } function download_js(){ state.scriptSnippets.forEach((snippet)=>{ download(snippet.name, snippet.content) }) } function download_json(){ const json_data = serialize({'snippets': state.scriptSnippets}, ['snippets', 'name', 'content'], 2) download('json', json_data) } /* util & shorthand */ function request(url, success) { var xhr = new XMLHttpRequest(); xhr.open('GET', url); xhr.onload = success; xhr.send(); return xhr; } function getID(id){ const element = app_window.document.getElementById(id) element.on = function on(event_name, fn){ this.addEventListener(event_name, fn) return this } return element } function serialize(object, ...rest){ if(!object) throw Error("serialize needs an object") return JSON.stringify(object, ...rest) } function deserialize(string){ if(typeof string !== "string") throw Error("deserialize needs a string") if(string === "") throw Error("no snippets present") return JSON.parse(string) } function download(name, data){ const Blob = new window.Blob([data],{ 'type': 'text/utf-8' }) const a = document.createElement('a') a.href = URL.createObjectURL(Blob) a.download = name a.click() } @@ -191,59 +349,6 @@ function getDownloadFileName(count) { } function is_duplicate(name, snippets_arr){ const result = snippets_arr.filter(function(snippet){ return snippet.name === name @@ -254,86 +359,22 @@ function is_duplicate(name, snippets_arr){ } function create_window(options, title){ const w = window.open("", "", options) w.document.title = title return w } /* * UNIT TESTS */ /* Nanoharness */ function let_us(msg,f){ console.log("we_will: "+msg) try { f() } catch (exception) { console.warn(exception.stack.replace(/:(\d+):(\d+)/g, "$& (Line $1, Column $2)")) -
soundyogi revised this gist
Jan 25, 2016 . No changes.There are no files selected for viewing
-
soundyogi revised this gist
Jan 25, 2016 . 1 changed file with 51 additions and 10 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -30,7 +30,7 @@ cell { min-height: 20vh; color: white; font-weight: bold; font-size: 1.5em; text-align: center; } </style> @@ -39,20 +39,30 @@ cell { const markup = ` <grid> <cell> <label>Drop Files Here <input id="import_files" type='file' multiple='true'/> </label> <label>Review Imports? <input type='checkbox'/> </label> </cell> <cell> <label>Handling Duplicate Names <select> <option>Rename imported content</option> <option>Import overwrites existing content</option> </select> </label> </cell> <cell> <button id="export_files">export</button> <select> <option>As Single .json</option> <option>As Multiple .js</option> </select> </cell> <cell> <button id="reset_snippets">delete all files</button> </cell> </grid> ` @@ -65,16 +75,45 @@ const main = create_window("menubar=false, height=700, width=700", "chrome snipp main.document.body.innerHTML = style+markup main.document .getElementById("export_files") .addEventListener("click", export_files) main.document .getElementById("import_files") .addEventListener('change', import_files) main.document .getElementById("reset_snippets") .addEventListener("click", reset_snippets) let_us("create another window with a live snippets preview", function(){ const snippet_view = create_window("menubar=false, height=700, width=300", "snippets") snippet_view.document.body.appendChild(document.createElement("ul")) const update_loop = setTimeout( ()=> { update_snippet_view(snippet_view) }, 1000 ) window.kill = ( ()=> clearInterval(update_loop) ) }) // helper functions function update_snippet_view(w){ get_snippets(function(snippets){ const list = w.document.querySelector("ul") const parsed_snippets = deserialize(snippets) parsed_snippets.forEach((snippet)=>{ const a = document.createElement('a') a.innerHTML = "lol"+snippet.name list.appendChild(a) }) }) } function import_files(event){ const files = event.target.files const stack = Object.keys(files) @@ -188,7 +227,6 @@ function add_snippet(name, snippet_content_string, current_prefs){ snippets_deserialized.push( new_snip ) set_pref( "scriptSnippets", serialize(snippets_deserialized) ) set_pref( "scriptSnippets_lastIdentifier", new_id_string ) } @@ -218,6 +256,9 @@ function is_duplicate(name, snippets_arr){ function reset_snippets(){ prompt("DELETE ALL SNIPPETS IN DEVTOOLS?") // TODO: too risky for dev return set_pref("scriptSnippets", "[]") set_pref("scriptSnippets_lastIdentifier", "0") } -
soundyogi revised this gist
Jan 25, 2016 . 1 changed file with 49 additions and 38 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -6,6 +6,14 @@ void function(){ "use strict" let_us("init tests", function(){ if(location.origin !== "chrome-devtools://devtools") throw Error("not in devtools of devtools") ok(location.origin === "chrome-devtools://devtools", 'we are in devtools of devtools, good to go') }) const style = ` <style> grid { @@ -52,66 +60,69 @@ const markup = ` /* Main logic */ const main = create_window("menubar=false, height=700, width=700", "chrome snippets import/export") main.document.body.innerHTML = style+markup main.document .getElementById("export_json") .addEventListener("click", export_files) main.document .getElementById("import") .addEventListener('change', import_files) // helper functions function import_files(event){ const files = event.target.files const stack = Object.keys(files) .forEach((key)=>{ const file = files[key] const reader = new FileReader() reader.onerror = (()=> {throw Error}) reader.onabort = (()=> {throw Error}) reader.onload = file_loaded reader.readAsText(file) }) } function export_files(){ // TODO add export options and such } function file_loaded(event){ const content_string = event.target.result debugger get_prefs(function(prefs){ add_snippet(name, content_string, prefs) }) } function export_js(){ } function export_json(files){ get_snippets(function(snippets){ const json_data = serialize({'snippets': snippets}, ['snippets', 'name', 'content'], 2) download(json_data) }) } function download(data){ const Blob = new window.Blob([data],{ 'type': 'text/utf-8' }) const a = document.createElement('a') a.href = URL.createObjectURL(Blob) a.download = JSON.stringify(Date.now()) a.click() } function getDownloadFileName(count) { @@ -218,7 +229,7 @@ function create_window(options, title){ return w } /* * UNIT TESTS */ /* -
soundyogi revised this gist
Jan 25, 2016 . 1 changed file with 149 additions and 76 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,90 +1,147 @@ /* * Import / Export snippets from chrome (2016) * hacked together by: http://github.com/soundyogi * inspired by: aaran etc. */ void function(){ "use strict" const style = ` <style> grid { display: flex; -webkit-flex-flow: column; display: flex; align-items: center; justify-content: center; } cell { background: tomato; width: 90vw; min-height: 20vh; color: white; font-weight: bold; font-size: 3em; text-align: center; } </style> ` const markup = ` <grid> <cell> <label>sdsdsd</label> <input type='checkbox'> </cell> <cell> <input id="import" type='file' multiple='true'>Drop Files Here</input> </cell> <cell> <select> <option>Rename imported content</option> <option>Import overwrites existing content</option> </select> </cell> <cell> <button id="export_json">export</button> </cell> </grid> ` /* Main logic */ let_us("check the location", function(){ if(location.origin !== "chrome-devtools://devtools") throw Error("not in devtools of devtools") ok(location.origin === "chrome-devtools://devtools", 'we are in devtools of devtools, good to go') }) let_us("create the app window", function(){ const w = create_window("menubar=false, height=700, width=700", "chrome snippets import/export") w.document.body.innerHTML = style+markup let_us("export all snippets when the export button is clicked", function(){ w.document .getElementById("export_json") .addEventListener("click", export_json) }) let_us("read from input and load files", function(){ const input = w.document.getElementById("import") input.addEventListener('change', function import_files(event){ const files = event.target.files const stack = Object .keys(files) .forEach((key)=>{ const file = files[key] const reader = new FileReader() debugger reader.onerror = (()=> {throw Error}) reader.onabort = (()=> {throw Error}) reader.onload = file_loaded reader.readAsText(file) }) }) }) }) // helper functions function file_loaded(event){ const content_string = event.target.result debugger get_prefs(function(prefs){ add_snippet(name, content_string, prefs) }) } function export_json(){ get_snippets(function(snippets){ const json_data = serialize({'snippets': snippets}, ['snippets', 'name', 'content'], 2) const Blob = new window.Blob([json_data],{ 'type': 'text/utf-8' }) const a = document.createElement('a') const snippet_count = deserialize(snippets).length a.href = URL.createObjectURL(Blob) a.download = getDownloadFileName(snippet_count) a.click() }) } function getDownloadFileName(count) { var abbrevCount; var d = new Date(); var fileName = 'chrome-snippets-' + count + '-'; //$NON-NLS-0$ fileName += d.getFullYear(); var month = d.getMonth() + 1; fileName += "-" + ((month < 10) ? "0" + month : month); //$NON-NLS-0$ //$NON-NLS-1$ // TODO Please note getDay() returns the day of week, // see http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.5.16 var day = d.getDate(); fileName += "-" + ((day < 10) ? "0" + day : day); //$NON-NLS-0$ //$NON-NLS-1$ var hours = d.getHours(); fileName += "T" + ((hours < 10) ? "0" + hours : hours); //$NON-NLS-0$ //$NON-NLS-1$ var minutes = d.getMinutes(); fileName += ((minutes < 10) ? "0" + minutes : minutes); //$NON-NLS-0$ var seconds = d.getSeconds(); fileName += ((seconds < 10) ? "0" + seconds : seconds); //$NON-NLS-0$ var timeZoneOffset = -d.getTimezoneOffset(); var offsetMinutes = timeZoneOffset % 60; var offsetHours = (timeZoneOffset - offsetMinutes) / 60; // TODO FIXME >= 0 ? fileName += (offsetHours > 0 ? "+" : "") + ((offsetHours < 10) ? "0" + offsetHours : offsetHours) + ((offsetMinutes < 10) ? "0" + offsetMinutes : offsetMinutes); //$NON-NLS-0$ //$NON-NLS-2$ //$NON-NLS-1$ fileName += '.json'; //$NON-NLS-0$ return fileName; } function get_prefs(cb){ @@ -118,16 +175,16 @@ function add_snippet(name, snippet_content_string, current_prefs){ name: name } snippets_deserialized.push( new_snip ) set_pref( "scriptSnippets", serialize(snippets_deserialized) ) // update lastIdentifier set_pref( "scriptSnippets_lastIdentifier", new_id_string ) } function serialize(object, ...rest){ if(!object) throw Error("serialize needs an object") return JSON.stringify(object, ...rest) } @@ -149,11 +206,17 @@ function is_duplicate(name, snippets_arr){ function reset_snippets(){ prompt("DELETE ALL SNIPPETS IN DEVTOOLS?") set_pref("scriptSnippets", "[]") set_pref("scriptSnippets_lastIdentifier", "0") } function create_window(options, title){ const w = window.open("", "", options) w.document.title = title return w } /* * TESTS */ @@ -215,20 +278,30 @@ let_us("get the snippets and parse them, so the individual scripts can be iterat // TODO: testint is not async /* Nanoharness */ function let_us(msg,f){ console.log("__group: "+msg) try { f() } catch (exception) { console.warn(exception.stack.replace(/:(\d+):(\d+)/g, "$& (Line $1, Column $2)")) } } function ok(expr, msg){ log(expr, msg) } function log(expr, msg){ expr ? console.log("!pass "+msg) : console.log("?fail "+msg) } function html_log(){ const queue = [] return function log(expr, msg) { queue.push( expr ? `!pass ${msg}` : `?fail ${msg}` ) } } }("thank you for reading this")
NewerOlder