/* * Copyright (c) 2014-2018, b3log.org & hacpai.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * @file bottomGroup.js * * @author Liyuan Li * @author Liang Ding * @version 1.1.1.1, Mar 15, 2017 */ var bottomGroup = { tabs: undefined, searchTab: undefined, init: function () { this._initTabs(); this._initFrame(); $('.bottom-window-group .output').click(function () { $(this).focus(); }); $('.bottom-window-group .output').on('click', '.path', function (event) { var $path = $(this), tId = tree.getTIdByPath($path.data("path")); tree.openFile(tree.fileTree.getNodeByTId(tId), CodeMirror.Pos($path.data("line") - 1, $path.data("column") - 1)); event.preventDefault(); return false; }); }, _initFrame: function () { $(".bottom-window-group .output").parent().mouseup(function (event) { event.stopPropagation(); if (event.button === 0) { // 左键 $(".bottom-window-group .frame").hide(); return; } // event.button === 2 右键 var left = event.screenX, $it = $(this); if ($(".side").css("left") === "auto" || $(".side").css("left") === "0px") { left = event.screenX - $(".side").width(); } $(".bottom-window-group .frame").show().css({ "left": left + "px", "top": (event.offsetY + event.target.offsetTop - $it.scrollTop() - 10) + "px" }); return; }); }, clear: function (id) { $('.bottom-window-group .' + id + ' > div').text(''); }, resetOutput: function () { this.clear('output'); bottomGroup.tabs.setCurrent("output"); windows.flowBottom(); }, _initTabs: function () { this.tabs = new Tabs({ id: ".bottom-window-group", clickAfter: function (id) { this._$tabsPanel.find("." + id).focus(); } }); }, fillOutput: function (data) { var $output = $('.bottom-window-group .output'); data = data.replace(/\r/g, ''); data = data.replace(/\n/g, '
'); if (-1 !== data.indexOf("
")) { data = Autolinker.link(data); } $output.find("div").html(data); $output.parent().scrollTop($output[0].scrollHeight); } };