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";
+ }
+
+ $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";
+?>
\ 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";
- }
-
- $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";
-?>
\ 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 += '