trustieforge/app/assets/javascripts/init_activity_KindEditor.js

170 lines
6.8 KiB
JavaScript
Raw Normal View History

function init_editor(params){
// var minHeight; //最小高度
var paramsHeight = params.height; //设定的高度
2015-09-19 11:18:41 +08:00
var id = arguments[1] ? arguments[1] : undefined;
var paramsWidth = params.width == undefined ? "100%" : params.width;
var editor = params.kindutil.create(params.textarea, {
resizeType : 1,minWidth:"1px",width:"94%",
2015-09-21 16:20:29 +08:00
height:"33px",// == undefined ? "30px":paramsHeight+"px",
minHeight:"33px",// == undefined ? "30px":paramsHeight+"px",
items:['emoticons'],
afterChange:function(){//按键事件
2015-09-19 11:18:41 +08:00
var edit = this.edit;
var body = edit.doc.body;
edit.iframe.height(paramsHeight);
2015-09-21 16:20:29 +08:00
this.resize(null, Math.max((params.kindutil.IE ? body.scrollHeight : body.offsetHeight) + paramsHeight , paramsHeight));
},
2015-09-19 11:18:41 +08:00
afterBlur:function(){
nh_check_field({content:this,contentmsg:params.contentmsg,textarea:params.textarea});
if(this.edit.html()=="") {
2015-09-23 08:56:48 +08:00
this.edit.html("<span id='hint' style='color: #999999; font-size: 12px'>我要回复</span>");
2015-09-19 11:18:41 +08:00
}
//params.toolbar_container.hide();
$('#reply_image_' + id).addClass('imageFuzzy');
2015-09-21 16:20:29 +08:00
if(/^\s*<\w*\s*\w*\=\"\w*\"\s*\w*\=\"\w*\:\s*\#\d*\;\s*\w*\-\w*\:\s*\w*\;\"\>[\u4e00-\u9fa5]*<\/\w*\>\s*$/.test(this.edit.html())){
params.submit_btn.hide();
this.resize("94%", null);
2015-10-13 21:37:41 +08:00
}else if(this.edit.html().trim() != ""){
2015-09-21 16:20:29 +08:00
params.submit_btn.show();
}
2015-09-19 11:18:41 +08:00
//params.submit_btn.css("display","none");
},
afterFocus: function(){
var edit = this.edit;
var body = edit.doc.body;
2015-09-21 16:20:29 +08:00
if(/^\s*<\w*\s*\w*\=\"\w*\"\s*\w*\=\"\w*\:\s*\#\d*\;\s*\w*\-\w*\:\s*\w*\;\"\>[\u4e00-\u9fa5]*<\/\w*\>\s*$/.test(edit.html())){
2015-09-19 11:18:41 +08:00
edit.html('');
}
2015-09-21 16:20:29 +08:00
params.submit_btn.show();
2015-09-19 11:18:41 +08:00
params.contentmsg.hide();
// params.toolbar_container.show();
$('#reply_image_' + id).removeClass('imageFuzzy');
//edit.iframe.width(paramsWidth);
2015-11-24 18:06:32 +08:00
this.toolbar.div.height(30);
2015-09-19 11:18:41 +08:00
this.resize(paramsWidth, null);
2015-09-21 16:20:29 +08:00
//params.submit_btn.show();
2015-09-19 11:18:41 +08:00
},
afterCreate:function(){
2015-09-23 09:59:23 +08:00
//params.submit_btn.hide();
2015-11-24 18:06:32 +08:00
var toolbar1 = $("div[class='ke-toolbar']",params.div_form);
toolbar1.css('width',24);
$(".ke-outline>.ke-toolbar-icon",toolbar1).append('表情');
params.toolbar_container.append(toolbar1);
this.toolbar.div.height(0);
//init
var edit = this.edit;
var body = edit.doc.body;
edit.iframe[0].scroll = 'no';
body.style.overflowY = 'hidden';
//reset height
paramsHeight = paramsHeight == undefined ? params.kindutil.removeUnit(this.height) : paramsHeight;
edit.iframe.height(paramsHeight);
2015-11-24 14:45:38 +08:00
console.log(paramsHeight);
edit.setHeight(paramsHeight);
2015-09-23 08:56:48 +08:00
edit.html("<span id='hint' style='color: #999999; font-size: 12px'>我要回复</span>");
2015-09-21 16:20:29 +08:00
this.resize(null,Math.max((params.kindutil.IE ? body.scrollHeight : body.offsetHeight)+ paramsHeight , paramsHeight));// Math.max((params.kindutil.IE ? body.scrollHeight : body.offsetHeight)+ paramsHeight , paramsHeight)
2015-09-19 11:18:41 +08:00
// params.toolbar_container.hide();
2015-11-24 14:45:38 +08:00
//enablePasteImg(this);
}
2015-11-18 16:32:16 +08:00
});
return editor;
}
function nh_check_field(params){
var result=true;
if(params.content!=undefined){
if(params.content.isEmpty()){
result=false;
}
if(params.content.html()!=params.textarea.html() || params.issubmit==true){
params.textarea.html(params.content.html());
params.content.sync();
2015-09-21 16:20:29 +08:00
if(params.content.isEmpty() || /^\s*<\w*\s*\w*\=\"\w*\"\s*\w*\=\"\w*\:\s*\#\d*\;\s*\w*\-\w*\:\s*\w*\;\"\>[\u4e00-\u9fa5]*<\/\w*\>\s*$/.test(params.textarea.html())){
params.contentmsg.html('内容不能为空');
params.contentmsg.css({color:'#ff0000'});
}else{
params.contentmsg.html('填写正确');
params.contentmsg.css({color:'#008000'});
}
params.contentmsg.show();
}
}
return result;
}
function init_form(params){
params.form.submit(function(){
var flag = false;
if(params.form.attr('data-remote') != undefined ){
flag = true
}
var is_checked = nh_check_field({
issubmit:true,
content:params.editor,
contentmsg:params.contentmsg,
textarea:params.textarea
});
if(is_checked){
if(flag){
return true;
}else{
$(this)[0].submit();
return false;
}
}
return false;
});
}
function nh_reset_form(params){
params.form[0].reset();
params.textarea.empty();
if(params.editor != undefined){
params.editor.html(params.textarea.html());
}
params.contentmsg.hide();
}
//第二个参数是高度,可以传,可以不传
function init_activity_KindEditor_data(id){
var height = arguments[1] ? arguments[1] : undefined;
var width = arguments[2] ? arguments[2] : undefined;
KindEditor.ready(function (K) {
$("div[nhname='new_message_" + id + "']").each(function () {
var params = {};
params.kindutil = K;
params.div_form = $(this);
params.form = $("form", params.div_form);
if (params.form == undefined || params.form.length == 0) {
return;
}
params.textarea = $("textarea[nhname='new_message_textarea_" + id + "']", params.div_form);
params.contentmsg = $("p[nhname='contentmsg_" + id + "']", params.div_form);
params.toolbar_container = $("div[nhname='toolbar_container_" + id + "']", params.div_form);
params.cancel_btn = $("#new_message_cancel_btn_" + id);
params.submit_btn = $("#new_message_submit_btn_" + id);
params.height = height;
params.width = width;
if (params.textarea.data('init') == undefined) {
2015-09-19 11:18:41 +08:00
params.editor = init_editor(params,id);
init_form(params);
params.cancel_btn.click(function () {
nh_reset_form(params);
});
params.submit_btn.click(function () {
params.form.submit();
});
params.textarea.data('init', 1);
$(this).show();
}
});
});
div_form = $("div[nhname='new_message_" + id + "']");
$(".ke-edit", div_form).css("height","33px");
2015-09-19 11:18:41 +08:00
}