mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-29 08:09:58 +09:00
* pr/1651: 조건문을 더 간단히 수정 0 Check Fix Dummy commit to trigger Travis CI update fix #1648 CKEditor에도 자동 저장 기능 추가 Conflicts: modules/editor/skins/ckeditor/file_upload.html
This commit is contained in:
commit
8a034adae1
4 changed files with 77 additions and 23 deletions
|
|
@ -0,0 +1 @@
|
||||||
|
p.editor_autosaved_message.autosave_message {display:none;background: #f6ffdb;padding:6px 10px;margin:0;line-height:1;}
|
||||||
|
|
@ -8,6 +8,10 @@
|
||||||
<load target="../../tpl/js/editor.app.js" />
|
<load target="../../tpl/js/editor.app.js" />
|
||||||
<load target="js/xe_interface.js" />
|
<load target="js/xe_interface.js" />
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var auto_saved_msg = "{$lang->msg_auto_saved}";
|
||||||
|
</script>
|
||||||
|
|
||||||
{@ $css_content = null }
|
{@ $css_content = null }
|
||||||
<!--@if($content_font || $content_font_size)-->
|
<!--@if($content_font || $content_font_size)-->
|
||||||
<!--@if($content_style === 'ckeditor_light')-->{@ $css_content = '.xe_content.editable p { margin: 0;'. chr(125); }<!--@endif-->
|
<!--@if($content_style === 'ckeditor_light')-->{@ $css_content = '.xe_content.editable p { margin: 0;'. chr(125); }<!--@endif-->
|
||||||
|
|
@ -23,8 +27,17 @@
|
||||||
{@ $css_content .= chr(125);}
|
{@ $css_content .= chr(125);}
|
||||||
<!--@endif-->
|
<!--@endif-->
|
||||||
|
|
||||||
|
<!--@if($enable_autosave)-->
|
||||||
|
<input type="hidden" name="_saved_doc_title" value="{htmlspecialchars($saved_doc->title, ENT_COMPAT | ENT_HTML401, 'UTF-8', false)}" />
|
||||||
|
<input type="hidden" name="_saved_doc_content" value="{htmlspecialchars($saved_doc->content, ENT_COMPAT | ENT_HTML401, 'UTF-8', false)}" />
|
||||||
|
<input type="hidden" name="_saved_doc_document_srl" value="{$saved_doc->document_srl}" />
|
||||||
|
<input type="hidden" name="_saved_doc_message" value="{$lang->msg_load_saved_doc}" />
|
||||||
|
<!--@end-->
|
||||||
|
|
||||||
<div id="ckeditor_instance_{$editor_sequence}" data-editor-sequence="{$editor_sequence}" data-editor-primary-key-name="{$editor_primary_key_name}" data-editor-content-key-name="{$editor_content_key_name}" style="min-height:{$editor_height}px;"></div>
|
<div id="ckeditor_instance_{$editor_sequence}" data-editor-sequence="{$editor_sequence}" data-editor-primary-key-name="{$editor_primary_key_name}" data-editor-content-key-name="{$editor_content_key_name}" style="min-height:{$editor_height}px;"></div>
|
||||||
|
|
||||||
|
<p cond="$enable_autosave" class="editor_autosaved_message autosave_message" id="editor_autosaved_message_{$editor_sequence}"> </p>
|
||||||
|
|
||||||
<block cond="$allow_fileupload">
|
<block cond="$allow_fileupload">
|
||||||
<include target="file_upload.html" />
|
<include target="file_upload.html" />
|
||||||
</block>
|
</block>
|
||||||
|
|
|
||||||
|
|
@ -44,36 +44,28 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script cond="$allow_fileupload">
|
||||||
|
function reloadUploader(editor_sequence){
|
||||||
|
jQuery(function($){
|
||||||
|
var setting = {
|
||||||
|
maxFileSize: {$file_config->allowed_filesize},
|
||||||
|
limitMultiFileUploadSize: {$file_config->allowed_filesize}
|
||||||
|
};
|
||||||
|
var uploader = $('#xefu-container-' + editor_sequence).xeUploader(setting);
|
||||||
|
});
|
||||||
|
}
|
||||||
jQuery(function($){
|
jQuery(function($){
|
||||||
// uploader
|
// uploader
|
||||||
<!--@if($allow_fileupload)-->
|
var setting = {
|
||||||
|
maxFileSize: {$file_config->allowed_filesize},
|
||||||
|
limitMultiFileUploadSize: {$file_config->allowed_filesize}
|
||||||
|
};
|
||||||
|
var uploader = $('#xefu-container-{$editor_sequence}').xeUploader(setting);
|
||||||
window.xe.msg_exceeds_limit_size = '{$lang->msg_exceeds_limit_size}';
|
window.xe.msg_exceeds_limit_size = '{$lang->msg_exceeds_limit_size}';
|
||||||
window.xe.msg_checked_file_is_deleted = '{$lang->msg_checked_file_is_deleted}';
|
window.xe.msg_checked_file_is_deleted = '{$lang->msg_checked_file_is_deleted}';
|
||||||
window.xe.msg_file_cart_is_null = '{$lang->msg_file_cart_is_null}';
|
window.xe.msg_file_cart_is_null = '{$lang->msg_file_cart_is_null}';
|
||||||
window.xe.msg_checked_file_is_deleted = '{$lang->msg_checked_file_is_deleted}';
|
window.xe.msg_checked_file_is_deleted = '{$lang->msg_checked_file_is_deleted}';
|
||||||
window.xe.msg_not_allowed_filetype = '{$lang->msg_not_allowed_filetype}';
|
window.xe.msg_not_allowed_filetype = '{$lang->msg_not_allowed_filetype}';
|
||||||
window.xe.msg_file_upload_error = '{$lang->msg_file_upload_error}';
|
window.xe.msg_file_upload_error = '{$lang->msg_file_upload_error}';
|
||||||
window.xe.cmd_select = '{$lang->cmd_select}';
|
|
||||||
window.xe.cmd_select_cover = '{$lang->cmd_select_cover}';
|
|
||||||
|
|
||||||
var setting = {
|
|
||||||
maxFileSize: {$file_config->allowed_filesize},
|
|
||||||
limitMultiFileUploadSize: {$file_config->allowed_filesize},
|
|
||||||
tmplXeUploaderFileitem : '<li class="xefu-file xe-clearfix" data-file-srl="{{file_srl}}"><span class="xefu-file-name">{{source_filename}}</span><span class="xefu-file-info"><span>{{disp_file_size}}</span><span><input type="checkbox" data-file-srl="{{file_srl}}"> Select</span></span></li>',
|
|
||||||
tmplXeUploaderFileitemImage: '<li class="xefu-file xefu-file-image {{#if cover_image}}xefu-is-cover-image{{/if}}" data-file-srl="{{file_srl}}"><strong class="xefu-file-name">{{source_filename}}</strong><span class="xefu-file-info"><span class="xefu-file-size">{{disp_file_size}}</span><span><img src="{{download_url}}" alt=""></span><span><input type="checkbox" data-file-srl="{{file_srl}}"></span><button class="xefu-act-set-cover" data-file-srl="{{file_srl}}" title="Be a cover image"><i class="xi-check-circle"></i></button></span></li>'
|
|
||||||
};
|
|
||||||
|
|
||||||
if(typeof window.xe.cmd_select != "undefined" && window.xe.cmd_select !== "")
|
|
||||||
{
|
|
||||||
setting.tmplXeUploaderFileitem = setting.tmplXeUploaderFileitem.replace("Select", window.xe.cmd_select);
|
|
||||||
}
|
|
||||||
if(typeof window.xe.cmd_select_cover != "undefined" && window.xe.cmd_select_cover !== "")
|
|
||||||
{
|
|
||||||
setting.tmplXeUploaderFileitemImage = setting.tmplXeUploaderFileitemImage.replace("Be a cover image", window.xe.cmd_select_cover);
|
|
||||||
}
|
|
||||||
|
|
||||||
var uploader = $('#xefu-container-{$editor_sequence}').xeUploader(setting);
|
|
||||||
<!--@endif-->
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,23 @@
|
||||||
|
function getCkFormInstance(editor_sequence)
|
||||||
|
{
|
||||||
|
var fo_obj = document.getElementById('ckeditor_instance_' + editor_sequence).parentNode;
|
||||||
|
while(fo_obj.nodeName != 'FORM') { fo_obj = fo_obj.parentNode; }
|
||||||
|
if(fo_obj.nodeName == 'FORM') return fo_obj;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getAutoSavedSrl(ret_obj, response_tags, c) {
|
||||||
|
var editor_sequence = ret_obj.editor_sequence;
|
||||||
|
var primary_key = ret_obj.key;
|
||||||
|
var fo_obj = getCkFormInstance(editor_sequence);
|
||||||
|
|
||||||
|
if(ret_obj.document_srl !== 0)
|
||||||
|
{
|
||||||
|
fo_obj[primary_key].value = ret_obj.document_srl;
|
||||||
|
reloadUploader(editor_sequence);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
(function($){
|
(function($){
|
||||||
"use strict";
|
"use strict";
|
||||||
var default_ckeconfig = {
|
var default_ckeconfig = {
|
||||||
|
|
@ -60,6 +80,8 @@
|
||||||
var $contentField = $form.find(opts.content_field);
|
var $contentField = $form.find(opts.content_field);
|
||||||
var data = $containerEl.data();
|
var data = $containerEl.data();
|
||||||
var editor_sequence = $containerEl.data().editorSequence;
|
var editor_sequence = $containerEl.data().editorSequence;
|
||||||
|
var primary_key = $containerEl.data().editorPrimaryKeyName;
|
||||||
|
var fo_obj = getCkFormInstance(editor_sequence);
|
||||||
|
|
||||||
this.ckeconfig = $.extend({}, default_ckeconfig, opts.ckeconfig || {});
|
this.ckeconfig = $.extend({}, default_ckeconfig, opts.ckeconfig || {});
|
||||||
|
|
||||||
|
|
@ -67,6 +89,29 @@
|
||||||
$form.attr('editor_sequence', data.editorSequence);
|
$form.attr('editor_sequence', data.editorSequence);
|
||||||
|
|
||||||
if(CKEDITOR.env.mobile) CKEDITOR.env.isCompatible = true;
|
if(CKEDITOR.env.mobile) CKEDITOR.env.isCompatible = true;
|
||||||
|
|
||||||
|
// saved document(자동저장 문서)에 대한 확인
|
||||||
|
if(typeof(fo_obj._saved_doc_title)!= "undefined") { ///<< _saved_doc_title field가 없으면 자동저장 하지 않음
|
||||||
|
var saved_title = fo_obj._saved_doc_title.value;
|
||||||
|
var saved_content = fo_obj._saved_doc_content.value;
|
||||||
|
|
||||||
|
if(saved_title || saved_content) {
|
||||||
|
// 자동저장된 문서 활용여부를 물은 후 사용하지 않는다면 자동저장된 문서 삭제
|
||||||
|
if(confirm(fo_obj._saved_doc_message.value)) {
|
||||||
|
if(typeof(fo_obj.title)!='undefined') fo_obj.title.value = saved_title;
|
||||||
|
$contentField.val(saved_content);
|
||||||
|
|
||||||
|
var param = [];
|
||||||
|
param.editor_sequence = editor_sequence;
|
||||||
|
param.primary_key = primary_key;
|
||||||
|
param.mid = current_mid;
|
||||||
|
var response_tags = new Array("error","message","editor_sequence","key","title","content","document_srl");
|
||||||
|
exec_xml('editor',"procEditorLoadSavedDocument", param, getAutoSavedSrl, response_tags);
|
||||||
|
} else {
|
||||||
|
editorRemoveSavedDoc();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var instance = CKEDITOR.appendTo($containerEl[0], {}, $contentField.val());
|
var instance = CKEDITOR.appendTo($containerEl[0], {}, $contentField.val());
|
||||||
|
|
||||||
|
|
@ -109,6 +154,9 @@
|
||||||
window.editorRelKeys[data.editorSequence].pasteHTML = function(text){
|
window.editorRelKeys[data.editorSequence].pasteHTML = function(text){
|
||||||
instance.insertHtml(text, 'html');
|
instance.insertHtml(text, 'html');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 자동저장 필드가 있다면 자동 저장 기능 활성화
|
||||||
|
if(typeof(fo_obj._saved_doc_title)!="undefined" ) editorEnableAutoSave(fo_obj, editor_sequence);
|
||||||
},
|
},
|
||||||
getContent : function(seq) {
|
getContent : function(seq) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue