Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
solo
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
solo
Commits
fb8bcf9e
Commit
fb8bcf9e
authored
Sep 08, 2016
by
Liang Ding
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
发布 - 1.6.0
parent
9326c7ed
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
259 additions
and
236 deletions
+259
-236
CHANGE_LOGS.html
CHANGE_LOGS.html
+6
-0
pom.xml
pom.xml
+2
-2
src/main/java/org/b3log/solo/SoloServletListener.java
src/main/java/org/b3log/solo/SoloServletListener.java
+2
-2
src/main/java/org/b3log/solo/service/UpgradeService.java
src/main/java/org/b3log/solo/service/UpgradeService.java
+2
-2
src/main/webapp/CHANGE_LOGS.html
src/main/webapp/CHANGE_LOGS.html
+6
-0
src/main/webapp/css/default-admin.min.css
src/main/webapp/css/default-admin.min.css
+1
-1
src/main/webapp/css/default-base.min.css
src/main/webapp/css/default-base.min.css
+1
-1
src/main/webapp/js/admin/latkeAdmin.js
src/main/webapp/js/admin/latkeAdmin.js
+88
-195
src/main/webapp/js/admin/latkeAdmin.min.js
src/main/webapp/js/admin/latkeAdmin.min.js
+1
-1
src/main/webapp/skins/mobile/js/l10n.min.js
src/main/webapp/skins/mobile/js/l10n.min.js
+15
-0
src/main/webapp/skins/next/css/next.css
src/main/webapp/skins/next/css/next.css
+59
-23
src/main/webapp/skins/next/footer.ftl
src/main/webapp/skins/next/footer.ftl
+4
-2
src/main/webapp/skins/next/js/next.js
src/main/webapp/skins/next/js/next.js
+50
-4
src/main/webapp/skins/next/js/next.min.js
src/main/webapp/skins/next/js/next.min.js
+16
-1
src/main/webapp/skins/next/lang/lang_en_US.properties
src/main/webapp/skins/next/lang/lang_en_US.properties
+3
-1
src/main/webapp/skins/next/lang/lang_zh_CN.properties
src/main/webapp/skins/next/lang/lang_zh_CN.properties
+3
-1
No files found.
CHANGE_LOGS.html
View file @
fb8bcf9e
...
...
@@ -5,6 +5,12 @@
<meta
http-equiv=
"Content-Type"
content=
"text/html; charset=UTF-8"
>
</head>
<body>
<h2>
Release 1.6.0 - Sep 8, 2016
</h2>
<ul>
<li><a
href=
"https://github.com/b3log/solo/issues/12147"
>
12147 用户管理翻页失败
</a>
<span
style=
'background: #fc2929 !important;color:#FFFFFF !important;padding: 1px 4px;'
>
bug
</span></li>
<li><a
href=
"https://github.com/b3log/solo/issues/12153"
>
12153 语言设置为 English 时首页报错
</a>
<span
style=
'background: #fc2929 !important;color:#FFFFFF !important;padding: 1px 4px;'
>
bug
</span></li>
<li><a
href=
"https://github.com/b3log/solo/issues/12150"
>
12150 新版后台 UI
</a>
<span
style=
'background: #84b6eb !important;color:#FFFFFF !important;padding: 1px 4px;'
>
enhancement
</span></li>
</ul>
<h2>
Release 1.5.0 - Aug 10, 2016
</h2>
<ul>
<li><a
href=
"https://github.com/b3log/solo/issues/12130"
>
12130 MySQL 数据导出 SQL 文件
</a>
<span
style=
'background: #02e10c !important;color:#FFFFFF !important;padding: 1px 4px;'
>
feature
</span></li>
...
...
pom.xml
View file @
fb8bcf9e
<?xml version="1.0" encoding="UTF-8"?>
<!--
Description: Solo POM.
Version: 3.1
3.1.25, Aug 19
, 2016
Version: 3.1
4.1.25, Sep 8
, 2016
Author: <a href="http://88250.b3log.org">Liang Ding</a>
Author: <a href="http://www.annpeter.cn">Ann Peter</a>
-->
...
...
@@ -13,7 +13,7 @@
<artifactId>
solo
</artifactId>
<packaging>
war
</packaging>
<name>
Solo
</name>
<version>
1.
5
.0
</version>
<version>
1.
6
.0
</version>
<description>
A blogging system written in Java, feel free to create your or your team own blog. 一个用 Java 实现的博客系统,为你或你的团队创建个博客吧。
</description>
...
...
src/main/java/org/b3log/solo/SoloServletListener.java
View file @
fb8bcf9e
...
...
@@ -60,7 +60,7 @@ import org.json.JSONObject;
* Solo Servlet listener.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.
8.2.15, Aug 10
, 2016
* @version 1.
9.2.15, Sep 8
, 2016
* @since 0.3.1
*/
public
final
class
SoloServletListener
extends
AbstractServletListener
{
...
...
@@ -68,7 +68,7 @@ public final class SoloServletListener extends AbstractServletListener {
/**
* Solo version.
*/
public
static
final
String
VERSION
=
"1.
5
.0"
;
public
static
final
String
VERSION
=
"1.
6
.0"
;
/**
* Logger.
...
...
src/main/java/org/b3log/solo/service/UpgradeService.java
View file @
fb8bcf9e
...
...
@@ -46,7 +46,7 @@ import org.json.JSONObject;
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @author <a href="mailto:dongxu.wang@acm.org">Dongxu Wang</a>
* @version 1.2.0.
6, Aug 10
, 2016
* @version 1.2.0.
7, Sep 8
, 2016
* @since 1.2.0
*/
@Service
...
...
@@ -111,7 +111,7 @@ public class UpgradeService {
/**
* Old version.
*/
private
static
final
String
FROM_VER
=
"1.
4
.0"
;
private
static
final
String
FROM_VER
=
"1.
5
.0"
;
/**
* New version.
...
...
src/main/webapp/CHANGE_LOGS.html
View file @
fb8bcf9e
...
...
@@ -5,6 +5,12 @@
<meta
http-equiv=
"Content-Type"
content=
"text/html; charset=UTF-8"
>
</head>
<body>
<h2>
Release 1.6.0 - Sep 8, 2016
</h2>
<ul>
<li><a
href=
"https://github.com/b3log/solo/issues/12147"
>
12147 用户管理翻页失败
</a>
<span
style=
'background: #fc2929 !important;color:#FFFFFF !important;padding: 1px 4px;'
>
bug
</span></li>
<li><a
href=
"https://github.com/b3log/solo/issues/12153"
>
12153 语言设置为 English 时首页报错
</a>
<span
style=
'background: #fc2929 !important;color:#FFFFFF !important;padding: 1px 4px;'
>
bug
</span></li>
<li><a
href=
"https://github.com/b3log/solo/issues/12150"
>
12150 新版后台 UI
</a>
<span
style=
'background: #84b6eb !important;color:#FFFFFF !important;padding: 1px 4px;'
>
enhancement
</span></li>
</ul>
<h2>
Release 1.5.0 - Aug 10, 2016
</h2>
<ul>
<li><a
href=
"https://github.com/b3log/solo/issues/12130"
>
12130 MySQL 数据导出 SQL 文件
</a>
<span
style=
'background: #02e10c !important;color:#FFFFFF !important;padding: 1px 4px;'
>
feature
</span></li>
...
...
src/main/webapp/css/default-admin.min.css
View file @
fb8bcf9e
...
...
@@ -13,4 +13,4 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
body
,
input
,
textarea
{
font-family
:
'sans-serif'
,
'\5fae\8f6f\96c5\9ed1'
}
html
,
body
{
height
:
100%
;
min-width
:
1024px
;
background-color
:
#fafafa
}
a
:link
{
color
:
#21759b
}
a
:visited
{
color
:
#551a8b
}
a
:active
{
color
:
#d54121
}
a
:hover
{
color
:
#d54121
}
button
.selected
{
background
:
url("../images/bowknot/completed.png")
no-repeat
scroll
right
bottom
transparent
;
color
:
#d54121
}
.ico-arrow-down
,
.ico-arrow-up
{
background
:
url("../images/arrows.png")
repeat
scroll
0
4px
transparent
;
float
:
right
;
height
:
20px
;
margin
:
2px
3px
0
0
;
width
:
18px
}
.ico-arrow-up
{
background-position
:
0
-30px
}
.aboutIcon
{
background-position
:
-16px
-48px
}
#allPanel
{
height
:
auto
;
min-height
:
100%
;
position
:
relative
}
#tabsPanel
{
margin
:
30px
0
0
162px
;
padding
:
0
12px
}
#tabsPanel
>
div
{
padding-bottom
:
36px
}
.tip
{
font-weight
:
bold
;
margin
:
0
auto
;
overflow
:
hidden
;
padding
:
2px
0
;
position
:
fixed
;
text-align
:
center
;
top
:
5px
;
width
:
100%
;
z-index
:
2
}
.tip-msg
{
top
:
33px
}
#tipMsg
,
#loadMsg
{
background-color
:
#e5e7eb
;
border-radius
:
3px
;
padding
:
2px
0
}
.footer
{
bottom
:
12px
;
position
:
absolute
;
text-align
:
center
;
width
:
100%
}
#top
{
background-color
:
#666
;
background-image
:
linear-gradient
(
#666
,
#7f7f7f
);
background-image
:
-ms-linear-gradient
(
#666
,
#7f7f7f
);
background-image
:
-o-linear-gradient
(
#666
,
#7f7f7f
);
background-image
:
-webkit-linear-gradient
(
#666
,
#7f7f7f
);
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
GradientType
=
0
,
startColorstr
=
'#666666'
,
endColorstr
=
'#7F7F7F'
)}
#top
a
,
#top
span
span
{
float
:
left
;
line-height
:
18px
;
margin
:
6px
0
;
padding
:
0
6px
;
text-decoration
:
none
;
text-shadow
:
0
-1px
0
#fff
;
font-weight
:
normal
;
border-right
:
1px
solid
#686868
;
color
:
#ccc
;
text-shadow
:
0
-1px
0
#555
}
#top
>
a
{
color
:
#fff
}
#top
a
:hover
,
#top
a
.hover
{
border-radius
:
0
13px
13px
0
;
margin
:
0
;
line-height
:
30px
;
background-color
:
#4c4c4c
;
border-left-color
:
#707070
}
#tabs
{
background-color
:
#ececec
;
border-radius
:
0
5px
5px
0
;
border-right
:
1px
solid
#CCC
;
border-top
:
1px
solid
#DDD
;
bottom
:
0
;
box-shadow
:
6px
0
6px
#ececec
;
min-height
:
468px
;
padding
:
15px
0
;
position
:
absolute
;
top
:
58px
;
width
:
145px
}
#tabs
ul
{
list-style
:
none
}
#tabs
li
{
margin-left
:
0
}
#tabs
a
,
#tabs
>
ul
>
li
>
div
{
color
:
#21759b
;
display
:
block
;
text-decoration
:
none
;
cursor
:
pointer
;
letter-spacing
:
1px
}
#tabs
a
:hover
,
#tabs
>
ul
>
li
>
div
:hover
{
color
:
#d54121
}
#tabs
>
ul
>
li
>
div
{
border-bottom
:
1px
solid
#dfdfdf
;
border-top
:
1px
solid
#f9f9f9
;
font-weight
:
bold
;
padding-left
:
12px
;
line-height
:
30px
;
height
:
30px
}
#tabs
>
ul
>
li
>
div
>
a
.tab-current
{
background-color
:
#777
;
border-bottom
:
1px
solid
#6d6d6d
;
border-top
:
1px
solid
#808080
;
color
:
#fff
;
margin-left
:
-12px
;
padding-left
:
12px
;
text-shadow
:
0
-1px
0
#333
}
#tabs
li
li
a
{
background-color
:
#fff
;
padding-left
:
36px
;
line-height
:
28px
;
height
:
28px
}
#tabs
.tab-current
{
background-color
:
#eaf2fa
;
color
:
#333
;
font-weight
:
bold
}
#tabs
li
li
a
:hover
{
background-color
:
#eaf2fa
;
color
:
#333
}
#tabs
.commentIcon
,
#tabs
.postIcon
,
#tabs
.preferenceIcon
,
#tabs
.usersIcon
,
#tabs
.aboutIcon
{
margin
:
6px
9px
0
0
}
.sub-tabs
{
height
:
30px
}
.sub-tabs
ul
{
float
:
right
;
list-style
:
none
outside
none
;
margin-right
:
24px
}
.sub-tabs
li
{
float
:
left
}
.sub-tabs
li
a
{
background-color
:
#ececec
;
border
:
1px
solid
#dfdfdf
;
border-bottom
:
0
;
border-radius
:
5px
5px
0
0
;
color
:
#333
;
display
:
block
;
line-height
:
29px
;
padding
:
0
12px
;
text-decoration
:
none
}
.sub-tabs
.tab-current
,
.sub-tabs
.tab-current
:hover
{
background-color
:
#fff
;
font-weight
:
bold
;
line-height
:
30px
}
.sub-tabs
a
:hover
{
background-color
:
#f5f5f5
}
.sub-tabs-main
{
background-color
:
#fff
;
border
:
1px
solid
#dfdfdf
;
padding
:
12px
;
border-radius
:
6px
}
.form
>
div
{
margin
:
12px
0
}
.form
>
div
label
{
font-weight
:
bold
;
line-height
:
28px
;
margin-right
:
12px
}
.module-panel
{
border
:
1px
solid
#dfdfdf
;
border-radius
:
3px
3px
3px
3px
;
box-shadow
:
0
1px
0
#fff
inset
;
background-color
:
#f5f5f5
;
margin-bottom
:
36px
;
min-height
:
160px
}
.module-header
{
background-color
:
#f9f9f9
;
background-image
:
linear-gradient
(
#f9f9f9
,
#ececec
);
background-image
:
-ms-linear-gradient
(
#f9f9f9
,
#ececec
);
background-image
:
-o-linear-gradient
(
#f9f9f9
,
#ececec
);
background-image
:
-webkit-linear-gradient
(
#f9f9f9
,
#ececec
);
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
GradientType
=
0
,
startColorstr
=
'#f9f9f9'
,
endColorstr
=
'#ececec'
);
border-bottom-color
:
#dfdfdf
;
box-shadow
:
0
1px
0
#fff
;
text-shadow
:
0
1px
0
#fff
;
padding
:
5px
10px
}
.module-header
h2
{
color
:
#464646
;
font-size
:
16px
}
.module-header
a
{
text-decoration
:
none
}
.comment-title
{
background-color
:
#ececec
;
border-bottom
:
1px
solid
#dfdfdf
;
border-top
:
1px
solid
#f9f9f9
;
padding
:
3px
6px
3px
12px
}
#comments
{
height
:
462px
;
overflow
:
auto
}
.markdown-preivew
{
background-color
:
#fff
;
background-image
:
linear-gradient
(
#fff
,
#f3f3f3
);
background-image
:
-ms-linear-gradient
(
#fff
,
#f3f3f3
);
background-image
:
-o-linear-gradient
(
#fff
,
#f3f3f3
);
background-image
:
-webkit-linear-gradient
(
#fff
,
#f3f3f3
);
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
GradientType
=
0
,
startColorstr
=
'#FFFFFF'
,
endColorstr
=
'#F3F3F3'
);
border-color
:
#c0c0c0
#D9D9D9
#d9d9d9
;
border-style
:
solid
;
border-width
:
1px
;
float
:
left
;
height
:
500px
;
margin-left
:
20px
;
overflow
:
auto
;
width
:
47%
;
word-wrap
:
break-word
}
.markdown-help.ico-help
,
.markdown-help.ico-close
{
background-image
:
url("../images/icon.png")
;
background-position
:
-16px
-47px
;
cursor
:
pointer
;
float
:
right
;
height
:
17px
;
width
:
17px
}
.markdown-help.ico-close
{
height
:
16px
;
background-position
:
-48px
-16px
}
.markdown-help-main
,
.markdown-preview-main
{
color
:
#21759b
;
padding
:
0
12px
}
.markdown-help-main
dt
{
font-size
:
14px
;
font-weight
:
bold
;
margin
:
12px
0
6px
0
}
.markdown-help-main
dd
{
margin-left
:
12px
}
button
#submitArticle
{
background
:
none
repeat
scroll
0
0
#d54121
;
box-shadow
:
0
0
0
1px
#fff
inset
,
0
1px
1px
rgba
(
0
,
0
,
0
,
0.1
);
text-shadow
:
0
1px
rgba
(
0
,
0
,
0
,
0.1
);
color
:
#FFF
}
#skinsPanel
{
min-width
:
328px
;
width
:
99%
}
.skinPreview
{
cursor
:
pointer
;
height
:
160px
;
margin
:
6px
;
width
:
280px
}
.skinItem
{
background-color
:
#fafafa
;
border-radius
:
3px
;
box-shadow
:
1px
1px
3px
#333
;
line-height
:
16px
;
margin
:
24px
12px
;
padding
:
5px
;
text-align
:
center
}
#skinMain
.skinItem.selected
{
background-color
:
#d54121
}
.skinItem
:hover
{
background-color
:
#EEE
}
.f-blue
,
.error-msg
{
color
:
#36c
}
.signs
button
{
margin
:
0
12px
}
.small-head
{
float
:
left
;
height
:
35px
;
margin
:
3px
9px
0
3px
;
width
:
35px
}
#commentTable
.table-main
td
{
vertical-align
:
top
}
.about-logo
{
float
:
left
;
margin
:
62px
36px
62px
24px
}
.about-margin
{
font-size
:
20px
;
margin
:
20px
0
}
.ico-alipay-me
{
background-image
:
url("../images/alipay-me.png")
;
font-size
:
20px
;
height
:
24px
;
margin
:
20px
0
;
width
:
126px
}
.completed-input
{
margin
:
2px
12px
0
0
}
.completed-panel
{
background-color
:
#ececec
;
border
:
1px
solid
#ccc
;
color
:
#00c
;
display
:
none
;
overflow
:
auto
;
padding
:
2px
;
position
:
absolute
;
z-index
:
10
}
.completed-panel
a
{
display
:
block
;
text-decoration
:
none
}
.completed-panel
a
.selected
{
background-color
:
#fff
;
color
:
#d54121
}
.completed-ck
{
margin-top
:
9px
}
.completed-ck
span
{
background
:
url(../images/icon.png)
repeat
center
bottom
;
border
:
1px
solid
;
border-color
:
#CCc
#bbb
#A0A0A0
;
border-radius
:
4px
;
color
:
#21759b
;
cursor
:
pointer
;
float
:
left
;
height
:
28px
;
line-height
:
26px
;
margin
:
3px
6px
;
padding
:
0
6px
;
vertical-align
:
top
}
.completed-ck
span
:hover
{
border-color
:
#BBB
}
.completed-ck
span
.selected
{
color
:
#d54121
;
background
:
url(../images/bowknot/completed.png)
no-repeat
right
bottom
}
.dialog-background
{
background-color
:
#000
;
display
:
none
;
filter
:
alpha
(
opacity
=
30
);
height
:
100%
;
left
:
0
;
opacity
:
.3
;
position
:
absolute
;
top
:
0
;
width
:
100%
;
z-index
:
90
}
.dialog-panel
{
display
:
none
;
position
:
absolute
;
z-index
:
100
}
.dialog-title
{
color
:
#fff
;
float
:
left
;
font-size
:
12px
;
line-height
:
27px
;
margin-left
:
3px
}
.dialog-header-bg
{
background
:
url("../images/icon.png")
repeat
scroll
center
bottom
#f1f1f1
;
border-color
:
#c0c0c0
#D9D9D9
#d9d9d9
;
border-radius
:
6px
6px
0
0
;
border-style
:
solid
;
border-width
:
1px
1px
0
;
cursor
:
move
;
height
:
34px
}
.dialog-close-icon
{
background
:
url("../images/bowknot/dialog-close.png")
no-repeat
scroll
0
0
transparent
;
cursor
:
pointer
;
float
:
right
;
height
:
18px
;
margin-top
:
6px
;
padding
:
3px
;
width
:
22px
}
.dialog-close-icon
:hover
{
background-image
:
url("../images/bowknot/dialog-close-hover.png")
}
.dialog-main
{
background-color
:
#fff
;
border
:
2px
solid
#666
;
border-color
:
#c0c0c0
#D9D9D9
#d9d9d9
;
border-top-width
:
0
;
padding
:
12px
}
.paginate-paginate
div
,
.paginate-paginate
a
,
.paginate-pageCount
{
float
:
left
;
height
:
20px
;
line-height
:
20px
;
margin
:
0
5px
;
text-decoration
:
none
}
.pagination-pages
{
background
:
url(../images/icon.png)
repeat
center
bottom
;
border
:
1px
solid
;
border-color
:
#CCc
#bbb
#A0A0A0
;
border-radius
:
4px
;
padding
:
0
6px
;
cursor
:
pointer
;
float
:
left
;
height
:
20px
;
line-height
:
20px
;
margin
:
0
5px
}
.pagination-current-page
{
cursor
:
auto
;
font-weight
:
bold
;
border-color
:
#BBB
}
.paginate-inputPage
{
height
:
14px
;
width
:
24px
}
.table-main
{
margin
:
0
;
padding
:
0
;
position
:
relative
}
.table-main
table
{
word-break
:
break-all
;
word-wrap
:
break-word
}
.table-header
{
border
:
1px
solid
#d0d0d0
;
border-bottom
:
0
;
border-radius
:
6px
6px
0
0
}
.table-header
th
{
height
:
34px
;
line-height
:
34px
;
text-align
:
left
;
text-indent
:
6px
;
font-size
:
14px
;
font-weight
:
normal
;
background
:
url("../images/icon.png")
repeat
scroll
center
bottom
#f1f1f1
}
.table-main
td
{
border-bottom
:
1px
solid
#d0d0d0
;
color
:
#333
;
padding
:
3px
0
}
.table-lineHover
.table-hasExpend
td
{
border-bottom
:
0
}
.table-heiglight
td
,
.table-lineHover
td
{
background-color
:
#f3f3f3
;
border-right-color
:
#f3f3f3
}
.table-expendRow
td
{
padding
:
0
0
5px
36px
}
.table-expendRow
td
span
{
margin-left
:
60px
}
.table-expendRow
td
a
{
background-color
:
#999
;
border-radius
:
3px
;
color
:
#FFF
;
font-size
:
12px
;
margin-right
:
5px
;
padding
:
1px
6px
;
text-decoration
:
none
}
.table-expendRow
td
a
:hover
{
background-color
:
#BBB
}
.table-center
{
margin
:
0
auto
}
.table-upIcon
,
.table-downIcon
{
background-image
:
url("../images/icon.png")
;
cursor
:
pointer
;
float
:
left
;
height
:
16px
;
width
:
16px
;
background-position
:
-81px
-32px
}
.table-upIcon
{
background-position
:
-64px
-32px
;
margin-right
:
6px
}
.table-tag
{
color
:
#d54121
;
font-size
:
12px
;
font-style
:
italic
;
margin-left
:
10px
}
.tip-panel
{
background-color
:
#FFF
;
box-shadow
:
0
3px
10px
#8b8b8b
;
display
:
none
;
max-height
:
500px
;
max-width
:
500px
;
overflow
:
hidden
;
padding
:
3px
;
position
:
absolute
;
z-index
:
1
}
\ No newline at end of file
body
,
input
,
textarea
{
font-family
:
"Helvetica Neue"
,
"Luxi Sans"
,
"DejaVu Sans"
,
Tahoma
,
"Hiragino Sans GB"
,
"Microsoft Yahei"
,
sans-serif
}
html
,
body
{
min-width
:
1024px
;
color
:
#767676
;
background
:
#f1f2f7
;
font-size
:
13px
}
a
{
color
:
#4183c4
;
text-decoration
:
none
}
a
:visited
{
color
:
#7ba9d6
}
a
:active
{
color
:
#2c5d8d
}
a
:hover
{
text-decoration
:
underline
}
button
.selected
{
background
:
url("../images/bowknot/completed.png")
no-repeat
scroll
right
bottom
transparent
!important
;
color
:
#d54121
!important
;
border-color
:
#b0b5b9
!important
}
@font-face
{
font-family
:
'icomoon'
;
src
:
url('fonts/icomoon.eot?1450')
;
src
:
url('fonts/icomoon.eot?#iefix')
format
(
'embedded-opentype'
),
url('fonts/icomoon.ttf?1450')
format
(
'truetype'
),
url('fonts/icomoon.woff?1450')
format
(
'woff'
),
url('fonts/icomoon.svg#icomoon')
format
(
'svg'
);
font-weight
:
normal
;
font-style
:
normal
}
[
class
^=
"icon-"
],[
class
*=
" icon-"
]
{
font-family
:
'icomoon'
;
speak
:
none
;
font-style
:
normal
;
font-weight
:
normal
;
font-variant
:
normal
;
text-transform
:
none
;
line-height
:
1
;
-webkit-font-smoothing
:
antialiased
;
-moz-osx-font-smoothing
:
grayscale
}
a
[
class
^=
"icon-"
],
a
[
class
*=
" icon-"
]
{
color
:
#333
}
a
[
class
^=
"icon-"
]
:hover
,
a
[
class
*=
" icon-"
]
:hover
{
text-decoration
:
none
;
color
:
#4183c4
}
.icon-upload
:before
{
content
:
"\f0ee"
}
.icon-copy
:before
{
content
:
"\e908"
}
.icon-time
:before
{
content
:
"\e906"
}
.icon-sortasc
:before
{
content
:
"\e905"
}
.icon-locked
:before
{
content
:
"\e61e"
}
.icon-close
:before
{
content
:
"\e909"
}
.icon-points
:before
{
content
:
"\e900"
}
.icon-goods
:before
{
content
:
"\e904"
}
.icon-bold
:before
{
content
:
"\e000"
}
.icon-italic
:before
{
content
:
"\e001"
}
.icon-quote
:before
{
content
:
"\e003"
}
.icon-unordered-list
:before
{
content
:
"\e004"
}
.icon-ordered-list
:before
{
content
:
"\e005"
}
.icon-link
:before
{
content
:
"\e006"
}
.icon-image
:before
{
content
:
"\e007"
}
.icon-play
:before
{
content
:
"\e008"
}
.icon-music
:before
{
content
:
"\e009"
}
.icon-contract
:before
{
content
:
"\e00a"
}
.icon-fullscreen
:before
{
content
:
"\e00b"
}
.icon-question
:before
{
content
:
"\e00c"
}
.icon-info
:before
{
content
:
"\e00d"
}
.icon-undo
:before
{
content
:
"\e00e"
}
.icon-redo
:before
{
content
:
"\e00f"
}
.icon-code
:before
{
content
:
"\e011"
}
.icon-preview
:before
{
content
:
"\e002"
}
.icon-navigation
:before
{
content
:
"\e903"
}
.icon-thumbs-down
:before
{
content
:
"\e901"
}
.icon-thumbs-up
:before
{
content
:
"\e902"
}
.icon-video
:before
{
content
:
"\f057"
}
.icon-feed
:before
{
content
:
"\e61f"
}
.icon-article
:before
{
content
:
"\e61d"
}
.icon-star
:before
{
content
:
"\e600"
}
.icon-register
:before
{
content
:
"\e602"
}
.icon-logout
:before
{
content
:
"\e603"
}
.icon-setting
:before
{
content
:
"\e604"
}
.icon-google
:before
{
content
:
"\e605"
}
.icon-search
:before
{
content
:
"\e606"
}
.icon-weibo
:before
{
content
:
"\e607"
}
.icon-date
:before
{
content
:
"\e608"
}
.icon-view
:before
{
content
:
"\e609"
}
.icon-cmts
:before
{
content
:
"\e60a"
}
.icon-refresh
:before
{
content
:
"\e60b"
}
.icon-up
:before
{
content
:
"\e60c"
}
.icon-twitter
:before
{
content
:
"\e60d"
}
.icon-edit
:before
{
content
:
"\e60e"
}
.icon-tencent
:before
{
content
:
"\e60f"
}
.icon-tag
:before
{
content
:
"\e610"
}
.icon-tags
:before
{
content
:
"\e611"
}
.icon-addfile
:before
{
content
:
"\e612"
}
.icon-login
:before
{
content
:
"\e613"
}
.icon-articles
:before
{
content
:
"\e614"
}
.icon-userrole
:before
{
content
:
"\e615"
}
.icon-email
:before
{
content
:
"\e616"
}
.icon-flag
:before
{
content
:
"\e617"
}
.icon-chevron-down
:before
{
content
:
"\e618"
;
margin-right
:
10px
}
.icon-chevron-up
:before
{
content
:
"\e619"
;
margin-right
:
10px
}
.icon-reply
:before
{
content
:
"\e61a"
}
.icon-clock
:before
{
content
:
"\e61b"
}
.icon-compass
:before
{
content
:
"\e61c"
}
.icon-heart
:before
{
content
:
"\e9da"
}
.icon-wechat
:before
{
content
:
"\e907"
}
.aboutIcon
{
background-position
:
-16px
-48px
}
#allPanel
{
height
:
auto
;
min-height
:
100%
;
position
:
relative
}
#tabsPanel
{
margin
:
50px
0
0
240px
;
padding
:
15px
}
#tabsPanel
>
div
{
padding-bottom
:
36px
}
#tabsPanel_article-list
,
#tabsPanel_draft-list
,
#tabsPanel_comment-list
,
#tabsPanel_plugin-list
,
#tabsPanel_page-list
>
div
:first-child
,
#tabsPanel_user-list
>
div
:first-child
,
#tabsPanel_link-list
>
div
:first-child
{
background-color
:
#FFF
;
border-radius
:
4px
;
margin-bottom
:
40px
;
overflow
:
hidden
}
.tip
{
font-weight
:
bold
;
margin
:
0
auto
;
overflow
:
hidden
;
padding
:
2px
0
;
position
:
fixed
;
text-align
:
center
;
top
:
3px
;
left
:
255px
;
z-index
:
1001
}
#tipMsg
,
#loadMsg
{
color
:
#31708f
;
background-color
:
#d9edf7
;
border-radius
:
4px
;
line-height
:
40px
;
display
:
inline-block
}
.footer
{
bottom
:
12px
;
position
:
absolute
;
text-align
:
center
;
width
:
100%
;
padding-left
:
240px
;
box-sizing
:
border-box
}
#top
{
height
:
50px
;
position
:
fixed
;
box-shadow
:
1px
0
3px
rgba
(
0
,
0
,
0
,
.15
);
width
:
100%
;
top
:
0
;
background-color
:
#fff
;
z-index
:
1000
}
#top
>
a
{
background
:
#1fb5ad
;
float
:
left
;
width
:
240px
;
height
:
50px
;
position
:
relative
;
color
:
#f7f7f7
;
text-align
:
center
;
text-decoration
:
none
;
font-size
:
20px
;
line-height
:
50px
}
#top
>
.right
a
{
color
:
#555
;
line-height
:
50px
;
margin
:
0
10px
;
border
:
1px
solid
#f6f6f6
;
background-color
:
#f6f6f6
;
border-radius
:
100px
;
padding
:
10px
;
text-decoration
:
none
}
#top
>
.right
a
:hover
{
color
:
#333
}
#tabs
{
height
:
100%
;
min-height
:
468px
;
width
:
240px
;
margin-top
:
50px
;
position
:
fixed
;
top
:
0
;
background-color
:
#32323a
;
overflow
:
auto
}
#tabs
ul
{
list-style
:
none
}
#tabs
li
{
margin-left
:
0
;
border-bottom
:
1px
solid
rgba
(
255
,
255
,
255
,
0.05
)}
#tabs
li
>
div
>
a
,
#tabs
#tabToolsTitle
,
#tabs
#tabArticleTitle
{
color
:
#aeb2b7
;
display
:
block
;
text-decoration
:
none
;
letter-spacing
:
1px
;
padding
:
18px
0
18px
25px
;
line-height
:
18px
;
height
:
18px
;
transition
:
all
.3s
ease
}
#tabs
a
:hover
,
#tabs
a
.tab-current
,
#tabs
#tabToolsTitle
.tab-current
,
#tabs
#tabArticleTitle
.tab-current
,
#tabs
#tabToolsTitle
:hover
,
#tabs
#tabArticleTitle
:hover
{
background-color
:
#28282e
;
color
:
#1fb5ad
}
#tabs
li
li
{
border-bottom
:
0
}
#tabs
li
li
>
div
>
a
{
padding
:
13px
0
13px
46px
;
line-height
:
15px
;
height
:
15px
;
background-color
:
#28282e
}
#tabs
li
li
>
div
>
a
:hover
,
#tabs
li
li
>
div
>
a
.tab-current
{
background-color
:
#202025
}
#tabs
.commentIcon
,
#tabs
.postIcon
,
#tabs
.preferenceIcon
,
#tabs
.usersIcon
,
#tabs
.aboutIcon
{
display
:
none
}
.sub-tabs
{
background-color
:
#e0e1e7
;
border-radius
:
4px
4px
0
0
;
overflow
:
hidden
}
.sub-tabs
ul
{
float
:
left
;
list-style
:
none
outside
none
;
margin-right
:
24px
}
.sub-tabs
li
{
float
:
left
;
margin
:
0
}
.sub-tabs
li
a
{
border-right
:
1px
solid
#e0e1e7
;
color
:
#898989
;
display
:
block
;
line-height
:
18px
;
padding
:
20px
15px
;
text-decoration
:
none
}
.sub-tabs
.tab-current
,
.sub-tabs
.tab-current
:hover
,
.sub-tabs
a
:hover
{
background-color
:
#fff
;
color
:
#1fb5ad
}
.sub-tabs-main
{
background-color
:
#fff
;
padding
:
15px
;
border-radius
:
0
0
4px
4px
}
.form
>
div
{
margin
:
15px
0
}
.form
label
{
margin-bottom
:
10px
;
display
:
inline-block
}
.form
input
[
type
=
'text'
],
.form
input
[
type
=
'password'
],
.form
textarea
{
font-size
:
14px
;
outline
:
medium
none
;
width
:
100%
;
padding
:
6px
12px
;
height
:
34px
;
box-sizing
:
border-box
;
border
:
1px
solid
#e2e2e4
;
color
:
#333
;
border-radius
:
4px
;
transition
:
border-color
ease-in-out
.15s
,
box-shadow
ease-in-out
.15s
}
.form
textarea
{
height
:
auto
}
.form
input
[
type
=
'text'
]
:focus
,
.form
input
[
type
=
'password'
]
:focus
,
.form
textarea
:focus
{
box-shadow
:
none
;
border-color
:
#1fb5ad
}
.form
button
,
.completed-ck
span
{
padding
:
6px
12px
;
margin-bottom
:
0
;
font-size
:
14px
;
font-weight
:
400
;
text-align
:
center
;
white-space
:
nowrap
;
vertical-align
:
middle
;
cursor
:
pointer
;
user-select
:
none
;
background-image
:
none
;
border
:
1px
solid
#1fb5ad
;
border-radius
:
4px
;
background-color
:
#1fb5ad
;
color
:
#fff
;
height
:
auto
;
outline
:
0
}
.form
button
:hover
{
background-color
:
#1ca59e
;
border-color
:
#1ca59e
}
.module-panel
{
border-radius
:
4px
;
background-color
:
#fff
;
margin-bottom
:
20px
;
min-height
:
160px
}
.module-header
{
background
:
#fafafa
;
padding
:
15px
;
border-bottom
:
1px
solid
#eff2f7
;
border-top-left-radius
:
3px
;
border-top-right-radius
:
3px
}
.module-header
h2
{
font-size
:
13px
;
font-weight
:
400
}
.module-header
a
{
color
:
#767676
;
text-decoration
:
none
}
.module-header
a
:hover
{
color
:
#1fb5ad
}
.module-panel
.module-body
{
padding
:
15px
}
.module-panel
.module-body
li
{
padding
:
10px
;
line-height
:
18px
;
border-bottom
:
1px
solid
#ddd
}
.module-panel
.module-body
li
:hover
{
background-color
:
#f5f5f5
}
.module-panel
.module-body
li
a
:hover
{
text-decoration
:
none
}
.comment-title
{
background-color
:
#ececec
;
border-bottom
:
1px
solid
#dfdfdf
;
border-top
:
1px
solid
#f9f9f9
;
padding
:
3px
6px
3px
12px
}
#comments
{
height
:
462px
;
overflow
:
auto
}
button
#submitArticle
,
#unSubmitArticle
{
background-color
:
#fa8564
;
border-color
:
#fa8564
}
button
#submitArticle
:hover
,
#unSubmitArticle
:hover
{
background-color
:
#ec6459
;
border-color
:
#ec6459
}
.CodeMirror
{
border-radius
:
0
0
3px
3px
;
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.075
)
inset
;
border
:
1px
solid
#ccc
;
margin-bottom
:
20px
;
border-top-width
:
0
;
height
:
470px
}
.comment-content
.CodeMirror
{
height
:
170px
}
#skinsPanel
{
min-width
:
328px
;
width
:
99%
}
.skinPreview
{
cursor
:
pointer
;
height
:
160px
;
margin
:
6px
;
width
:
280px
}
.skinItem
{
background-color
:
#fafafa
;
border-radius
:
3px
;
box-shadow
:
1px
1px
3px
#333
;
line-height
:
16px
;
margin
:
24px
12px
;
padding
:
5px
;
text-align
:
center
}
#skinMain
.skinItem.selected
{
background-color
:
#1fb5ad
}
.skinItem
:hover
{
background-color
:
#EEE
}
.f-blue
,
.error-msg
{
color
:
#36c
}
.signs
button
{
margin
:
0
12px
}
#keyOfSolo
{
width
:
200px
}
.small-head
{
float
:
left
;
height
:
35px
;
margin
:
3px
9px
0
3px
;
width
:
35px
}
#commentTable
.table-main
td
{
vertical-align
:
top
}
.about-logo
{
float
:
left
;
margin
:
62px
36px
62px
24px
}
.about-margin
{
font-size
:
20px
;
margin
:
20px
0
}
.ico-alipay-me
{
background-image
:
url("../images/alipay-me.png")
;
font-size
:
20px
;
height
:
24px
;
margin
:
20px
0
;
width
:
126px
}
.completed-input
{
margin
:
2px
12px
0
0
}
.completed-panel
{
background-color
:
#ececec
;
border
:
1px
solid
#ccc
;
color
:
#00c
;
display
:
none
;
overflow
:
auto
;
padding
:
2px
;
position
:
absolute
;
z-index
:
10
}
.completed-panel
a
{
display
:
block
;
text-decoration
:
none
}
.completed-panel
a
.selected
{
background-color
:
#fff
;
color
:
#d54121
}
.completed-ck
{
margin-top
:
9px
}
.completed-ck
span
{
margin
:
5px
10px
5px
0
;
display
:
inline-block
;
background-color
:
#c7cbd6
;
border-color
:
#c7cbd6
}
.completed-ck
span
:hover
{
background-color
:
#b0b5b9
;
border-color
:
#b0b5b9
}
.completed-ck
span
.selected
{
color
:
#d54121
;
background
:
url(../images/bowknot/completed.png)
no-repeat
right
bottom
}
.dialog-background
{
background-color
:
#000
;
display
:
none
;
filter
:
alpha
(
opacity
=
30
);
height
:
100%
;
left
:
0
;
opacity
:
.3
;
position
:
absolute
;
top
:
0
;
width
:
100%
;
z-index
:
90
}
.dialog-panel
{
display
:
none
;
position
:
absolute
;
z-index
:
100
}
.dialog-title
{
color
:
#fff
;
float
:
left
;
font-size
:
12px
;
line-height
:
27px
;
margin-left
:
3px
}
.dialog-header-bg
{
background
:
url("../images/icon.png")
repeat
scroll
center
bottom
#f1f1f1
;
border-color
:
#c0c0c0
#D9D9D9
#d9d9d9
;
border-radius
:
6px
6px
0
0
;
border-style
:
solid
;
border-width
:
1px
1px
0
;
cursor
:
move
;
height
:
34px
}
.dialog-close-icon
{
background
:
url("../images/bowknot/dialog-close.png")
no-repeat
scroll
0
0
transparent
;
cursor
:
pointer
;
float
:
right
;
height
:
18px
;
margin-top
:
6px
;
padding
:
3px
;
width
:
22px
}
.dialog-close-icon
:hover
{
background-image
:
url("../images/bowknot/dialog-close-hover.png")
}
.dialog-main
{
background-color
:
#fff
;
border
:
2px
solid
#666
;
border-color
:
#c0c0c0
#D9D9D9
#d9d9d9
;
border-top-width
:
0
;
padding
:
12px
}
.paginate-paginate
div
.button.paginate-page
,
.paginate-paginate
a
,
.paginate-pageCount
,
.pagination-pages
{
border
:
1px
solid
#eff2f7
;
padding
:
6px
12px
;
cursor
:
pointer
;
float
:
left
;
line-height
:
18px
;
background
:
#eee
;
height
:
18px
;
margin-left
:
1px
;
border-radius
:
0
;
text-decoration
:
none
;
color
:
#333
}
.pagination-current-page
,
.paginate-pageCount
{
cursor
:
auto
}
.paginate-pageCount
{
margin-left
:
10px
}
.pagination-current-page
,
.paginate-paginate
a
:hover
,
.paginate-paginate
div
.button.paginate-page
:hover
,
.pagination-pages
:hover
{
border-color
:
#2eb4ad
;
background-color
:
#2eb4ad
;
color
:
#FFF
}
.paginate-paginate
div
.button
{
padding
:
0
;
float
:
left
;
border
:
0
;
background
:
0
}
.paginate-inputPage
{
height
:
26px
;
width
:
24px
;
margin
:
0
5px
}
.table-main
{
margin
:
0
;
padding
:
0
;
position
:
relative
}
.table-main
table
{
word-break
:
break-all
;
word-wrap
:
break-word
}
.table-header
{
border-bottom
:
1px
solid
#ddd
;
background-color
:
#fafafa
;
padding
:
15px
0
}
.table-header
th
{
line-height
:
18px
;
text-align
:
left
;
text-indent
:
6px
;
font-weight
:
normal
}
.table-main
td
{
border-bottom
:
1px
solid
#ddd
;
color
:
#767676
;
padding
:
10px
0
}
.table-lineHover
.table-hasExpend
td
{
border-bottom
:
0
}
.table-heiglight
td
,
.table-lineHover
td
{
background-color
:
#f5f5f5
;
border-right-color
:
#f5f5f5
}
.table-expendRow
td
{
padding
:
0
0
5px
36px
}
.table-expendRow
td
span
{
margin-left
:
60px
}
.table-expendRow
td
a
{
padding
:
1px
5px
;
font-size
:
12px
;
line-height
:
1.5
;
border-radius
:
3px
;
text-decoration
:
none
;
color
:
#FFF
;
background-color
:
#c7cbd6
;
border-color
:
#c7cbd6
}
.table-expendRow
td
a
:hover
{
background-color
:
#b0b5b9
;
border-color
:
#b0b5b9
}
.table-center
{
margin
:
0
auto
}
.table-upIcon
,
.table-downIcon
{
background-image
:
url("../images/icon.png")
;
cursor
:
pointer
;
float
:
left
;
height
:
16px
;
width
:
16px
;
background-position
:
-81px
-32px
}
.table-upIcon
{
background-position
:
-64px
-32px
;
margin-right
:
6px
}
.table-tag
{
color
:
#d54121
;
font-size
:
12px
;
font-style
:
italic
;
margin-left
:
10px
}
.tip-panel
{
background-color
:
#FFF
;
box-shadow
:
0
3px
10px
#8b8b8b
;
display
:
none
;
max-height
:
500px
;
max-width
:
500px
;
overflow
:
hidden
;
padding
:
3px
;
position
:
absolute
;
z-index
:
1
}
\ No newline at end of file
src/main/webapp/css/default-base.min.css
View file @
fb8bcf9e
...
...
@@ -13,4 +13,4 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
html
,
body
,
div
,
ul
,
li
,
h1
,
h2
,
h3
,
h4
,
h5
,
h6
,
p
,
dd
,
dl
,
ol
{
margin
:
0
;
padding
:
0
}
body
{
background-color
:
#FFF
;
color
:
#000
;
font-family
:
elvetica
,
Arial
,
'sans-serif'
,
'\5fae\8f6f\96c5\9ed1'
;
font-size
:
small
}
img
{
border
:
medium
none
;
margin
:
0
;
padding
:
0
;
vertical-align
:
middle
}
h1
{
font-size
:
160%
}
h2
{
font-size
:
140%
}
h3
{
font-size
:
120%
}
h4
{
font-size
:
110%
}
textarea
{
overflow
:
auto
}
li
{
margin-left
:
12px
}
button
,
.button
{
background
:
url(../images/icon.png)
repeat
center
bottom
;
border
:
1px
solid
;
border-color
:
#CCc
#bbb
#A0A0A0
;
border-radius
:
4px
;
height
:
28px
;
margin
:
0
;
padding
:
0
6px
;
vertical-align
:
top
}
button
:hover
,
.button
:hover
{
border-color
:
#BBB
}
.padding12
{
padding
:
12px
}
.paddingBottom12
{
padding-bottom
:
12px
!important
}
.paddingTop12
{
padding-top
:
12px
!important
}
.margin12
{
margin
:
12px
}
.marginTop12
{
margin-top
:
12px
!important
}
.marginBottom12
{
margin-bottom
:
12px
!important
}
.marginLeft12
{
margin-left
:
12px
!important
}
.marginLeft6
{
margin-left
:
6px
!important
}
.marginRight12
{
margin-right
:
12px
!important
}
.f-bold
{
font-weight
:
bold
!important
}
.nowrap
{
white-space
:
nowrap
}
.left
{
float
:
left
}
.right
{
float
:
right
}
.clear
{
background-color
:
transparent
;
border
:
0
;
clear
:
both
;
display
:
block
;
font-size
:
0
;
height
:
0
;
line-height
:
0
;
overflow
:
hidden
}
.none
{
display
:
none
}
.pointer
{
cursor
:
pointer
}
.no-underline
{
text-decoration
:
none
!important
}
.red
{
color
:
red
}
.contentBody
{
margin-bottom
:
12px
;
padding
:
3px
12px
}
.form
th
{
text-align
:
right
;
white-space
:
nowrap
}
.form
input
[
type
=
'text'
],
.form
input
[
type
=
'password'
],
.form
textarea
{
border-color
:
#c0c0c0
#D9D9D9
#d9d9d9
;
border-right
:
1px
solid
#d9d9d9
;
border-style
:
solid
;
border-width
:
1px
;
font-family
:
Helvetica
,
Arial
,
sans-serif
;
font-size
:
12px
;
outline
:
medium
none
;
width
:
99%
;
padding
:
0
3px
}
.form
input
{
height
:
24px
}
.form
input
[
type
=
'checkbox'
]
{
border
:
0
;
vertical-align
:
middle
}
.form
input
.normalInput
{
width
:
auto
}
.form
input
[
type
=
'checkbox'
]
:focus
{
border
:
0
}
.form
input
:focus
,
.form
textarea
:focus
{
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.3
)
inset
}
.form
textarea
{
padding
:
3px
;
overflow
:
auto
;
resize
:
vertical
}
.logo
{
padding
:
0
5px
;
text-decoration
:
none
;
text-shadow
:
0
0
1px
#eee
}
.putTopIcon
,
.notPutTopIcon
,
.deleteIcon
,
.updateIcon
,
.commentIcon
,
.homeIcon
,
.adminIcon
,
.loginIcon
,
.logoutIcon
,
.calendarIcon
,
.browserIcon
,
.postIcon
,
.articlesIcon
,
.draftsIcon
,
.usersIcon
,
.linkIcon
,
.preferenceIcon
,
.pageIcon
,
.trueIcon
,
.falseIcon
,
.fileIcon
,
.othersIcon
,
.goTopIcon
,
.goBottomIcon
,
.cacheIcon
,
.aboutIcon
{
background-image
:
url("../images/icon.png")
;
cursor
:
pointer
;
height
:
16px
;
width
:
16px
}
.adminIcon
,
.loginIcon
,
.logoutIcon
,
.homeIcon
{
margin-top
:
3px
}
.pageIcon
{
background-position
:
-144px
0
}
.postIcon
{
background-position
:
-16px
0
}
.linkIcon
{
background-position
:
-32px
0
}
.preferenceIcon
{
background-position
:
-48px
0
}
.articlesIcon
{
background-position
:
-64px
0
}
.trueIcon
{
background-position
:
-80px
0
;
cursor
:
auto
}
.falseIcon
{
background-position
:
-96px
0
;
cursor
:
auto
}
.fileIcon
{
background-position
:
-112px
0
}
.deleteIcon
{
background-position
:
0
-16px
}
.updateIcon
{
background-position
:
-16px
-16px
}
.commentIcon
{
background-position
:
-32px
-16px
}
.homeIcon
{
background-position
:
-64px
-16px
}
.adminIcon
{
background-position
:
-80px
-16px
}
.logoutIcon
{
background-position
:
-96px
-16px
}
.loginIcon
{
background-position
:
-112px
-16px
}
.browserIcon
{
background-position
:
-128px
-16px
}
.calendarIcon
{
background-position
:
-144px
-16px
}
.putTopIcon
{
background-position
:
-16px
-32px
;
float
:
left
}
.notPutTopIcon
{
background-position
:
-32px
-32px
;
float
:
left
}
.othersIcon
{
background-position
:
-48px
-32px
}
.cacheIcon
{
background-position
:
-96px
-32px
}
.draftsIcon
{
background-position
:
-96px
-32px
}
.usersIcon
{
background-position
:
-112px
-32px
}
.goTopIcon
{
background-position
:
-64px
-32px
;
position
:
fixed
;
right
:
20px
;
top
:
45%
}
.goBottomIcon
{
background-position
:
-80px
-32px
;
bottom
:
40%
;
position
:
fixed
;
right
:
20px
}
.article-body
{
overflow
:
hidden
;
line-height
:
145%
;
word-wrap
:
break-word
}
.article-body
blockquote
{
border
:
1px
dotted
#98a47f
;
font-style
:
italic
;
margin
:
12px
;
padding
:
12px
}
.article-body
h1
{
font-size
:
2em
;
margin
:
.67em
0
}
.article-body
h2
{
font-size
:
1.5em
;
margin
:
.75em
0
}
.article-body
h3
{
font-size
:
1.17em
;
margin
:
.83em
0
}
.article-body
h4
,
.article-body
p
,
.article-body
blockquote
,
.article-body
ul
,
.article-body
fieldset
,
.article-body
form
,
.article-body
ol
,
.article-body
dl
,
.article-body
dir
,
.article-body
menu
{
margin
:
1.12em
0
}
.article-body
h5
{
font-size
:
.83em
;
margin
:
1.5em
0
}
.article-body
h6
{
font-size
:
.75em
;
margin
:
1.67em
0
}
.article-body
blockquote
{
margin-left
:
40px
;
margin-right
:
40px
}
.article-body
ol
,
.article-body
ul
,
.article-body
dir
,
.article-body
menu
,
.article-body
dd
{
margin-left
:
40px
}
.em00
,
.em01
,
.em02
,
.em03
,
.em04
,
.em05
,
.em06
,
.em07
,
.em08
,
.em09
,
.em10
,
.em11
,
.em12
,
.em13
,
.em14
{
background-image
:
url("../images/emotions/classic/emotions-classic.png")
;
float
:
left
;
height
:
24px
;
margin-right
:
5px
;
width
:
24px
}
#emotions
span
{
cursor
:
pointer
}
.em01
{
background-position
:
-24px
0
}
.em02
{
background-position
:
-48px
0
}
.em03
{
background-position
:
-72px
0
}
.em04
{
background-position
:
-96px
0
}
.em05
{
background-position
:
0
-24px
}
.em06
{
background-position
:
-24px
-24px
}
.em07
{
background-position
:
-48px
-24px
}
.em08
{
background-position
:
-72px
-24px
}
.em09
{
background-position
:
-96px
-24px
}
.em10
{
background-position
:
0
-48px
}
.em11
{
background-position
:
-24px
-48px
}
.em12
{
background-position
:
-48px
-48px
}
.em13
{
background-position
:
-72px
-48px
}
.em14
{
background-position
:
-96px
-48px
}
#tags
{
list-style
:
none
}
#tags
li
{
float
:
left
;
list-style
:
none
;
height
:
38px
}
#tags
a
:hover
{
text-shadow
:
0
0
2px
#555
}
#tags
a
{
border-radius
:
3px
3px
3px
3px
;
box-shadow
:
1px
1px
3px
#555
;
float
:
left
;
margin
:
3px
6px
;
padding
:
3px
12px
;
text-decoration
:
none
}
#tags
.tags1
{
font-size
:
12px
;
font-weight
:
normal
}
#tags
.tags2
{
font-size
:
14px
;
font-weight
:
normal
}
#tags
.tags3
{
font-size
:
16px
;
font-weight
:
normal
}
#tags
.tags4
{
font-size
:
18px
;
font-weight
:
bold
}
#tags
.tags5
{
font-size
:
20px
;
font-weight
:
bold
}
#captcha
,
#captchaReply
{
cursor
:
pointer
}
\ No newline at end of file
html
,
body
,
div
,
ul
,
li
,
h1
,
h2
,
h3
,
h4
,
h5
,
h6
,
p
,
dd
,
dl
,
ol
{
margin
:
0
;
padding
:
0
}
body
{
background-color
:
#FFF
;
color
:
#000
;
font-family
:
elvetica
,
Arial
,
'sans-serif'
,
'\5fae\8f6f\96c5\9ed1'
;
font-size
:
small
}
img
{
border
:
medium
none
;
margin
:
0
;
padding
:
0
;
vertical-align
:
middle
}
h1
{
font-size
:
160%
}
h2
{
font-size
:
140%
}
h3
{
font-size
:
120%
}
h4
{
font-size
:
110%
}
textarea
{
overflow
:
auto
}
li
{
margin-left
:
12px
}
button
,
.button
{
background
:
url(../images/icon.png)
repeat
center
bottom
;
border
:
1px
solid
;
border-color
:
#CCc
#bbb
#A0A0A0
;
border-radius
:
4px
;
height
:
28px
;
margin
:
0
;
padding
:
0
6px
;
vertical-align
:
top
}
button
:hover
,
.button
:hover
{
border-color
:
#BBB
}
.padding12
{
padding
:
12px
}
.paddingBottom12
{
padding-bottom
:
12px
!important
}
.paddingTop12
{
padding-top
:
12px
!important
}
.margin12
{
margin
:
12px
}
.marginTop12
{
margin-top
:
12px
!important
}
.marginBottom12
{
margin-bottom
:
12px
!important
}
.marginLeft12
{
margin-left
:
12px
!important
}
.marginLeft6
{
margin-left
:
6px
!important
}
.marginRight12
{
margin-right
:
12px
!important
}
.f-bold
{
font-weight
:
bold
!important
}
.nowrap
{
white-space
:
nowrap
}
.left
{
float
:
left
}
.right
{
float
:
right
}
.clear
{
background-color
:
transparent
;
border
:
0
;
clear
:
both
;
display
:
block
;
font-size
:
0
;
height
:
0
;
line-height
:
0
;
overflow
:
hidden
}
.fn-clear
:before
,
.fn-clear
:after
{
display
:
table
;
content
:
""
}
.fn-clear
:after
{
clear
:
both
}
.none
{
display
:
none
}
.pointer
{
cursor
:
pointer
}
.no-underline
{
text-decoration
:
none
!important
}
.red
{
color
:
red
}
.contentBody
{
margin-bottom
:
12px
;
padding
:
3px
12px
}
.form
th
{
text-align
:
right
;
white-space
:
nowrap
}
.form
input
[
type
=
'text'
],
.form
input
[
type
=
'password'
],
.form
textarea
{
border-color
:
#c0c0c0
#D9D9D9
#d9d9d9
;
border-right
:
1px
solid
#d9d9d9
;
border-style
:
solid
;
border-width
:
1px
;
font-family
:
Helvetica
,
Arial
,
sans-serif
;
font-size
:
12px
;
outline
:
medium
none
;
width
:
99%
;
padding
:
0
3px
}
.form
input
{
height
:
24px
}
.form
input
[
type
=
'checkbox'
]
{
border
:
0
;
vertical-align
:
middle
}
.form
input
.normalInput
{
width
:
auto
}
.form
input
[
type
=
'checkbox'
]
:focus
{
border
:
0
}
.form
input
:focus
,
.form
textarea
:focus
{
box-shadow
:
0
1px
2px
rgba
(
0
,
0
,
0
,
0.3
)
inset
}
.form
textarea
{
padding
:
3px
;
overflow
:
auto
;
resize
:
vertical
}
.logo
{
padding
:
0
5px
;
text-decoration
:
none
;
text-shadow
:
0
0
1px
#eee
}
.putTopIcon
,
.notPutTopIcon
,
.deleteIcon
,
.updateIcon
,
.commentIcon
,
.homeIcon
,
.adminIcon
,
.loginIcon
,
.logoutIcon
,
.calendarIcon
,
.browserIcon
,
.postIcon
,
.articlesIcon
,
.draftsIcon
,
.usersIcon
,
.linkIcon
,
.preferenceIcon
,
.pageIcon
,
.trueIcon
,
.falseIcon
,
.fileIcon
,
.othersIcon
,
.goTopIcon
,
.goBottomIcon
,
.cacheIcon
,
.aboutIcon
{
background-image
:
url("../images/icon.png")
;
cursor
:
pointer
;
height
:
16px
;
width
:
16px
}
.adminIcon
,
.loginIcon
,
.logoutIcon
,
.homeIcon
{
margin-top
:
3px
}
.pageIcon
{
background-position
:
-144px
0
}
.postIcon
{
background-position
:
-16px
0
}
.linkIcon
{
background-position
:
-32px
0
}
.preferenceIcon
{
background-position
:
-48px
0
}
.articlesIcon
{
background-position
:
-64px
0
}
.trueIcon
{
background-position
:
-80px
0
;
cursor
:
auto
}
.falseIcon
{
background-position
:
-96px
0
;
cursor
:
auto
}
.fileIcon
{
background-position
:
-112px
0
}
.deleteIcon
{
background-position
:
0
-16px
}
.updateIcon
{
background-position
:
-16px
-16px
}
.commentIcon
{
background-position
:
-32px
-16px
}
.homeIcon
{
background-position
:
-64px
-16px
}
.adminIcon
{
background-position
:
-80px
-16px
}
.logoutIcon
{
background-position
:
-96px
-16px
}
.loginIcon
{
background-position
:
-112px
-16px
}
.browserIcon
{
background-position
:
-128px
-16px
}
.calendarIcon
{
background-position
:
-144px
-16px
}
.putTopIcon
{
background-position
:
-16px
-32px
;
float
:
left
}
.notPutTopIcon
{
background-position
:
-32px
-32px
;
float
:
left
}
.othersIcon
{
background-position
:
-48px
-32px
}
.cacheIcon
{
background-position
:
-96px
-32px
}
.draftsIcon
{
background-position
:
-96px
-32px
}
.usersIcon
{
background-position
:
-112px
-32px
}
.goTopIcon
{
background-position
:
-64px
-32px
;
position
:
fixed
;
right
:
20px
;
top
:
45%
}
.goBottomIcon
{
background-position
:
-80px
-32px
;
bottom
:
40%
;
position
:
fixed
;
right
:
20px
}
.article-body
{
overflow
:
hidden
;
line-height
:
145%
;
word-wrap
:
break-word
}
.article-body
blockquote
{
border
:
1px
dotted
#98a47f
;
font-style
:
italic
;
margin
:
12px
;
padding
:
12px
}
.article-body
h1
{
font-size
:
2em
;
margin
:
.67em
0
}
.article-body
h2
{
font-size
:
1.5em
;
margin
:
.75em
0
}
.article-body
h3
{
font-size
:
1.17em
;
margin
:
.83em
0
}
.article-body
h4
,
.article-body
p
,
.article-body
blockquote
,
.article-body
ul
,
.article-body
fieldset
,
.article-body
form
,
.article-body
ol
,
.article-body
dl
,
.article-body
dir
,
.article-body
menu
{
margin
:
1.12em
0
}
.article-body
h5
{
font-size
:
.83em
;
margin
:
1.5em
0
}
.article-body
h6
{
font-size
:
.75em
;
margin
:
1.67em
0
}
.article-body
blockquote
{
margin-left
:
40px
;
margin-right
:
40px
}
.article-body
ol
,
.article-body
ul
,
.article-body
dir
,
.article-body
menu
,
.article-body
dd
{
margin-left
:
40px
}
.em00
,
.em01
,
.em02
,
.em03
,
.em04
,
.em05
,
.em06
,
.em07
,
.em08
,
.em09
,
.em10
,
.em11
,
.em12
,
.em13
,
.em14
{
background-image
:
url("../images/emotions/classic/emotions-classic.png")
;
float
:
left
;
height
:
24px
;
margin-right
:
5px
;
width
:
24px
}
#emotions
span
{
cursor
:
pointer
}
.em01
{
background-position
:
-24px
0
}
.em02
{
background-position
:
-48px
0
}
.em03
{
background-position
:
-72px
0
}
.em04
{
background-position
:
-96px
0
}
.em05
{
background-position
:
0
-24px
}
.em06
{
background-position
:
-24px
-24px
}
.em07
{
background-position
:
-48px
-24px
}
.em08
{
background-position
:
-72px
-24px
}
.em09
{
background-position
:
-96px
-24px
}
.em10
{
background-position
:
0
-48px
}
.em11
{
background-position
:
-24px
-48px
}
.em12
{
background-position
:
-48px
-48px
}
.em13
{
background-position
:
-72px
-48px
}
.em14
{
background-position
:
-96px
-48px
}
#tags
{
list-style
:
none
}
#tags
li
{
float
:
left
;
list-style
:
none
;
height
:
38px
}
#tags
a
:hover
{
text-shadow
:
0
0
2px
#555
}
#tags
a
{
border-radius
:
3px
3px
3px
3px
;
box-shadow
:
1px
1px
3px
#555
;
float
:
left
;
margin
:
3px
6px
;
padding
:
3px
12px
;
text-decoration
:
none
}
#tags
.tags1
{
font-size
:
12px
;
font-weight
:
normal
}
#tags
.tags2
{
font-size
:
14px
;
font-weight
:
normal
}
#tags
.tags3
{
font-size
:
16px
;
font-weight
:
normal
}
#tags
.tags4
{
font-size
:
18px
;
font-weight
:
bold
}
#tags
.tags5
{
font-size
:
20px
;
font-weight
:
bold
}
#captcha
,
#captchaReply
{
cursor
:
pointer
}
\ No newline at end of file
src/main/webapp/js/admin/latkeAdmin.js
View file @
fb8bcf9e
...
...
@@ -17,9 +17,9 @@
* @description index for admin
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @version 1.0.
2.2, May 28
, 2013
* @version 1.0.
3.2, Sep 2
, 2013
*/
var
Admin
=
function
()
{
var
Admin
=
function
()
{
this
.
register
=
{};
// 工具栏下的工具
this
.
tools
=
[
'
#page-list
'
,
'
#file-list
'
,
'
#link-list
'
,
'
#preference
'
,
...
...
@@ -33,13 +33,13 @@ $.extend(Admin.prototype, {
/**
* @description 登出
*/
logout
:
function
()
{
logout
:
function
()
{
window
.
location
.
href
=
latkeConfig
.
servePath
+
"
/logout?goto=
"
+
latkeConfig
.
servePath
;
},
/**
* @description 清除提示
*/
clearTip
:
function
()
{
clearTip
:
function
()
{
$
(
"
#tipMsg
"
).
text
(
""
);
$
(
"
#loadMsg
"
).
text
(
""
);
},
...
...
@@ -47,7 +47,7 @@ $.extend(Admin.prototype, {
* @description 根据当前页数设置 hash
* @param {Int} currentPage 当前页
*/
setHashByPage
:
function
(
currentPage
)
{
setHashByPage
:
function
(
currentPage
)
{
var
hash
=
window
.
location
.
hash
,
hashList
=
hash
.
split
(
"
/
"
);
if
(
/^
\d
*$/
.
test
(
hashList
[
hashList
.
length
-
1
]))
{
...
...
@@ -61,13 +61,13 @@ $.extend(Admin.prototype, {
* @description 设置某个 tab 被选择
* @param {Stirng} id id tab id
*/
selectTab
:
function
(
id
)
{
selectTab
:
function
(
id
)
{
window
.
location
.
hash
=
"
#
"
+
id
;
},
/**
* @description 根据当前 hash 解析出当前页数及 hash 数组。
*/
analyseHash
:
function
()
{
analyseHash
:
function
()
{
var
hash
=
window
.
location
.
hash
;
var
tag
=
hash
.
substr
(
1
,
hash
.
length
-
1
);
var
tagList
=
tag
.
split
(
"
/
"
);
...
...
@@ -86,7 +86,8 @@ $.extend(Admin.prototype, {
/**
* @description 根据当前 hash 设置当前 tab
*/
setCurByHash
:
function
()
{
setCurByHash
:
function
()
{
$
(
window
).
scrollTop
(
0
);
$
(
"
#tipMsg
"
).
text
(
""
);
var
tags
=
admin
.
analyseHash
();
var
tab
=
tags
.
hashList
[
1
],
...
...
@@ -103,7 +104,7 @@ $.extend(Admin.prototype, {
if
(
tab
!==
"
article
"
)
{
admin
.
article
.
clearDraftTimer
();
}
else
if
(
tab
===
"
article
"
)
{
admin
.
article
.
autoSaveDraftTimer
=
setInterval
(
function
()
{
admin
.
article
.
autoSaveDraftTimer
=
setInterval
(
function
()
{
admin
.
article
.
_autoSaveToDraft
();
},
admin
.
article
.
AUTOSAVETIME
);
}
...
...
@@ -157,7 +158,7 @@ $.extend(Admin.prototype, {
if
(
$
(
"
#tabsPanel_
"
+
tab
).
length
===
1
)
{
if
(
$
(
"
#tabsPanel_
"
+
tab
).
html
().
replace
(
/
\s
/g
,
""
)
===
""
)
{
// 还未加载 HTML
$
(
"
#tabsPanel_
"
+
tab
).
load
(
"
admin-
"
+
tab
+
"
.do
"
,
function
()
{
$
(
"
#tabsPanel_
"
+
tab
).
load
(
"
admin-
"
+
tab
+
"
.do
"
,
function
()
{
// 页面加载完后,回调初始函数
if
(
tab
===
"
article
"
&&
admin
.
article
.
status
.
id
)
{
// 当文章页面编辑器未初始化时,调用更新文章需先初始化编辑器
...
...
@@ -202,7 +203,7 @@ $.extend(Admin.prototype, {
/**
* @description 初始化整个后台
*/
init
:
function
()
{
init
:
function
()
{
//window.onerror = Util.error;
Util
.
killIE
();
...
...
@@ -212,9 +213,9 @@ $.extend(Admin.prototype, {
$
(
"
#tabs
"
).
tabs
();
// tipMsg
setInterval
(
function
()
{
setInterval
(
function
()
{
if
(
$
(
"
#tipMsg
"
).
text
()
!==
""
)
{
setTimeout
(
function
()
{
setTimeout
(
function
()
{
$
(
"
#tipMsg
"
).
text
(
""
);
},
7000
);
}
...
...
@@ -225,20 +226,25 @@ $.extend(Admin.prototype, {
* @description tools and article collapse
* @param {Bom} it 触发事件对象
*/
collapseNav
:
function
(
it
)
{
collapseNav
:
function
(
it
)
{
var
subNav
=
$
(
it
).
next
();
subNav
.
slideToggle
(
"
normal
"
,
function
()
{
subNav
.
slideToggle
(
"
normal
"
,
function
()
{
if
(
this
.
style
.
display
!==
"
none
"
)
{
$
(
it
).
find
(
"
.ico-arrow-down
"
)[
0
].
className
=
"
ico-arrow-up
"
;
$
(
it
).
find
(
"
.icon-chevron-down
"
)[
0
].
className
=
"
icon-chevron-up right
"
;
$
(
it
).
addClass
(
'
tab-current
'
);
}
else
{
$
(
it
).
find
(
"
.ico-arrow-up
"
)[
0
].
className
=
"
ico-arrow-down
"
;
$
(
it
).
find
(
"
.icon-chevron-up
"
)[
0
].
className
=
"
icon-chevron-down right
"
;
$
(
it
).
removeClass
(
'
tab-current
'
);
}
$
(
'
#tabs > ul
'
).
height
(
'
auto
'
);
$
(
'
#tabs > ul
'
).
height
(
$
(
'
#tabs > ul
'
).
height
()
+
80
);
});
},
/**
* @description 后台及当前页面所需插件初始化完后,对权限进行控制及当前页面属于 tools 时,tools 选项需展开。
*/
inited
:
function
()
{
inited
:
function
()
{
// Removes functions with the current user role
if
(
Label
.
userRole
!==
"
adminRole
"
)
{
for
(
var
i
=
0
;
i
<
this
.
adTools
.
length
;
i
++
)
{
...
...
@@ -606,8 +612,17 @@ admin.editors.KindEditor = {
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.
1.1.4, Aug 13, 2015
* @version 1.
2.1.4, Aug 26, 2016
*/
Util
.
processClipBoard
=
function
(
text
,
cm
)
{
var
text
=
toMarkdown
(
text
,
{
converters
:
[
],
gfm
:
true
});
// ascii 160 替换为 30
text
=
$
(
'
<div>
'
+
text
+
'
</div>
'
).
text
().
replace
(
/
\n{2,}
/g
,
'
\n\n
'
).
replace
(
/ /g
,
'
'
);
return
$
.
trim
(
text
);
};
admin
.
editors
.
CodeMirror
=
{
/*
* @description 初始化编辑器
...
...
@@ -620,124 +635,38 @@ admin.editors.CodeMirror = {
* @returns {obj} editor
*/
init
:
function
(
conf
)
{
var
it
=
this
;
// load preview and clear
var
previewHTML
=
"
<div class='clear'></div>
"
;
if
(
conf
.
kind
!==
"
simple
"
)
{
previewHTML
=
"
<div class='markdown-preivew'>
"
+
"
<div class='markdown-help ico-close'></div>
"
+
"
<div class='clear'></div>
"
+
"
<div class='markdown-preview-main none'></div>
"
+
"
<div class='markdown-help-main'>
"
+
Label
.
markdownHelpLabel
+
"
</div>
"
+
"
</div><div class='clear'></div>
"
;
}
$
(
"
#
"
+
conf
.
id
).
after
(
previewHTML
);
// init codemirror
if
(
conf
.
kind
===
"
simple
"
)
{
this
[
conf
.
id
]
=
CodeMirror
.
fromTextArea
(
document
.
getElementById
(
conf
.
id
),
{
mode
:
'
markdown
'
,
lineWrapping
:
true
,
lineNumbers
:
true
,
matchBrackets
:
true
,
theme
:
"
default
"
,
height
:
conf
.
height
});
}
else
{
// preview 执行队列
it
[
conf
.
id
+
"
Timers
"
]
=
[];
// 该编辑器是否第一次触发 preivew 事件
it
[
conf
.
id
+
"
IsFirst
"
]
=
true
;
var
$preview
=
$
(
"
#
"
+
conf
.
id
).
parent
().
find
(
"
.markdown-preivew
"
),
$help
=
$
(
"
#
"
+
conf
.
id
).
parent
().
find
(
"
.markdown-preivew
"
).
find
(
"
.markdown-help
"
);
this
[
conf
.
id
]
=
CodeMirror
.
fromTextArea
(
document
.
getElementById
(
conf
.
id
),
{
mode
:
'
markdown
'
,
lineWrapping
:
true
,
lineNumbers
:
true
,
matchBrackets
:
true
,
theme
:
"
default
"
,
height
:
conf
.
height
,
onUpdate
:
function
()
{
var
update
=
function
()
{
if
(
it
[
conf
.
id
].
getValue
()
===
""
)
{
return
;
}
$
.
ajax
({
url
:
latkeConfig
.
servePath
+
"
/console/markdown/2html
"
,
type
:
"
POST
"
,
cache
:
false
,
data
:
JSON
.
stringify
({
markdownText
:
it
[
conf
.
id
].
getValue
()}),
success
:
function
(
data
,
textStatus
)
{
if
(
data
.
sc
)
{
if
(
it
[
conf
.
id
+
"
IsFirst
"
]
&&
$help
.
hasClass
(
"
ico-close
"
))
{
$help
.
click
();
}
it
[
conf
.
id
+
"
IsFirst
"
]
=
false
;
$preview
.
find
(
"
.markdown-preview-main
"
).
html
(
data
.
html
);
}
else
{
$preview
.
find
(
"
.markdown-preview-main
"
).
html
(
data
.
msg
);
}
}
});
}
it
[
conf
.
id
+
"
Timers
"
].
push
(
update
);
}
});
this
.
_callPreview
(
conf
.
id
,
it
[
conf
.
id
+
"
Timers
"
]);
}
if
(
conf
.
kind
===
"
simple
"
)
{
// 摘要不需要 preview,设置其宽度
$
(
"
#
"
+
conf
.
id
).
next
().
width
(
"
99%
"
);
}
else
{
// 有 preview 时,绑定 preview 事件
this
.
_bindEvent
(
conf
.
id
);
}
var
commentEditor
=
new
CodeMirrorEditor
({
element
:
document
.
getElementById
(
conf
.
id
),
dragDrop
:
false
,
lineWrapping
:
true
,
toolbar
:
[
{
name
:
'
bold
'
},
{
name
:
'
italic
'
},
'
|
'
,
{
name
:
'
link
'
},
{
name
:
'
quote
'
},
{
name
:
'
unordered-list
'
},
{
name
:
'
ordered-list
'
},
'
|
'
,
{
name
:
'
redo
'
},
{
name
:
'
undo
'
},
'
|
'
,
{
name
:
'
preview
'
}
],
extraKeys
:
{
"
Ctrl-/
"
:
"
autocompleteEmoji
"
},
status
:
false
});
commentEditor
.
render
();
this
[
conf
.
id
]
=
commentEditor
.
codemirror
;
// after render, call back function
if
(
typeof
(
conf
.
fun
)
===
"
function
"
)
{
conf
.
fun
();
}
},
/*
* @description 当有更新时每隔3秒 preview
* @param {string} id 编辑器 id
*/
_callPreview
:
function
(
id
)
{
setInterval
(
function
()
{
var
timers
=
admin
.
editors
.
CodeMirror
[
id
+
"
Timers
"
];
$
(
document
).
queue
(
"
myAnimation
"
,
[
timers
[
timers
.
length
-
1
]]);
$
(
document
).
dequeue
(
"
myAnimation
"
);
admin
.
editors
.
CodeMirror
[
id
+
"
Timers
"
]
=
[];
},
2000
);
},
/*
* @description 绑定编辑器 preview 事件
* @param {string} id 编辑器id
*/
_bindEvent
:
function
(
id
)
{
var
$preview
=
$
(
"
#
"
+
id
).
parent
().
find
(
"
.markdown-preivew
"
);
$preview
.
find
(
"
.markdown-help
"
).
click
(
function
()
{
var
$it
=
$
(
this
);
if
(
$it
.
hasClass
(
"
ico-help
"
))
{
$it
.
removeClass
(
"
ico-help
"
).
addClass
(
"
ico-close
"
);
$preview
.
find
(
"
.markdown-preview-main
"
).
hide
();
$preview
.
find
(
"
.markdown-help-main
"
).
show
();
}
else
{
$it
.
addClass
(
"
ico-help
"
).
removeClass
(
"
ico-close
"
);
$preview
.
find
(
"
.markdown-preview-main
"
).
show
();
$preview
.
find
(
"
.markdown-help-main
"
).
hide
();
}
});
},
/*
* @description 获取编辑器值
* @param {string} id 编辑器id
...
...
@@ -762,7 +691,7 @@ admin.editors.CodeMirror = {
*/
remove
:
function
(
id
)
{
this
[
id
].
toTextArea
();
$
(
"
.markdown-preivew
"
).
remove
();
$
(
'
.editor-toolbar
'
).
remove
();
}
};
/*
* Copyright (c) 2010-2016, b3log.org & hacpai.com
...
...
@@ -825,8 +754,8 @@ $.extend(TablePaginate.prototype, {
},
"
currentPage
"
:
1
,
"
errorMessage
"
:
Label
.
inputErrorLabel
,
"
nextPageText
"
:
Label
.
nextPagePabel
,
"
previousPageText
"
:
Label
.
previousPageLabel
,
"
nextPageText
"
:
'
>
'
,
"
previousPageText
"
:
'
<
'
,
"
goText
"
:
Label
.
gotoLabel
,
"
type
"
:
"
custom
"
,
"
custom
"
:
[
1
],
...
...
@@ -1188,7 +1117,7 @@ admin.article = {
}
$
(
"
#tagCheckboxPanel>span
"
).
remove
(
""
);
var
spans
=
""
;
for
(
var
i
=
0
;
i
<
result
.
tags
.
length
;
i
++
)
{
spans
+=
"
<span>
"
+
result
.
tags
[
i
].
tagTitle
+
"
</span>
"
;
...
...
@@ -1263,42 +1192,11 @@ admin.article = {
*/
init
:
function
(
fun
)
{
this
.
currentEditorType
=
Label
.
editorType
;
// Inits Signs.
$
.
ajax
({
url
:
latkeConfig
.
servePath
+
"
/console/signs/
"
,
type
:
"
GET
"
,
cache
:
false
,
success
:
function
(
result
,
textStatus
)
{
$
(
"
#tipMsg
"
).
text
(
result
.
msg
);
if
(
!
result
.
sc
)
{
$
(
"
#loadMsg
"
).
text
(
""
);
return
;
}
$
(
"
.signs button
"
).
each
(
function
(
i
)
{
// Sets signs.
if
(
i
===
result
.
signs
.
length
)
{
$
(
"
#articleSign1
"
).
addClass
(
"
selected
"
);
}
else
{
$
(
"
#articleSign
"
+
result
.
signs
[
i
].
oId
).
tip
({
content
:
result
.
signs
[
i
].
signHTML
===
""
?
Label
.
signIsNullLabel
:
result
.
signs
[
i
].
signHTML
.
replace
(
/
\n
/g
,
""
).
replace
(
/<script.*<
\/
script>/ig
,
""
),
position
:
"
top
"
});
}
// Binds checkbox event.
$
(
this
).
click
(
function
()
{
if
(
this
.
className
!==
"
selected
"
)
{
$
(
"
.signs button
"
).
each
(
function
()
{
this
.
className
=
""
;
});
this
.
className
=
"
selected
"
;
}
});
});
$
(
"
#loadMsg
"
).
text
(
""
);
}
// Inits Signs.
$
(
"
.signs button
"
).
click
(
function
(
i
)
{
$
(
"
.signs button
"
).
removeClass
(
'
selected
'
);
$
(
this
).
addClass
(
'
selected
'
);
});
// For tag auto-completion
...
...
@@ -1339,8 +1237,8 @@ admin.article = {
}
else
{
admin
.
article
.
add
(
true
);
}
}
);
}
);
$
(
"
#saveArticle
"
).
click
(
function
()
{
if
(
admin
.
article
.
status
.
id
)
{
admin
.
article
.
update
(
admin
.
article
.
status
.
isArticle
);
...
...
@@ -1358,26 +1256,26 @@ admin.article = {
url
:
"
http://upload.qiniu.com/
"
,
add
:
function
(
e
,
data
)
{
filename
=
data
.
files
[
0
].
name
;
data
.
submit
();
},
formData
:
function
(
form
)
{
var
data
=
form
.
serializeArray
();
var
ext
=
filename
.
substring
(
filename
.
lastIndexOf
(
"
.
"
)
+
1
);
var
ext
=
filename
.
substring
(
filename
.
lastIndexOf
(
"
.
"
)
+
1
);
data
.
push
({
name
:
'
key
'
,
value
:
getUUID
()
+
"
.
"
+
ext
});
data
.
push
({
name
:
'
token
'
,
value
:
qiniu
.
qiniuUploadToken
});
return
data
;
},
done
:
function
(
e
,
data
)
{
var
qiniuKey
=
data
.
result
.
key
;
if
(
!
qiniuKey
)
{
alert
(
"
Upload error
"
);
return
;
}
$
(
'
#articleUpload
'
).
after
(
'
<div id="uploadContent">!<a target="_blank" href="http://
'
+
qiniu
.
qiniuDomain
+
qiniuKey
+
'
">[
'
+
filename
+
'
]</a>(http://
'
+
qiniu
.
qiniuDomain
+
qiniuKey
+
'
)</div>
'
);
},
...
...
@@ -1574,17 +1472,18 @@ admin.register.article = {
function
getUUID
()
{
var
d
=
new
Date
().
getTime
();
var
ret
=
'
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
'
.
replace
(
/
[
xy
]
/g
,
function
(
c
)
{
var
r
=
(
d
+
Math
.
random
()
*
16
)
%
16
|
0
;
d
=
Math
.
floor
(
d
/
16
);
return
(
c
==
'
x
'
?
r
:
(
r
&
0x3
|
0x8
)).
toString
(
16
);
var
ret
=
'
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
'
.
replace
(
/
[
xy
]
/g
,
function
(
c
)
{
var
r
=
(
d
+
Math
.
random
()
*
16
)
%
16
|
0
;
d
=
Math
.
floor
(
d
/
16
);
return
(
c
==
'
x
'
?
r
:
(
r
&
0x3
|
0x8
)).
toString
(
16
);
});
ret
=
ret
.
replace
(
new
RegExp
(
"
-
"
,
'
g
'
),
""
);
return
ret
;
};
}
;
/*
* Copyright (c) 2010-2016, b3log.org & hacpai.com
*
...
...
@@ -1735,7 +1634,7 @@ admin.comment = {
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.
1.5, May 28, 2013
* @version 1.0.
2.5, Aug 23, 2016
*/
/* article-list 相关操作 */
...
...
@@ -1799,7 +1698,7 @@ admin.articleList = {
articleData
=
[];
for
(
var
i
=
0
;
i
<
articles
.
length
;
i
++
)
{
articleData
[
i
]
=
{};
articleData
[
i
].
title
=
"
<a href=
'
"
+
latkeConfig
.
servePath
+
articles
[
i
].
articlePermalink
+
"
'
target='_blank' title='
"
+
articles
[
i
].
articleTitle
+
"
' class='no-underline'>
"
articleData
[
i
].
title
=
"
<a href=
\"
"
+
latkeConfig
.
servePath
+
articles
[
i
].
articlePermalink
+
"
\"
target='_blank' title='
"
+
articles
[
i
].
articleTitle
+
"
' class='no-underline'>
"
+
articles
[
i
].
articleTitle
+
"
</a><span class='table-tag'>
"
+
articles
[
i
].
articleTags
+
"
</span>
"
;
articleData
[
i
].
date
=
$
.
bowknot
.
getDate
(
articles
[
i
].
articleCreateTime
);
articleData
[
i
].
comments
=
articles
[
i
].
articleCommentCount
;
...
...
@@ -3020,10 +2919,6 @@ admin.preference = {
var
signs
=
eval
(
'
(
'
+
preference
.
signs
+
'
)
'
);
for
(
var
j
=
1
;
j
<
signs
.
length
;
j
++
)
{
$
(
"
#preferenceSign
"
+
j
).
val
(
signs
[
j
].
signHTML
);
$
(
"
#preferenceSignButton
"
+
j
).
tip
({
content
:
signs
[
j
].
signHTML
===
""
?
Label
.
signIsNullLabel
:
signs
[
j
].
signHTML
.
replace
(
/
\n
/g
,
""
).
replace
(
/<script.*<
\/
script>/ig
,
""
),
position
:
"
bottom
"
});
}
$
(
"
#articleListDisplay
"
).
val
(
preference
.
articleListStyle
);
...
...
@@ -3508,7 +3403,7 @@ admin.userList = {
}
else
{
userData
[
i
].
expendRow
=
"
<a href='javascript:void(0)' onclick=
\"
admin.userList.get('
"
+
users
[
i
].
oId
+
"
', '
"
+
users
[
i
].
userRole
+
"
')
\"
>
"
+
Label
.
updateLabel
+
"
</a>
\
<a href='javascript:void(0)' onclick=
\"
admin.userList.del('
"
+
users
[
i
].
oId
+
"
', '
"
+
users
[
i
].
userName
+
"
')
\"
>
"
+
Label
.
removeLabel
+
"
</a>
"
+
<a href='javascript:void(0)' onclick=
\"
admin.userList.del('
"
+
users
[
i
].
oId
+
"
', '
"
+
users
[
i
].
userName
+
"
')
\"
>
"
+
Label
.
removeLabel
+
"
</a>
"
+
"
<a href='javascript:void(0)' onclick=
\"
admin.userList.changeRole('
"
+
users
[
i
].
oId
+
"
')
\"
>
"
+
Label
.
changeRoleLabel
+
"
</a>
"
;
if
(
"
defaultRole
"
===
users
[
i
].
userRole
)
{
userData
[
i
].
isAdmin
=
Label
.
commonUserLabel
;
...
...
@@ -3759,9 +3654,7 @@ admin.userList = {
admin
.
register
[
"
user-list
"
]
=
{
"
obj
"
:
admin
.
userList
,
"
init
"
:
admin
.
userList
.
init
,
"
refresh
"
:
function
()
{
admin
.
clearTip
();
}
"
refresh
"
:
admin
.
userList
.
getList
}
/*
* Copyright (c) 2010-2016, b3log.org & hacpai.com
*
...
...
src/main/webapp/js/admin/latkeAdmin.min.js
View file @
fb8bcf9e
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/main/webapp/skins/mobile/js/l10n.min.js
View file @
fb8bcf9e
/*
* Copyright (c) 2010-2016, 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.
*/
function
convertEntities
(
t
){
var
e
,
n
;
if
(
e
=
function
(
t
){
if
(
/&
[^
;
]
+;/
.
test
(
t
)){
var
e
=
document
.
createElement
(
"
div
"
);
return
e
.
innerHTML
=
t
,
e
.
firstChild
?
e
.
firstChild
.
nodeValue
:
t
}
return
t
},
"
string
"
==
typeof
t
)
return
e
(
t
);
if
(
"
object
"
==
typeof
t
)
for
(
n
in
t
)
"
string
"
==
typeof
t
[
n
]
&&
(
t
[
n
]
=
e
(
t
[
n
]));
return
t
}
\ No newline at end of file
src/main/webapp/skins/next/css/next.css
View file @
fb8bcf9e
...
...
@@ -18,7 +18,7 @@
* skin next style
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @version 0.
1.2.1, Aug 2
6, 2016
* @version 0.
2.2.1, Sep
6, 2016
*/
/* start reset */
html
{
...
...
@@ -250,8 +250,10 @@ img {
/* start framework */
.wrapper
{
width
:
700px
;
max-width
:
700px
;
min-width
:
600px
;
margin
:
0
auto
;
padding
:
0
10px
;
}
.main
{
...
...
@@ -263,12 +265,11 @@ img {
.header
{
background
:
#f5f5f5
;
margin-bottom
:
80px
;
padding
:
40px
45
px
;
padding
:
40px
0
px
;
}
.logo-wrap
{
float
:
left
;
margin-left
:
-20px
;
overflow
:
hidden
;
top
:
0
;
opacity
:
0
;
...
...
@@ -386,6 +387,10 @@ img {
-webkit-transform
:
translateZ
(
0
);
}
.sidebar-toggle.has-toc
.sidebar-toggle-line
{
background
:
#87daff
;
}
.sidebar-toggle-line
{
position
:
relative
;
display
:
inline-block
;
...
...
@@ -570,6 +575,34 @@ img {
font-size
:
14px
;
line-height
:
2
;
}
.sidebar
section
{
opacity
:
0
;
position
:
relative
;
}
.sidebar
>
ul
>
li
{
display
:
inline-block
;
cursor
:
pointer
;
border-bottom
:
1px
solid
transparent
;
font-size
:
14px
;
color
:
#555
;
}
.sidebar
>
ul
>
li
:hover
{
color
:
#f5f5f5
;
}
.sidebar
>
ul
>
li
.current
{
color
:
#87daff
;
border-bottom-color
:
#87daff
;
}
.sidebar
>
ul
>
li
:last-child
{
margin-left
:
10px
;
}
/* end side */
/* start list*/
...
...
@@ -714,6 +747,11 @@ img {
.article-body
{
overflow
:
auto
;
text-align
:
justify
;
}
.article-body
p
{
margin
:
0
0
25px
0
;
}
/* end article */
...
...
@@ -940,13 +978,18 @@ ul.comments .comment-meta time {
/* end archives */
/* start responsive */
@media
(
max-width
:
1000px
)
{
.sidebar-toggle
,
.sidebar
{
display
:
none
;
}
@media
(
max-width
:
700px
)
{
.b3-solo-list
{
margin
:
0
;
padding
:
0
;
body
{
padding-right
:
0
!important
;
}
}
@media
(
max-width
:
700px
)
{
.page-archive
.posts-collapse
.archive-move-on
{
margin-left
:
5px
;
}
...
...
@@ -954,9 +997,6 @@ ul.comments .comment-meta time {
.posts-collapse
{
margin-left
:
10px
;
}
}
@media
(
max-width
:
500px
)
{
pre
{
word-wrap
:
break-word
;
word-break
:
break-all
;
...
...
@@ -976,7 +1016,6 @@ ul.comments .comment-meta time {
.logo-line-after
,
.menu
,
.site-search
,
.sidebar-toggle
,
.back-to-top
{
display
:
none
;
}
...
...
@@ -994,18 +1033,9 @@ ul.comments .comment-meta time {
background-color
:
#ddd
;
display
:
none
;
}
.header
.wrapper
{
padding
:
0
10px
;
}
.logo-wrap
.site-title
{
margin-left
:
10px
;
}
.wrapper
{
width
:
auto
;
margin
:
0
10px
;
min-width
:
inherit
;
}
.btn-bar
{
...
...
@@ -1032,6 +1062,12 @@ ul.comments .comment-meta time {
.footer
{
text-align
:
center
;
font-size
:
12px
;
padding
:
10px
0
;
}
.footer
.fn-right
{
float
:
none
;
}
}
/* end responsive */
\ No newline at end of file
src/main/webapp/skins/next/footer.ftl
View file @
fb8bcf9e
<footer class="footer">
<div class="wrapper">
<div class="wrapper
fn-clear
">
<a href="${servePath}">${blogTitle}</a> •
${onlineVisitor1Label}${onlineVisitorCnt} <br/>
© ${year}
...
...
@@ -39,7 +39,9 @@
"em11Label": "${em11Label}",
"em12Label": "${em12Label}",
"em13Label": "${em13Label}",
"em14Label": "${em14Label}"
"em14Label": "${em14Label}",
"tocLabel": "${tocLabel}",
"siteViewLabel": "${siteViewLabel}"
};
</script>
${plugins}
src/main/webapp/skins/next/js/next.js
View file @
fb8bcf9e
...
...
@@ -17,7 +17,7 @@
* @fileoverview util and every page should be used.
*
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
* @version 0.
1.1.0, Jul 30
, 2016
* @version 0.
2.1.0, Sep 6
, 2016
*/
/**
...
...
@@ -37,6 +37,7 @@ var NexT = {
$sidebar
.
animate
({
right
:
-
320
});
$sidebar
.
find
(
'
section
'
).
css
(
'
opacity
'
,
0
);
}
else
{
$
(
this
).
addClass
(
'
sidebar-active
'
);
$
(
'
body
'
).
animate
({
...
...
@@ -44,6 +45,10 @@ var NexT = {
});
$sidebar
.
animate
({
right
:
0
},
function
()
{
$sidebar
.
find
(
'
section:first
'
).
animate
({
'
opacity
'
:
1
});
});
}
});
...
...
@@ -54,6 +59,7 @@ var NexT = {
$
(
document
).
ready
(
function
()
{
setTimeout
(
function
()
{
// logo animate
$
(
'
.logo-wrap
'
).
css
(
'
opacity
'
,
1
);
$
(
'
.logo-line-before i
'
).
animate
({
'
left
'
:
'
0
'
...
...
@@ -66,6 +72,11 @@ var NexT = {
});
$
(
'
.main
'
).
css
(
'
opacity
'
,
1
).
animate
({
'
top
'
:
'
0
'
},
function
()
{
// 当有文章页面有目录时,回调不放这里,侧边栏就会一片空白
if
(
$
(
'
.b3-solo-list li
'
).
length
>
0
&&
$
(
window
).
width
()
>
1000
)
{
$
(
'
.sidebar-toggle
'
).
click
();
}
});
});
...
...
@@ -79,9 +90,44 @@ var NexT = {
});
},
initArticle
:
function
()
{
if
(
$
(
'
.b3-solo-list li
'
).
length
>
0
&&
$
(
window
).
width
()
>
700
)
{
$
(
'
.sidebar
'
).
html
(
$
(
'
.b3-solo-list
'
));
$
(
'
.sidebar-toggle
'
).
click
();
if
(
$
(
'
.b3-solo-list li
'
).
length
>
0
&&
$
(
window
).
width
()
>
1000
)
{
// add color to sidebar menu
$
(
'
.sidebar-toggle
'
).
addClass
(
'
has-toc
'
);
// append toc to sidebar menu
var
articleTocHTML
=
'
<ul><li class="current" data-tab="toc">
'
+
Label
.
tocLabel
+
'
</li><li data-tab="site">
'
+
Label
.
siteViewLabel
+
'
</li></ul><section></section>
'
;
$
(
'
.sidebar
'
).
prepend
(
articleTocHTML
);
var
$sectionF
=
$
(
'
.sidebar section:first
'
).
html
(
$
(
'
.b3-solo-list
'
)),
$sectionL
=
$
(
'
.sidebar section:last
'
);
// 切换 tab
$
(
'
.sidebar > ul > li
'
).
click
(
function
()
{
if
(
$
(
this
).
data
(
'
tab
'
)
===
'
toc
'
)
{
$sectionL
.
animate
({
"
opacity
"
:
'
0
'
,
"
top
"
:
'
-50px
'
},
300
,
function
()
{
$sectionF
.
show
().
css
(
'
top
'
,
'
-50px
'
);
$sectionF
.
animate
({
"
opacity
"
:
'
1
'
,
"
top
"
:
'
0
'
},
300
);
});
}
else
{
$sectionF
.
animate
({
"
opacity
"
:
'
0
'
,
"
top
"
:
'
-50px
'
},
300
,
function
()
{
$sectionF
.
hide
().
css
(
'
top
'
,
'
-50px
'
);
$sectionL
.
animate
({
"
opacity
"
:
'
1
'
,
"
top
"
:
'
0
'
},
300
);
});
}
$
(
'
.sidebar > ul > li
'
).
removeClass
(
'
current
'
);
$
(
this
).
addClass
(
'
current
'
);
});
}
}
};
...
...
src/main/webapp/skins/next/js/next.min.js
View file @
fb8bcf9e
var
NexT
=
{
init
:
function
(){
$
(
"
.sidebar-toggle
"
).
click
(
function
(){
var
i
=
$
(
"
.sidebar
"
);
$
(
this
).
hasClass
(
"
sidebar-active
"
)?(
$
(
this
).
removeClass
(
"
sidebar-active
"
),
$
(
"
body
"
).
animate
({
"
padding-right
"
:
0
}),
i
.
animate
({
right
:
-
320
})):(
$
(
this
).
addClass
(
"
sidebar-active
"
),
$
(
"
body
"
).
animate
({
"
padding-right
"
:
320
}),
i
.
animate
({
right
:
0
}))}),
$
(
"
.site-nav-toggle
"
).
click
(
function
(){
$
(
"
.site-nav
"
).
slideToggle
()}),
$
(
document
).
ready
(
function
(){
setTimeout
(
function
(){
$
(
"
.logo-wrap
"
).
css
(
"
opacity
"
,
1
),
$
(
"
.logo-line-before i
"
).
animate
({
left
:
"
0
"
},
function
(){
$
(
"
.site-title
"
).
css
(
"
opacity
"
,
1
).
animate
({
top
:
0
},
function
(){
$
(
"
.menu
"
).
css
(
"
opacity
"
,
1
).
animate
({
"
margin-top
"
:
"
15px
"
}),
$
(
"
.main
"
).
css
(
"
opacity
"
,
1
).
animate
({
top
:
"
0
"
})})}),
$
(
"
.logo-line-after i
"
).
animate
({
right
:
"
0
"
})},
500
)})},
initArticle
:
function
(){
$
(
"
.b3-solo-list li
"
).
length
>
0
&&
$
(
window
).
width
()
>
700
&&
(
$
(
"
.sidebar
"
).
html
(
$
(
"
.b3-solo-list
"
)),
$
(
"
.sidebar-toggle
"
).
click
())}};
NexT
.
init
();
\ No newline at end of file
/*
* Copyright (c) 2010-2016, 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.
*/
var
NexT
=
{
init
:
function
(){
$
(
"
.sidebar-toggle
"
).
click
(
function
(){
var
i
=
$
(
"
.sidebar
"
);
$
(
this
).
hasClass
(
"
sidebar-active
"
)?(
$
(
this
).
removeClass
(
"
sidebar-active
"
),
$
(
"
body
"
).
animate
({
"
padding-right
"
:
0
}),
i
.
animate
({
right
:
-
320
}),
i
.
find
(
"
section
"
).
css
(
"
opacity
"
,
0
)):(
$
(
this
).
addClass
(
"
sidebar-active
"
),
$
(
"
body
"
).
animate
({
"
padding-right
"
:
320
}),
i
.
animate
({
right
:
0
},
function
(){
i
.
find
(
"
section:first
"
).
animate
({
opacity
:
1
})}))}),
$
(
"
.site-nav-toggle
"
).
click
(
function
(){
$
(
"
.site-nav
"
).
slideToggle
()}),
$
(
document
).
ready
(
function
(){
setTimeout
(
function
(){
$
(
"
.logo-wrap
"
).
css
(
"
opacity
"
,
1
),
$
(
"
.logo-line-before i
"
).
animate
({
left
:
"
0
"
},
function
(){
$
(
"
.site-title
"
).
css
(
"
opacity
"
,
1
).
animate
({
top
:
0
},
function
(){
$
(
"
.menu
"
).
css
(
"
opacity
"
,
1
).
animate
({
"
margin-top
"
:
"
15px
"
}),
$
(
"
.main
"
).
css
(
"
opacity
"
,
1
).
animate
({
top
:
"
0
"
},
function
(){
$
(
"
.b3-solo-list li
"
).
length
>
0
&&
$
(
window
).
width
()
>
1
e3
&&
$
(
"
.sidebar-toggle
"
).
click
()})})}),
$
(
"
.logo-line-after i
"
).
animate
({
right
:
"
0
"
})},
500
)})},
initArticle
:
function
(){
if
(
$
(
"
.b3-solo-list li
"
).
length
>
0
&&
$
(
window
).
width
()
>
1
e3
){
$
(
"
.sidebar-toggle
"
).
addClass
(
"
has-toc
"
);
var
i
=
'
<ul><li class="current" data-tab="toc">
'
+
Label
.
tocLabel
+
'
</li><li data-tab="site">
'
+
Label
.
siteViewLabel
+
"
</li></ul><section></section>
"
;
$
(
"
.sidebar
"
).
prepend
(
i
);
var
t
=
$
(
"
.sidebar section:first
"
).
html
(
$
(
"
.b3-solo-list
"
)),
a
=
$
(
"
.sidebar section:last
"
);
$
(
"
.sidebar > ul > li
"
).
click
(
function
(){
"
toc
"
===
$
(
this
).
data
(
"
tab
"
)?
a
.
animate
({
opacity
:
"
0
"
,
top
:
"
-50px
"
},
300
,
function
(){
t
.
show
().
css
(
"
top
"
,
"
-50px
"
),
t
.
animate
({
opacity
:
"
1
"
,
top
:
"
0
"
},
300
)}):
t
.
animate
({
opacity
:
"
0
"
,
top
:
"
-50px
"
},
300
,
function
(){
t
.
hide
().
css
(
"
top
"
,
"
-50px
"
),
a
.
animate
({
opacity
:
"
1
"
,
top
:
"
0
"
},
300
)}),
$
(
"
.sidebar > ul > li
"
).
removeClass
(
"
current
"
),
$
(
this
).
addClass
(
"
current
"
)})}}};
NexT
.
init
();
\ No newline at end of file
src/main/webapp/skins/next/lang/lang_en_US.properties
View file @
fb8bcf9e
...
...
@@ -16,11 +16,13 @@
#
# Description: B3log Solo language configurations(en_US).
# Version: 1.
0.1.2, Sep 4, 2015
# Version: 1.
1.1.2, Sep 6, 2016
# Author: Liyuan Li
# Author: Liang Ding
#
tocLabel
=
\u6587\u
7ae0
\u
76ee
\u
5f55
siteViewLabel
=
\u
7ad9
\u
70b9
\u6982\u
89c8
viewsLabel
=
Heat
cmtLabel
=
Comments
postTimeLabel
=
Post At
...
...
src/main/webapp/skins/next/lang/lang_zh_CN.properties
View file @
fb8bcf9e
...
...
@@ -16,10 +16,12 @@
#
# Description: B3log Solo default language configurations(zh_CN).
# Version: 1.
0.0.1, Jul 30
, 2016
# Version: 1.
1.1.2, Sep 6
, 2016
# Author: Liyuan Li
#
tocLabel
=
\u6587\u
7ae0
\u
76ee
\u
5f55
siteViewLabel
=
\u
7ad9
\u
70b9
\u6982\u
89c8
viewsLabel
=
\u
70ed
\u
5ea6
cmtLabel
=
\u6761\u
8bc4
\u
8bba
postTimeLabel
=
\u
53d1
\u8868\u
4e8e
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment