Merge branch 'master' of /home/daniel/Wide/data/workspace/src/github.com/b3log/wide

This commit is contained in:
Liang Ding 2014-10-22 15:57:56 +08:00
commit c08a939849
6 changed files with 172 additions and 101 deletions

View File

@ -3,7 +3,8 @@
<head>
<meta charset="UTF-8">
<title>
{{.i18n.wide}}
{{.i18n.wide}}
</title>
<link rel="stylesheet" href="{{.conf.StaticServer}}/static/js/lib/codemirror-4.5/codemirror.css">
<link rel="stylesheet" href="{{.conf.StaticServer}}/static/js/lib/codemirror-4.5/addon/hint/show-hint.css">
@ -24,25 +25,29 @@
<ul class="fn-cleaer">
<li>
<span>
{{.i18n.file}}
{{.i18n.file}}
</span>
<div class="frame">
<ul>
<li class="save-all disabled" onclick="wide.saveAllFiles()">
<span>
{{.i18n.save_all_files}}
{{.i18n.save_all_files}}
</span>
</li>
<li class="close-all disabled" onclick="wide.closeAllFiles()">
<span>
{{.i18n.close_all_files}}
{{.i18n.close_all_files}}
</span>
</li>
<li class="hr">
</li>
<li onclick="wide.exit()">
<span>
{{.i18n.exit}}
{{.i18n.exit}}
</span>
</li>
</ul>
@ -50,25 +55,29 @@
</li>
<li>
<span>
{{.i18n.run}}
{{.i18n.run}}
</span>
<div class="frame">
<ul>
<li class="run disabled" onclick="wide.run()">
<span>
{{.i18n.build_n_run}}
{{.i18n.build_n_run}}
</span>
</li>
<li class="hr">
</li>
<li class="go-get disabled" onclick="wide.goget()">
<span>
{{.i18n.goget}}
{{.i18n.goget}}
</span>
</li>
<li class="go-install disabled" onclick="wide.goinstall()">
<span>
{{.i18n.goinstall}}
{{.i18n.goinstall}}
</span>
</li>
</ul>
@ -88,29 +97,34 @@
-->
<li>
<span>
{{.i18n.help}}
{{.i18n.help}}
</span>
<div class="frame">
<ul>
<li onclick="window.open('https://www.gitbook.io/book/88250/wide-user-guide')">
<span>
{{.i18n.wide_doc}}
{{.i18n.wide_doc}}
</span>
</li>
<li onclick="window.open('https://github.com/b3log/wide/issues/new')">
{{.i18n.report_issues}}
{{.i18n.report_issues}}
</li>
<li class="hr">
</li>
<li onclick="editors.openStartPage()">
<span>
{{.i18n.start_page}}
{{.i18n.start_page}}
</span>
</li>
<li onclick="wide.openAbout()">
<span>
{{.i18n.about}}
{{.i18n.about}}
</span>
</li>
</ul>
@ -125,7 +139,8 @@
<div class="tabs">
<div class="current" data-index="filreTree">
<span title="{{.i18n.file}}">
{{.i18n.file}}
{{.i18n.file}}
</span>
</div>
</div>
@ -137,13 +152,16 @@
<div id="dirRMenu" class="frame">
<ul>
<li onclick="tree.newFile();">
{{.i18n.create_file}}
{{.i18n.create_file}}
</li>
<li onclick="tree.newDir();">
{{.i18n.create_dir}}
{{.i18n.create_dir}}
</li>
<li onclick="tree.removeIt();">
{{.i18n.delete}}
{{.i18n.delete}}
</li>
</ul>
</div>
@ -151,7 +169,8 @@
<div id="fileRMenu" class="frame">
<ul>
<li onclick="tree.removeIt();">
{{.i18n.delete}}
{{.i18n.delete}}
</li>
</ul>
</div>
@ -180,17 +199,20 @@
<div class="tabs">
<div class="current" data-index="output">
<span title="{{.i18n.output}}">
{{.i18n.output}}
{{.i18n.output}}
</span>
</div>
<div data-index="search">
<span title="{{.i18n.search}}">
{{.i18n.search}}
{{.i18n.search}}
</span>
</div>
<div data-index="notification">
<span title="{{.i18n.notification}}">
{{.i18n.notification}}
{{.i18n.notification}}
</span>
</div>
</div>
@ -235,15 +257,18 @@
<span class="cursor">
</span>
<span class="notification-count" title="{{.i18n.unread_notification}}">
{{.i18n.notification}}!
{{.i18n.notification}}!
</span>
</div>
</div>
<div id="dialogRemoveConfirm" class="fn-none">
{{.i18n.isDelete}}
{{.i18n.isDelete}}
<b>
</b>
?
?
</div>
<div id="dialogAlert" class="fn-none">
@ -262,45 +287,46 @@
<input placeholder="{{.i18n.file_format}}" />
</div>
<script>
var config = {
"pathSeparator": {{.pathSeparator}},
"latestSessionContent": {{.latestSessionContent}},
"label": {
"restore_editor": "{{.i18n.restore_editor}}",
"max_editor": "{{.i18n.max_editor}}",
"delete": "{{.i18n.delete}}",
"cancel": "{{.i18n.cancel}}",
"goto_line": "{{.i18n.goto_line}}",
"goto": "{{.i18n.goto}}",
"create": "{{.i18n.create}}",
"create_file": "{{.i18n.create_file}}",
"create_dir": "{{.i18n.create_dir}}",
"tip": "{{.i18n.tip}}",
"confirm": "{{.i18n.confirm}}",
"build_n_run": "{{.i18n.build_n_run}}",
"stop": "{{.i18n.stop}}",
"usages": "{{.i18n.usages}}",
"search_text": "{{.i18n.search_text}}",
"search": "{{.i18n.search}}",
"initialise": "{{.i18n.initialise}}",
"confirm_save": "{{.i18n.confirm_save}}"
},
"channel": {
"editor": '{{.conf.EditorChannel}}',
"shell": '{{.conf.ShellChannel}}',
"output": '{{.conf.OutputChannel}}',
"session": '{{.conf.SessionChannel}}'
},
"wideSessionId": '{{.session.Id}}'
};
// 发往 Wide 的所有 AJAX 请求需要使用该函数创建请求参数.
function newWideRequest() {
var ret = {
sid: config.wideSessionId
}
return ret;
}
var config = {
"pathSeparator": {{.pathSeparator}},
"latestSessionContent": {{.latestSessionContent}},
"label": {
"restore_editor": "{{.i18n.restore_editor}}",
"max_editor": "{{.i18n.max_editor}}",
"delete": "{{.i18n.delete}}",
"cancel": "{{.i18n.cancel}}",
"goto_line": "{{.i18n.goto_line}}",
"goto": "{{.i18n.goto}}",
"create": "{{.i18n.create}}",
"create_file": "{{.i18n.create_file}}",
"create_dir": "{{.i18n.create_dir}}",
"tip": "{{.i18n.tip}}",
"confirm": "{{.i18n.confirm}}",
"build_n_run": "{{.i18n.build_n_run}}",
"stop": "{{.i18n.stop}}",
"usages": "{{.i18n.usages}}",
"search_text": "{{.i18n.search_text}}",
"search": "{{.i18n.search}}",
"initialise": "{{.i18n.initialise}}",
"confirm_save": "{{.i18n.confirm_save}}"
},
"channel": {
"editor": '{{.conf.EditorChannel}}',
"shell": '{{.conf.ShellChannel}}',
"output": '{{.conf.OutputChannel}}',
"session": '{{.conf.SessionChannel}}'
},
"wideSessionId": '{{.session.Id}}'
};
// 发往 Wide 的所有 AJAX 请求需要使用该函数创建请求参数.
function newWideRequest() {
var ret = {
sid: config.wideSessionId
}
return ret;
}
</script>
<script type="text/javascript" src="{{.conf.StaticServer}}/static/js/lib/jquery-2.1.1.min.js">

View File

@ -6,11 +6,6 @@
word-wrap: break-word;
}
#startPage .workspace {
line-height: 16px;
margin-bottom: 6px;
}
#startPage a {
color: #4183c4;
text-decoration: none;
@ -44,6 +39,14 @@
border-bottom: 1px solid #f1f1f1;
}
#startPage .details li.border.workspace {
line-height: 18px;
padding-bottom: 10px !important;
word-wrap: break-word;
white-space: normal;
word-break: break-all;
}
#startPage .news {
height: 300px;
width: 60%;

View File

@ -4,6 +4,7 @@ var Tabs = function (obj) {
obj._stack = [];
this.obj = obj;
this.obj.STACKSIZE = 64;
this._init(obj);
};
@ -60,25 +61,26 @@ $.extend(Tabs.prototype, {
}
},
del: function (id) {
// TODO:
var $tabsPanel = this.obj._$tabsPanel,
$tabs = this.obj._$tabs,
prevId = undefined,
currentId = $tabs.children(".current").data("index");
stack = this.obj._stack,
prevId = null;
$tabs.children("div[data-index='" + id + "']").remove();
$tabsPanel.children("div[data-index='" + id + "']").remove();
if (this.obj._prevId === id) {
this.obj._prevId = $tabs.children("div:first").data("index");
// 移除堆栈中该 id
for (var i = 0; i < stack.length; i++) {
if (id === stack[i]) {
stack.splice(i, 1);
}
}
prevId = stack[stack.length - 1];
if (typeof this.obj.removeAfter === 'function') {
this.obj.removeAfter(id, prevId);
}
if (currentId !== id) {
prevId = currentId;
} else {
prevId = this.obj._prevId;
}
this.obj.removeAfter(id, prevId);
this.setCurrent(prevId);
},
getCurrentId: function () {
@ -98,9 +100,12 @@ $.extend(Tabs.prototype, {
return false;
}
if (this.obj._stack.length === 1024) {
this.obj._stack.splice(1023, 1);
} else {
// tab 顺序入栈,如栈满则清除
var stack = this.obj._stack;
if (stack.length === this.obj.STACKSIZE) {
stack.splice(0, 1);
}
if (stack[stack.length - 1] !== id) {
this.obj._stack.push(id);
}

View File

@ -496,7 +496,38 @@ var wide = {
},
// 构建.
build: function () {
// TODO: 构建
var currentPath = editors.getCurrentPath();
if (!currentPath) {
return false;
}
if ($(".menu li.run").hasClass("disabled")) {
return false;
}
if ($(".toolbars .ico-stop").length === 1) {
wide.stop();
return false;
}
var request = newWideRequest();
request.file = currentPath;
request.code = wide.curEditor.getValue();
request.nextCmd = ""; // 只构建,无下一步操作
$.ajax({
type: 'POST',
url: '/build',
data: JSON.stringify(request),
dataType: "json",
beforeSend: function (data) {
$('.bottom-window-group .output').text('');
},
success: function (data) {
$(".toolbars .ico-buildrun").addClass("ico-stop")
.removeClass("ico-buildrun").attr("title", config.label.stop);
}
});
},
// 构建并运行.
run: function () {
@ -517,6 +548,7 @@ var wide = {
var request = newWideRequest();
request.file = currentPath;
request.code = wide.curEditor.getValue();
request.nextCmd = "run";
$.ajax({
type: 'POST',

View File

@ -116,10 +116,10 @@ var windows = {
if ($(".footer .ico-restore:eq(0)").css("display") === "inline") {
// 当文件树最小化时
$it.css({
"width": "100%",
"left": "0"
});
$it.css({
"width": "100%",
"left": "0"
});
}
},
restoreSide: function () {
@ -163,8 +163,10 @@ var windows = {
windows.minBottom();
windows.minSide();
wide.curEditor.focus();
if (wide.curEditor) {
wide.curEditor.focus();
}
windows.isMaxEditor = true;
},
restoreEditor: function () {
@ -176,8 +178,10 @@ var windows = {
windows.restoreBottom();
windows.restoreSide();
wide.curEditor.focus();
if (wide.curEditor) {
wide.curEditor.focus();
}
windows.isMaxEditor = false;
},
clearFloat: function () {

View File

@ -2,26 +2,27 @@
<ul class="details">
<li class="title">Wide</li>
<li>
<label>{{.i18n.current_user}}</label>{{.i18n.colon}}
<label>{{.i18n.current_user}}{{.i18n.colon}}</label>
{{.username}}
</li>
<li class="border">
<label>{{.i18n.workspace}}</label>{{.i18n.colon}}
<div class="workspace">{{.workspace}}</div>
<li class="border workspace">
<label>{{.i18n.workspace}}{{.i18n.colon}}</label>
<span>{{.workspace}}</span>
</li>
<li class="border">
<label><a href="http://88250.gitbooks.io/wide-user-guide" target="_blank">{{.i18n.user_guide}}</a></label>&nbsp;&nbsp;&nbsp;&nbsp;&amp;&nbsp;&nbsp;&nbsp;
<label><a href="http://88250.gitbooks.io/wide-dev-guide" target="_blank">{{.i18n.dev_guide}}</a></label>
</li>
<li>
<label>{{.i18n.current_ver}}</label>{{.i18n.colon}}{{.ver}}<br/>
<label>{{.i18n.dev_team}}</label>{{.i18n.colon}}
<label>{{.i18n.current_ver}}{{.i18n.colon}}</label>
{{.ver}}<br/>
<label>{{.i18n.dev_team}}{{.i18n.colon}}</label>
<a href="https://github.com/b3log/b3log-solo/wiki/About_us" target="_blank">B3log</a><br/>
<label>{{.i18n.project_address}}</label>{{.i18n.colon}}
<label>{{.i18n.project_address}}{{.i18n.colon}} </label>
<a href="https://github.com/b3log/wide" target="_blank">github.com/b3log/wide</a>
</li>
<li>
<label>{{.i18n.donate_us}}</label>{{.i18n.colon}}
<label>{{.i18n.donate_us}}{{.i18n.colon}}</label>
<a href="http://b3log.org/donate.html" target="_blank">b3log.org/donate.html</a>
</li>
</ul>