mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-14 00:39:57 +09:00
xquared에서도 자동저장 가능하도록 수정
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@3052 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
cb152ca648
commit
40df9a7b74
5 changed files with 84 additions and 66 deletions
|
|
@ -1,4 +1,5 @@
|
|||
@charset "utf-8";
|
||||
.xeEditor .editor_info .editor_autosaved_message { color:#888888; text-align:right; }
|
||||
|
||||
.xeEditor .fileAttach { position:relative; top:20px; padding:0 1em .5em 1em;}
|
||||
.xeEditor .fileAttach .preview { padding:5px; width:110px; height:110px; border:1px solid #e1e1dd; background:#fbfbfb; float:left; margin-right:.5em;}
|
||||
|
|
|
|||
|
|
@ -32,12 +32,9 @@
|
|||
<div class="xeEditor" style="margin-top:5px; margin-bottom:5px;">
|
||||
|
||||
<!-- HTML 모드 사용 기능 및 자동저장 메세지 출력용 -->
|
||||
<!--<div class="editor_info">
|
||||
<div class="editor_option">
|
||||
<input type="checkbox" id="use_html_{$editor_sequence}" value="Y" onclick="editorChangeMode(this, '{$editor_sequence}');" /> <label for="use_html_{$editor_sequence}">HTML</label>
|
||||
</div>
|
||||
<div class="editor_info">
|
||||
<div class="editor_autosaved_message" id="editor_autosaved_message_{$editor_sequence}"> </div>
|
||||
</div>-->
|
||||
</div>
|
||||
|
||||
<!-- 에디터 출력 -->
|
||||
<div id = "xqEditor_{$editor_sequence}"></div>
|
||||
|
|
|
|||
|
|
@ -37,14 +37,34 @@ function editorStart_xq(editor, element, editor_sequence, content_key, editor_he
|
|||
editorMode[editor_sequence] = null;
|
||||
var fo_obj = editorGetForm_xq(element);
|
||||
fo_obj.setAttribute('editor_sequence', editor_sequence);
|
||||
editor.setStaticContent(fo_obj[content_key].value);
|
||||
editorRelKeys[editor_sequence]['content'] = fo_obj[content_key];
|
||||
editorRelKeys[editor_sequence]['primary'] = fo_obj[primary_key];
|
||||
|
||||
// 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;
|
||||
editorRelKeys[editor_sequence]['content'].value = saved_content;
|
||||
} else {
|
||||
editorRemoveSavedDoc();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
editor.setStaticContent(fo_obj[content_key].value);
|
||||
editor.setEditMode('wysiwyg');
|
||||
editor.loadStylesheet(request_uri+editor_path+"/examples/css/xq_contents.css");
|
||||
editor.getFrame().style.width = "100%";
|
||||
editor.getFrame().parentNode.style.height = editor_height;
|
||||
editor.addAutocompletions(getAdditionalAutocompletions());
|
||||
|
||||
if(typeof(fo_obj._saved_doc_title)!="undefined" ) editorEnableAutoSave(fo_obj, editor_sequence);
|
||||
}
|
||||
|
||||
xq.Editor.prototype.insertHTML = function (html) {
|
||||
|
|
|
|||
|
|
@ -195,66 +195,6 @@ function editorStart(editor_sequence, primary_key, content_key, editor_height) {
|
|||
if(typeof(fo_obj._saved_doc_title)!="undefined" ) editorEnableAutoSave(fo_obj, editor_sequence);
|
||||
}
|
||||
|
||||
/**
|
||||
* 자동 저장 기능
|
||||
**/
|
||||
// 자동 저장 활성화 시키는 함수 (10초마다 자동저장)
|
||||
function editorEnableAutoSave(fo_obj, editor_sequence) {
|
||||
var title = fo_obj.title.value;
|
||||
var content = editorRelKeys[editor_sequence]['content'].value;
|
||||
editorAutoSaveObj = {"fo_obj":fo_obj, "editor_sequence":editor_sequence, "title":title, "content":content, locked:false};
|
||||
setTimeout(_editorAutoSave, 10000);
|
||||
}
|
||||
|
||||
// ajax를 이용하여 editor.procEditorSaveDoc 호출하여 자동 저장시킴
|
||||
function _editorAutoSave() {
|
||||
var fo_obj = editorAutoSaveObj.fo_obj;
|
||||
var editor_sequence = editorAutoSaveObj.editor_sequence;
|
||||
|
||||
// 현재 자동저장중이면 중지
|
||||
if(editorAutoSaveObj.locked == true) return;
|
||||
|
||||
// 대상이 없으면 자동저장 시키는 기능 자체를 중지
|
||||
if(!fo_obj || typeof(fo_obj.title)=='undefined' || !editor_sequence) return;
|
||||
|
||||
// 자동저장을 위한 준비
|
||||
var title = fo_obj.title.value;
|
||||
var content = editorGetContent(editor_sequence);
|
||||
|
||||
// 내용이 이전에 저장하였던 것과 다르면 자동 저장을 함
|
||||
if(title != editorAutoSaveObj.title || content != editorAutoSaveObj.content ) {
|
||||
var params = new Array();
|
||||
|
||||
params["title"] = title;
|
||||
params["content"] = content;
|
||||
params["document_srl"] = editorRelKeys[editor_sequence]['primary'].value;
|
||||
|
||||
editorAutoSaveObj.title = title;
|
||||
editorAutoSaveObj.content = content;
|
||||
|
||||
var obj = xGetElementById("editor_autosaved_message_"+editor_sequence);
|
||||
var oDate = new Date();
|
||||
html = oDate.getHours()+':'+oDate.getMinutes()+' '+auto_saved_msg;
|
||||
xInnerHtml(obj, html);
|
||||
obj.style.display = "block";
|
||||
|
||||
// 현재 자동저장중임을 설정
|
||||
editorAutoSaveObj.locked = true;
|
||||
|
||||
// 서버 호출 (서버와 교신중이라는 메세지를 보이지 않도록 함)
|
||||
show_waiting_message = false;
|
||||
exec_xml("editor","procEditorSaveDoc", params, function() { editorAutoSaveObj.locked = false; } );
|
||||
show_waiting_message = true;
|
||||
}
|
||||
|
||||
// 10초마다 동기화를 시킴
|
||||
setTimeout(_editorAutoSave, 10000);
|
||||
}
|
||||
|
||||
// 자동저장된 모든 메세지를 삭제하는 루틴
|
||||
function editorRemoveSavedDoc() {
|
||||
exec_xml("editor","procEditorRemoveSavedDoc");
|
||||
}
|
||||
|
||||
/**
|
||||
* 에디터의 세부 설정과 데이터 핸들링을 정의한 함수들
|
||||
|
|
|
|||
|
|
@ -10,3 +10,63 @@ function editorGetContent(editor_sequence) {
|
|||
return editorRelKeys[editor_sequence]["func"](editor_sequence);
|
||||
}
|
||||
|
||||
/**
|
||||
* 자동 저장 기능
|
||||
**/
|
||||
// 자동 저장 활성화 시키는 함수 (10초마다 자동저장)
|
||||
function editorEnableAutoSave(fo_obj, editor_sequence) {
|
||||
var title = fo_obj.title.value;
|
||||
var content = editorRelKeys[editor_sequence]['content'].value;
|
||||
editorAutoSaveObj = {"fo_obj":fo_obj, "editor_sequence":editor_sequence, "title":title, "content":content, locked:false};
|
||||
setTimeout(_editorAutoSave, 10000);
|
||||
}
|
||||
|
||||
// ajax를 이용하여 editor.procEditorSaveDoc 호출하여 자동 저장시킴
|
||||
function _editorAutoSave() {
|
||||
var fo_obj = editorAutoSaveObj.fo_obj;
|
||||
var editor_sequence = editorAutoSaveObj.editor_sequence;
|
||||
|
||||
// 현재 자동저장중이면 중지
|
||||
if(editorAutoSaveObj.locked == true) return;
|
||||
|
||||
// 대상이 없으면 자동저장 시키는 기능 자체를 중지
|
||||
if(!fo_obj || typeof(fo_obj.title)=='undefined' || !editor_sequence) return;
|
||||
|
||||
// 자동저장을 위한 준비
|
||||
var title = fo_obj.title.value;
|
||||
var content = editorGetContent(editor_sequence);
|
||||
|
||||
// 내용이 이전에 저장하였던 것과 다르면 자동 저장을 함
|
||||
if(title != editorAutoSaveObj.title || content != editorAutoSaveObj.content ) {
|
||||
var params = new Array();
|
||||
|
||||
params["title"] = title;
|
||||
params["content"] = content;
|
||||
params["document_srl"] = editorRelKeys[editor_sequence]['primary'].value;
|
||||
|
||||
editorAutoSaveObj.title = title;
|
||||
editorAutoSaveObj.content = content;
|
||||
|
||||
var obj = xGetElementById("editor_autosaved_message_"+editor_sequence);
|
||||
var oDate = new Date();
|
||||
html = oDate.getHours()+':'+oDate.getMinutes()+' '+auto_saved_msg;
|
||||
xInnerHtml(obj, html);
|
||||
obj.style.display = "block";
|
||||
|
||||
// 현재 자동저장중임을 설정
|
||||
editorAutoSaveObj.locked = true;
|
||||
|
||||
// 서버 호출 (서버와 교신중이라는 메세지를 보이지 않도록 함)
|
||||
show_waiting_message = false;
|
||||
exec_xml("editor","procEditorSaveDoc", params, function() { editorAutoSaveObj.locked = false; } );
|
||||
show_waiting_message = true;
|
||||
}
|
||||
|
||||
// 10초마다 동기화를 시킴
|
||||
setTimeout(_editorAutoSave, 10000);
|
||||
}
|
||||
|
||||
// 자동저장된 모든 메세지를 삭제하는 루틴
|
||||
function editorRemoveSavedDoc() {
|
||||
exec_xml("editor","procEditorRemoveSavedDoc");
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue