Bundle all the code editor assets to a single file

Also fixes a weird warning coming from Ace editor
This commit is contained in:
Samuel Georges 2015-06-24 18:26:45 +10:00
parent dbe5141189
commit 7b54d4c7c4
6 changed files with 1920 additions and 10 deletions

View File

@ -70,6 +70,7 @@ class ServiceProvider extends ModuleServiceProvider
$combiner->registerBundle('~/modules/backend/formwidgets/richeditor/assets/less/richeditor.less');
$combiner->registerBundle('~/modules/backend/formwidgets/richeditor/assets/js/build.js');
$combiner->registerBundle('~/modules/backend/formwidgets/codeeditor/assets/less/codeeditor.less');
$combiner->registerBundle('~/modules/backend/formwidgets/codeeditor/assets/js/build.js');
});
}

View File

@ -28,8 +28,7 @@ class EditorPreferences extends Controller
parent::__construct();
$this->addCss('/modules/backend/formwidgets/codeeditor/assets/css/codeeditor.css', 'core');
$this->addJs('/modules/backend/formwidgets/codeeditor/assets/vendor/ace/ace.js', 'core');
$this->addJs('/modules/backend/formwidgets/codeeditor/assets/js/codeeditor.js', 'core');
$this->addJs('/modules/backend/formwidgets/codeeditor/assets/js/build-min.js', 'core');
$this->addJs('/modules/backend/assets/js/editorpreferences/editorpreferences.js', 'core');
BackendMenu::setContext('October.System', 'system', 'mysettings');

View File

@ -137,10 +137,7 @@ class CodeEditor extends FormWidgetBase
public function loadAssets()
{
$this->addCss('css/codeeditor.css', 'core');
$this->addJs('vendor/emmet/emmet.js', 'core');
$this->addJs('vendor/ace/ace.js', 'core');
$this->addJs('vendor/ace/ext-emmet.js', 'core');
$this->addJs('js/codeeditor.js', 'core');
$this->addJs('js/build-min.js', 'core');
}
/**

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,29 @@
/*
* This is a bundle file, you can compile this in two ways:
* (1) Using your favorite JS combiner
* (2) Using CLI command:
* php artisan october:util compile assets
*
* @see build-min.js
*
* Current Ace build v1.1.9 using "src-noconflict"
* https://github.com/ajaxorg/ace-builds/
*
=require ../vendor/emmet/emmet.js
=require ../vendor/ace/ace.js
=require ../vendor/ace/ext-emmet.js
=require ../vendor/ace/mode-php.js
=require ../vendor/ace/mode-twig.js
=require ../vendor/ace/mode-markdown.js
=require ../vendor/ace/mode-plain_text.js
=require ../vendor/ace/mode-html.js
=require ../vendor/ace/mode-less.js
=require ../vendor/ace/mode-css.js
=require ../vendor/ace/mode-scss.js
=require ../vendor/ace/mode-sass.js
=require ../vendor/ace/mode-javascript.js
=require codeeditor.js
*/

View File

@ -100,6 +100,9 @@
options = this.options,
$form = this.$el.closest('form');
// Fixes a weird notice about scrolling
editor.$blockScrolling = Infinity
this.$form = $form
this.$textarea.hide();
@ -112,17 +115,17 @@
this.$el.one('dispose-control', this.proxy(this.dispose))
/*
* Set language and theme
* Set theme, anticipated languages should be preloaded
*/
assetManager.load({
js:[
options.vendorPath + '/mode-' + options.language + '.js',
// options.vendorPath + '/mode-' + options.language + '.js',
options.vendorPath + '/theme-' + options.theme + '.js'
]
}, function(){
editor.setTheme('ace/theme/' + options.theme)
var inline = options.language === 'php'
editor.getSession().setMode({path: 'ace/mode/'+options.language, inline: inline})
editor.getSession().setMode({ path: 'ace/mode/'+options.language, inline: inline })
})
/*
@ -146,8 +149,11 @@
editor.on('focus', this.proxy(this.onFocus))
this.setWordWrap(options.wordWrap)
// Set the vendor path for Ace's require path
ace.require('ace/config').set('basePath', this.options.vendorPath)
editor.renderer.setScrollMargin(options.margin, options.margin, 0, 0)
editor.renderer.setPadding(options.margin)
editor.renderer.setPadding(options.margin)
/*
* Toolbar