From dd07c65705dc0a4af35382d325571b47208c4b49 Mon Sep 17 00:00:00 2001 From: reliberate Date: Thu, 25 Feb 2016 01:19:24 -0700 Subject: [PATCH] Edit: Customize defaults with Settings, add live preview on Mode and Font Size. --- app/edit/index.php | 194 ++++++++++++++++++++++++--------------------- 1 file changed, 104 insertions(+), 90 deletions(-) diff --git a/app/edit/index.php b/app/edit/index.php index 717c7acfb9..33ea77a69f 100644 --- a/app/edit/index.php +++ b/app/edit/index.php @@ -39,18 +39,26 @@ else { $language = new text; $text = $language->get(); -//set the directory +//set the directory title and mode $_SESSION["app"]["edit"]["dir"] = $_GET["dir"]; $title = strtoupper($_GET["dir"]); unset($mode); switch ($_GET["dir"]) { - case 'xml': $mode['xml'] = 'selected'; break; - case 'provision': $mode['xml'] = 'selected'; break; - case 'php': $mode['php'] = 'selected'; break; - case 'scripts': $mode['lua'] = 'selected'; break; + case 'xml': $mode = 'xml'; break; + case 'provision': $mode = 'xml'; break; + case 'php': $mode = 'php'; break; + case 'scripts': $mode = 'lua'; break; case 'grammar': //use default - default: $mode['text'] = 'selected'; + default: $mode = 'text'; } + +// load editor preferences/defaults + $setting_size = ($_SESSION["editor"]["font_size"]["text"] != '') ? $_SESSION["editor"]["font_size"]["text"] : '12px'; + $setting_theme = ($_SESSION["editor"]["theme"]["text"] != '') ? $_SESSION["editor"]["theme"]["text"] : 'cobalt'; + $setting_invisibles = ($_SESSION["editor"]["invisibles"]["boolean"] != '') ? $_SESSION["editor"]["invisibles"]["boolean"] : 'false'; + $setting_indenting = ($_SESSION["editor"]["indent_guides"]["boolean"] != '') ? $_SESSION["editor"]["indent_guides"]["boolean"] : 'false'; + $setting_numbering = ($_SESSION["editor"]["line_numbers"]["boolean"] != '') ? $_SESSION["editor"]["line_numbers"]["boolean"] : 'true'; + $setting_preview = ($_SESSION["editor"]["live_preview"]["boolean"] != '') ? $_SESSION["editor"]["live_preview"]["boolean"] : 'true'; ?> @@ -64,21 +72,17 @@ else { document.getElementById('editor_source').value = editor.getSession().getValue(); return true; } - focus_editor(); + editor.focus(); return false; } - function preview_theme(opt) { - editor.setTheme('ace/theme/' + opt.value); - } - function toggle_option(opt) { switch (opt) { - case 'numbering': toggle_option_do('showGutter'); break; + case 'numbering': toggle_option_do('showLineNumbers'); toggle_option_do('fadeFoldWidgets'); break; case 'invisibles': toggle_option_do('showInvisibles'); break; case 'indenting': toggle_option_do('displayIndentGuides'); break; } - focus_editor(); + editor.focus(); } function toggle_option_do(opt_name) { @@ -89,16 +93,12 @@ else { function toggle_sidebar() { var td_sidebar = document.getElementById('sidebar'); td_sidebar.style.display = (td_sidebar.style.display == '') ? 'none' : ''; - focus_editor(); + editor.focus(); } function insert_clip(before, after) { var selected_text = editor.session.getTextRange(editor.getSelectionRange()); editor.insert(before + selected_text + after); - focus_editor(); - } - - function focus_editor() { editor.focus(); } @@ -118,7 +118,6 @@ else { div#editor { box-shadow: 0 5px 15px #333; } - @@ -144,71 +143,89 @@ else { - + $label) { + $selected = ($value == $mode) ? 'selected' : null; + echo "\n"; + } + ?> - + ".$setting_size."\n"; + echo "\n"; + } + foreach ($sizes as $size) { + $selected = ($size == $setting_size) ? 'selected' : null; + echo "\n"; + } + ?> - + $theme) { + echo "\n"; + foreach ($theme as $value => $label) { + $selected = (strtolower($label) == strtolower($setting_theme)) ? 'selected' : null; + echo "\n"; + } + echo "\n"; + } + ?> @@ -225,25 +242,22 @@ else { //load ace editor var editor = ace.edit("editor"); editor.setOptions({ - $meh) { - if ($meh == 'selected') { echo "mode: 'ace/mode/".$lang."',\n"; break; } - } - ?> - theme: 'ace/theme/cobalt', + mode: 'ace/mode/', + theme: 'ace/theme/'+document.getElementById('theme').options[document.getElementById('theme').selectedIndex].value, selectionStyle: 'text', cursorStyle: 'smooth', - showInvisibles: false, - displayIndentGuides: true, - showLineNumbers: true, + showInvisibles: , + displayIndentGuides: , + showLineNumbers: , showGutter: true, scrollPastEnd: true, - fadeFoldWidgets: true, + fadeFoldWidgets: , showPrintMargin: false, highlightGutterLine: false, useSoftTabs: false }); - focus_editor(); + document.getElementById('editor').style.fontSize=''; + editor.focus(); //keyboard shortcut to save file $(window).keypress(function(event) { @@ -264,7 +278,7 @@ else { }); //remove certain keyboard shortcuts - editor.commands.bindKey("Ctrl-T", null); + editor.commands.bindKey("Ctrl-T", null); //new browser tab