diff --git a/app/controllers/NoteController.go b/app/controllers/NoteController.go index cd75c54..fef6029 100644 --- a/app/controllers/NoteController.go +++ b/app/controllers/NoteController.go @@ -22,9 +22,8 @@ type Note struct { // 笔记首页, 判断是否已登录 // 已登录, 得到用户基本信息(notebook, shareNotebook), 跳转到index.html中 // 否则, 转向登录页面 -func (c Note) Index() revel.Result { +func (c Note) Index(noteId string) revel.Result { c.SetLocale() - userInfo := c.GetUserInfo() userId := userInfo.UserId.Hex() @@ -35,7 +34,7 @@ func (c Note) Index() revel.Result { } c.RenderArgs["openRegister"] = configService.IsOpenRegister() - + // 已登录了, 那么得到所有信息 notebooks := notebookService.GetNotebooks(userId) shareNotebooks, sharedUserInfos := shareService.GetShareNotebooks(userId) @@ -43,22 +42,78 @@ func (c Note) Index() revel.Result { // 还需要按时间排序(DESC)得到notes notes := []info.Note{} noteContent := info.NoteContent{} + if len(notebooks) > 0 { -// _, notes = noteService.ListNotes(c.GetUserId(), "", false, c.GetPage(), pageSize, defaultSortField, false, false); - // 变成最新 - _, notes = noteService.ListNotes(c.GetUserId(), "", false, c.GetPage(), 50, defaultSortField, false, false); - if len(notes) > 0 { - noteContent = noteService.GetNoteContent(notes[0].NoteId.Hex(), userId) + // noteId是否存在 + // 是否传入了正确的noteId + hasRightNoteId := false + if IsObjectId(noteId) { + note := noteService.GetNoteById(noteId) + var noteOwner = note.UserId.Hex() + noteContent = noteService.GetNoteContent(noteId, noteOwner) + + if note.NoteId != "" { + hasRightNoteId = true + c.RenderArgs["curNoteId"] = noteId + c.RenderArgs["curNotebookId"] = note.NotebookId.Hex() + + // 打开的是共享的笔记, 那么判断是否是共享给我的默认笔记 + if noteOwner != c.GetUserId() { + if shareService.HasReadPerm(noteOwner, c.GetUserId(), noteId) { + // 不要获取notebook下的笔记 + // 在前端下发请求 + c.RenderArgs["curSharedNoteNotebookId"] = note.NotebookId.Hex() + c.RenderArgs["curSharedUserId"] = noteOwner; + // 没有读写权限 + } else { + hasRightNoteId = false + } + } else { + _, notes = noteService.ListNotes(c.GetUserId(), note.NotebookId.Hex(), false, c.GetPage(), 50, defaultSortField, false, false); + + // 如果指定了某笔记, 则该笔记放在首位 + lenNotes := len(notes) + if lenNotes > 1 { + notes2 := make([]info.Note, len(notes)) + notes2[0] = note + i := 1 + for _, note := range notes { + if note.NoteId.Hex() != noteId { + if i == lenNotes { // 防止越界 + break; + } + notes2[i] = note + i++ + } + } + notes = notes2 + } + } + } + + // 得到最近的笔记 + _, latestNotes := noteService.ListNotes(c.GetUserId(), "", false, c.GetPage(), 50, defaultSortField, false, false); + c.RenderArgs["latestNotes"] = latestNotes + } + + // 没有传入笔记 + // 那么得到最新笔记 + if !hasRightNoteId { + _, notes = noteService.ListNotes(c.GetUserId(), "", false, c.GetPage(), 50, defaultSortField, false, false); + if len(notes) > 0 { + noteContent = noteService.GetNoteContent(notes[0].NoteId.Hex(), userId) + c.RenderArgs["curNoteId"] = notes[0].NoteId.Hex() + } } } + // 当然, 还需要得到第一个notes的content //... - Log(configService.GetAdminUsername()) c.RenderArgs["isAdmin"] = configService.GetAdminUsername() == userInfo.Username c.RenderArgs["userInfo"] = userInfo c.RenderArgs["notebooks"] = notebooks - c.RenderArgs["shareNotebooks"] = shareNotebooks + c.RenderArgs["shareNotebooks"] = shareNotebooks // note信息在notes列表中 c.RenderArgs["sharedUserInfos"] = sharedUserInfos c.RenderArgs["notes"] = notes @@ -69,6 +124,7 @@ func (c Note) Index() revel.Result { c.RenderArgs["globalConfigs"] = configService.GetGlobalConfigForUser() + if isDev, _ := revel.Config.Bool("mode.dev"); isDev { return c.RenderTemplate("note/note-dev.html") } else { diff --git a/app/controllers/member/MemberGroupController.go b/app/controllers/member/MemberGroupController.go index 815857d..345a95d 100644 --- a/app/controllers/member/MemberGroupController.go +++ b/app/controllers/member/MemberGroupController.go @@ -35,7 +35,7 @@ func (c MemberGroup) UpdateGroupTitle(groupId, title string) revel.Result { func (c MemberGroup) DeleteGroup(groupId string) revel.Result { re := info.NewRe() re.Ok, re.Msg = groupService.DeleteGroup(c.GetUserId(), groupId) - return c.RenderJson(re) + return c.RenderRe(re) } // 添加用户 diff --git a/app/service/GroupService.go b/app/service/GroupService.go index 3dfc273..89c370c 100644 --- a/app/service/GroupService.go +++ b/app/service/GroupService.go @@ -27,9 +27,12 @@ func (this *GroupService) AddGroup(userId, title string) (bool, info.Group) { // 删除分组 // 判断是否有好友 func (this *GroupService) DeleteGroup(userId, groupId string) (ok bool, msg string) { + /* if db.Has(db.GroupUsers, bson.M{"GroupId": bson.ObjectIdHex(groupId)}) { - return false, "hasUsers" + return false, "groupHasUsers" } + */ + db.DeleteAll(db.GroupUsers, bson.M{"GroupId": bson.ObjectIdHex(groupId)}) return db.DeleteByIdAndUserId(db.Groups, groupId, userId), "" // TODO 删除分组后, 在shareNote, shareNotebook中也要删除 diff --git a/app/views/member/blog/add_single.html b/app/views/member/blog/add_single.html index 700fda8..5063aab 100644 --- a/app/views/member/blog/add_single.html +++ b/app/views/member/blog/add_single.html @@ -1,9 +1,9 @@ {{template "member/top.html" .}}

{{if .page}} -修改页面 +{{msg . "updateSingle"}} {{else}} -添加页面 +{{msg . "addSingle"}} {{end}}

@@ -16,18 +16,18 @@
- +
- +
diff --git a/app/views/member/blog/base.html b/app/views/member/blog/base.html index 67cf73f..999c86e 100644 --- a/app/views/member/blog/base.html +++ b/app/views/member/blog/base.html @@ -1,26 +1,23 @@ {{template "member/top.html" .}} -

{{msg . "baseInfoSet"}}

+

{{msg $ "basicInfoSet"}}

-
+
-
+
- -
- {{msg . "blogName"}} + -
- -
+ -
- -
- {{msg . "blogDesc"}} + -
diff --git a/app/views/member/blog/cate.html b/app/views/member/blog/cate.html index 27b4a75..ea23377 100644 --- a/app/views/member/blog/cate.html +++ b/app/views/member/blog/cate.html @@ -1,29 +1,37 @@ {{template "member/top.html" .}} -

(笔记本)分类

+

{{msg . "cate"}}

- 分类是公开为博客的笔记本 + {{msg . "cateIsPublicNotebook"}}
- 拖动可排序 + {{if .notebooks}} + {{msg . "dragAndSort"}}
    {{range .notebooks}}
  • - 固定链接: /cate/ + {{msg $ "permanentLink"}}: /cate/
    {{.Title}}
  • {{end}}
+ {{else}} + {{msg . "noCates"}} + {{end}}
+ + {{if .notebooks}}
- +
+ {{end}}
+
diff --git a/app/views/member/blog/comment.html b/app/views/member/blog/comment.html index 487ecf9..057d178 100644 --- a/app/views/member/blog/comment.html +++ b/app/views/member/blog/comment.html @@ -22,7 +22,7 @@ Default + {{if or (not .userBlog.CommentType) (eq .userBlog.CommentType "default")}}checked="checked"{{end}} > {{msg $ "defaultComment"}}
@@ -57,7 +59,7 @@
@@ -69,13 +71,13 @@ {{range .Users}}
  • {{.Username}} {{if not (eq .Email .Username)}}({{.Email}}){{end}} - +
  • {{end}}
  • - +
  • @@ -85,7 +87,7 @@
    {{template "member/footer.html" .}} - + -{{template "member/end.html" .}} \ No newline at end of file +{{template "member/end.html" .}} diff --git a/app/views/member/index.html b/app/views/member/index.html index a877e35..311d5d3 100644 --- a/app/views/member/index.html +++ b/app/views/member/index.html @@ -1,5 +1,5 @@ {{template "member/top.html" .}} -

    {{.userInfo.Username}}, 欢迎来到leanote

    +

    {{.userInfo.Username}}, {{msg . "welcomeToLeanote"}}.

    @@ -26,11 +26,10 @@
    -

    - Leanote 动态 + {{msg . "leanoteEvents"}}

      diff --git a/app/views/member/nav.html b/app/views/member/nav.html index c0a6191..7e04ba4 100644 --- a/app/views/member/nav.html +++ b/app/views/member/nav.html @@ -26,45 +26,47 @@ - 帐户信息 + {{msg . "accountInfo"}} --> - \ No newline at end of file + diff --git a/app/views/member/user/add_account.html b/app/views/member/user/add_account.html index 8c3f8c3..eef8571 100644 --- a/app/views/member/user/add_account.html +++ b/app/views/member/user/add_account.html @@ -1,9 +1,9 @@ {{template "member/top.html" .}} -

      用户名设置

      +

      {{msg . "addLeanoteAccount"}}

      -
      +
      diff --git a/app/views/member/user/avatar.html b/app/views/member/user/avatar.html index 0250c5d..89ab954 100644 --- a/app/views/member/user/avatar.html +++ b/app/views/member/user/avatar.html @@ -1,10 +1,10 @@ {{template "member/top.html" .}} -

      头像设置

      +

      {{msg . "avatar"}}

      -
      + diff --git a/app/views/member/user/email.html b/app/views/member/user/email.html index a09c139..f99878b 100644 --- a/app/views/member/user/email.html +++ b/app/views/member/user/email.html @@ -1,9 +1,9 @@ {{template "member/top.html" .}} -

      邮箱设置

      +

      {{msg . "email"}}

      -
      +
      diff --git a/app/views/member/user/password.html b/app/views/member/user/password.html index f055565..7a791e4 100644 --- a/app/views/member/user/password.html +++ b/app/views/member/user/password.html @@ -1,9 +1,7 @@ {{template "member/top.html" .}} -

      用户名设置

      - +

      {{msg . "password"}}

      - -
      +
      diff --git a/app/views/member/user/username.html b/app/views/member/user/username.html index a58f5aa..d0e572d 100644 --- a/app/views/member/user/username.html +++ b/app/views/member/user/username.html @@ -1,9 +1,9 @@ {{template "member/top.html" .}} -

      用户名设置

      +

      {{msg . "username"}}

      -
      +
      diff --git a/app/views/note/note-dev.html b/app/views/note/note-dev.html index fd1a152..9aeb1ea 100644 --- a/app/views/note/note-dev.html +++ b/app/views/note/note-dev.html @@ -12,17 +12,17 @@ - + - - + + @@ -184,6 +184,14 @@ function log(o) {
      + + - - - - + + + + - - + + - - - - - - - - + + + + + + + + diff --git a/app/views/note/note.html b/app/views/note/note.html index fc12cfa..2dfc97c 100644 --- a/app/views/note/note.html +++ b/app/views/note/note.html @@ -12,17 +12,17 @@ - + - - + + @@ -184,6 +184,14 @@ function log(o) {
      + + - - - - + + + + - - + + - - - - - - - - + + + + + + + + diff --git a/messages/msg.en b/messages/msg.en index 50ab020..976f480 100644 --- a/messages/msg.en +++ b/messages/msg.en @@ -129,9 +129,12 @@ themeSetting=Theme setAvatar=Avatar logout=Logout basicInfo=Basic +basicInfoSet=Blog Basic Setting updateEmail=Update email usernameSetting=Update username username=Username +avatar=Avatar +chooseImage=Choose Image oldPassword=Old password newPassword=New password admin=Admin @@ -144,7 +147,7 @@ uploadImage=Upload image # blog aboutMe=About me -blogSet=Set blog +blogSet=Blog Settings # index discussion=Discussion @@ -243,8 +246,94 @@ latest=Latest # 用户中心 memberCenter=Member Center -userNotExists=该成员沿未注册 -hasUsers=已存在该成员 +userNotExists=The user is not exists +hasUsers=The user already exists + +# yu +service=Service +imageSizeOver=Sorry, you have no image opacity, please upgrade your account. +attachSizeOver=Sorry, you have no attachment opacity, please upgrade your account. + + +#memeber +welcomeToLeanote=Welcome +accountInfo=Account Info +accountType=Account Type +premiumAccountType=Premium +normalAccountType=Normal +imageSize=Image Opacity +attachSize=Attachment Opacity +upgrade=Upgrade My Account +leanoteEvents=Leanote News +addLeanoteAccount=New Leanote Account +defaultComment=Default leanote comment system +upgradeAccountTips=I want to using a custom domain for my blog, Upgrade My Account +cateIsPublicNotebook=Category is the published notebooks +dragAndSort=Drag it to sort +permanentLink=Permanent Link +cate=Category +noCates=No Category +single=Single Page +singleTips=You can add many single pages +addSingle=New single page +updateSingle=Update single page +inputSingleTitle=Single page title is required +saveSort=Save sequencing +pagingAndSort=Paging And Sort Settings +perPageSize=Per page size +sortField=Sorter field +sortType=Sorter type +publicTime=Published time +createdTime=Created time +updatedTime=Updated time +desc=Desc +asc=Asc +postList=Post List +hasSelfDefined=Has defined +noSelfDefined=Not defined +setAbstract=Abstract settings +title=Title +content=Content + +addTheme=New theme +importTheme=Import theme +exportTheme=Export theme +export=Export +preview=Preview +edit=Edit +use=Use +install=Install +currentTheme=Current theme +myOtherThemes=My other themes +leanoteThemeMarket=Leanote theme market +updateTheme=Update Theme +tplStyleScript=template, style, script +newFile=New file +image=Image +currentFile=Current file +tpl=Template +style=Style +script=Script +header=Header +footer=Footer +index=Home +cate=Category +search=Search +single=Single Page +archive=Archive +post=Post +tags=Tags +tag_posts=Tag's posts +share_comment=Comments +themeJson=Theme settings +paging=Paging +highlight=Code highlight + +group=Group +newGroup=New group +deleteGroup=Delete group +addMemberTips=Input username or email to add member +deleteMember=Delete member # error notFound=This page cann't found. diff --git a/messages/msg.zh b/messages/msg.zh index 3e6b1f3..b93b6d1 100644 --- a/messages/msg.zh +++ b/messages/msg.zh @@ -150,9 +150,12 @@ themeSetting=主题设置 setAvatar=头像设置 logout=退出 basicInfo=基本信息 +basicInfoSet=博客基本设置 updateEmail=修改Email usernameSetting=用户名设置 username=用户名 +avatar=头像 +chooseImage=选择图片 oldPassword=旧密码 newPassword=新密码 admin=后台管理 @@ -272,5 +275,91 @@ memberCenter=用户中心 userNotExists=该成员沿未注册 hasUsers=已存在该成员 +# yu +service=服务 +imageSizeOver=对不起, 您的图片容量不足, 请升级您的帐户 +attachSizeOver=对不起, 您的附件容量不足, 请升级您的帐户 + +#memeber +welcomeToLeanote=欢迎来到leanote +accountInfo=帐户信息 +accountType=帐户类型 +premiumAccountType=彩色套餐 +normalAccountType=共享套餐 +imageSize=图片空间 +attachSize=附件空间 +upgrade=升级套餐 +leanoteEvents=Leanote动态 +addLeanoteAccount=新建Leanote帐户 +defaultComment=默认leanote评论系统 +upgradeAccountTips=Leanote支持绑定自己的域名到博客上, 请 升级您的帐户 +cateIsPublicNotebook=分类是公开为博客的笔记本 +dragAndSort=拖动可排序 +permanentLink=固定链接 +cate=分类 +noCates=无分类 +single=单页面 +singleTips=您可以添加多个单页面 +addSingle=添加单页面 +updateSingle=修改单页面 +inputSingleTitle=请输入单页面标题 +saveSort=保存排序 +pagingAndSort=分页与排序设置 +perPageSize=每页记录数 +sortField=排序字段 +sortType=排序类型 +publicTime=发表时间 +createdTime=创建时间 +updatedTime=更新时间 +desc=降序 +asc=升序 +postList=文章列表 +hasSelfDefined=已设置 +noSelfDefined=未设置 +setAbstract=摘要设置 +title=标题 +content=内容 + +addTheme=添加主题 +importTheme=导入主题 +exportTheme=导出主题 +export=导出 +preview=预览 +edit=编辑 +use=使用 +install=安装 +currentTheme=当前主题 +myOtherThemes=我的其它主题 +leanoteThemeMarket=Leanote主题市场 +updateTheme=编辑主题 +tplStyleScript=模板, 样式, 脚本 +newFile=新建文件 +image=图片 +currentFile=当前文件 +tpl=模板 +style=样式 +script=脚本 +header=头部 +footer=底部 +index=首页 +cate=分类页 +search=搜索页 +single=单页 +archive=归档页 +post=文章页 +tags=标签页 +tag_posts=标签文章页 +share_comment=分享评论 +themeJson=主题配置 +paging=分页 +highlight=高亮 + +group=用户组 +newGroup=新建组 +deleteGroup=删除组 +addMemberTips=输入用户名或邮箱添加成员 +deleteMember=删除成员 + + # 必须要加这个, 奇怪 [CN] diff --git a/public/css/css/editor-writting-mode.css b/public/css/css/editor-writting-mode.css new file mode 100644 index 0000000..05c6107 --- /dev/null +++ b/public/css/css/editor-writting-mode.css @@ -0,0 +1,15 @@ +html { + border: none; +} +body { + background-color: #fbfcf7; +} +* { + font-size: 16px; +} +pre { + font-size: 14px; +} +img { + max-width: 100% !important; +} diff --git a/public/css/css/editor.css b/public/css/css/editor.css new file mode 100644 index 0000000..d267dd3 --- /dev/null +++ b/public/css/css/editor.css @@ -0,0 +1,27 @@ +html { + margin-top: 3px; + padding: 3px; + border: 1px solid #ebeff2; + border-radius: 5px; + -webkit-border-radius: 5px; + border-width: 1px; + box-shadow: none; +} +* { + font-family: 'Open Sans', 'Helvetica Neue', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', sans-serif; +} +.mce-item-table, +.mce-item-table td, +.mce-item-table th, +.mce-item-table caption { + border: 1px solid #9B9898; + border-collapse: collapse; +} +img { + max-width: 100% !important; +} +@media screen and (max-width: 500px) { + * { + font-size: 16px; + } +} diff --git a/public/css/css/writting-overwrite.css b/public/css/css/writting-overwrite.css new file mode 100644 index 0000000..0b0ebce --- /dev/null +++ b/public/css/css/writting-overwrite.css @@ -0,0 +1,1927 @@ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + src: local('Open Sans Light'), local('OpenSans-Light'), url('../../fonts/open-sans2/DXI1ORHCpsQm3Vp6mXoaTXhCUOGz7vYGh680lGh-uXM.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans'), local('OpenSans'), url('../../fonts/open-sans2/cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: local('Open Sans Bold'), local('OpenSans-Bold'), url('../../fonts/open-sans2/k3k702ZOKiLJc3WVjuplzHhCUOGz7vYGh680lGh-uXM.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + src: local('Open Sans Italic'), local('OpenSans-Italic'), url('../../fonts/open-sans2/xjAJXh38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff') format('woff'); +} +/* leanote */ +@font-face { + font-family: 'leanoteregular'; + src: url('../../fonts/leanote/leanote-regular-webfont.eot'); + src: url('../../fonts/leanote/leanote-regular-webfont.eot?#iefix') format('embedded-opentype'), url('../../fonts/leanote/leanote-regular-webfont.woff') format('woff'), url('../../fonts/leanote/leanote-regular-webfont.ttf') format('truetype'), url('../../fonts/leanote/leanote-regular-webfont.svg#leanoteregular') format('svg'); + font-weight: normal; + font-style: normal; +} +/*"HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue", Helvetica, "Microsoft Yahei", Verdana, Simsun, "Segoe UI", "Segoe UI Web Regular", "Segoe UI Symbol", "BBAlpha Sans", "S60 Sans", Arial, sans-serif;*/ +#noteItemList, +#notebook, +#leftNotebook, +.slimScrollDiv, +#editorContent_ifr, +.mce-edit-area, +.mce-container-body, +.mce-tinymce, +#editor .mce-ifr, +.wmd-input, +#noteReadContent, +#attachList, +#tags { + -webkit-overflow-scrolling: touch !important; +} +.btn { + border-radius: 2px; +} +.alert { + margin-bottom: 10px; +} +#logo { + font-family: "leanoteregular"; + font-size: 36px; +} +#logo:before { + content: "a"; +} +#switcher span { + font-family: "leanoteregular"; + border-radius: 5px; + display: inline-block; + cursor: pointer; + font-size: 18px; + height: 34px; + line-height: 34px; + margin-top: 8px; + padding: 0 5px; +} +#switcher span:before { + content: "b"; +} +.noteSplit { + position: absolute; + top: 0; + width: 5px; + height: 100%; + overflow: hidden; + z-index: 5; + cursor: col-resize; +} +.dropdown-menu { + border-radius: 3px; + margin: 0; + border: 1px solid #0fb264; + /*overflow-x: hidden; */ + /*overflow-y: scroll;*/ + box-shadow: rgba(0, 0, 0, 0.172549) 0px 6px 12px 0px; +} +.dropdown-menu:before { + content: ""; + width: 20px; + height: 12px; + position: absolute; + top: -12px; + right: 20px; + background-image: url("../../images/triangle_2x.png"); + background-size: 20px 12px; +} +.dropdown-submenu .dropdown-menu:before { + background: none; +} +#searchNotebookForAddDropdownList, +#searchNotebookForAddShareDropdownList { + left: -200px; +} +#searchNotebookForAddDropdownList:before, +#searchNotebookForAddShareDropdownList:before { + left: 190px; + right: inherit; +} +.dropdown-menu li { + list-style: none; + padding-left: 10px; + width: 100%; + height: 30px; + line-height: 30px; +} +.dropdown-menu li > a { + color: #000000; + display: block; + padding-right: 20px; +} +.dropdown-menu > li > a { + padding: 3px 20px 3px 0; +} +#notebookNavForNewNote li:hover { + background: none; +} +#noteList { + position: absolute; + bottom: 0; + top: 0; + /* + overflow-x: hidden; + overflow-y: hidden; + */ +} +#noteAndEditorMask { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + background: #fff; + text-align: center; + padding-top: 60px; + opacity: .3; + z-index: 20; + display: none; +} +.dropdown-submenu { + position: relative; +} +.dropdown-submenu > ul.dropdown-menu { + top: 0; + left: 100%; + margin-left: -3px !important; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + padding-top: 10px !important; +} +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} +.dropdown-submenu:after { + display: block; + content: " "; + position: absolute; + right: 0; + top: 10px; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + border-width: 5px 0 5px 5px; + border-left-color: #666; +} +.dropdown-submenu:hover > a:after { + border-left-color: #fff; +} +.dropdown-submenu.pull-left { + float: none; +} +.dropdown-submenu.pull-left > .dropdown-menu { + left: -100%; + margin-left: 10px; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} +.open > .dropdown-menu, +.dropdown-submenu:hover > .dropdown-menu { + opacity: 1; + transform: scale(1, 1); + -webkit-transform: scale(1, 1); + -moz-transform: scale(1, 1); + -o-transform: scale(1, 1); +} +.dropdown-menu { + opacity: 0; + display: block; + -webkit-transform: scale(0, 0); + -webkit-transform-origin: top; + -webkit-animation-fill-mode: forwards; + -webkit-transition: all 0.2s cubic-bezier(0.34, 1.21, 0.4, 1); + -o-transform: scale(0, 0); + -o-transform-origin: top; + -o-animation-fill-mode: forwards; + -o-transition: all 0.2s cubic-bezier(0.34, 1.21, 0.4, 1); + -moz-transform: scale(0, 0); + -moz-transform-origin: top; + -moz-animation-fill-mode: forwards; + -moz-transition: all 0.2s cubic-bezier(0.34, 1.21, 0.4, 1); + transform: scale(0, 0); + transform-origin: top; + animation-fill-mode: forwards; + transition: all 0.2s cubic-bezier(0.34, 1.21, 0.4, 1); +} +.dropdown-list { + width: 530px; + border-radius: 3px; +} +.dropdown-list ul { + margin: 0; + padding: 0; +} +.dropdown-list ul li { + float: left; + width: 120px; + margin-left: 10px; + margin-bottom: 10px; + border: 1px dashed #ccc; +} +.new-note-right { + padding: 0 5px; + padding-left: 3px; +} +#leanoteMsg { + line-height: 40px; + margin-top: 10px; + margin-left: 10px; +} +#newNoteWrap { + line-height: 40px; + margin-top: 10px; +} +#searchNotebookForAdd { + line-height: normal; + width: 200px; + margin: 0 10px; + margin-bottom: 10px; + height: 30px; + border-color: #ebeff2; + box-shadow: none; +} +#myNotebooks .folderBody { + padding-top: 3px; +} +.folderBody { + overflow-x: hidden; +} +#searchNotebookForList { + height: 30px; + width: 90%; + margin: 3px auto; + margin-top: 0; + border-color: #ebeff2; + box-shadow: none; +} +#noteItemList .item-setting, +#noteItemList .item-blog { + position: absolute; + right: 1px; + font-size: 10px; + z-index: 2; + padding: 3px; + border-radius: 5px; + cursor: pointer; + width: 20px; + text-align: center; + opacity: 0.5; + background-color: #464C5E; +} +#noteItemList .item-setting .fa, +#noteItemList .item-blog .fa { + color: #fff !important; +} +#noteItemList .item-setting:hover, +#noteItemList .item-blog:hover { + opacity: 0.8; +} +#noteItemList .item-blog { + top: 1px; +} +#noteItemList .item-setting { + bottom: 0; + display: none; +} +#noteItemList .item:hover .item-setting { + display: block; +} +.friend-header { + position: relative; +} +.friend-header .notebook-setting { + display: none; +} +.friend-header:hover .notebook-setting { + display: block; +} +.each-user { + margin-bottom: 5px; + margin-left: 5px; + margin-right: 5px; + margin-top: 3px; + border: 1px solid #eee; + border-radius: 3px; +} +.notebook-number-notes { + position: absolute; + right: 10px; + top: 0; + bottom: 0; + z-index: 1; + display: inline-block; + line-height: 20px !important; + height: 20px; + margin-top: 5px; + padding: 0 3px; +} +.notebook-setting { + display: none; + position: absolute; + right: 1px; + top: 0; + bottom: 0; + z-index: 2; + line-height: 30px; +} +.notebook-setting:before { + content: "\f013"; +} +.ztree li a:hover .notebook-setting { + display: block; +} +#myTag .folderBody { + padding: 0 3px; + padding-bottom: 3px; +} +#myTag .folderBody li { + float: left; + padding: 3px; + line-height: normal; +} +#notebookList { + border-top: 1px solid rgba(255, 255, 255, 0.05); +} +.ztree { + padding: 0px; +} +#upload { + position: absolute; + z-index: 0; + bottom: 0; + right: 0; + left: 0px; + padding: 0; + background-color: #fff; + text-align: center; + display: none; +} +#upload #drop { + width: 100%; + height: 100%; + padding-top: 100px; +} +#drop.in { + border: 1px solid #000000; +} +#drop.hover { + border: 2px solid #000000; +} +#uploadMsg { + position: absolute; + top: 3px; + right: 3px; + bottom: 10px; + overflow: scroll; + list-style: none; +} +#uploadAttach { + position: relative; + margin-top: 5px; +} +.dropzone { + text-align: center; +} +.dropzone input { + display: none; +} +.dropzone.in { + border: 1px solid #000000; +} +.dropzone.hover { + border: 2px solid #000000; +} +#attachUploadMsg, +#avatarUploadMsg { + list-style-type: none; + margin: 0; + padding: 0; + max-height: 240px; + z-index: 3; +} +#attachUploadMsg .alert, +#avatarUploadMsg .alert { + margin: 0; + padding: 0 3px; + margin-top: 10px; +} +#attachMenu { + width: 450px; + padding: 10px 5px; +} +#attachList { + margin: 0; + padding: 0; + max-height: 450px; + overflow-y: auto; +} +#attachList li { + display: block; + margin: 0; + padding: 0 3px; + border-radius: 3px; + border-bottom: 1px dashed #eee; + height: 45px; + line-height: 45px; +} +#attachList li div { + float: left; +} +#attachList li .attach-title { + width: 290px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +#attachList li .attach-process { + float: right; +} +#attachList li.loading { + text-align: center; +} +.animated { + -webkit-animation-fill-mode: both; + -moz-animation-fill-mode: both; + -ms-animation-fill-mode: both; + -o-animation-fill-mode: both; + animation-fill-mode: both; + -webkit-animation-duration: 0.5s; + -moz-animation-duration: 0.5s; + -ms-animation-duration: 0.5s; + -o-animation-duration: 0.5s; + animation-duration: 0.5s; +} +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@-moz-keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@-o-keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +.fadeIn { + -webkit-animation-name: fadeIn; + -moz-animation-name: fadeIn; + -o-animation-name: fadeIn; + animation-name: fadeIn; +} +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(20px); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} +@-moz-keyframes fadeInUp { + 0% { + opacity: 0; + -moz-transform: translateY(20px); + } + 100% { + opacity: 1; + -moz-transform: translateY(0); + } +} +@-o-keyframes fadeInUp { + 0% { + opacity: 0; + -o-transform: translateY(20px); + } + 100% { + opacity: 1; + -o-transform: translateY(0); + } +} +@keyframes fadeInUp { + 0% { + opacity: 0; + transform: translateY(20px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} +.fadeInUp { + -webkit-animation-name: fadeInUp; + -moz-animation-name: fadeInUp; + -o-animation-name: fadeInUp; + animation-name: fadeInUp; +} +#historyList img { + max-width: 100%; +} +#avatar { + height: 60px; + max-width: 200px; + display: inline-block; + margin: 10px; +} +#noteReadTitle { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +#noteReadInfo { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + color: #666; +} +.my-link, +.new-markdown-text-abbr, +.new-note-text-abbr { + display: none; +} +#myAvatar { + height: 30px; + max-width: 30px; + overflow: hidden; + border-radius: 50%; +} +#tool { + position: relative; +} +#tag { + position: absolute; + right: 300px; + left: 0; + top: 0; + bottom: 0; +} +#tagColor { + left: 10px; +} +#tagColor:before { + content: ""; + background-image: none; +} +#addTagInput { + width: 100px; +} +#notesAndSort { + height: 36px; +} +#noteItemListWrap { + position: absolute; + left: 0; + right: 0; + top: 36px; + bottom: 3px; +} +#mdEditorPreview { + position: absolute; + top: 35px; + left: 0; + right: 0; + bottom: 0; +} +#left-column, +#right-column, +#mdSplitter { + position: absolute; + top: 0; + bottom: 0; +} +#mdSplitter { + width: 5px; + height: 100%; + overflow: hidden; + z-index: 5; + cursor: col-resize; + left: 450px; + background: none; +} +#left-column { + left: 0; + width: 450px; +} +#right-column { + left: 450px; + right: 0; + overflow: hidden; +} +.wmd-panel-editor, +.preview-container, +#wmd-input { + height: 100%; +} +.wmd-input, +.wmd-input:focus, +#md-section-helper { + width: 100%; + border: 1px #eee solid; + border-radius: 5px; + outline: none; + font-size: 14px; + resize: none; + overflow-x: hidden; +} +/* 不能为display: none */ +#md-section-helper { + position: absolute; + height: 0; + overflow-y: scroll; + padding: 0 6px; + top: 10px; + /*一条横线....*/ + z-index: -1; + opacity: none; +} +#right-column { + border: 1px dashed #BBBBBB; + border-radius: 5px; + padding-left: 5px; +} +.preview-container { + overflow: auto; +} +.wmd-preview { + width: 100%; + font-size: 14px; + overflow: auto; + overflow-x: hidden; +} +.wmd-button-row, +.preview-button-row { + padding: 0px; + height: auto; + margin: 0; +} +.wmd-spacer { + width: 0px; + height: 20px; + margin-left: 10px; + background-color: Silver; + display: inline-block; + list-style: none; +} +.wmd-button, +.preview-button { + width: 20px; + height: 20px; + display: inline-block; + list-style: none; + cursor: pointer; + font-size: 17px; +} +.wmd-button { + margin-left: 10px; +} +.preview-button { + margin-right: 10px; +} +.wmd-button > span, +.preview-button > span { + width: 20px; + height: 20px; + display: inline-block; + font-size: 14px; +} +.top-nav { + margin: 0 10px; + display: inline-block; + line-height: 60px; +} +.cm-item { + position: relative; +} +.cm-item .cm-text { + position: absolute; + left: 23px; + right: 10px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.cm-item .cm-text .c-text { + display: initial; +} +.b-m-mpanel { + border-radius: 3px; +} +/* item list */ +#noteItemList { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + width: 100%; + overflow-y: hidden; + padding: 0 5px; +} +#noteItemList .item { + position: relative; + height: 110px; + overflow: hidden; + cursor: pointer; + border: 1px solid #ebeff2; + border-radius: 3px; + margin-top: 5px; + background-color: #fff; +} +#noteItemList .item:hover, +#noteItemList .contextmenu-hover { + background-color: #ddd !important; +} +.item-active, +#noteItemList .item-active:hover { + background-color: #65bd77 !important; + color: #fff; +} +.item-active .fa, +#noteItemList .item-active:hover .fa { + color: #eee !important; +} +.item-active .item-title, +#noteItemList .item-active:hover .item-title { + color: #fff; +} +#noteItemList .item-thumb { + width: 100px; + overflow: hidden; + position: absolute; + z-index: 1; + right: 0px; + top: 4px; + height: 100px; + background-color: #fff; + margin-right: 5px; + line-height: 100px; + text-align: center; +} +.item-thumb img { + max-width: 100px; +} +.item-title { + /*font-weight: 400;*/ + font-size: 16px; + height: 22px; + line-height: 20px; + overflow: hidden; + margin-bottom: 0px; + color: #000000; + border-bottom: dashed 1px #ebeff2; +} +#noteItemList .item-desc { + position: absolute; + left: 0; + top: 4px; + right: 0px; + margin-left: 4px; +} +#noteItemList .item-desc .fa { + color: #666; +} +#noteItemList .item-image .item-desc { + right: 100px; +} +.item-info { + margin: 0; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.desc { + margin: 0; +} +#editorMask { + position: absolute; + top: 0px; + bottom: 0px; + right: 0; + left: 0; + background-color: #fff; + display: none; + z-index: -10; + padding-top: 50px; + text-align: center; +} +#editorMask .fa, +#editorMask a { + font-size: 24px; +} +#editorMask a { + display: inline-block; + border-radius: 3px; + border: 1px solid #ebeff2; + padding: 10px; +} +#editorMask a:hover { + background-color: #65bd77; + color: #fff; +} +.note-mask { + position: absolute; + top: 0px; + bottom: 0px; + right: 0; + left: 3px; + z-index: -1; +} +#noteMaskForLoading { + padding-top: 60px; + background: #fff; + text-align: center; + opacity: .3; +} +#themeForm td { + padding: 5px; + text-align: center; +} +#themeForm img { + border: 1px solid #eee; + padding: 2px; +} +.dropdown-menu .divider { + margin: 3px 0; +} +.ace_eidtor, +.ace_editor * { + font: 12px / normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace; +} +#editorContent { + border: 1px solid #ccc; + border-radius: 5px; + padding: 5px; + outline: none; + margin-top: 5px; +} +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + src: local('Open Sans Light'), local('OpenSans-Light'), url('../../fonts/open-sans2/DXI1ORHCpsQm3Vp6mXoaTXhCUOGz7vYGh680lGh-uXM.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans'), local('OpenSans'), url('../../fonts/open-sans2/cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: local('Open Sans Bold'), local('OpenSans-Bold'), url('../../fonts/open-sans2/k3k702ZOKiLJc3WVjuplzHhCUOGz7vYGh680lGh-uXM.woff') format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + src: local('Open Sans Italic'), local('OpenSans-Italic'), url('../../fonts/open-sans2/xjAJXh38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff') format('woff'); +} +/*"HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue", Helvetica, "Microsoft Yahei", Verdana, Simsun, "Segoe UI", "Segoe UI Web Regular", "Segoe UI Symbol", "BBAlpha Sans", "S60 Sans", Arial, sans-serif;*/ +::selection { + background: #000000; + color: #ffffff; +} +::-moz-selection { + background: #000000; + color: #ffffff; +} +::-webkit-selection { + background: #000000; + color: #ffffff; +} +html, +body { + background-color: #fbfcf7; +} +*, +body { + font-family: 'Open Sans', 'Helvetica Neue', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', sans-serif; + font-weight: 300; + font-size: 16px; +} +h1, +h2, +h3 { + font-family: 'Open Sans', 'Helvetica Neue', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', sans-serif; + font-weight: 300 !important; +} +a { + color: #000000; + cursor: pointer; +} +a:hover { + text-decoration: none !important; + color: #000000; +} +a.raw { + color: #428bca; +} +a.raw:hover { + color: #2a6496; +} +/* header */ +#header { + height: 60px; + background-color: #fbfcf7; + color: #ffffff; + border-bottom: 1px solid #ebeff2; + /* for app */ + webkit-user-select: none; + /* 还不知 */ + -webkit-app-region: drag; + /* -webkit-app-region: no-drag; */ +} +#header a { + color: #ccc; +} +#header li { + color: #000000; +} +#header li a { + color: #000000; +} +#searchWrap, +#logo, +#switcher, +#leftNotebook, +.noteSplit { + display: none; +} +#header ul { + margin: 0; + padding: 0; + list-style: none; +} +#header ul li.dropdown { + display: inline-block; + height: 60px; +} +#header ul > li > a.dropdown-toggle { + display: block; + padding: 15px 5px 0 0; + position: relative; +} +#header span.icon { + display: inline-block; + font-size: 28px; + color: #999999; +} +.dropdown-menu { + border-radius: 0; + margin: 0; + -webkit-box-shadow: none; + box-shadow: none; + border: 1px solid #0fb264; + overflow: visible; +} +.dropdown-menu li { + padding-left: 10px; + width: 100%; + height: 30px; + line-height: 30px; +} +.dropdown-menu > li > a { + color: #000000; + display: inline-block; + padding: 3px 3px; +} +.dropdown-menu > li:hover, +.dropdown-menu > li:focus { + background-color: #ebeff2; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + background-color: #ebeff2; +} +.ios7-a { + display: inline-block; + padding: 0 10px 0 5px; + height: 40px; + vertical-align: middle; + line-height: 38px; + cursor: pointer; +} +/*********************/ +#page { + overflow: auto; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; +} +#pageInner { + position: absolute; + top: 0; + left: 0; + height: 100%; + width: 100%; + overflow: hidden; +} +#mainContainer { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + overflow: auto; + zoom: 1; +} +#search { + border: #bababa 1px solid; + background-color: #fff; + white-space: nowrap; + position: absolute; + height: 30px; + left: 3px; + right: 60px; + margin-top: 3px; +} +#search label { + display: none; +} +#searchButton { + border: 0 none; + width: 16px; + height: 16px; + overflow: hidden; + cursor: pointer; + position: absolute; + right: 3px; + top: 5px; +} +#searchInput { + border: 0 none; + overflow: hidden; + position: absolute; + right: 20px; + left: 0px; + padding-left: 10px; + height: 28px; +} +#searchInput:focus { + border: none; + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +#notesAndSort { + background-color: #eee; + border-bottom: 1px solid #ebeff2; +} +/* item list */ +#noteItemList { + position: absolute; + left: 0; + right: 0; + bottom: 0; + top: 0; + width: 100%; + overflow-y: hidden; + background-color: #f7f7f7; + padding: 0 5px; +} +#noteItemList .item { + position: relative; + height: 110px; + overflow: hidden; + cursor: pointer; + padding: 5px; + border: 1px solid #ebeff2; + border-radius: 3px; + margin-top: 5px; + background-color: #fff; +} +#noteItemList .item:hover, +#noteItemList .contextmenu-hover { + background-color: #ddd !important; + color: #000000; +} +#noteItemList .item-thumb { + padding-left: 10px; + width: 100px; + overflow: hidden; + position: absolute; + right: 0px; + height: 100px; + background-color: #fff; + margin-right: 5px; +} +.item-thumb img { + width: 100px; +} +#noteItemList .item-desc { + position: absolute; + left: 0; + right: 100px; + margin-left: 4px; +} +#noteItemList .item-desc .fa { + color: #666; +} +#noteItemList .item-blog { + position: absolute; + right: 1px; + font-size: 10px; + z-index: 2; + top: 1px; + padding: 3px; + cursor: pointer; + width: 20px; + text-align: center; + opacity: 0.5; + background-color: #464C5E; +} +#noteItemList .item-blog .fa { + color: #fff !important; +} +#noteItemList .item-blog:hover { + opacity: 0.8; +} +.item-title { + /*font-weight: 400;*/ + font-size: 16px; + height: 22px; + line-height: 20px; + overflow: hidden; + margin-bottom: 0px; + color: #000000; + border-bottom: dashed 1px #ebeff2; +} +/* note */ +/* editor */ +#editorTool { + margin: 0; + padding: 0; + list-style: none; +} +#editorTool li { + display: inline-block; +} +#noteTitle:focus { + outline: none !important; +} +#editor, +#mdEditor { + z-index: 2; + top: 71px; + bottom: 0px; + right: 0; + left: 0; + padding: 0; + display: none; +} +#mdEditor { + z-index: 1; + background-color: #fff; + bottom: 10px; +} +#mdEditor #md-section-helper, +#mdEditor #wmd-input { + font-size: 14px; + line-height: 22px; +} +#editorContent { + position: absolute; + top: 30px; + bottom: 10px; + right: 0; + left: 0; + overflow: auto; +} +/* 包裹iframe */ +#editor .mce-ifr { + border: none; + overflow: hidden !important; + /*不知道哪里设置了auto*/ + /*border-radius: 5px;*/ +} +/* 最顶层 */ +#editor .mce-tinymce { + border: none; +} +/*编辑器按钮*/ +#mceToolbar, +#wmd-button-bar { + position: relative; + height: 30px; + overflow: hidden; + background-color: #fbfcf7; +} +/* 编辑器工具 需要important, 因为mce还要有js加载css, 肯定在此之后 */ +/*加高, 之前显得拥挤*/ +.mce-btn-small button { + padding: 5px 5px !important; + line-height: 20px !important; +} +.mce-btn { + background-color: #fbfcf7 !important; +} +.mce-menubtn.mce-btn-small span { + line-height: 20px !important; +} +.mce-btn span { + font-family: 'Open Sans', 'Helvetica Neue', Arial, 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', sans-serif !important; +} +.mce-primary button, +.mce-primary button i { + text-shadow: none; +} +.mce-primary { + background-color: #47a447 !important; + border-color: #398439 !important; +} +.mce-menu-item:hover, +.mce-menu-item.mce-selected, +.mce-menu-item:focus { + background-color: #ebeff2; +} +.mce-menu-item:hover span, +.mce-menu-item.mce-selected span, +.mce-menu-item:focus span { + color: #000 !important; +} +.mce-menu-item-normal.mce-active { + background-color: #ebeff2; +} +.tool-split { + display: inline-block; + line-height: 25px; + color: #ddd; +} +/*标签与其它工具*/ +#tool { + display: none; + border-bottom: 1px solid #ddd; +} +/* tag */ +#tag { + height: 40px; + line-height: 38px; +} +#tag .dropdown { + line-height: 30px; +} +#addTagInput { + line-height: 25px; + display: none; + padding: 0; + border: none; + background-color: #fbfcf7; +} +#addTagInput:focus { + outline: none; +} +.label-default { + background-color: #464C5E; +} +.label-red { + background-color: #d9534f; +} +.label-yellow { + background-color: #f0ad4e; +} +.label-blue { + background-color: #428bca; +} +.label-green { + background-color: #5cb85c; +} +.label { + border-radius: 0; + font-weight: normal; +} +.label i { + width: 10px; + cursor: pointer; + font-style: normal; + /*border-left: 1px solid #ccc;*/ + display: inline-block; + padding-left: 3px; + opacity: 0; +} +.label i:hover { + opacity: 1; +} +/* leanote nav */ +#leanoteNav { + position: absolute; + right: 5px; + border: 1px solid #ccc; + border-radius: 3px; + background-color: #fff; + opacity: 0.5; + z-index: 11; + margin-right: 2px; +} +#leanoteNav h1 { + margin: 0; + font-size: 18px; + padding: 3px; + cursor: pointer; +} +#leanoteNav i { + padding: 3px; +} +#leanoteNav span { + display: none; +} +#leanoteNav #leanoteNavContent { + display: none; + overflow: auto; +} +#leanoteNav.unfolder { + min-width: 200px; + max-width: 300px; + opacity: 0.8; +} +#leanoteNav.unfolder h1 { + border-bottom: 1px dashed #ebeff2; +} +#leanoteNav.unfolder span { + display: inline; +} +#leanoteNav.unfolder #leanoteNavContent { + display: block; + min-height: 30px; +} +#leanoteNav ul { + margin: 0; + padding-left: 23px; +} +#leanoteNav ul li { + list-style-type: disc; +} +#leanoteNav ul li a:hover { + color: #0fb264; +} +#leanoteNav ul .nav-h2 { + margin-left: 20px; +} +#leanoteNav ul .nav-h3 { + margin-left: 30px; +} +#leanoteNav ul .nav-h4 { + margin-left: 40px; +} +#leanoteNav ul .nav-h5 { + margin-left: 50px; +} +.scrollTo-a { + cursor: pointer !important; +} +#noteRead { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + display: none; + z-index: 100; + padding-left: 5px; + background-color: #fff; +} +#noteReadContainer { + position: relative; + width: 100%; + height: 100%; +} +#noteReadTop { + position: absolute; + height: 60px; + left: 0; + right: 0; + border-bottom: 1px solid #ebeff2; +} +#noteReadTitle { + margin: 3px 0; +} +#noteReadContent { + position: absolute; + top: 60px; + bottom: 0; + right: 0; + left: 0; + overflow: auto; + padding: 3px; +} +/*scroll*/ +/* +::-webkit-scrollbar { + width: 5px; + height: 8px; + background: none; +} + +::-webkit-scrollbar-thumb { + background-color: #41586e; + opacity: 0.1; +} +::-webkit-scrollbar-thumb:hover { + background-color:#dadada +} +::-webkit-scrollbar-thumb:active { + background-color:#606060 +} +::-webkit-scrollbar-thumb:disabled { + background-color:#f9f9f9 +} +::-webkit-scrollbar-corner { + background-color:#f0f0f0 +} +::-webkit-scrollbar-button { + height: 0; + background-color:#f0f0f0; + background-repeat:no-repeat +} +::-webkit-scrollbar-button:vertical { + height:0px +} +::-webkit-scrollbar-button:horizontal { + width:33px +} +::-webkit-scrollbar-button:horizontal:increment { + background-position:0 -444px +} +::-webkit-scrollbar-button:horizontal:decrement { + background-position:12px -425px +} +::-webkit-scrollbar-button:vertical:increment { + background-position:-1px -391px +} +::-webkit-scrollbar-button:vertical:decrement { + background-position:-1px -358px +} +::-webkit-scrollbar-button:hover { + background-color:#dadada +} +::-webkit-scrollbar-button:horizontal:increment:hover { + background-position:0 -548px +} +::-webkit-scrollbar-button:horizontal:decrement:hover { + background-position:12px -529px +} +::-webkit-scrollbar-button:vertical:increment:hover { + background-position:-1px -495px +} +::-webkit-scrollbar-button:vertical:decrement:hover { + background-position:-1px -462px +} +::-webkit-scrollbar-button:active { + background-color:#606060 +} +::-webkit-scrollbar-button:horizontal:increment:active { + background-position:0 -652px +} +::-webkit-scrollbar-button:horizontal:decrement:active { +background-position:12px -633px +} +::-webkit-scrollbar-button:vertical:increment:active { +background-position:-1px -599px +} +::-webkit-scrollbar-button:vertical:decrement:active { +background-position:-1px -566px +} +::-webkit-scrollbar-button:disabled { +background-color:#f9f9f9 +} +::-webkit-scrollbar-button:horizontal:increment:disabled { +background-position:0 -756px +} +::-webkit-scrollbar-button:horizontal:decrement:disabled { +background-position:12px -737px +} +::-webkit-scrollbar-button:vertical:increment:disabled { +background-position:-1px -703px +} +::-webkit-scrollbar-button:vertical:decrement:disabled { +background-position:-1px -670px +} +*/ +/*from notebook*/ +/*::-webkit-scrollbar{width:7px;height:7px;}::-webkit-scrollbar-thumb{background-color:rgba(50,50,50,0.3);}::-webkit-scrollbar-thumb:hover{background-color:rgba(50,50,50,0.6);}::-webkit-scrollbar-track{background-color:rgba(50,50,50,0.1);}::-webkit-scrollbar-track:hover{background-color:rgba(50,50,50,0.2);} +*/ +.fa-calendar { + color: #666; +} +.dropdown-menu .fa { + width: 15px; +} +.dropdown-menu span, +.dropdown-menu a, +.dropdown-menu li { + cursor: default; +} +#topNav a { + display: inline-block; + line-height: 60px; +} +.tab-pane { + padding: 5px 0 0 0; +} +.alert { + margin-bottom: 10px; +} +.btn { + border-radius: 0 !important; +} +#notebookNavForNewNote li, +#notebookNavForNewSharedNote > li { + padding-left: 0; + border-bottom: 1px solid #ebeff2; +} +#notebookNavForNewNote > li:hover, +#notebookNavForNewNote > li:focus, +#notebookNavForNewSharedNote > li:hover, +#notebookNavForNewSharedNote > li:focus { + background: none; +} +.new-note-left { + padding: 0 5px; + width: 95px; + overflow: hidden; + white-space: nowrap; + border-right: 1px dashed #ebeff2; +} +.new-note-left:hover { + background-color: #ebeff2; +} +.new-note-right { + padding: 0 5px; +} +.new-note-right:hover { + background-color: #ebeff2; +} +#historyList table { + width: 100%; +} +#historyList .btns { + border-top: 1px dashed #eee; + padding: 5px 0; +} +#left-column { + width: 100% !important; +} +#editorMask { + position: absolute; + top: 0px; + bottom: 0px; + right: 0; + left: 0; + background-color: #fff; + z-index: -10; + padding-top: 50px; + text-align: center; +} +#editorMask .fa, +#editorMask a { + font-size: 24px; +} +#editorMask a { + display: inline-block; + border-radius: 3px; + border: 1px solid #ebeff2; + padding: 10px; +} +#editorMask a:hover { + background-color: #65bd77; + color: #fff; +} +html, +body { + background-color: #fbfcf7; + overflow: hidden; +} +#right-column, +#newNoteMarkdownBtn, +#newShareNoteMarkdownBtn, +.new-split, +#editorMask, +#sortType, +#myProfile, +#demoRegister { + display: none; +} +#mainMask { + position: absolute; + left: 0; + right: 0; + bottom: 0; + top: 0; + background-color: #fbfcf7; + text-align: center; + padding-top: 100px; + z-index: 1000; +} +#header { + position: absolute; + left: 0; + right: 0; + z-index: 333; + color: #ccc; +} +#header #leanoteMsg { + position: absolute; + width: 700px; + left: 0; + right: 0; + text-align: right; + line-height: 60px; + margin: auto; +} +#newNoteWrap { + line-height: 40px; + margin-top: 10px; + margin-left: 10px; +} +#newNoteWrap, +#topNav, +#lea { + opacity: 0; +} +#newNoteWrap:hover, +#topNav:hover, +#lea:hover { + opacity: 1; +} +#mainContainer { + overflow-y: hidden; +} +#newMyNote, +#newSharedNote { + position: relative; +} +#newMyNote .dropdown, +#newSharedNote .dropdown { + position: static; +} +.dropdown-menu { + border: 1px solid #ccc; + background-color: #fbfcf7; +} +#note { + position: absolute; + width: 700px; + margin: auto; + height: 100%; + left: 0; + right: 0; +} +#editor, +#mdEditor { + position: absolute; + top: 60px; + z-index: 2; +} +#wmd-input { + border: none; + background-color: #fbfcf7; + font-size: 16px !important; +} +#md-section-helper { + display: none; +} +#mdEditorPreview { + top: 43px !important; +} +#mceToolbar, +#wmd-button-bar { + height: 40px; + padding: 5px 0; +} +.editorBg { + height: 3px; + background: url(/images/editor/editor-shadow.png) no-repeat center bottom #f9faf4; +} +.mce-btn-small i, +.mce-menubtn.mce-btn-small span, +.wmd-button > span { + opacity: 0.85; +} +.mce-ico { + font-size: 18px; + line-height: 18px; + width: 18px; + height: 18px; +} +.tool-split { + line-height: 30px; +} +.mce-menubtn.mce-fixed-width.mce-btn-small span { + width: 80px; +} +.mce-menubtn.mce-btn-small span { + font-size: 16px; +} +#editorContent_ifr html { + border: none !important; +} +#noteTop { + position: absolute; + z-index: 999; + left: 0; + right: 150px; + padding: 15px 0; + height: 59px; +} +#noteTitleDiv { + height: 30px; +} +#noteTitle { + height: 100%; + padding: 0px 3px; + width: 100%; + border: none; + background-color: #fbfcf7; +} +#noteList { + position: fixed; + top: 0; + bottom: 0; + left: 10px; + margin-top: 60px; + width: 200px; + z-index: 0; + opacity: 0.8; + overflow-x: hidden; + overflow-y: hidden; + /* + &:hover { + #noteItemListWrap { + display: block; + } + #notesAndSort { + display: block; + } + } + */ +} +#noteList #notesAndSort { + display: none; +} +#noteList #noteItemListWrap { + display: none; +} +#notesAndSort { + background: none; +} +#noteItemList { + background: none; +} +#noteItemList .item { + background: none; +} +.item-active, +#noteItemList .item-active:hover { + background-color: #F5F8EA !important; + color: #000; +} +.item-active .item-desc .fa, +#noteItemList .item-active:hover .item-desc .fa { + color: #666 !important; +} +.item-active .item-title, +#noteItemList .item-active:hover .item-title { + color: #000; +} +#leanoteNav { + background-color: #fbfcf7; + opacity: 0.3; + right: -30px; +} +.new-note-right { + padding: 0 2px; +} +#loading { + display: inline-block; + width: 20px; + height: 20px; + content: url(../../images/loading-a-20-black.gif); + margin-top: 10px; + visibility: hidden; +} +#moreBtn { + right: 0 !important; +} +#toggleEditorMode { + margin: 0 10px !important; +} +#upload { + position: absolute; + z-index: 0; + bottom: 0; + right: 0; + left: 0px; + padding: 0; + background-color: #fff; + text-align: center; + display: none; +} +#upload #drop { + width: 100%; + height: 100%; + padding-top: 100px; +} +#drop.in { + border: 1px solid #000000; +} +#drop.hover { + border: 2px solid #000000; +} +#uploadMsg { + position: absolute; + top: 3px; + right: 3px; + bottom: 10px; + overflow: scroll; + list-style: none; +} +#searchNotebookForAddDropdownList { + left: 0; +} +#searchNotebookForAdd { + background: none; +} +.writting-hide { + display: none; +} +@media screen and (max-width: 800px) { + #leanoteMsg { + display: none; + } + #noteItemList, + #notebook, + #leftNotebook, + .slimScrollDiv, + #editorContent_ifr, + .mce-edit-area, + .mce-container-body, + .mce-tinymce, + #editor .mce-ifr, + .wmd-input, + #noteReadContent, + #attachList, + #tags { + overflow: scroll !important; + -webkit-overflow-scrolling: touch !important; + } +} +@media screen and (max-device-width: 1024px) and (orientation: landscape) { + #noteItemList, + #notebook, + #leftNotebook, + .slimScrollDiv, + #editorContent_ifr, + .mce-edit-area, + .mce-container-body, + .mce-tinymce, + #editor .mce-ifr, + .wmd-input, + #noteReadContent, + #attachList, + #tags { + overflow: scroll !important; + -webkit-overflow-scrolling: touch !important; + } +} diff --git a/public/css/theme/basic.less b/public/css/theme/basic.less index 32df0af..5452f3f 100644 --- a/public/css/theme/basic.less +++ b/public/css/theme/basic.less @@ -149,6 +149,20 @@ overflow-y: hidden; */ } +// 笔记列表与editor的遮罩 +#noteAndEditorMask { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + background: #fff; + text-align: center; + padding-top: 60px; + opacity: .3; + z-index: 20; + display: none; +} //----------------- // 下拉菜单 @@ -625,7 +639,7 @@ max-width: 30px; overflow: hidden; // border: 1px solid #ccc; - border-radius: 50%; + border-radius: 50%; } #tool { position: relative; @@ -940,4 +954,17 @@ top: 4px; .dropdown-menu .divider { margin: 3px 0; +} + +// ace 重置css, 必须 +.ace_eidtor, .ace_editor * { + font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace; +} + +#editorContent { + border: 1px solid #ccc; + border-radius: 5px; + padding: 5px; + outline: none; + margin-top: 5px; } \ No newline at end of file diff --git a/public/css/theme/default.css b/public/css/theme/default.css index 76d9540..47ed79f 100644 --- a/public/css/theme/default.css +++ b/public/css/theme/default.css @@ -139,6 +139,19 @@ overflow-y: hidden; */ } +#noteAndEditorMask { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + background: #fff; + text-align: center; + padding-top: 60px; + opacity: .3; + z-index: 20; + display: none; +} .dropdown-submenu { position: relative; } @@ -869,6 +882,17 @@ .dropdown-menu .divider { margin: 3px 0; } +.ace_eidtor, +.ace_editor * { + font: 12px / normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace; +} +#editorContent { + border: 1px solid #ccc; + border-radius: 5px; + padding: 5px; + outline: none; + margin-top: 5px; +} ::selection { background: #000000; color: #ffffff; @@ -2012,8 +2036,8 @@ background-position:-1px -670px #noteReadContent, #attachList, #tags { - overflow: scroll !important; -webkit-overflow-scrolling: touch !important; + overflow: auto !important; } #attachMenu { width: 320px; @@ -2053,7 +2077,7 @@ background-position:-1px -670px opacity: 0.8; } } -@media screen and (max-device-width: 1024px) and (orientation: landscape) { +@media screen and (max-width: 1024px) { #noteItemList, #notebook, #leftNotebook, @@ -2067,12 +2091,12 @@ background-position:-1px -670px #noteReadContent, #attachList, #tags { - overflow: scroll !important; + overflow: auto !important; -webkit-overflow-scrolling: touch !important; } #tag { position: absolute; - right: 140px; + right: 310px; left: 0; top: 0; bottom: 0; @@ -2121,7 +2145,7 @@ background-position:-1px -670px #noteReadContent, #attachList, #tags { - overflow: scroll !important; + overflow: auto !important; -webkit-overflow-scrolling: touch !important; } #lea, diff --git a/public/css/theme/mobile.less b/public/css/theme/mobile.less index e0de044..3cb55e4 100644 --- a/public/css/theme/mobile.less +++ b/public/css/theme/mobile.less @@ -216,8 +216,8 @@ a:focus, a:hover, a:active { #attachList, #tags { - overflow: scroll !important; -webkit-overflow-scrolling: touch !important; // for iphone + overflow: auto !important; } #attachMenu { @@ -265,7 +265,8 @@ a:focus, a:hover, a:active { } // ipad -@media screen and (max-device-width: 1024px) and (orientation: landscape) { +// @media screen and (max-device-width: 1024px) and (orientation: landscape) { +@media screen and (max-width: 1024px) { #noteItemList, #notebook, #leftNotebook, .slimScrollDiv, #editorContent_ifr, @@ -276,13 +277,13 @@ a:focus, a:hover, a:active { #attachList, #tags { - overflow: scroll !important; + overflow: auto !important; -webkit-overflow-scrolling: touch !important; // for iphone } #tag { position: absolute; - right: 140px; + right: 310px; left:0; top:0; bottom:0; @@ -332,7 +333,7 @@ a:focus, a:hover, a:active { #attachList, #tags { - overflow: scroll !important; + overflow: auto !important; -webkit-overflow-scrolling: touch !important; // for iphone } diff --git a/public/css/theme/simple.css b/public/css/theme/simple.css index 24f07da..18e0abc 100644 --- a/public/css/theme/simple.css +++ b/public/css/theme/simple.css @@ -139,6 +139,19 @@ overflow-y: hidden; */ } +#noteAndEditorMask { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + background: #fff; + text-align: center; + padding-top: 60px; + opacity: .3; + z-index: 20; + display: none; +} .dropdown-submenu { position: relative; } @@ -869,6 +882,17 @@ .dropdown-menu .divider { margin: 3px 0; } +.ace_eidtor, +.ace_editor * { + font: 12px / normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace; +} +#editorContent { + border: 1px solid #ccc; + border-radius: 5px; + padding: 5px; + outline: none; + margin-top: 5px; +} ::selection { background: #000000; color: #ffffff; @@ -1947,8 +1971,8 @@ background-position:-1px -670px #noteReadContent, #attachList, #tags { - overflow: scroll !important; -webkit-overflow-scrolling: touch !important; + overflow: auto !important; } #attachMenu { width: 320px; @@ -1988,7 +2012,7 @@ background-position:-1px -670px opacity: 0.8; } } -@media screen and (max-device-width: 1024px) and (orientation: landscape) { +@media screen and (max-width: 1024px) { #noteItemList, #notebook, #leftNotebook, @@ -2002,12 +2026,12 @@ background-position:-1px -670px #noteReadContent, #attachList, #tags { - overflow: scroll !important; + overflow: auto !important; -webkit-overflow-scrolling: touch !important; } #tag { position: absolute; - right: 140px; + right: 310px; left: 0; top: 0; bottom: 0; @@ -2056,7 +2080,7 @@ background-position:-1px -670px #noteReadContent, #attachList, #tags { - overflow: scroll !important; + overflow: auto !important; -webkit-overflow-scrolling: touch !important; } #lea, diff --git a/public/css/theme/writting-overwrite.css b/public/css/theme/writting-overwrite.css index e03ece6..0b0ebce 100644 --- a/public/css/theme/writting-overwrite.css +++ b/public/css/theme/writting-overwrite.css @@ -139,6 +139,19 @@ overflow-y: hidden; */ } +#noteAndEditorMask { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + background: #fff; + text-align: center; + padding-top: 60px; + opacity: .3; + z-index: 20; + display: none; +} .dropdown-submenu { position: relative; } @@ -869,6 +882,17 @@ .dropdown-menu .divider { margin: 3px 0; } +.ace_eidtor, +.ace_editor * { + font: 12px / normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace; +} +#editorContent { + border: 1px solid #ccc; + border-radius: 5px; + padding: 5px; + outline: none; + margin-top: 5px; +} @font-face { font-family: 'Open Sans'; font-style: normal; diff --git a/public/css/theme/writting.css b/public/css/theme/writting.css index 90f8fed..0fddf9f 100644 --- a/public/css/theme/writting.css +++ b/public/css/theme/writting.css @@ -139,6 +139,19 @@ overflow-y: hidden; */ } +#noteAndEditorMask { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + background: #fff; + text-align: center; + padding-top: 60px; + opacity: .3; + z-index: 20; + display: none; +} .dropdown-submenu { position: relative; } @@ -869,6 +882,17 @@ .dropdown-menu .divider { margin: 3px 0; } +.ace_eidtor, +.ace_editor * { + font: 12px / normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace; +} +#editorContent { + border: 1px solid #ccc; + border-radius: 5px; + padding: 5px; + outline: none; + margin-top: 5px; +} @font-face { font-family: 'Open Sans'; font-style: normal; diff --git a/public/js/all.js b/public/js/all.js index 8cc520a..f634b30 100644 --- a/public/js/all.js +++ b/public/js/all.js @@ -1,2 +1,2 @@ (function(factory){factory(jQuery)})(function($){var pluses=/\+/g;function encode(s){return config.raw?s:encodeURIComponent(s)}function decode(s){return config.raw?s:decodeURIComponent(s)}function stringifyCookieValue(value){return encode(config.json?JSON.stringify(value):String(value))}function parseCookieValue(s){if(s.indexOf('"')===0){s=s.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\")}try{s=decodeURIComponent(s.replace(pluses," "));return config.json?JSON.parse(s):s}catch(e){}}function read(s,converter){var value=config.raw?s:parseCookieValue(s);return $.isFunction(converter)?converter(value):value}var config=$.cookie=function(key,value,options){if(value!==undefined&&!$.isFunction(value)){options=$.extend({},config.defaults,options);if(typeof options.expires==="number"){var days=options.expires,t=options.expires=new Date;t.setTime(+t+days*864e5)}return document.cookie=[encode(key),"=",stringifyCookieValue(value),options.expires?"; expires="+options.expires.toUTCString():"",options.path?"; path="+options.path:"",options.domain?"; domain="+options.domain:"",options.secure?"; secure":""].join("")}var result=key?undefined:{};var cookies=document.cookie?document.cookie.split("; "):[];for(var i=0,l=cookies.length;ithis.$items.length-1||pos<0)return;if(this.sliding)return this.$element.one("slid",function(){that.to(pos)});if(activeIndex==pos)return this.pause().cycle();return this.slide(pos>activeIndex?"next":"prev",$(this.$items[pos]))};Carousel.prototype.pause=function(e){e||(this.paused=true);if(this.$element.find(".next, .prev").length&&$.support.transition.end){this.$element.trigger($.support.transition.end);this.cycle(true)}this.interval=clearInterval(this.interval);return this};Carousel.prototype.next=function(){if(this.sliding)return;return this.slide("next")};Carousel.prototype.prev=function(){if(this.sliding)return;return this.slide("prev")};Carousel.prototype.slide=function(type,next){var $active=this.$element.find(".item.active");var $next=next||$active[type]();var isCycling=this.interval;var direction=type=="next"?"left":"right";var fallback=type=="next"?"first":"last";var that=this;if(!$next.length){if(!this.options.wrap)return;$next=this.$element.find(".item")[fallback]()}this.sliding=true;isCycling&&this.pause();var e=$.Event("slide.bs.carousel",{relatedTarget:$next[0],direction:direction});if($next.hasClass("active"))return;if(this.$indicators.length){this.$indicators.find(".active").removeClass("active");this.$element.one("slid",function(){var $nextIndicator=$(that.$indicators.children()[that.getActiveIndex()]);$nextIndicator&&$nextIndicator.addClass("active")})}if($.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(e);if(e.isDefaultPrevented())return;$next.addClass(type);$next[0].offsetWidth;$active.addClass(direction);$next.addClass(direction);$active.one($.support.transition.end,function(){$next.removeClass([type,direction].join(" ")).addClass("active");$active.removeClass(["active",direction].join(" "));that.sliding=false;setTimeout(function(){that.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{this.$element.trigger(e);if(e.isDefaultPrevented())return;$active.removeClass("active");$next.addClass("active");this.sliding=false;this.$element.trigger("slid")}isCycling&&this.cycle();return this};var old=$.fn.carousel;$.fn.carousel=function(option){return this.each(function(){var $this=$(this);var data=$this.data("bs.carousel");var options=$.extend({},Carousel.DEFAULTS,$this.data(),typeof option=="object"&&option);var action=typeof option=="string"?option:options.slide;if(!data)$this.data("bs.carousel",data=new Carousel(this,options));if(typeof option=="number")data.to(option);else if(action)data[action]();else if(options.interval)data.pause().cycle()})};$.fn.carousel.Constructor=Carousel;$.fn.carousel.noConflict=function(){$.fn.carousel=old;return this};$(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(e){var $this=$(this),href;var $target=$($this.attr("data-target")||(href=$this.attr("href"))&&href.replace(/.*(?=#[^\s]+$)/,""));var options=$.extend({},$target.data(),$this.data());var slideIndex=$this.attr("data-slide-to");if(slideIndex)options.interval=false;$target.carousel(options);if(slideIndex=$this.attr("data-slide-to")){$target.data("bs.carousel").to(slideIndex)}e.preventDefault()});$(window).on("load",function(){$('[data-ride="carousel"]').each(function(){var $carousel=$(this);$carousel.carousel($carousel.data())})})}(jQuery);+function($){"use strict";var Collapse=function(element,options){this.$element=$(element);this.options=$.extend({},Collapse.DEFAULTS,options);this.transitioning=null;if(this.options.parent)this.$parent=$(this.options.parent);if(this.options.toggle)this.toggle()};Collapse.DEFAULTS={toggle:true};Collapse.prototype.dimension=function(){var hasWidth=this.$element.hasClass("width");return hasWidth?"width":"height"};Collapse.prototype.show=function(){if(this.transitioning||this.$element.hasClass("in"))return;var startEvent=$.Event("show.bs.collapse");this.$element.trigger(startEvent);if(startEvent.isDefaultPrevented())return;var actives=this.$parent&&this.$parent.find("> .panel > .in");if(actives&&actives.length){var hasData=actives.data("bs.collapse");if(hasData&&hasData.transitioning)return;actives.collapse("hide");hasData||actives.data("bs.collapse",null)}var dimension=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[dimension](0);this.transitioning=1;var complete=function(){this.$element.removeClass("collapsing").addClass("in")[dimension]("auto");this.transitioning=0;this.$element.trigger("shown.bs.collapse")};if(!$.support.transition)return complete.call(this);var scrollSize=$.camelCase(["scroll",dimension].join("-"));this.$element.one($.support.transition.end,$.proxy(complete,this)).emulateTransitionEnd(350)[dimension](this.$element[0][scrollSize])};Collapse.prototype.hide=function(){if(this.transitioning||!this.$element.hasClass("in"))return;var startEvent=$.Event("hide.bs.collapse");this.$element.trigger(startEvent);if(startEvent.isDefaultPrevented())return;var dimension=this.dimension();this.$element[dimension](this.$element[dimension]())[0].offsetHeight;this.$element.addClass("collapsing").removeClass("collapse").removeClass("in");this.transitioning=1;var complete=function(){this.transitioning=0;this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};if(!$.support.transition)return complete.call(this);this.$element[dimension](0).one($.support.transition.end,$.proxy(complete,this)).emulateTransitionEnd(350)};Collapse.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var old=$.fn.collapse;$.fn.collapse=function(option){return this.each(function(){var $this=$(this);var data=$this.data("bs.collapse");var options=$.extend({},Collapse.DEFAULTS,$this.data(),typeof option=="object"&&option);if(!data)$this.data("bs.collapse",data=new Collapse(this,options));if(typeof option=="string")data[option]()})};$.fn.collapse.Constructor=Collapse;$.fn.collapse.noConflict=function(){$.fn.collapse=old;return this};$(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(e){var $this=$(this),href;var target=$this.attr("data-target")||e.preventDefault()||(href=$this.attr("href"))&&href.replace(/.*(?=#[^\s]+$)/,"");var $target=$(target);var data=$target.data("bs.collapse");var option=data?"toggle":$this.data();var parent=$this.attr("data-parent");var $parent=parent&&$(parent);if(!data||!data.transitioning){if($parent)$parent.find('[data-toggle=collapse][data-parent="'+parent+'"]').not($this).addClass("collapsed");$this[$target.hasClass("in")?"addClass":"removeClass"]("collapsed")}$target.collapse(option)})}(jQuery);+function($){"use strict";var backdrop=".dropdown-backdrop";var toggle="[data-toggle=dropdown]";var Dropdown=function(element){var $el=$(element).on("click.bs.dropdown",this.toggle)};Dropdown.prototype.toggle=function(e){var $this=$(this);if($this.is(".disabled, :disabled"))return;var $parent=getParent($this);var isActive=$parent.hasClass("open");clearMenus();if(!isActive){if("ontouchstart"in document.documentElement&&!$parent.closest(".navbar-nav").length){$('");MarkdownEditor.refreshPreview()}else{setTimeout(function(){setEditorContent(content,true,preview)},200)}}}}function previewIsEmpty(preview){if(!preview||preview.substr(0,previewToken.length)==previewToken){return true}return false}function getEditorContent(isMarkdown){if(!isMarkdown){var editor=tinymce.activeEditor;if(editor){var content=$(editor.getBody());content.find("pinit").remove();content.find(".thunderpin").remove();content.find(".pin").parent().remove();content=$(content).html();if(content){while(true){var lastEndScriptPos=content.lastIndexOf("");if(lastEndScriptPos==-1){return content}var length=content.length;if(length-9==lastEndScriptPos){var lastScriptPos=content.lastIndexOf("");if(lastEndScriptPos==-1){return content}var length=content.length;if(length-9==lastEndScriptPos){var lastScriptPos=content.lastIndexOf("");if(lastEndScriptPos==-1){return content}var length=content.length;if(length-9==lastEndScriptPos){var lastScriptPos=content.lastIndexOf("");if(lastEndScriptPos==-1){return content}var length=content.length;if(length-9==lastEndScriptPos){var lastScriptPos=content.lastIndexOf("\nsnippet scriptsrc\n \nsnippet section\n
      \n ${1}\n
      \nsnippet section.\n
      \n ${2}\n
      \nsnippet section#\n
      \n ${2}\n
      \nsnippet select\n \nsnippet select.\n \nsnippet small\n ${1}\nsnippet source\n \nsnippet span\n ${1}\nsnippet strong\n ${1}\nsnippet style\n \nsnippet sub\n ${1}\nsnippet summary\n \n ${1}\n \nsnippet sup\n ${1}\nsnippet table\n \n ${2}\n
      \nsnippet table.\n \n ${3}\n
      \nsnippet table#\n \n ${3}\n
      \nsnippet tbody\n \n ${1}\n \nsnippet td\n ${1}\nsnippet td.\n ${2}\nsnippet td#\n ${2}\nsnippet td+\n ${1}\n td+${2}\nsnippet textarea\n ${6}\nsnippet tfoot\n \n ${1}\n \nsnippet th\n ${1}\nsnippet th.\n ${2}\nsnippet th#\n ${2}\nsnippet th+\n ${1}\n th+${2}\nsnippet thead\n \n ${1}\n \nsnippet time\n