/*! * Goto line dialog plugin for Editor.md * * @file goto-line-dialog.js * @author pandao * @version 1.2.1 * @updateTime 2015-06-09 * {@link https://github.com/pandao/editor.md} * @license MIT */ (function() { var factory = function (exports) { var $ = jQuery; var pluginName = "goto-line-dialog"; var langs = { "zh-cn" : { toolbar : { "goto-line" : "跳转到行" }, dialog : { "goto-line" : { title : "跳转到行", label : "请输入行号", error : "错误:" } } }, "zh-tw" : { toolbar : { "goto-line" : "跳轉到行" }, dialog : { "goto-line" : { title : "跳轉到行", label : "請輸入行號", error : "錯誤:" } } }, "en" : { toolbar : { "goto-line" : "Goto line" }, dialog : { "goto-line" : { title : "Goto line", label : "Enter a line number, range ", error : "Error: " } } } }; exports.fn.gotoLineDialog = function() { var _this = this; var cm = this.cm; var editor = this.editor; var settings = this.settings; var path = settings.pluginPath + pluginName +"/"; var classPrefix = this.classPrefix; var dialogName = classPrefix + pluginName, dialog; $.extend(true, this.lang, langs[this.lang.name]); this.setToolbar(); var lang = this.lang; var dialogLang = lang.dialog["goto-line"]; var lineCount = cm.lineCount(); dialogLang.error += dialogLang.label + " 1-" + lineCount; if (editor.find("." + dialogName).length < 1) { var dialogContent = [ "
", "

" + dialogLang.label + " 1-" + lineCount +"   

", "
" ].join("\n"); dialog = this.createDialog({ name : dialogName, title : dialogLang.title, width : 400, height : 180, mask : settings.dialogShowMask, drag : settings.dialogDraggable, content : dialogContent, lockScreen : settings.dialogLockScreen, maskStyle : { opacity : settings.dialogMaskOpacity, backgroundColor : settings.dialogMaskBgColor }, buttons : { enter : [lang.buttons.enter, function() { var line = parseInt(this.find("[data-line-number]").val()); if (line < 1 || line > lineCount) { alert(dialogLang.error); return false; } _this.gotoLine(line); this.hide().lockScreen(false).hideMask(); return false; }], cancel : [lang.buttons.cancel, function() { this.hide().lockScreen(false).hideMask(); return false; }] } }); } dialog = editor.find("." + dialogName); this.dialogShowMask(dialog); this.dialogLockScreen(); dialog.show(); }; }; // CommonJS/Node.js if (typeof require === "function" && typeof exports === "object" && typeof module === "object") { module.exports = factory; } else if (typeof define === "function") // AMD/CMD/Sea.js { if (define.amd) { // for Require.js define(["editormd"], function(editormd) { factory(editormd); }); } else { // for Sea.js define(function(require) { var editormd = require("./../../editormd"); factory(editormd); }); } } else { factory(window.editormd); } })();