109 lines
3.1 KiB
JavaScript
109 lines
3.1 KiB
JavaScript
import './style.scss';
|
|
|
|
// TinyMCE
|
|
const tinymce = require('tinymce/tinymce');
|
|
require('tinymce/icons/default');
|
|
require('tinymce/themes/silver');
|
|
require('tinymce/skins/ui/oxide/skin.css');
|
|
require('tinymce/models/dom');
|
|
require('tinymce/plugins/advlist');
|
|
require('tinymce/plugins/code');
|
|
require('tinymce/plugins/emoticons');
|
|
require('tinymce/plugins/emoticons/js/emojis');
|
|
require('tinymce/plugins/link');
|
|
require('tinymce/plugins/lists');
|
|
require('tinymce/plugins/table');
|
|
require('tinymce/plugins/autolink');
|
|
require('tinymce/plugins/image');
|
|
require('tinymce/plugins/charmap');
|
|
require('tinymce/plugins/preview');
|
|
require('tinymce/plugins/anchor');
|
|
require('tinymce/plugins/pagebreak');
|
|
require('tinymce/plugins/searchreplace');
|
|
require('tinymce/plugins/wordcount');
|
|
require('tinymce/plugins/visualblocks');
|
|
require('tinymce/plugins/visualchars');
|
|
require('tinymce/plugins/code');
|
|
require('tinymce/plugins/fullscreen');
|
|
require('tinymce/plugins/insertdatetime');
|
|
require('tinymce/plugins/media');
|
|
require('tinymce/plugins/nonbreaking');
|
|
require('tinymce/plugins/save');
|
|
require('tinymce/plugins/table');
|
|
require('tinymce/plugins/directionality');
|
|
require('tinymce/plugins/emoticons');
|
|
require('tinymce/plugins/template');
|
|
const contentUiCss = require('tinymce/skins/ui/oxide/content.css');
|
|
const contentCss = require('tinymce/skins/content/default/content.css');
|
|
|
|
export default new Class({
|
|
Extends: Hedera.Form,
|
|
Template: require('./ui.xml'),
|
|
|
|
editor: null,
|
|
|
|
activate() {
|
|
this.$.model.mode = Db.Model.Mode.ON_DEMAND;
|
|
this.$.model.setDefault('userFk', 'news',
|
|
new Sql.Function({schema: 'account', name: 'myUser_getId'}));
|
|
|
|
tinymce.init({
|
|
target: this.$.htmlEditor
|
|
,plugins:
|
|
' advlist autolink lists link image charmap preview'
|
|
+' anchor pagebreak searchreplace wordcount visualblocks'
|
|
+' visualchars code fullscreen insertdatetime media nonbreaking'
|
|
+' save table directionality emoticons template'
|
|
,toolbar1:
|
|
' print preview paste'
|
|
+'|link image media emoticons blockquote hr'
|
|
+'|insertfile undo redo'
|
|
+'|bold italic'
|
|
+'|alignleft aligncenter alignright alignjustify'
|
|
+'|bullist numlist outdent indent'
|
|
+'|styleselect'
|
|
+'|fontselect fontsizeselect'
|
|
+'|forecolor backcolor '
|
|
,image_advtab: true
|
|
,init_instance_callback: editor => this._onEditorInit(editor)
|
|
,skin: false
|
|
,content_css: false
|
|
,content_style: contentUiCss.toString() + '\n' + contentCss.toString()
|
|
});
|
|
},
|
|
|
|
deactivate() {
|
|
this.editor.destroy();
|
|
},
|
|
|
|
_onEditorInit(editor) {
|
|
this.editor = editor;
|
|
editor.getDoc().body.style.fontSize = '1rem';
|
|
this.setEditorText();
|
|
},
|
|
|
|
setEditorText() {
|
|
if (!this.editor) return;
|
|
const row = this.$.iter.$;
|
|
this.editor.setContent(row ? row.text : '');
|
|
},
|
|
|
|
onReady() {
|
|
if (this.hash.$.new)
|
|
this.setEditorText();
|
|
else
|
|
this.$.iter.insertRow();
|
|
},
|
|
|
|
async onAcceptClick() {
|
|
this.$.iter.set('text', this.editor.getContent());
|
|
await this.$.iter.performOperations();
|
|
Htk.Toast.showMessage(_('NewChangedSuccessfully'));
|
|
this.onReturnClick();
|
|
},
|
|
|
|
onReturnClick() {
|
|
this.hash.setAll({form: 'news/news'});
|
|
}
|
|
});
|