界面优化
This commit is contained in:
3
public/js/app/note-min.js
vendored
3
public/js/app/note-min.js
vendored
File diff suppressed because one or more lines are too long
@ -679,7 +679,7 @@ Note.renderChangedNote = function(changedNote) {
|
||||
// 找到左侧相应的note
|
||||
var $leftNoteNav = $(tt('[noteId="?"]', changedNote.NoteId));
|
||||
if(changedNote.Title) {
|
||||
$leftNoteNav.find(".item-title").html(changedNote.Title);
|
||||
$leftNoteNav.find(".item-title").html(trimTitle(changedNote.Title));
|
||||
}
|
||||
if(changedNote.Desc) {
|
||||
$leftNoteNav.find(".desc").html(changedNote.Desc);
|
||||
@ -736,7 +736,8 @@ Note.renderNote = function(note) {
|
||||
return;
|
||||
}
|
||||
// title
|
||||
$("#noteTitle").val(trimTitle(note.Title));
|
||||
// 不要trim, 允许用<>
|
||||
$("#noteTitle").val(note.Title);
|
||||
|
||||
// 当前正在编辑的
|
||||
// tags
|
||||
@ -1138,6 +1139,71 @@ Note.listNoteContentHistories = function() {
|
||||
});
|
||||
}
|
||||
|
||||
// 导出成PDF
|
||||
Note.exportPDF = function(target) {
|
||||
var noteId = $(target).attr("noteId");
|
||||
/*
|
||||
{
|
||||
"Ok": true,
|
||||
"Code": 0,
|
||||
"Msg": "",
|
||||
"Id": "upload/5368c1aa99c37b029d000001/images/weibo/我靠, 这是什么??.pdf",
|
||||
"List": null,
|
||||
"Item": null
|
||||
}
|
||||
*/
|
||||
$('<form target="mdImageManager" action="/note/exportPdf" method="GET"><input name="noteId" value="' + noteId + '"/></form>').appendTo('body').submit().remove();
|
||||
// $.get("/note/exportPdf?noteId=" + noteId);
|
||||
// window.open("/note/exportPdf?noteId=" + noteId);
|
||||
/*
|
||||
ajaxGet(", {noteId: noteId}, function(ret) {
|
||||
if(reIsOk(ret)) {
|
||||
window.open(UrlPrefix + '/pubic/' + ret.Id);
|
||||
} else {
|
||||
alert('error!');
|
||||
}
|
||||
});
|
||||
*/
|
||||
};
|
||||
|
||||
// 长微博
|
||||
Note.html2Image = function(target) {
|
||||
var noteId = $(target).attr("noteId");
|
||||
showDialog("html2ImageDialog", {title: "分享到社区", postShow: function() {
|
||||
ajaxGet("/note/html2Image", {noteId: noteId}, function(ret) {
|
||||
if (typeof ret == "object" && ret.Ok) {
|
||||
$("#leanoteDialog .weibo span").html("生成成功, 右键图片保存到本地.")
|
||||
$("#leanoteDialog .weibo img").attr("src", ret.Id + "?" + ((new Date()).getTime()));
|
||||
$("#leanoteDialog .btn-share").removeClass("disabled");
|
||||
var note = Note.cache[noteId];
|
||||
var pic = UrlPrefix + ret.Id;
|
||||
var title = encodeURI(note.Title + " (" + UserInfo.Username + "分享. 来自leanote.com)");
|
||||
var windowParam = 'width=700, height=580, top=180, left=320, toolbar=no, menubar=no, scrollbars=no, location=yes, resizable=no, status=no';
|
||||
$("#leanoteDialog .sendWeiboBtn").click(function() {
|
||||
var url = "http://service.weibo.com/share/share.php?title=" + title;
|
||||
url += "&pic=" + pic;
|
||||
window.open(url, '分享到新浪微博', windowParam);
|
||||
});
|
||||
$("#leanoteDialog .sendTxWeiboBtn").click(function() {
|
||||
var _appkey = '801542571';
|
||||
var url = "http://share.v.t.qq.com/index.php?c=share&a=index&appkey=" + _appkey +"&title=" + title +"&url=&pic=" + pic
|
||||
window.open(url, '分享到腾讯微博', windowParam);
|
||||
});
|
||||
$("#leanoteDialog .sendQQBtn").click(function() {
|
||||
var url = 'http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=' + UrlPrefix + '&title=' + title + '&pics=' + pic;
|
||||
window.open(url, '分享QQ空间', windowParam);
|
||||
});
|
||||
$("#leanoteDialog .sendRRBtn").click(function() {
|
||||
var url = 'http://widget.renren.com/dialog/share?resourceUrl=' + UrlPrefix + '&srcUrl=' + UrlPrefix + '&title=' + title + '&pic=' + pic;
|
||||
window.open(url, '分享人人网', windowParam);
|
||||
});
|
||||
} else {
|
||||
$("#leanoteDialog .weibo").html("对不起, 我们出错了!")
|
||||
}
|
||||
});
|
||||
}});
|
||||
}
|
||||
|
||||
//--------------
|
||||
// read only
|
||||
|
||||
@ -1397,17 +1463,16 @@ Note.deleteNoteTag = function(item, tag) {
|
||||
};
|
||||
|
||||
// readonly
|
||||
Note.readOnly = true;
|
||||
Note.readOnly = false; // 默认为false要好?
|
||||
// 切换只读模式
|
||||
Note.toggleReadOnly = function() {
|
||||
if(LEA.em && LEA.em.isWriting()) {
|
||||
if(LEA.em && LEA.em.isWriting()) { // 写作模式下
|
||||
return Note.toggleWriteable();
|
||||
}
|
||||
|
||||
var me = this;
|
||||
var note = me.getCurNote();
|
||||
|
||||
// console.log('(((((((((((((((((((((((');
|
||||
// tinymce
|
||||
var $editor = $('#editor');
|
||||
$editor.addClass('read-only').removeClass('all-tool'); // 不要全部的
|
||||
@ -1422,6 +1487,7 @@ Note.toggleReadOnly = function() {
|
||||
return;
|
||||
}
|
||||
|
||||
$('.info-toolbar').removeClass('invisible');
|
||||
if(note.IsMarkdown) {
|
||||
$('#mdInfoToolbar .created-time').html(goNowToDatetime(note.CreatedTime));
|
||||
$('#mdInfoToolbar .updated-time').html(goNowToDatetime(note.UpdatedTime));
|
||||
@ -1460,7 +1526,7 @@ Note.toggleWriteable = function() {
|
||||
if(!note) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if(!note.readOnly) {
|
||||
return;
|
||||
}
|
||||
@ -1536,6 +1602,9 @@ Note.initContextmenu = function() {
|
||||
{ text: getMsg("publicAsBlog"), alias: 'set2Blog', faIcon: "fa-bold", action: Note.setNote2Blog },
|
||||
{ text: getMsg("cancelPublic"), alias: 'unset2Blog', faIcon: "fa-undo", action: Note.setNote2Blog },
|
||||
{ type: "splitLine" },
|
||||
// { text: "分享到社区", alias: 'html2Image', icon: "", action: Note.html2Image},
|
||||
{ text: getMsg("exportPdf"), alias: 'exportPDF', faIcon: "fa-file-pdf-o", action: Note.exportPDF},
|
||||
{ type: "splitLine" },
|
||||
{ text: getMsg("delete"), icon: "", faIcon: "fa-trash-o", action: Note.deleteNote },
|
||||
{ text: getMsg("move"), alias: "move", faIcon: "fa-arrow-right",
|
||||
type: "group",
|
||||
|
2
public/js/app/page-min.js
vendored
2
public/js/app/page-min.js
vendored
File diff suppressed because one or more lines are too long
@ -481,6 +481,9 @@ function initEditor() {
|
||||
return;
|
||||
}
|
||||
Note.saveNote(e);
|
||||
|
||||
// 当输入的时候, 把当前raw删除掉
|
||||
LeaAce.removeCurToggleRaw();
|
||||
});
|
||||
|
||||
// 为了把下拉菜单关闭
|
||||
@ -504,17 +507,16 @@ function initEditor() {
|
||||
skin : "custom",
|
||||
language: LEA.locale, // 语言
|
||||
plugins : [
|
||||
"autolink link leaui_image lists charmap hr", "paste",
|
||||
"autolink link leaui_image lists hr", "paste",
|
||||
"searchreplace leanote_nav leanote_code tabfocus",
|
||||
"table directionality textcolor" ], // nonbreaking
|
||||
|
||||
"table textcolor" ], // nonbreaking directionality charmap
|
||||
toolbar1 : "formatselect | forecolor backcolor | bold italic underline strikethrough | leaui_image | leanote_code leanote_inline_code | bullist numlist | alignleft aligncenter alignright alignjustify",
|
||||
toolbar2 : "outdent indent blockquote | link unlink | table | hr removeformat | subscript superscript |searchreplace | pastetext pasteCopyImage | leanote_ace_pre | fontselect fontsizeselect",
|
||||
|
||||
// 使用tab键: http://www.tinymce.com/wiki.php/Plugin3x:nonbreaking
|
||||
// http://stackoverflow.com/questions/13543220/tiny-mce-how-to-allow-people-to-indent
|
||||
// nonbreaking_force_tab : true,
|
||||
|
||||
|
||||
menubar : false,
|
||||
toolbar_items_size : 'small',
|
||||
statusbar : false,
|
||||
@ -608,7 +610,10 @@ function scrollTo(self, tagName, text) {
|
||||
|
||||
//--------------
|
||||
// 调用之
|
||||
$(function() {
|
||||
// $(function() {
|
||||
LEA.s3 = new Date();
|
||||
console.log('initing...');
|
||||
|
||||
// 窗口缩放时
|
||||
$(window).resize(function() {
|
||||
Mobile.isMobile();
|
||||
@ -844,8 +849,7 @@ $(function() {
|
||||
|
||||
// 手机端?
|
||||
Mobile.init();
|
||||
});
|
||||
|
||||
//});
|
||||
|
||||
//------------
|
||||
// pjax
|
||||
@ -1333,19 +1337,34 @@ LeaAce = {
|
||||
}
|
||||
}
|
||||
},
|
||||
// 当删除了pre时, 也要删除toggle raw
|
||||
removeAllToggleRaw: function () {
|
||||
$('#editorContent .toggle-raw').remove();
|
||||
},
|
||||
removeCurToggleRaw: function() {
|
||||
if(this.curToggleRaw) {
|
||||
try {
|
||||
this.curToggleRaw.remove();
|
||||
}
|
||||
catch(e){}
|
||||
}
|
||||
},
|
||||
curToggleRaw: null,
|
||||
// 转换raw <-> code
|
||||
handleEvent: function () {
|
||||
if(!this.canAce()) {
|
||||
return;
|
||||
}
|
||||
var me = this;
|
||||
$("#editorContent").on('mouseenter', 'pre', function(){
|
||||
$("#editorContent").on('mouseenter', 'pre', function(e) {
|
||||
// log('in');
|
||||
// log($(this));
|
||||
var $t = $(this);
|
||||
$raw = $t.find('.toggle-raw');
|
||||
if($raw.length == 0) {
|
||||
$t.append('<div class="toggle-raw" title="Toggle code with raw html"><input type="checkbox" /></div>');
|
||||
var curToggleRaw = $('<div class="toggle-raw" title="Toggle code with raw html"><input type="checkbox" /></div>');
|
||||
$t.append(curToggleRaw);
|
||||
me.curToggleRaw = curToggleRaw;
|
||||
}
|
||||
$input = $t.find('.toggle-raw input');
|
||||
if(LeaAce.isInAce($t)) {
|
||||
@ -1361,20 +1380,49 @@ LeaAce = {
|
||||
$("#editorContent").on('change', '.toggle-raw input', function(){
|
||||
var checked = $(this).prop('checked');
|
||||
var $pre = $(this).closest('pre');
|
||||
if(checked) {
|
||||
if (checked) {
|
||||
// 转成ace
|
||||
me.preToAce($pre, true);
|
||||
} else {
|
||||
me.aceToPre($pre, true);
|
||||
}
|
||||
});
|
||||
|
||||
// 当ace里没有内容时, 连续删除则把ace remove掉
|
||||
// keydown的delete事件没有
|
||||
var lastDeleteTime;
|
||||
$("#editorContent").on('keyup', 'pre', function(e) {
|
||||
var keyCode = e.keyCode;
|
||||
// console.log('keyup');
|
||||
if(keyCode == 8 || keyCode == 46) { // BackSpace || Delete
|
||||
// console.log('delete');
|
||||
if(!lastDeleteTime) {
|
||||
lastDeleteTime = (new Date()).getTime();
|
||||
}
|
||||
else {
|
||||
var now = (new Date()).getTime();
|
||||
if(now - lastDeleteTime < 300) { // 间隔时间很短
|
||||
var inAce = me.isInAce($(this))
|
||||
if(inAce && !inAce[0].getValue()) {
|
||||
// console.log('destroy');
|
||||
inAce[0].destroy();
|
||||
$(this).remove();
|
||||
return;
|
||||
}
|
||||
}
|
||||
lastDeleteTime = now;
|
||||
}
|
||||
// console.log($(this));
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// note.html调用
|
||||
// 实始化页面
|
||||
function initPage() {
|
||||
$(function() {
|
||||
// 不要用$(function() {}) 因为要等到<script>都加载了才执行
|
||||
// $(function() {
|
||||
Notebook.renderNotebooks(notebooks);
|
||||
Share.renderShareNotebooks(sharedUserInfos, shareNotebooks);
|
||||
|
||||
@ -1397,7 +1445,7 @@ function initPage() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 指定笔记, 也要保存最新笔记
|
||||
if(latestNotes.length > 0) {
|
||||
for(var i = 0; i < latestNotes.length; ++i) {
|
||||
@ -1410,5 +1458,5 @@ function initPage() {
|
||||
initSlimScroll();
|
||||
|
||||
LeaAce.handleEvent();
|
||||
});
|
||||
// });
|
||||
}
|
||||
|
@ -108,7 +108,7 @@ Tag.renderReadOnlyTags = function(tags) {
|
||||
if(!classes) {
|
||||
classes = getNextDefaultClasses();
|
||||
}
|
||||
tag = tt('<span class="?">?</span>', classes, text);
|
||||
tag = tt('<span class="?">?</span>', classes, trimTitle(text));
|
||||
|
||||
$("#noteReadTags").append(tag);
|
||||
}
|
||||
@ -235,8 +235,9 @@ Tag.renderTagNav = function(tags) {
|
||||
if(LEA.locale == "zh") {
|
||||
var text = Tag.mapEn2Cn[tag] || text;
|
||||
}
|
||||
text = trimTitle(text);
|
||||
var classes = Tag.classes[tag] || "label label-default";
|
||||
$("#tagNav").append(tt('<li data-tag="?"><a> <span class="?">?</span> <span class="tag-delete">X</span></li>', tag, classes, text));
|
||||
$("#tagNav").append(tt('<li data-tag="?"><a> <span class="?">?</span> <span class="tag-delete">X</span></li>', tag, classes, text));
|
||||
}
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user