@@ -7,6 +7,14 @@ const kLogging = false;
77const kMaxCopyPastes = 20 ;
88const kUpdated = '[[UPDATED]]' ;
99
10+ const kModeCue = "cue" ;
11+ const kModeAppend = "append" ;
12+ const kModePrepend = "prepend" ;
13+ const kModeReplace = "replace" ;
14+ const kModes = [ kModeCue , kModeAppend , kModePrepend , kModeReplace ] ;
15+ const kLinkModes = [ kModeCue ] ;
16+ const kScriptModes = [ kModeAppend , kModePrepend , kModeReplace ] ;
17+
1018var elements = { } ;
1119var textChanged = true ;
1220
@@ -50,11 +58,9 @@ function FindElements() {
5058 elements . stopWordsCheckbox = document . getElementById ( "stop-words-checkbox" ) ;
5159 elements . stopWordsBreak = document . getElementById ( "stop-words-break" ) ;
5260 elements . stopWords = document . getElementById ( "stop-words" ) ;
61+ elements . mode = document . getElementById ( "mode" ) ;
5362 elements . autoGenerateCheckbox = document . getElementById ( "auto-generate-checkbox" ) ;
54- elements . appendCheckbox = document . getElementById ( "append-checkbox" ) ;
55- elements . replaceCheckbox = document . getElementById ( "replace-checkbox" ) ;
56- elements . bookmarkTypeLink = document . getElementById ( "bookmark-type-link" ) ;
57- elements . bookmarkTypeScript = document . getElementById ( "bookmark-type-script" ) ;
63+
5864 elements . bookmarkLabel = document . getElementById ( "bookmark-label" ) ;
5965 elements . bookmark = document . getElementById ( "bookmark" ) ;
6066
@@ -81,10 +87,16 @@ function UpdateBookmark() {
8187 stopWordsText = '' ;
8288 }
8389 let autoGenerate = elements . autoGenerateCheckbox . checked ;
84- let append = elements . appendCheckbox . checked ;
85- let replace = elements . replaceCheckbox . checked ;
86- let bookmarkTypeLink = elements . bookmarkTypeLink . checked ;
87- let bookmarkTypeScript = elements . bookmarkTypeScript . checked ;
90+ let mode = elements . mode . value ;
91+
92+ // let bookmarkTypeLink = elements.bookmarkTypeLink.checked;
93+ // let bookmarkTypeScript = elements.bookmarkTypeScript.checked;
94+
95+ if ( ! kModes . includes ( mode ) ) {
96+ mode = kModeCue ;
97+ }
98+ let bookmarkTypeLink = kLinkModes . includes ( mode ) ;
99+ let bookmarkTypeScript = kScriptModes . includes ( mode ) ;
88100
89101 let cue = elements . cueText . value
90102 let generated = elements . generatedText . value
@@ -95,10 +107,11 @@ function UpdateBookmark() {
95107 "tokens" : tokens ,
96108 "stop-words" : stopWordsText ,
97109 "auto-generate" : autoGenerate ,
98- "append" : append ,
99- "replace" : replace ,
100- "bookmark-type-link" : bookmarkTypeLink ,
101- "bookmark-type-script" : bookmarkTypeScript ,
110+ "mode" : mode ,
111+ // "append": append,
112+ // "replace": replace,
113+ // "bookmark-type-link" : bookmarkTypeLink,
114+ // "bookmark-type-script" : bookmarkTypeScript,
102115 "cue" : cue ,
103116 "generated" : generated ,
104117 }
@@ -152,30 +165,11 @@ function UpdateBookmark() {
152165 " }\n" +
153166 " else if (activeElt) {\n" +
154167 " let cue = \"" + cue . replace ( / [ \\ " ' ] / g, '\\$&' ) + "\";\n" +
155- " let value = (" + append + ") ? activeElt.value + cue : cue;\n" +
168+ " let value = (" + ( mode == " append" ) + ") ? activeElt.value + cue : cue;\n" +
156169 " activeElt.value = value;\n" +
157170 " }\n" +
158171 "})();"
159172
160- /*
161- // We previously included the rootUrl, but no need to with link/script option. -Brad 2025-06-30
162-
163- var rootUrl = window.location.protocol + "//" + window.location.host + "/completion/";
164- if (kLogging || logThis) console.log(rootUrl);
165-
166- var js =
167- "javascript:(() => { \n" +
168- " let hash = '" + hash + "';\n" +
169- " let rootUrl = '" + rootUrl + "';\n" +
170- " if (typeof isMmojoPage !== 'undefined') {\n" +
171- " location.hash = hash;\n" +
172- " }\n" +
173- " else {\n" +
174- " location = rootUrl + hash;\n" +
175- " }\n" +
176- "})();"
177- */
178-
179173 if ( kLogging || logThis ) console . log ( js ) ;
180174
181175 elements . bookmark . href = js ;
@@ -228,11 +222,7 @@ function settings_drop(event) {
228222 hash = match . replaceAll ( '#' , '' ) . replaceAll ( '\'' , '' ) ;
229223 if ( kLogging || logThis ) console . log ( "hash: " + hash ) ;
230224
231- jsonData = decodeURIComponent ( atob ( hash ) ) ;
232- if ( kLogging || logThis ) console . log ( "jsonData: " + jsonData ) ;
233-
234- data = JSON . parse ( jsonData ) ;
235- if ( kLogging || logThis ) console . log ( "data: " + data ) ;
225+ UseHash ( hash ) ;
236226 }
237227 else if ( bookmarkData . startsWith ( hostUrl ) ) {
238228 if ( kLogging || logThis ) console . log ( "This is one of our link bookmarks." ) ;
@@ -244,85 +234,11 @@ function settings_drop(event) {
244234 hash = match . replaceAll ( '#' , '' ) . replaceAll ( '\'' , '' ) ;
245235 if ( kLogging || logThis ) console . log ( "hash: " + hash ) ;
246236
247- jsonData = decodeURIComponent ( atob ( hash ) ) ;
248- if ( kLogging || logThis ) console . log ( "jsonData: " + jsonData ) ;
249-
250- data = JSON . parse ( jsonData ) ;
251- if ( kLogging || logThis ) console . log ( "data: " + data ) ;
252- }
253-
254- let label = '' ;
255- let temperature = 0.25 ;
256- let tokens = - 1 ;
257- let stopWords = '' ;
258- let autoGenerate = true ;
259- let append = false ;
260- let bookmarkTypeLink = true ;
261- let bookmarkTypeScript = false ;
262-
263- let cue = '' ;
264- let generated = '' ;
265-
266- if ( 'label' in data ) {
267- label = data [ 'label' ] ;
268- }
269- if ( 'temperature' in data ) {
270- temperature = data [ 'temperature' ] ;
271- }
272- if ( 'tokens' in data ) {
273- tokens = data [ 'tokens' ] ; ;
274- }
275- if ( 'stop-words' in data ) {
276- stopWords = data [ 'stop-words' ] ;
277- }
278- if ( 'auto-generate' in data ) {
279- autoGenerate = data [ 'auto-generate' ] ;
280- }
281- if ( 'append' in data ) {
282- append = data [ 'append' ] ;
283- }
284- if ( 'bookmark-type-link' in data ) {
285- bookmarkTypeLink = data [ 'bookmark-type-link' ] ;
286- }
287- if ( 'bookmark-type-script' in data ) {
288- bookmarkTypeScript = data [ 'bookmark-type-script' ] ;
289- }
290- if ( 'cue' in data ) {
291- cue = data [ 'cue' ] ;
292- }
293- if ( 'generated' in data ) {
294- generated = data [ 'generated' ] ;
295- }
296-
297- if ( kLogging || logThis ) {
298- console . log ( "label: " + label ) ;
299- console . log ( "temperature: " + temperature ) ;
300- console . log ( "tokens: " + tokens ) ;
301- console . log ( "stopWords: " + stopWords ) ;
302- console . log ( "autoGenerate: " + autoGenerate ) ;
303- console . log ( "append: " + append ) ;
304- console . log ( "bookmarkTypeLink: " + bookmarkTypeLink ) ;
305- console . log ( "bookmarkTypeScript: " + bookmarkTypeScript ) ;
306- console . log ( "cue: " + cue ) ;
307- console . log ( "generated: " + generated ) ;
237+ UseHash ( hash ) ;
308238 }
309-
310- elements . label . value = label ;
311- elements . temperature . value = temperature ;
312- elements . tokens . value = tokens ;
313- elements . stopWordsCheckbox . checked = ( stopWords != '' ) ;
314- elements . stopWords . value = stopWords ;
315- elements . autoGenerateCheckbox . checked = autoGenerate ;
316- elements . appendCheckbox . checked = append ;
317- elements . bookmarkTypeLink . checked = bookmarkTypeLink ;
318- elements . bookmarkTypeScript . checked = bookmarkTypeScript ;
319-
320- elements . cueText . value = cue ;
321- elements . generatedText . value = generated ;
322-
323239 }
324240 catch {
325- // if (kLogging) console.log("There was a problem parsing the dropped bookmark.")
241+ if ( kLogging || logThis ) console . log ( "settings_drop() catch" ) ;
326242 }
327243
328244 UpdateBookmark ( ) ;
@@ -341,11 +257,8 @@ function ClearBookmarkMaker() {
341257 let temperature = "" ;
342258 let tokens = "" ;
343259 let stopWords = "" ;
260+ let mode = kModeCue ;
344261 let autoGenerate = false ;
345- let append = false ;
346- let replace = false ;
347- let bookmarkTypeLink = true ;
348- let bookmarkTypeScript = false ;
349262 let cue = "" ;
350263 let generated = "" ;
351264
@@ -354,11 +267,8 @@ function ClearBookmarkMaker() {
354267 elements . tokens . value = tokens ;
355268 elements . stopWordsCheckbox . checked = ( stopWords != '' ) ;
356269 elements . stopWords . value = stopWords ;
270+ elements . mode . value = mode ;
357271 elements . autoGenerateCheckbox . checked = autoGenerate ;
358- elements . appendCheckbox . checked = append ;
359- elements . replaceCheckbox . checked = replace ;
360- elements . bookmarkTypeLink . checked = bookmarkTypeLink ;
361- elements . bookmarkTypeScript . checked = bookmarkTypeScript ;
362272
363273 elements . cueText . value = cue ;
364274 elements . generatedText . value = generated ;
@@ -387,9 +297,8 @@ function UseHash(hash) {
387297 let temperature = null ;
388298 let tokens = null ;
389299 let stopWords = null ;
300+ let mode = kModeCue ;
390301 let autoGenerate = false ;
391- let append = false ;
392- let replace = false ;
393302 let cue = "" ;
394303 let generated = "" ;
395304
@@ -399,11 +308,8 @@ function UseHash(hash) {
399308 let saveTokensValue = elements . tokens . value ;
400309 let saveStopWordsCheckboxValue = elements . stopWordsCheckbox . checked ;
401310 let saveStopWordsValue = elements . stopWords . value ;
311+ let saveModeValue = elements . mode . value ;
402312 let saveAutoGenerateValue = elements . autoGenerateCheckbox . checked ;
403- let saveAppendValue = elements . appendCheckbox . checked ;
404- let saveReplaceValue = elements . replaceCheckbox . checked ;
405- let saveBookmarkTypeLink = elements . bookmarkTypeLink . checked ;
406- let saveBookmarkTypeScript = elements . bookmarkTypeScript . checked ;
407313 let saveCueTextValue = elements . cueText . value ;
408314 let saveGeneratedTextValue = elements . generatedText . value ;
409315
@@ -454,44 +360,20 @@ function UseHash(hash) {
454360 elements . stopWords . value = '' ;
455361 }
456362
457- if ( 'auto-generate' in data ) {
458- autoGenerate = data [ 'auto-generate' ] ;
459- elements . autoGenerateCheckbox . checked = autoGenerate ;
460- }
461- else {
462- elements . autoGenerateCheckbox . checked = false ;
463- }
464-
465- if ( 'append' in data ) {
466- append = data [ 'append' ] ;
467- elements . appendCheckbox . checked = append ;
468- }
469- else {
470- elements . appendCheckbox . checked = false ;
471- }
472-
473- if ( 'replace' in data ) {
474- replace = data [ 'replace' ] ;
475- elements . replaceCheckbox . checked = replace ;
476- }
477- else {
478- elements . replaceCheckbox . checked = false ;
479- }
480-
481- if ( 'bookmark-type-link' in data ) {
482- bookmarkTypeLink = data [ 'bookmark-type-link' ] ;
483- elements . bookmarkTypeLink . checked = bookmarkTypeLink ;
363+ if ( 'mode' in data ) {
364+ mode = data [ 'mode' ] ;
365+ elements . mode . value = mode ;
484366 }
485367 else {
486- elements . bookmarkTypeLink . checked = false ;
368+ elements . mode . value = kModeCue ;
487369 }
488370
489- if ( 'bookmark-type-script ' in data ) {
490- bookmarkTypeScript = data [ 'bookmark-type-script ' ] ;
491- elements . bookmarkTypeScript . checked = bookmarkTypeScript ;
371+ if ( 'auto-generate ' in data ) {
372+ autoGenerate = data [ 'auto-generate ' ] ;
373+ elements . autoGenerateCheckbox . checked = autoGenerate ;
492374 }
493375 else {
494- elements . bookmarkTypeScript . checked = false ;
376+ elements . autoGenerateCheckbox . checked = false ;
495377 }
496378
497379 if ( 'cue' in data ) {
@@ -510,14 +392,29 @@ function UseHash(hash) {
510392 elements . generatedText . value = '' ;
511393 }
512394
395+ // convert old append and replace to modes.
396+ if ( 'append' in data ) {
397+ let append = data [ 'append' ] ;
398+ if ( append ) {
399+ elements . mode . value = kModeAppend ;
400+ }
401+ }
402+
403+ if ( 'replace' in data ) {
404+ let replace = data [ 'replace' ] ;
405+ if ( replace ) {
406+ elements . mode . value = kModeReplace ;
407+ }
408+ }
409+
513410 if ( kLogging || logThis ) console . log ( '- cue:' ) ;
514411 if ( kLogging || logThis ) console . log ( cue ) ;
515412 if ( kLogging || logThis ) console . log ( '- generated:' ) ;
516413 if ( kLogging || logThis ) console . log ( generated ) ;
517414 }
518415 }
519416 catch {
520- if ( kLogging ) console . log ( "UseHash() catch" ) ;
417+ if ( kLogging || logThis ) console . log ( "UseHash() catch" ) ;
521418
522419 elements . cueText . value = saveCueTextValue ;
523420 elements . generatedText . value = saveGeneratedTextValue ;
@@ -529,11 +426,7 @@ function UseHash(hash) {
529426 elements . stopWords . value = saveStopWordsValue ;
530427
531428 elements . autoGenerateCheckbox . checked = saveAutoGenerateValue ;
532- elements . appendCheckbox . checked = saveAppendValue ;
533- elements . replaceCheckbox . checked = saveReplaceValue ;
534-
535- elements . bookmarkTypeLink . checked = saveBookmarkTypeLink ;
536- elements . bookmarkTypeScript . checked = saveBookmarkTypeScript ;
429+ elements . mode . value = saveModeValue ;
537430
538431 elements . cueText . value = saveCueTextValue ;
539432 elements . generatedText . value = saveGeneratedTextValue ;
0 commit comments