lib/template/js/main.js in browser_app_base-0.1.2 vs lib/template/js/main.js in browser_app_base-0.1.3

- old
+ new

@@ -113,11 +113,11 @@ //jQuery(this).autocomplete("search", ""); $(this).keydown(); }, source: function (req, resp) { $.ajax({ - url: "http://localhost:58656/search?path=" + $("#" + id).val() + "&kind=" + file_kind, + url: "search?path=" + $("#" + id).val() + "&kind=" + file_kind, type: "GET", cache: false, dataType: "json", data: { param1: req.term @@ -146,11 +146,11 @@ jQuery("#" + id).val(ui.item.value); $(this).keydown(); }, source: function (req, resp) { $.ajax({ - url: "http://localhost:58656/history/" + file_name, + url: "history/" + file_name, type: "POST", cache: false, dataType: "json", data: { param1: req.term @@ -289,10 +289,11 @@ json_data.push(data); } else { //console.log("type=" + s[i].type); } } + // Jsonデータをサーバに送信 $ws.send("setting:" + JSON.stringify(json_data)); }); $(this).dialog("close"); }, "Cancel": function () { //Cancelボタン @@ -301,10 +302,61 @@ } }); }); } +// 設定読み込み +function load_setting(open_id) { + document.getElementById(open_id).onclick = async () => { + [fileHandle] = await window.showOpenFilePicker(); + const file = await fileHandle.getFile(); + const json_data = await file.text(); + console.log(json_data); + // Jsonデータをサーバに送信 + $ws.send("setting:" + json_data); + }; +} + +// 設定保存 +function save_setting(open_id, json_file) { + document.getElementById(open_id).onclick = async () => { + var json_data = "" + $.ajax({ + // jsonの読み込み + type: "GET", + url: json_file, // ファイルパス(相対パス) + dataType: "json", // ファイル形式 + async: false // 非同期通信フラグ + }).then( + function (json) { + // 読み込み成功時の処理 + json_data = JSON.stringify(json, null, 2); + console.log("json=" + json_data); + }, + function () { + // 読み込み失敗時の処理 + console.log("読み込みに失敗しました"); + } + ); + // Jsonを保存 + const opts = { + suggestedName: 'setting.json', + types: [{ + description: 'Text file', + accept: { 'text/plain': ['.json'] }, + }], + }; + // ファイルをどこにどんな名前で保存するか訊くダイアログを表示 + const saveHandle = await window.showSaveFilePicker(opts) + // 保存先ファイルに書き込み準備 + const writable = await saveHandle.createWritable(); + // 先程同様に書き込んで終了 + await writable.write(json_data); + await writable.close(); + }; +} + function get_dirname(path) { var result = path.replace(/\\/g, '/').replace(/\/[^\/]*$/, ''); if (result.match(/^[^\/]*\.[^\/\.]*$/)) { result = ''; } @@ -322,16 +374,30 @@ // 起動時の処理 $(document).ready(function () { // サーバに接続 - server_connect("ws://localhost:58656/wsserver") + server_connect("ws://localhost:40173/wsserver") window.onload = function (e) { // サーバに接続 - //server_connect("ws://localhost:58656/wsserver") + //server_connect("ws://localhost:40173/wsserver") } + // menu + $(function () { + $(".menu li").hover( + function () { + //クラス名「open」を付与する + $(this).children(".menuSub").addClass("open"); + //hoverが外れた場合 + }, function () { + //クラス名「open」を取り除く + $(this).children(".menuSub").removeClass("open"); + } + ); + }); + // ウインドウサイズ var width = 800; var height = 600; $(window).resize(function () { $(".outarea").height($(window).height() - 220); @@ -356,24 +422,32 @@ $auto_scroll = false; } //console.log("auto_scroll=" + $auto_scroll); }); + // 設定ダイアログ + setting_dialog("setting", "setting_dialog", "config/setting.json"); + + // 設定保存 + save_setting("save_setting", "config/setting.json"); + + // 設定読み込み + load_setting("load_setting"); + // ハンドラ登録 $("#stop").click(function () { send_message("stop"); }); $("#exec").click(function () { $('#log').empty(); send_message("exec:" + $("#upFile").val()); }); + select_file_dialog("search_str", "file", "dialog1", "select_file", "upFile"); select_file_dialog("search_str2", "dir", "dialog2", "select_dir", "upDir"); - - setting_dialog("setting", "setting_dialog", "config/setting.json"); autocomp_history("upFile", "history.json") });