Files
leanote/public/js/app/page-min.js
2014-12-09 23:17:36 +08:00

1 line
17 KiB
JavaScript

function editorMode(){this.writingHash="writing";this.normalHash="normal";this.isWritingMode=location.hash.indexOf(this.writingHash)>=0;this.toggleA=null}editorMode.prototype.toggleAText=function(isWriting){var self=this;setTimeout(function(){var toggleA=$(".toggle-editor-mode a");var toggleSpan=$(".toggle-editor-mode span");if(isWriting){toggleA.attr("href","#"+self.normalHash);toggleSpan.text(getMsg("normalMode"))}else{toggleA.attr("href","#"+self.writingHash);toggleSpan.text(getMsg("writingMode"))}},0)};editorMode.prototype.isWriting=function(hash){return hash.indexOf(this.writingHash)>=0};editorMode.prototype.init=function(){this.changeMode(this.isWritingMode);var self=this;$(".toggle-editor-mode").click(function(e){e.preventDefault();saveBookmark();var $a=$(this).find("a");var isWriting=self.isWriting($a.attr("href"));self.changeMode(isWriting);if(isWriting){setHash("m",self.writingHash)}else{setHash("m",self.normalHash)}restoreBookmark()})};editorMode.prototype.changeMode=function(isWritingMode){this.toggleAText(isWritingMode);if(isWritingMode){this.writtingMode()}else{this.normalMode()}$("#moreBtn i").removeClass("fa-angle-up").addClass("fa-angle-down")};editorMode.prototype.resizeEditor=function(){setTimeout(function(){resizeEditor()},10);setTimeout(function(){resizeEditor()},20);setTimeout(function(){resizeEditor()},500)};editorMode.prototype.normalMode=function(){var $c=$("#editorContent_ifr").contents();$c.contents().find("#writtingMode").remove();$c.contents().find('link[href$="editor-writting-mode.css"]').remove();$("#noteItemListWrap, #notesAndSort").show();$("#noteList").unbind("mouseenter").unbind("mouseleave");var theme=UserInfo.Theme||"default";theme+=".css";$("#themeLink").attr("href","/css/theme/"+theme);$("#mceToolbar").css("height","30px");this.resizeEditor();$("#noteList").width(UserInfo.NoteListWidth);$("#note").css("left",UserInfo.NoteListWidth)};editorMode.prototype.writtingMode=function(){$("#themeLink").attr("href","/css/theme/writting-overwrite.css");setTimeout(function(){var $c=$("#editorContent_ifr").contents();$c.contents().find("head").append('<link type="text/css" rel="stylesheet" href="/css/editor/editor-writting-mode.css" id="writtingMode">')},0);$("#noteItemListWrap, #notesAndSort").fadeOut();$("#noteList").hover(function(){$("#noteItemListWrap, #notesAndSort").fadeIn()},function(){$("#noteItemListWrap, #notesAndSort").fadeOut()});$("#mceToolbar").css("height","40px");this.resizeEditor();$("#noteList").width(250);$("#note").css("left",0)};editorMode.prototype.getWritingCss=function(){if(this.isWritingMode){return["/css/editor/editor-writting-mode.css"]}return[]};var em=new editorMode;var Resize={lineMove:false,mdLineMove:false,target:null,leftNotebook:$("#leftNotebook"),notebookSplitter:$("#notebookSplitter"),noteList:$("#noteList"),noteAndEditor:$("#noteAndEditor"),noteSplitter:$("#noteSplitter"),note:$("#note"),body:$("body"),leftColumn:$("#left-column"),rightColumn:$("#right-column"),mdSplitter:$("#mdSplitter"),init:function(){var self=this;self.initEvent()},initEvent:function(){var self=this;$(".noteSplit").bind("mousedown",function(event){event.preventDefault();self.lineMove=true;$(this).css("background-color","#ccc");self.target=$(this).attr("id");$("#noteMask").css("z-index",99999)});self.mdSplitter.bind("mousedown",function(event){event.preventDefault();self.mdLineMove=true;$(this).css("background-color","#ccc")});self.body.bind("mousemove",function(event){if(self.lineMove){event.preventDefault();self.resize3Columns(event)}else if(self.mdLineMove){event.preventDefault();self.resizeMdColumns(event)}});self.body.bind("mouseup",function(event){self.stopResize();$("#noteMask").css("z-index",-1)})},stopResize:function(){var self=this;if(self.lineMove||self.mdLineMove){ajaxGet("/user/updateColumnWidth",{mdEditorWidth:UserInfo.MdEditorWidth,notebookWidth:UserInfo.NotebookWidth,noteListWidth:UserInfo.NoteListWidth},function(){})}self.lineMove=false;self.mdLineMove=false;$(".noteSplit").css("background","none");self.mdSplitter.css("background","none")},set3ColumnsWidth:function(notebookWidth,noteListWidth){var self=this;if(notebookWidth<150||noteListWidth<100){return}var noteWidth=self.body.width()-notebookWidth-noteListWidth;if(noteWidth<400){return}self.leftNotebook.width(notebookWidth);self.notebookSplitter.css("left",notebookWidth);self.noteAndEditor.css("left",notebookWidth);self.noteList.width(noteListWidth);self.noteSplitter.css("left",noteListWidth);self.note.css("left",noteListWidth);UserInfo.NotebookWidth=notebookWidth;UserInfo.NoteListWidth=noteListWidth},resize3Columns:function(event,isFromeIfr){var self=this;if(isFromeIfr){event.clientX+=self.body.width()-self.note.width()}var notebookWidth,noteListWidth;if(self.lineMove){if(self.target=="notebookSplitter"){notebookWidth=event.clientX;noteListWidth=self.noteList.width();self.set3ColumnsWidth(notebookWidth,noteListWidth)}else{notebookWidth=self.leftNotebook.width();noteListWidth=event.clientX-notebookWidth;self.set3ColumnsWidth(notebookWidth,noteListWidth)}resizeEditor()}},resizeMdColumns:function(event){var self=this;if(self.mdLineMove){var mdEditorWidth=event.clientX-self.leftNotebook.width()-self.noteList.width();self.setMdColumnWidth(mdEditorWidth)}},setMdColumnWidth:function(mdEditorWidth){var self=this;if(mdEditorWidth>100){UserInfo.MdEditorWidth=mdEditorWidth;self.leftColumn.width(mdEditorWidth);self.rightColumn.css("left",mdEditorWidth);self.mdSplitter.css("left",mdEditorWidth)}}};Mobile={noteO:$("#note"),bodyO:$("body"),setMenuO:$("#setMenu"),hashChange:function(){var self=Mobile;var hash=location.hash;if(hash.indexOf("noteId")!=-1){self.toEditor(false);var noteId=hash.substr(8);Note.changeNote(noteId,false,false)}else{self.toNormal(false)}},init:function(){var self=this;self.isMobile()},isMobile:function(){var u=navigator.userAgent;LEA.isMobile=false;LEA.isMobile=/Mobile|Android|iPhone|iPad/i.test(u);LEA.isIpad=/iPhone|iPad/i.test(u);if(!LEA.isMobile&&$(document).width()<=700){LEA.isMobile=true}return LEA.isMobile},changeNote:function(noteId){var self=this;if(!LEA.isMobile){return true}self.toEditor(true,noteId);return false},toEditor:function(changeHash,noteId){var self=this;self.bodyO.addClass("full-editor");self.noteO.addClass("editor-show")},toNormal:function(changeHash){var self=this;self.bodyO.removeClass("full-editor");self.noteO.removeClass("editor-show")},switchPage:function(){var self=this;if(!LEA.isMobile||LEA.isIpad){return true}if(self.bodyO.hasClass("full-editor")){self.toNormal(true)}else{self.toEditor(true)}return false}};function initSlimScroll(){if(Mobile.isMobile()){return}$("#notebook").slimScroll({height:"100%"});$("#noteItemList").slimScroll({height:"100%"});$("#wmd-input").slimScroll({height:"100%"});$("#wmd-input").css("width","100%");$("#wmd-panel-preview").slimScroll({height:"100%"});$("#wmd-panel-preview").css("width","100%")}function initEditor(){var mceToobarEverHeight=0;$("#moreBtn").click(function(){saveBookmark();var height=$("#mceToolbar").height();if(height<$("#popularToolbar").height()){$("#mceToolbar").height($("#popularToolbar").height());$(this).find("i").removeClass("fa-angle-down").addClass("fa-angle-up");mceToobarEverHeight=height}else{$("#mceToolbar").height(mceToobarEverHeight);$(this).find("i").removeClass("fa-angle-up").addClass("fa-angle-down")}resizeEditor();restoreBookmark()});tinymce.init({setup:function(ed){ed.on("keydown",Note.saveNote);ed.on("keydown",function(e){var num=e.which?e.which:e.keyCode;if(num==9){if(!e.shiftKey){var node=ed.selection.getNode();if(node.nodeName=="PRE"){ed.execCommand("mceInsertRawHTML",false," ")}else{ed.execCommand("mceInsertRawHTML",false,"&nbsp;&nbsp;&nbsp;&nbsp;")}}else{}e.preventDefault();e.stopPropagation();return false}});ed.on("click",function(e){$("body").trigger("click")});ed.on("click",function(){log(ed.selection.getNode())})},convert_urls:true,relative_urls:false,remove_script_host:false,selector:"#editorContent",content_css:["/css/bootstrap.css","/css/editor/editor.css"].concat(em.getWritingCss()),skin:"custom",language:LEA.locale,plugins:["autolink link leaui_image lists charmap hr","paste","searchreplace leanote_nav leanote_code tabfocus","table directionality textcolor codemirror"],toolbar1:"formatselect | forecolor backcolor | bold italic underline strikethrough | leaui_image | leanote_code | bullist numlist | alignleft aligncenter alignright alignjustify",toolbar2:"outdent indent blockquote | link unlink | table | hr removeformat | subscript superscript |searchreplace | code | pastetext pasteCopyImage | fontselect fontsizeselect",menubar:false,toolbar_items_size:"small",statusbar:false,url_converter:false,font_formats:"Arial=arial,helvetica,sans-serif;"+"Arial Black=arial black,avant garde;"+"Times New Roman=times new roman,times;"+"Courier New=courier new,courier;"+"Tahoma=tahoma,arial,helvetica,sans-serif;"+"Verdana=verdana,geneva;"+"宋体=SimSun;"+"新宋体=NSimSun;"+"黑体=SimHei;"+"微软雅黑=Microsoft YaHei",block_formats:"Header 1=h1;Header 2=h2;Header 3=h3; Header 4=h4;Pre=pre;Paragraph=p",codemirror:{indentOnInit:true,path:"CodeMirror",config:{lineNumbers:true},jsFiles:[]},paste_data_images:true});window.onbeforeunload=function(e){Note.curChangedSaveIt()};$("body").on("keydown",Note.saveNote)}var random=1;function scrollTo(self,tagName,text){var iframe=$("#editorContent_ifr").contents();var target=iframe.find(tagName+":contains("+text+")");random++;var navs=$('#leanoteNavContent [data-a="'+tagName+"-"+encodeURI(text)+'"]');var len=navs.size();for(var i=0;i<len;++i){if(navs[i]==self){break}}if(target.size()>=i+1){target=target.eq(i);var top=target.offset().top;var nowTop=iframe.scrollTop();var d=200;for(var i=0;i<d;i++){setTimeout(function(top){return function(){iframe.scrollTop(top)}}(nowTop+1*i*(top-nowTop)/d),i)}setTimeout(function(){iframe.scrollTop(top)},d+5);return}}$(function(){$(window).resize(function(){Mobile.isMobile();resizeEditor()});initEditor();$(".folderHeader").click(function(){var body=$(this).next();var p=$(this).parent();if(!body.is(":hidden")){$(".folderNote").removeClass("opened").addClass("closed");p.removeClass("opened").addClass("closed");$(this).find(".fa-angle-down").removeClass("fa-angle-down").addClass("fa-angle-right")}else{$(".folderNote").removeClass("opened").addClass("closed");p.removeClass("closed").addClass("opened");$(this).find(".fa-angle-right").removeClass("fa-angle-right").addClass("fa-angle-down")}});$("#leanoteNav h1").on("click",function(e){if(!$("#leanoteNav").hasClass("unfolder")){$("#leanoteNav").addClass("unfolder")}else{$("#leanoteNav").removeClass("unfolder")}});function openSetInfoDialog(whichTab){showDialogRemote("/user/account",{tab:whichTab})}$("#setInfo").click(function(){openSetInfoDialog(0)});$("#wrongEmail").click(function(){openSetInfoDialog(1)});$("#setAvatarMenu").click(function(){showDialog2("#avatarDialog",{title:"头像设置",postShow:function(){}})});$("#setTheme").click(function(){showDialog2("#setThemeDialog",{title:"主题设置",postShow:function(){if(!UserInfo.Theme){UserInfo.Theme="default"}$("#themeForm input[value='"+UserInfo.Theme+"']").attr("checked",true)}})});$("#themeForm").on("click","input",function(e){var val=$(this).val();$("#themeLink").attr("href","/css/theme/"+val+".css");ajaxPost("/user/updateTheme",{theme:val},function(re){if(reIsOk(re)){UserInfo.Theme=val}})});if(!UserInfo.Verified){}$("#notebook, #newMyNote, #myProfile, #topNav, #notesAndSort","#leanoteNavTrigger").bind("selectstart",function(e){e.preventDefault();return false});function updateLeftIsMin(is){ajaxGet("/user/updateLeftIsMin",{leftIsMin:is})}function minLeft(save){$("#leftNotebook").width(30);$("#notebook").hide();$("#noteAndEditor").css("left",30);$("#notebookSplitter").hide();$("#logo").hide();$("#leftSwitcher").hide();$("#leftSwitcher2").show();$("#leftNotebook .slimScrollDiv").hide();if(save){updateLeftIsMin(true)}}function maxLeft(save){$("#noteAndEditor").css("left",UserInfo.NotebookWidth);$("#leftNotebook").width(UserInfo.NotebookWidth);$("#notebook").show();$("#notebookSplitter").show();$("#leftSwitcher2").hide();$("#logo").show();$("#leftSwitcher").show();$("#leftNotebook .slimScrollDiv").show();if(save){updateLeftIsMin(false)}}$("#leftSwitcher2").click(function(){maxLeft(true)});$("#leftSwitcher").click(function(){if(Mobile.switchPage()){minLeft(true)}});function getMaxDropdownHeight(obj){var offset=$(obj).offset();var maxHeight=$(document).height()-offset.top;maxHeight-=70;if(maxHeight<0){maxHeight=0}var preHeight=$(obj).find("ul").height();return preHeight<maxHeight?preHeight:maxHeight}$("#notebookMin div.minContainer").click(function(){var target=$(this).attr("target");maxLeft(true);if(target=="#notebookList"){if($("#myNotebooks").hasClass("closed")){$("#myNotebooks .folderHeader").trigger("click")}}else if(target=="#tagNav"){if($("#myTag").hasClass("closed")){$("#myTag .folderHeader").trigger("click")}}else{if($("#myShareNotebooks").hasClass("closed")){$("#myShareNotebooks .folderHeader").trigger("click")}}});UserInfo.NotebookWidth=UserInfo.NotebookWidth||$("#notebook").width();UserInfo.NoteListWidth=UserInfo.NoteListWidth||$("#noteList").width();Resize.init();Resize.set3ColumnsWidth(UserInfo.NotebookWidth,UserInfo.NoteListWidth);Resize.setMdColumnWidth(UserInfo.MdEditorWidth);if(UserInfo.LeftIsMin){minLeft(false)}$("#mainMask").html("");$("#mainMask").hide(100);$(".dropdown").on("shown.bs.dropdown",function(){var $ul=$(this).find("ul")});$("#tipsBtn").click(function(){showDialog2("#tipsDialog")});$("#yourSuggestions").click(function(){showDialog2("#suggestionsDialog")});$("#suggestionBtn").click(function(e){e.preventDefault();var suggestion=$.trim($("#suggestionTextarea").val());if(!suggestion){$("#suggestionMsg").html("请输入您的建议, 谢谢!").show().addClass("alert-warning").removeClass("alert-success");$("#suggestionTextarea").focus();return}$("#suggestionBtn").html("正在处理...").addClass("disabled");$("#suggestionMsg").html("正在处理...");$.post("/suggestion",{suggestion:suggestion},function(ret){$("#suggestionBtn").html("提交").removeClass("disabled");if(ret.Ok){$("#suggestionMsg").html("谢谢反馈, 我们会第一时间处理, 祝您愉快!").addClass("alert-success").removeClass("alert-warning").show()}else{$("#suggestionMsg").html("出错了").show().addClass("alert-warning").removeClass("alert-success")}})});em.init();Mobile.init()});var Pjax={init:function(){var me=this;window.addEventListener("popstate",function(evt){var state=evt.state;if(!state){return}document.title=state.title||"Untitled";log("pop");me.changeNotebookAndNote(state.noteId)},false);if(!history.pushState){$(window).on("hashchange",function(){var noteId=getHash("noteId");if(noteId){me.changeNotebookAndNote(noteId)}})}},changeNotebookAndNote:function(noteId){var note=Note.getNote(noteId);if(!note){return}var isShare=note.Perm!=undefined;var notebookId=note.NotebookId;if(Notebook.curNotebookId==notebookId){Note.changeNoteForPjax(noteId,false);return}if(!isShare){Notebook.changeNotebook(notebookId,function(notes){Note.renderNotes(notes);Note.changeNoteForPjax(noteId,false,true)})}else{Share.changeNotebook(note.UserId,notebookId,function(notes){Note.renderNotes(notes);Note.changeNoteForPjax(noteId,false,true)})}},changeNote:function(noteInfo){var me=this;log("push");var noteId=noteInfo.NoteId;var title=noteInfo.Title;var url="/note/"+noteId;if(location.hash){url+=location.hash}if(history.pushState){var state={url:url,noteId:noteId,title:title};history.pushState(state,title,url);document.title=title||"Untitled"}else{setHash("noteId",noteId)}}};$(function(){Pjax.init()});function initPage(){$(function(){Notebook.renderNotebooks(notebooks);Share.renderShareNotebooks(sharedUserInfos,shareNotebooks);if(curSharedNoteNotebookId){Share.firstRenderShareNote(curSharedUserId,curSharedNoteNotebookId,curNoteId)}else{Note.setNoteCache(noteContentJson);Note.renderNotes(notes);if(curNoteId){setTimeout(function(){Note.changeNoteForPjax(curNoteId,true,curNotebookId)});if(!curNotebookId){Notebook.selectNotebook($(tt('#notebook [notebookId="?"]',Notebook.allNotebookId)))}}}if(latestNotes.length>0){for(var i=0;i<latestNotes.length;++i){Note.addNoteCache(latestNotes[i])}}Tag.renderTagNav(tagsJson);initSlimScroll()})}var aceEditors={};function initAce(id,val){var aceEditor=ace.edit(id);aceEditor.setTheme("ace/theme/tomorrow");aceEditor.session.setMode("ace/mode/javascript");aceEditor.setAutoScrollEditorIntoView(true);aceEditor.setOption("maxLines",100);if(val){aceEditor.setValue(val)}aceEditors[id]=aceEditor;return aceEditor}function getAce(id){return aceEditors[id]}function isInAce(node,brush){var $node=$(node);var node=$node.get(0);if(node.nodeName=="PRE"){$node.data("brush",brush);var id=$node.attr("id");var aceEditor=getAce(id);if(aceEditor){return[aceEditor,$node]}return false}else{$pre=$node.closest("pre");if($pre.length==0){return false}return isInAce($pre,brush)}return false}