diff --git a/components/editor/dialog.php b/components/editor/dialog.php index e359a37..f572028 100755 --- a/components/editor/dialog.php +++ b/components/editor/dialog.php @@ -181,8 +181,8 @@ switch($_GET['action']){ - - + + 'html', + 'htm' => 'html', + 'tpl' => 'html', + 'js' => 'javascript', + 'css' => 'css', + 'scss' => 'scss', + 'sass' => 'scss', + 'less' => 'less', + 'php' => 'php', + 'php4' => 'php', + 'php5' => 'php', + 'phtml' => 'php', + 'json' => 'json', + 'xml' => 'xml', + 'sql' => 'sql', + 'md' => 'markdown', + 'c' => 'c_cpp', + 'cpp' => 'c_cpp', + 'h' => 'c_cpp', + 'hpp' => 'c_cpp', + 'py' => 'python', + 'rb' => 'ruby', + 'jade' => 'jade', + 'coffee' => 'coffee'); + + private $availiableTextModes = array( + 'abap', + 'asciidoc', + 'c9search', + 'c_cpp', + 'clojure', + 'coffee', + 'coldfusion', + 'csharp', + 'css', + 'curly', + 'dart', + 'diff', + 'django', + 'dot', + 'ftl', + 'glsl', + 'golang', + 'groovy', + 'haml', + 'haxe', + 'html', + 'jade', + 'java', + 'javascript', + 'json', + 'jsp', + 'jsx', + 'latex', + 'less', + 'liquid', + 'lisp', + 'livescript', + 'logiql', + 'lsl', + 'lua', + 'luapage', + 'lucene', + 'makefile', + 'markdown', + 'mushcode', + 'objectivec', + 'ocaml', + 'pascal', + 'perl', + 'pgsql', + 'php', + 'powershell', + 'python', + 'r', + 'rdoc', + 'rhtml', + 'ruby', + 'sass', + 'scad', + 'scala', + 'scheme', + 'scss', + 'sh', + 'sql', + 'stylus', + 'svg', + 'tcl', + 'tex', + 'text', + 'textile', + 'tmsnippet', + 'toml', + 'typescript', + 'vbscript', + 'velocity', + 'xml', + 'xquery', + 'yaml' + ); + + public function __construct(){ + Common::checkSession(); + } + + public function getAvailiableTextModes(){ + return $this->availiableTextModes; + } + + public function getDefaultExtensions(){ + return $this->defaultExtensions; + } + + private function validateExtension($extension){ + return preg_match('#^[a-z0-9\_]+$#i', $extension); + } + + private function validTextMode($mode){ + return in_array($mode, $this->availiableTextModes); + } + + private function processFileExtTextModeForm(){ + //Store Fileextensions and Textmodes in File: + + if(!isset($_POST['extension']) || !is_array($_POST['extension']) + || !isset($_POST['textMode']) || !is_array($_POST['textMode'])){ + return json_encode(array('status' => 'error', 'msg' => 'incorrect data send')); + } + + $exMap = array(); + + $warning = ''; + + foreach ($_POST['extension'] as $key => $extension){ + if(trim($extension) == '' ){ + continue; + } + + if(!isset($_POST["textMode"][$key])){ + return json_encode(array('status' => 'error', 'msg' => 'incorrect data send.')); + } + + $extension = strtolower(trim($extension)); + $textMode = strtolower(trim($_POST["textMode"][$key])); + + if(!$this->validateExtension($extension)){ + return json_encode(array('status' => 'error', 'msg' => 'incorrect extension:'.htmlentities($extension))); + } + + if(!$this->validTextMode($textMode)){ + return json_encode(array('status' => 'error', 'msg' => 'incorrect text mode:'.htmlentities($textMode))); + } + + if(isset($exMap[$extension])){ + $warning = htmlentities($extension).' is already set.
'; + }else{ + $exMap[$extension] = $textMode; + } + } + + + Common::saveJSON('fileExtensions.php', $exMap); + if($warning != ''){ + return json_encode(array('status' => 'warning', 'msg' => $warning, 'extensions' => $exMap )); + }else{ + return json_encode(array('status' => 'success', 'msg' => 'File extensions are saved successfully.', 'extensions' => $exMap)); + } + + } + + public function processForms(){ + if(!isset($_POST['action'])){ + return json_encode(array('status' => 'error', 'msg' => 'incorrect data send.')); + } + + switch($_POST['action']){ + case 'FileExtTextModeForm': + return $this->processFileExtTextModeForm(); + break; + case 'GetFileExtTextModes': + return $this->prcessGetFileExtTextModes(); + break; + default: + return json_encode(array('status' => 'error', 'msg' => 'Incorrect data send')); + break; + } + } + + private function prcessGetFileExtTextModes(){ + $ext = false; + //ignore warnings + $ext = @Common::getJSON('fileExtensions.php'); + + if(!is_array($ext)){ + //default extensions + $ext = $this->defaultExtensions; + } + + return json_encode(array('status' => 'success', 'extensions' => $ext, 'textModes' => $this->availiableTextModes)); + } +} + +?> \ No newline at end of file diff --git a/components/fileExtTextMode/controller.php b/components/fileExtTextMode/controller.php new file mode 100644 index 0000000..5b3057c --- /dev/null +++ b/components/fileExtTextMode/controller.php @@ -0,0 +1,10 @@ +processForms(); + +?> \ No newline at end of file diff --git a/components/fileExtTextMode/defaultValues.php b/components/fileExtTextMode/defaultValues.php deleted file mode 100644 index e4a6d65..0000000 --- a/components/fileExtTextMode/defaultValues.php +++ /dev/null @@ -1,107 +0,0 @@ - 'html', - 'htm' => 'html', - 'tpl' => 'html', - 'js' => 'javascript', - 'css' => 'css', - 'scss' => 'scss', - 'sass' => 'scss', - 'less' => 'less', - 'php' => 'php', - 'php4' => 'php', - 'php5' => 'php', - 'phtml' => 'php', - 'json' => 'json', - 'xml' => 'xml', - 'sql' => 'sql', - 'md' => 'markdown', - 'c' => 'c_cpp', - 'cpp' => 'c_cpp', - 'h' => 'c_cpp', - 'hpp' => 'c_cpp', - 'py' => 'python', - 'rb' => 'ruby', - 'jade' => 'jade', - 'coffee' => 'coffee'); - -$availiableTextModes = array( - 'abap', - 'asciidoc', - 'c9search', - 'c_cpp', - 'clojure', - 'coffee', - 'coldfusion', - 'csharp', - 'css', - 'curly', - 'dart', - 'diff', - 'django', - 'dot', - 'ftl', - 'glsl', - 'golang', - 'groovy', - 'haml', - 'haxe', - 'html', - 'jade', - 'java', - 'javascript', - 'json', - 'jsp', - 'jsx', - 'latex', - 'less', - 'liquid', - 'lisp', - 'livescript', - 'logiql', - 'lsl', - 'lua', - 'luapage', - 'lucene', - 'makefile', - 'markdown', - 'mushcode', - 'objectivec', - 'ocaml', - 'pascal', - 'perl', - 'pgsql', - 'php', - 'powershell', - 'python', - 'r', - 'rdoc', - 'rhtml', - 'ruby', - 'sass', - 'scad', - 'scala', - 'scheme', - 'scss', - 'sh', - 'sql', - 'stylus', - 'svg', - 'tcl', - 'tex', - 'text', - 'textile', - 'tmsnippet', - 'toml', - 'typescript', - 'vbscript', - 'velocity', - 'xml', - 'xquery', - 'yaml' - ); - -?> \ No newline at end of file diff --git a/components/fileExtTextMode/dialog.php b/components/fileExtTextMode/dialog.php new file mode 100644 index 0000000..35465ca --- /dev/null +++ b/components/fileExtTextMode/dialog.php @@ -0,0 +1,68 @@ +'."\n"; + foreach($fileExTM->getAvailiableTextModes() as $textmode){ + $ret .= ' '."\n"; + } + + //unknown extension, print it in the end + if(!$find && $extension != ''){ + $ret .= ' '."\n"; + } + + $ret .= ''."\n"; + + return $ret; +} + +$ext = false; +//ignore warnings +$ext = @Common::getJSON('fileExtensions.php'); + +if(!is_array($ext)){ + //default extensions + $ext = $fileExTM->getDefaultExtensions(); +} + +$textModes = $fileExTM->getAvailiableTextModes(); + +if(!@ksort($ext)){ + die(json_encode(array('status' => 'error', 'msg' => 'Internal PHP error.') )); +} + +//echo '
'."\n"; +echo '
'; +echo ''; +echo ''; + echo ''; + echo ''; + echo ''."\n"; + foreach($ext as $ex => $mode){ + echo ''; + echo ''; + echo ''; + echo ''."\n"; + } + echo ''; +echo '
'.getTextModeSelect($mode).'
'; +echo '
'; +echo ''; +echo '
'; +echo ''; + +//echo '
'."\n"; +?> \ No newline at end of file diff --git a/components/fileExtTextMode/fileExtTextModeForm.php b/components/fileExtTextMode/fileExtTextModeForm.php deleted file mode 100644 index a4be119..0000000 --- a/components/fileExtTextMode/fileExtTextModeForm.php +++ /dev/null @@ -1,56 +0,0 @@ -'."\n"; - foreach($availiableTextModes as $textmode){ - $ret .= ' '."\n"; - } - - if(!$find && $extension != ''){ - $ret .= ' '."\n"; - } - - $ret .= ''."\n"; - - return $ret; -} - -$ext = false; -//ignore warnings -$ext = @Common::getJSON('fileExtensions.php'); - -if(!is_array($ext)){ - //default extensions - $ext = $defaultExtensions; -} - -if(!@ksort($ext) || !@ksort($availiableTextModes)){ - die(json_encode(array('status' => 'error', 'msg' => 'Internal PHP error.') )); -} - -//echo '
'."\n"; -echo '
'; - - foreach($ext as $ex => $mode){ - echo '   '; - echo getTextModeSelect($mode) . "
\n"; - } - -echo '
'; -echo 'add field... '."
\n"; -echo ''; -//echo '
'."\n"; -?> \ No newline at end of file diff --git a/components/fileExtTextMode/getFileExtTextModes.php b/components/fileExtTextMode/getFileExtTextModes.php deleted file mode 100644 index ca85e4d..0000000 --- a/components/fileExtTextMode/getFileExtTextModes.php +++ /dev/null @@ -1,19 +0,0 @@ - 'success', 'extensions' => $ext)); - -?> \ No newline at end of file diff --git a/components/fileExtTextMode/init.js b/components/fileExtTextMode/init.js index 540eae7..bb183ac 100644 --- a/components/fileExtTextMode/init.js +++ b/components/fileExtTextMode/init.js @@ -1,6 +1,6 @@ -var debug; (function(global, $) { - + var self = null; + $(function() { codiad.fileExtTextMode.init(); }); @@ -9,98 +9,27 @@ var debug; pluginDir:'components/fileExtTextMode/', - availableTextModes :[ - 'abap', - 'asciidoc', - 'c9search', - 'c_cpp', - 'clojure', - 'coffee', - 'coldfusion', - 'csharp', - 'css', - 'curly', - 'dart', - 'diff', - 'django', - 'dot', - 'ftl', - 'glsl', - 'golang', - 'groovy', - 'haml', - 'haxe', - 'html', - 'jade', - 'java', - 'javascript', - 'json', - 'jsp', - 'jsx', - 'latex', - 'less', - 'liquid', - 'lisp', - 'livescript', - 'logiql', - 'lsl', - 'lua', - 'luapage', - 'lucene', - 'makefile', - 'markdown', - 'mushcode', - 'objectivec', - 'ocaml', - 'pascal', - 'perl', - 'pgsql', - 'php', - 'powershell', - 'python', - 'r', - 'rdoc', - 'rhtml', - 'ruby', - 'sass', - 'scad', - 'scala', - 'scheme', - 'scss', - 'sh', - 'sql', - 'stylus', - 'svg', - 'tcl', - 'tex', - 'text', - 'textile', - 'tmsnippet', - 'toml', - 'typescript', - 'vbscript', - 'velocity', - 'xml', - 'xquery', - 'yaml' - ], + availableTextModes : [], init : function() { + self = this; this.initEditorFileExtensionTextModes(); }, formWidth : 300, open : function() { + codiad.modal.unload(); codiad.modal.load(this.formWidth, - this.pluginDir+'fileExtTextModeForm.php'); + this.pluginDir+'dialog.php'); codiad.modal.hideOverlay(); }, - + //send the isert extesions and textmodes to the server. sendForm : function(){ var $div = $('#FileExtTextModeDiv'); var extensions = $div.find('.FileExtension'); - var formData = {'extension[]' : [], 'textMode[]' : []}; + //data to send + var formData = {'extension[]' : [], 'textMode[]' : [], 'action' : 'FileExtTextModeForm'}; for(var i = 0; i < extensions.size(); ++i){ formData['extension[]'].push(extensions[i].value); } @@ -110,27 +39,30 @@ var debug; formData['textMode[]'].push(textMode[i].value); } - $.post(this.pluginDir+'process.php', formData, codiad.fileExtTextMode.setEditorFileExtensionTextModes); + $.post(this.pluginDir+'controller.php', formData, codiad.fileExtTextMode.setEditorFileExtensionTextModes); codiad.modal.unload(); }, + //Add a new insert line to the form addFieldToForm : function(){ - var $div = $('#FileExtTextModeDiv'); + var $table = $('#FileExtTextModeTable'); + var $tbody = $('#FileExtTextModeTableTbody'); - var code = '   '; - code += ''; + code += '
'; - - $div.append(code); + code += ''; + + $tbody.append(code); //scroll as far down as possible - $div.scrollTop(1000000); + $table.scrollTop(1000000); }, + //function for showing the status and msg from a http-request showStatus : function(resp) { resp = $.parseJSON(resp); if(resp.status != undefined && resp.status != '' && resp.msg != undefined && resp.message != ''){ @@ -149,9 +81,10 @@ var debug; }, initEditorFileExtensionTextModes : function(){ - $.get(this.pluginDir+'getFileExtTextModes.php', {}, this.setEditorFileExtensionTextModes); + $.post(this.pluginDir+'controller.php', {'action' : 'GetFileExtTextModes'}, this.setEditorFileExtensionTextModes); }, + //initial method to get the stored joins setEditorFileExtensionTextModes : function(data){ resp = $.parseJSON(data); if(resp.status != 'error' && resp.extensions != undefined){ @@ -160,10 +93,11 @@ var debug; for(i in resp.extensions){ codiad.editor.addFileExtensionTextMode(i, resp.extensions[i]); } + + self.availableTextModes = resp.textModes; } - codiad.fileExtTextMode.showStatus(data); + self.showStatus(data); } - }; })(this, jQuery); \ No newline at end of file diff --git a/components/fileExtTextMode/plugin.json b/components/fileExtTextMode/plugin.json deleted file mode 100644 index 0fe65d0..0000000 --- a/components/fileExtTextMode/plugin.json +++ /dev/null @@ -1,14 +0,0 @@ -[{ - "author": "ccvca", - "version": "0.5", - "name": "FileExtentionTextMode", - "url": "", - "rightbar": [ - { - "action": "codiad.fileExtTextMode.open();", - "icon": "icon-tools", - "title": "File extensions" - } - ], - "contextmenu": [] -}] \ No newline at end of file diff --git a/components/fileExtTextMode/process.php b/components/fileExtTextMode/process.php deleted file mode 100644 index d92ec3f..0000000 --- a/components/fileExtTextMode/process.php +++ /dev/null @@ -1,65 +0,0 @@ - 'success', 'msg' => 'No Content.')); - -//Store Fileextensions and Textmodes in File: - -function validateExtension($extension){ - return preg_match('#^[a-z0-9\_]+$#i', $extension); -} - -function validTextMode($mode){ - global $availiableTextModes; - return in_array($mode, $availiableTextModes); -} - -if(!isset($_POST['extension']) || !is_array($_POST['extension']) - || !isset($_POST['textMode']) || !is_array($_POST['textMode'])){ - die(json_encode(array('status' => 'error', 'msg' => 'incorrect data send'))); -} - -$exMap = array(); - -$warning = ''; - -foreach ($_POST['extension'] as $key => $extension){ - if(trim($extension) == '' ){ - continue; - } - - if(!isset($_POST["textMode"][$key])){ - die(json_encode(array('status' => 'error', 'msg' => 'incorrect data send.'))); - } - - $extension = strtolower(trim($extension)); - $textMode = strtolower(trim($_POST["textMode"][$key])); - - if(!validateExtension($extension)){ - die(json_encode(array('status' => 'error', 'msg' => 'incorrect extension:'.htmlentities($extension)))); - } - - if(!validTextMode($textMode)){ - die(json_encode(array('status' => 'error', 'msg' => 'incorrect text mode:'.htmlentities($textMode)))); - } - - if(isset($exMap[$extension])){ - $warning = htmlentities($extension).' is already set.
'; - }else{ - $exMap[$extension] = $textMode; - } -} - - -Common::saveJSON('fileExtensions.php', $exMap); -if($warning != ''){ - echo json_encode(array('status' => 'warning', 'msg' => $warning, 'extensions' => $exMap )); -}else{ - echo json_encode(array('status' => 'success', 'msg' => 'File extensions are saved successfully.', 'extensions' => $exMap)); -} - -?> \ No newline at end of file diff --git a/components/right_bar.json b/components/right_bar.json index 735665b..a152c0b 100755 --- a/components/right_bar.json +++ b/components/right_bar.json @@ -39,11 +39,6 @@ "icon": "icon-doc-text", "onclick": "codiad.modal.load(400, 'components/editor/dialog.php?action=settings');codiad.modal.hideOverlay();" }, - { - "title": "File extensions", - "icon": "icon-tools", - "onclick": "codiad.fileExtTextMode.open();" - }, { "title": "Plugins", "icon": "icon-tag", diff --git a/themes/default/fileExtTextMode/screen.css b/themes/default/fileExtTextMode/screen.css new file mode 100644 index 0000000..ccb178e --- /dev/null +++ b/themes/default/fileExtTextMode/screen.css @@ -0,0 +1,30 @@ +/*Copyright @ccvca 2013*/ + +#FileExtTextModeDiv{ + height: 300px; + width: 100%; +} + +#FileExtTextModeDiv table{ + overflow-y: scroll; + display: block; + height: 280px; +} + +#FileExtTextModeDiv thead td{ + vertical-align: middle; +} + +#FileExtTextModeDiv input{ + /*padding: 0px; + margin: 0px;*/ + display: inline; +} + +#FileExtTextModeDiv input.FileExtension{ + width: 80px; +} + +#FileExtTextModeDiv input.textMode{ + width: 120px; +} \ No newline at end of file