| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513 | 
							- /**
 
-  * Created by lifei6671 on 2017/4/29 0029.
 
-  */
 
- /**
 
-  * 打开最后选中的节点
 
-  */
 
-  function openLastSelectedNode() {
 
-     //如果文档树或编辑器没有准备好则不加载文档
 
-     if (window.treeCatalog == null || window.editor == null) {
 
-         return false;
 
-     }
 
-     var $isSelected = false;
 
-     if (window.localStorage) {
 
-         var $selectedNodeId = window.sessionStorage.getItem("MinDoc::LastLoadDocument:" + window.book.identify);
 
-         try {
 
-             if ($selectedNodeId) {
 
-                 //遍历文档树判断是否存在节点
 
-                 $.each(window.documentCategory, function (i, n) {
 
-                     if (n.id == $selectedNodeId && !$isSelected) {
 
-                         var $node = {"id": n.id};
 
-                         window.treeCatalog.deselect_all();
 
-                         window.treeCatalog.select_node($node);
 
-                         $isSelected = true;
 
-                     }
 
-                 });
 
-             }
 
-         } catch ($ex) {
 
-             console.log($ex)
 
-         }
 
-     }
 
-     //如果节点不存在,则默认选中第一个节点
 
-     if (!$isSelected && window.documentCategory.length > 0) {
 
-         var doc = window.documentCategory[0];
 
-         if (doc && doc.id > 0) {
 
-             var node = {"id": doc.id};
 
-             $("#sidebar").jstree(true).select_node(node);
 
-             $isSelected = true;
 
-         }
 
-     }
 
-     return $isSelected;
 
- }
 
- /**
 
-  * 设置最后选中的文档
 
-  * @param $node
 
-  */
 
- function setLastSelectNode($node) {
 
-     if (window.localStorage) {
 
-         if (typeof $node === "undefined" || !$node) {
 
-             window.sessionStorage.removeItem("MinDoc::LastLoadDocument:" + window.book.identify);
 
-         } else {
 
-             var nodeId = $node.id ? $node.id : $node.node.id;
 
-             window.sessionStorage.setItem("MinDoc::LastLoadDocument:" + window.book.identify, nodeId);
 
-         }
 
-     }
 
- }
 
- /**
 
-  * 保存排序
 
-  * @param node
 
-  * @param parent
 
-  */
 
- function jstree_save(node, parent) {
 
-     var parentNode = window.treeCatalog.get_node(parent.parent);
 
-     var nodeData = window.getSiblingSort(parentNode);
 
-     if (parent.parent !== parent.old_parent) {
 
-         parentNode = window.treeCatalog.get_node(parent.old_parent);
 
-         var newNodeData = window.getSiblingSort(parentNode);
 
-         if (newNodeData.length > 0) {
 
-             nodeData = nodeData.concat(newNodeData);
 
-         }
 
-     }
 
-     var index = layer.load(1, {
 
-         shade: [0.1, '#fff'] //0.1透明度的白色背景
 
-     });
 
-     locales = {
 
-         'zh-CN': {
 
-             saveSortSucc: '保存排序成功',
 
-         },
 
-         'en': {
 
-             saveSortSucc: 'Save sort success',
 
-         }
 
-     }
 
-     $.ajax({
 
-         url: window.sortURL,
 
-         type: "post",
 
-         data: JSON.stringify(nodeData),
 
-         success: function (res) {
 
-             layer.close(index);
 
-             if (res.errcode === 0) {
 
-                 layer.msg(locales[lang].saveSortSucc);
 
-             } else {
 
-                 layer.msg(res.message);
 
-             }
 
-         }
 
-     })
 
- }
 
- /**
 
-  * 创建文档
 
-  */
 
- function openCreateCatalogDialog($node) {
 
-     var $then = $("#addDocumentModal");
 
-     var doc_id = $node ? $node.id : 0;
 
-     $then.find("input[name='parent_id']").val(doc_id);
 
-     $then.find("input[name='doc_id']").val('');
 
-     $then.find("input[name='doc_name']").val('');
 
-     $then.modal("show");
 
- }
 
- /**
 
-  * 处理排序
 
-  * @param node
 
-  * @returns {Array}
 
-  */
 
- function getSiblingSort(node) {
 
-     var data = [];
 
-     for (var key in node.children) {
 
-         var index = data.length;
 
-         data[index] = {
 
-             "id": parseInt(node.children[key]),
 
-             "sort": parseInt(key),
 
-             "parent": Number(node.id) ? Number(node.id) : 0
 
-         };
 
-     }
 
-     return data;
 
- }
 
- /**
 
-  * 删除一个文档
 
-  * @param $node
 
-  */
 
- function openDeleteDocumentDialog($node) {
 
-     locales = {
 
-         'zh-CN': {
 
-             saveSortSucc: '保存排序成功',
 
-             confirmDeleteDoc: '你确定要删除该文档吗?',
 
-             confirm: '确定',
 
-             cancel: '取消',
 
-             deleteFailed: '删除失败',
 
-             confirmLeave: '您输入的内容尚未保存,确定离开此页面吗?'
 
-         },
 
-         'en': {
 
-             saveSortSucc: 'Save sort success',
 
-             confirmDeleteDoc: 'Are you sure you want to delete this document?',
 
-             confirm: 'Confirm',
 
-             cancel: 'Cancel',
 
-             deleteFailed: 'Delete Failed',
 
-             confirmLeave: 'The content you entered has not been saved. Are you sure you want to leave this page?'
 
-         }
 
-     }
 
-     langs = locales[lang];
 
-     var index = layer.confirm(langs.confirmDeleteDoc, {
 
-         btn: [langs.confirm, langs.cancel] //按钮
 
-     }, function () {
 
-         $.post(window.deleteURL, {"identify": window.book.identify, "doc_id": $node.id}).done(function (res) {
 
-             layer.close(index);
 
-             if (res.errcode === 0) {
 
-                 window.treeCatalog.delete_node($node);
 
-                 window.documentCategory.remove(function (item) {
 
-                     return item.id == $node.id;
 
-                 });
 
-                 // console.log(window.documentCategory)
 
-                 setLastSelectNode();
 
-             } else {
 
-                 layer.msg(lang.deleteFailed, {icon: 2})
 
-             }
 
-         }).fail(function () {
 
-             layer.close(index);
 
-             layer.msg(lang.deleteFailed, {icon: 2})
 
-         });
 
-     });
 
- }
 
- /**
 
-  * 打开文档编辑界面
 
-  * @param $node
 
-  */
 
- function openEditCatalogDialog($node) {
 
-     var $then = $("#addDocumentModal");
 
-     var doc_id = parseInt($node ? $node.id : 0);
 
-     var text = $node ? $node.text : '';
 
-     var parentId = $node && $node.parent !== '#' ? $node.parent : 0;
 
-     $then.find("input[name='doc_id']").val(doc_id);
 
-     $then.find("input[name='parent_id']").val(parentId);
 
-     $then.find("input[name='doc_name']").val(text);
 
-     var open = $node.a_attr && $node.a_attr.opened ? $node.a_attr.opened  : 0;
 
-     console.log($node)
 
-     $then.find("input[name='is_open'][value='" + open + "']").prop("checked", "checked");
 
-     for (var index in window.documentCategory) {
 
-         var item = window.documentCategory[index];
 
-         if (item.id === doc_id) {
 
-             $then.find("input[name='doc_identify']").val(item.identify);
 
-             break;
 
-         }
 
-     }
 
-     $then.modal({show: true});
 
- }
 
- /**
 
-  * 将一个节点推送到现有数组中
 
-  * @param $node
 
-  */
 
- function pushDocumentCategory($node) {
 
-     for (var index in window.documentCategory) {
 
-         var item = window.documentCategory[index];
 
-         if (item.id === $node.id) {
 
-             window.documentCategory[index] = $node;
 
-             return;
 
-         }
 
-     }
 
-     window.documentCategory.push($node);
 
- }
 
- /**
 
-  * 将数据重置到Vue列表中
 
-  * @param $lists
 
-  */
 
- function pushVueLists($lists) {
 
-     window.vueApp.lists = [];
 
-     $.each($lists, function (i, item) {
 
-         window.vueApp.lists.push(item);
 
-     });
 
- }
 
- /**
 
-  * 发布项目
 
-  */
 
- function releaseBook() {
 
-     locales = {
 
-         'zh-CN': {
 
-             publishToQueue: '发布任务已推送到任务队列,稍后将在后台执行。',
 
-         },
 
-         'en': {
 
-             publishToQueue: 'The publish task has been pushed to the queue</br> and will be executed soon.',
 
-         }
 
-     }
 
-     $.ajax({
 
-         url: window.releaseURL,
 
-         data: {"identify": window.book.identify},
 
-         type: "post",
 
-         dataType: "json",
 
-         success: function (res) {
 
-             if (res.errcode === 0) {
 
-                 layer.msg(locales[lang].publishToQueue);
 
-             } else {
 
-                 layer.msg(res.message);
 
-             }
 
-         }
 
-     });
 
- }
 
- //实现小提示
 
- $("[data-toggle='tooltip']").hover(function () {
 
-     var title = $(this).attr('data-title');
 
-     var direction = $(this).attr("data-direction");
 
-     var tips = 3;
 
-     if (direction === "top") {
 
-         tips = 1;
 
-     } else if (direction === "right") {
 
-         tips = 2;
 
-     } else if (direction === "bottom") {
 
-         tips = 3;
 
-     } else if (direction === "left") {
 
-         tips = 4;
 
-     }
 
-     index = layer.tips(title, this, {
 
-         tips: tips
 
-     });
 
- }, function () {
 
-     layer.close(index);
 
- });
 
- //弹出创建文档的遮罩层
 
- $("#btnAddDocument").on("click", function () {
 
-     $("#addDocumentModal").modal("show");
 
- });
 
- //用于还原创建文档的遮罩层
 
- $("#addDocumentModal").on("hidden.bs.modal", function () {
 
-     $(this).find("form").html(window.sessionStorage.getItem("MinDoc::addDocumentModal"));
 
-     var $then = $("#addDocumentModal");
 
-     $then.find("input[name='parent_id']").val('');
 
-     $then.find("input[name='doc_id']").val('');
 
-     $then.find("input[name='doc_name']").val('');
 
- }).on("shown.bs.modal", function () {
 
-     $(this).find("input[name='doc_name']").focus();
 
- }).on("show.bs.modal", function () {
 
-     window.sessionStorage.setItem("MinDoc::addDocumentModal", $(this).find("form").html())
 
- });
 
- function showError($msg, $id) {
 
-     if (!$id) {
 
-         $id = "#form-error-message"
 
-     }
 
-     $($id).addClass("error-message").removeClass("success-message").text($msg);
 
-     return false;
 
- }
 
- function showSuccess($msg, $id) {
 
-     if (!$id) {
 
-         $id = "#form-error-message"
 
-     }
 
-     $($id).addClass("success-message").removeClass("error-message").text($msg);
 
-     return true;
 
- }
 
- window.documentHistory = function () {
 
-     locales = {
 
-         'zh-CN': {
 
-             hisVer: '历史版本',
 
-         },
 
-         'en': {
 
-             hisVer: 'Historic version',
 
-         }
 
-     }
 
-     layer.open({
 
-         type: 2,
 
-         title: locales[lang].hisVer,
 
-         shadeClose: true,
 
-         shade: 0.8,
 
-         area: ['700px', '80%'],
 
-         content: window.historyURL + "?identify=" + window.book.identify + "&doc_id=" + window.selectNode.id,
 
-         end: function () {
 
-             if (window.SelectedId) {
 
-                 var selected = {
 
-                     node: {
 
-                         id: window.SelectedId
 
-                     }
 
-                 };
 
-                 window.loadDocument(selected);
 
-                 window.SelectedId = null;
 
-             }
 
-         }
 
-     });
 
- };
 
- function uploadImage($id, $callback) {
 
-     locales = {
 
-         'zh-CN': {
 
-             unsupportType: '不支持的图片格式',
 
-             uploadFailed: '图片上传失败'
 
-         },
 
-         'en': {
 
-             unsupportType: 'Unsupport image type',
 
-             uploadFailed: 'Upload image failed'
 
-         }
 
-     }
 
-     /** 粘贴上传图片 **/
 
-     document.getElementById($id).addEventListener('paste', function (e) {
 
-         if (e.clipboardData && e.clipboardData.items) {
 
-             var clipboard = e.clipboardData;
 
-             for (var i = 0, len = clipboard.items.length; i < len; i++) {
 
-                 if (clipboard.items[i].kind === 'file' || clipboard.items[i].type.indexOf('image') > -1) {
 
-                     var imageFile = clipboard.items[i].getAsFile();
 
-                     var fileName = String((new Date()).valueOf());
 
-                     switch (imageFile.type) {
 
-                         case "image/png" :
 
-                             fileName += ".png";
 
-                             break;
 
-                         case "image/jpg" :
 
-                             fileName += ".jpg";
 
-                             break;
 
-                         case "image/jpeg" :
 
-                             fileName += ".jpeg";
 
-                             break;
 
-                         case "image/gif" :
 
-                             fileName += ".gif";
 
-                             break;
 
-                         default :
 
-                             layer.msg(locales[lang].unsupportType);
 
-                             return;
 
-                     }
 
-                     var form = new FormData();
 
-                     form.append('editormd-image-file', imageFile, fileName);
 
-                     var layerIndex = 0;
 
-                     $.ajax({
 
-                         url: window.imageUploadURL,
 
-                         type: "POST",
 
-                         dataType: "json",
 
-                         data: form,
 
-                         processData: false,
 
-                         contentType: false,
 
-                         beforeSend: function () {
 
-                             layerIndex = $callback('before');
 
-                         },
 
-                         error: function () {
 
-                             layer.close(layerIndex);
 
-                             $callback('error');
 
-                             layer.msg(locales[lang].uploadFailed);
 
-                         },
 
-                         success: function (data) {
 
-                             layer.close(layerIndex);
 
-                             $callback('success', data);
 
-                             if (data.errcode !== 0) {
 
-                                 layer.msg(data.message);
 
-                             }
 
-                         }
 
-                     });
 
-                     e.preventDefault();
 
-                 }
 
-             }
 
-         }
 
-     });
 
- }
 
- /**
 
-  * 初始化代码高亮
 
-  */
 
- function initHighlighting() {
 
-     $('pre code,pre.ql-syntax').each(function (i, block) {
 
-         hljs.highlightBlock(block);
 
-     });
 
- }
 
- $(function () {
 
-     window.vueApp = new Vue({
 
-         el: "#attachList",
 
-         data: {
 
-             lists: []
 
-         },
 
-         delimiters: ['${', '}'],
 
-         methods: {
 
-             removeAttach: function ($attach_id) {
 
-                 var $this = this;
 
-                 var item = $this.lists.filter(function ($item) {
 
-                     return $item.attachment_id == $attach_id;
 
-                 });
 
-                 if (item && item[0].hasOwnProperty("state")) {
 
-                     $this.lists = $this.lists.filter(function ($item) {
 
-                         return $item.attachment_id != $attach_id;
 
-                     });
 
-                     return;
 
-                 }
 
-                 $.ajax({
 
-                     url: window.removeAttachURL,
 
-                     type: "post",
 
-                     data: {"attach_id": $attach_id},
 
-                     success: function (res) {
 
-                         if (res.errcode === 0) {
 
-                             $this.lists = $this.lists.filter(function ($item) {
 
-                                 return $item.attachment_id != $attach_id;
 
-                             });
 
-                         } else {
 
-                             layer.msg(res.message);
 
-                         }
 
-                     }
 
-                 });
 
-             }
 
-         },
 
-         watch: {
 
-             lists: function ($lists) {
 
-                 $("#attachInfo").text(" " + $lists.length + " 个附件")
 
-             }
 
-         }
 
-     });
 
-     /**
 
-      * 启动自动保存,默认30s自动保存一次
 
-      */
 
-     if (window.book && window.book.auto_save) {
 
-         setTimeout(function () {
 
-             setInterval(function () {
 
-                 var $then = $("#markdown-save");
 
-                 if (!window.saveing && $then.hasClass("change")) {
 
-                     $then.trigger("click");
 
-                 }
 
-             }, 30000);
 
-         }, 30000);
 
-     }
 
-     /**
 
-      * 当离开窗口时存在未保存的文档会提示保存
 
-      */
 
-     $(window).on("beforeunload", function () {
 
-         if ($("#markdown-save").hasClass("change")) {
 
-             return '您输入的内容尚未保存,确定离开此页面吗?';
 
-         }
 
-     });
 
- });
 
 
  |