master分支改为Saker模板引擎

This commit is contained in:
eshengsky
2017-05-08 16:28:24 +08:00
parent beb619e224
commit e0e5b41216
51 changed files with 1461 additions and 1148 deletions

View File

@@ -6,6 +6,9 @@ _不仅仅是博客更是 Demo_适合新人入门学习的完整项目。
## 在线实例
个人博客 [http://www.skysun.name/](http://www.skysun.name/)
## 分支说明
当前项目分为 [master](https://github.com/eshengsky/iBlog2/tree/master) 分支和 [Jade-template](https://github.com/eshengsky/iBlog2/tree/Jade-template) 分支,唯一的区别在于 master 分支使用的是我自己写的 [Saker](https://github.com/eshengsky/saker) 模板引擎Jade-template 分支使用的 [Jade](https://pugjs.org/) 模板引擎。
## [Wiki](https://github.com/eshengsky/iBlog2/wiki)
整理了 iBlog2 中涉及 Node.js 及部分前端技术的基本功能与知识点,适合新手学习、备查。
@@ -31,7 +34,7 @@ _不仅仅是博客更是 Demo_适合新人入门学习的完整项目。
## 技术构成
* 服务端 [Node.js](https://nodejs.org/)
* web框架 [Express 4](http://expressjs.com/)
* 模板引擎 [Jade](https://pugjs.org/)
* 模板引擎 [Saker](https://github.com/eshengsky/saker) (master分支) / [Jade](https://pugjs.org/) (Jade-template分支)
* JS库 [jQuery](http://jquery.com/)
* UI库 [Bootstrap 3](http://getbootstrap.com/)
* 持久化 [MongoDB](https://www.mongodb.org/)
@@ -127,5 +130,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
SOFTWARE.

9
app.js
View File

@@ -15,12 +15,17 @@ var ue = require('./routes/ue');
var logger = require('./utility/logger');
var passport = require('passport');
var i18n = require('./models/i18n');
var saker = require('saker');
saker.config({
defaultLayout: './shared/layout.html',
partialViewDir: './views/shared/'
});
var app = express();
// view engine setup
app.engine('html', saker.renderView);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.set('view engine', 'html');
// uncomment after placing your favicon in /public
app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));

View File

@@ -47,7 +47,7 @@
"footer": {
"admin_system": "后台管理"
},
"top":{
"top": {
"share": "分享到",
"qr_code": "二维码",
"back_to_top": "回顶部",
@@ -207,4 +207,4 @@
"save": "保存修改"
}
}
}
}

View File

@@ -16,7 +16,6 @@
"express": "~4.13.1",
"express-session": "^1.13.0",
"i18n": "0.8.2",
"jade": "^1.11.0",
"jquery-file-upload-middleware": "^0.1.7",
"moment": "^2.11.1",
"mongoose": "^4.3.7",
@@ -26,6 +25,7 @@
"passport": "^0.3.2",
"passport-local": "^1.0.0",
"redis": "^2.4.2",
"saker": "^1.0.0",
"serve-favicon": "~2.3.0",
"shortid": "^2.2.4",
"winston": "^2.1.1",

View File

@@ -25,7 +25,7 @@ router.get('/', function (req, res, next) {
next(err);
} else {
res.render('admin/index', {
settings: settings,
config: settings,
title: settings['SiteName'] + ' - ' + res.__("layoutAdmin.web_statistic")
});
}
@@ -39,7 +39,7 @@ router.get('/categorymanage', function (req, res, next) {
next(err);
} else {
res.render('admin/categorymanage', {
settings: settings,
config: settings,
title: settings['SiteName'] + ' - ' + res.__("layoutAdmin.classified_management")
});
}
@@ -76,7 +76,7 @@ router.get('/articlemanage', function (req, res, next) {
next(err);
} else {
res.render('admin/articlemanage', {
settings: settings,
config: settings,
title: settings['SiteName'] + ' - ' + res.__("layoutAdmin.article_management")
});
}
@@ -193,7 +193,7 @@ router.get('/newArticle', function (req, res, next) {
} else {
res.render('admin/newarticle', {
uniqueId: shortid.generate(),
settings: settings,
config: settings,
title: settings['SiteName'] + ' - ' + res.__("layoutAdmin.new_article")
});
}
@@ -274,7 +274,7 @@ router.get('/editArticle/:id', function (req, res, next) {
settings = results[0];
article = results[1];
res.render('admin/editarticle', {
settings: settings,
config: settings,
post: article,
title: settings['SiteName'] + ' - ' + res.__("layoutAdmin.edit_article")
});
@@ -311,7 +311,7 @@ router.get('/comments', function (req, res, next) {
next(err);
} else {
res.render('admin/comments', {
settings: settings,
config: settings,
title: settings['SiteName'] + ' - ' + res.__("layoutAdmin.comment_management")
});
}
@@ -325,7 +325,7 @@ router.get('/guestbook', function (req, res, next) {
next(err);
} else {
res.render('admin/guestbook', {
settings: settings,
config: settings,
title: settings['SiteName'] + ' - ' + res.__("layoutAdmin.msg_management")
});
}
@@ -366,7 +366,7 @@ router.get('/aboutmanage', function (req, res, next) {
res.render('admin/aboutmanage', {
title: settings['SiteName'] + ' - ' + res.__("layoutAdmin.about_management"),
about: about,
settings: settings
config: settings
});
}
});
@@ -399,7 +399,7 @@ router.get('/cachemanage', function (req, res, next) {
next(err);
} else {
res.render('admin/cachemanage', {
settings: settings,
config: settings,
title: settings['SiteName'] + ' - ' + res.__("layoutAdmin.cache_management")
});
}
@@ -439,7 +439,7 @@ router.get('/exception', require('connect-ensure-login').ensureLoggedIn(), funct
next(err);
} else {
res.render('admin/exception', {
settings: settings,
config: settings,
title: settings['SiteName'] + ' - ' + res.__("layoutAdmin.exception_management")
});
}
@@ -503,11 +503,12 @@ router.post('/getExceptions', function (req, res, next) {
//系统设置页面
router.get('/settings', function (req, res, next) {
tool.getConfig(path.join(__dirname, '../config/settings.json'), function (err, settings) {
console.log(settings)
if (err) {
next(err);
} else {
res.render('admin/settings', {
settings: settings,
config: settings,
title: settings['SiteName'] + ' - ' + res.__("layoutAdmin.settings")
});
}

View File

@@ -43,7 +43,7 @@ router.get('/login', function (req, res, next) {
next(err);
} else {
res.render('auth/login', {
settings: settings,
config: settings,
title: settings['SiteName'] + ' - ' + res.__("auth.title")
});
}

View File

@@ -46,7 +46,7 @@ router.get('/:category?', function (req, res, next) {
if (cate) {
res.render('blog/index', {
cateData: categories,
settings: settings,
config: settings,
title: settings['SiteName'],
currentCate: currentCate,
isRoot: false
@@ -258,7 +258,7 @@ router.get('/:category/:article', function (req, res, next) {
};
res.render('blog/article', {
post: post,
settings: settings,
config: settings,
title: settings['SiteName'] + ' - ' + article.Title
});
}

View File

@@ -37,7 +37,7 @@ router.get('/', function (req, res, next) {
categories = results[1];
res.render('blog/index', {
cateData: categories,
settings: settings,
config: settings,
title: settings['SiteName'],
currentCate: '',
isRoot: true

View File

@@ -12,7 +12,7 @@ router.get('/guestbook', function (req, res, next) {
} else {
res.render('misc/guestbook', {
title: settings['SiteName'] + ' - ' + res.__("misc.msg"),
settings: settings
config: settings
});
}
});
@@ -52,7 +52,7 @@ router.get('/about', function (req, res, next) {
res.render('misc/about', {
title: settings['SiteName'] + ' - ' + res.__('misc.about'),
about: about,
settings: settings
config: settings
});
}
});

View File

@@ -0,0 +1,74 @@
@{this.layout = './shared/layoutAdmin'}
<link href="/libs/sweetalert/dist/sweetalert.css" rel="stylesheet"/>
<link href="/libs/blueimp-file-upload/css/jquery.fileupload.css" rel="stylesheet"/>
<div class="row wrapper border-bottom white-bg page-heading">
<div class="col-lg-8">
<h2>@__("admin.aboutmanage.about")</h2>
</div>
</div>
<div class="wrapper wrapper-content animated fadeIn">
<div class="row">
<div class="col-lg-12">
<div class="ibox">
<div class="ibox-content">
<div class="row">
<div class="col-lg-4 col-lg-offset-4">
<div class="about-block">
<form id="formAbout" action="/admin/saveAbout" method="Post">
<div class="widget-head-color-box navy-bg p-lg text-center">
<div class="m-b-md">
<input id="FirstLine" type="text" name="FirstLine" placeholder='__("admin.aboutmanage.line_1")' value="@about.FirstLine" class="form-group form-control text-center"/>
<input id="SecondLine" type="text" name="SecondLine" placeholder='@__("admin.aboutmanage.line_2")' value="@about.SecondLine" class="form-control text-center"/>
</div>
<span class="fileinput-button">
<img alt="profile" src="@about.PhotoPath" class="img-circle profile-img m-b-md"/>
<input type="file" name="file" class="fileupload"/>
<input id="PhotoPath" type="hidden" name="PhotoPath" value="@about.PhotoPath"/>
</span>
<span class="fileinput-button">
<img alt="wechat" src="@about.QrcodePath" style="width:100px;height:100px;" class="wechat-img m-b-md"/>
<input type="file" name="file" class="fileupload"/>
<input id="QrcodePath" type="hidden" name="QrcodePath" value="@about.QrcodePath"/>
</span>
<h4>
<span id="job-title">
<textarea id="ThirdLine" name="ThirdLine" placeholder='@__("admin.aboutmanage.line_3")' class="form-control">@this.raw(about.ThirdLine)</textarea>
</span>
</h4>
</div>
<div class="widget-text-box">
<p>
<textarea id="Profile" name="Profile" cols="3" placeholder='@__("admin.aboutmanage.self_intro")' class="form-control">@this.raw(about.Profile)</textarea>
</p>
<div class="row form-inline">
<div class="col-md-6">
<i class="fa fa-wechat"></i>
<input id="Wechat" type="text" name="Wechat" placeholder='@__("admin.aboutmanage.wechat")' value="@about.Wechat" class="form-control"/>
</div>
<div class="col-md-6">
<i class="fa fa-envelope"></i>
<input id="Email" type="text" name="Email" placeholder='@__("admin.aboutmanage.email")' value="@about.Email" class="form-control"/>
</div>
</div>
</div>
<button id="btnSave" type="button" class="btn btn-primary pull-right m-t-sm">
<i class="fa fa-cloud-upload"></i> @__("admin.aboutmanage.save")
</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="/libs/jquery/dist/jquery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap/dist/js/bootstrap.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/metisMenu/dist/metisMenu.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/admin.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/blueimp-file-upload/js/vendor/jquery.ui.widget.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/blueimp-file-upload/js/jquery.fileupload.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/sweetalert/dist/sweetalert.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/aboutmanage.js" charset="utf-8"></script>

View File

@@ -1,57 +0,0 @@
extends ../shared/layoutAdmin
block content
link(href='/libs/sweetalert/dist/sweetalert.css', rel='stylesheet')
link(href='/libs/blueimp-file-upload/css/jquery.fileupload.css', rel='stylesheet')
.row.wrapper.border-bottom.white-bg.page-heading
.col-lg-8
h2 #{__("admin.aboutmanage.about")}
.wrapper.wrapper-content.animated.fadeIn
.row
.col-lg-12
.ibox
.ibox-content
.row
.col-lg-4.col-lg-offset-4
.about-block
form#formAbout(action='/admin/saveAbout', method='Post')
.widget-head-color-box.navy-bg.p-lg.text-center
.m-b-md
input#FirstLine.form-group.form-control.text-center(type='text', name='FirstLine', placeholder='#{__("admin.aboutmanage.line_1")}', value=about.FirstLine)
input#SecondLine.form-control.text-center(type='text', name='SecondLine', placeholder='#{__("admin.aboutmanage.line_2")}', value=about.SecondLine)
span.fileinput-button
img.img-circle.profile-img.m-b-md(alt='profile', src=about.PhotoPath)
input.fileupload(type='file', name='file')
input#PhotoPath(type='hidden', name='PhotoPath', value=about.PhotoPath)
span.fileinput-button
img.wechat-img.m-b-md(alt='wechat', src=about.QrcodePath, style='width:100px;height:100px;')
input.fileupload(type='file', name='file')
input#QrcodePath(type='hidden', name='QrcodePath',value=about.QrcodePath)
h4
span#job-title
textarea#ThirdLine.form-control(name='ThirdLine', placeholder='#{__("admin.aboutmanage.line_3")}')
!=about.ThirdLine
.widget-text-box
p
textarea#Profile.form-control(name='Profile', cols='3', placeholder='#{__("admin.aboutmanage.self_intro")}')
!=about.Profile
.row.form-inline
.col-md-6
i.fa.fa-wechat
=' '
input#Wechat.form-control(type='text', name='Wechat', placeholder='#{__("admin.aboutmanage.wechat")}', value=about.Wechat)
=' '
.col-md-6
i.fa.fa-envelope
=' '
input#Email.form-control(type='text', name='Email', placeholder='#{__("admin.aboutmanage.email")}', value=about.Email)
button#btnSave.btn.btn-primary.pull-right.m-t-sm(type='button')
i.fa.fa-cloud-upload
| #{__("admin.aboutmanage.save")}
script(type='text/javascript', src='/libs/jquery/dist/jquery.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap/dist/js/bootstrap.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/metisMenu/dist/metisMenu.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/admin.js', charset='utf-8')
script(type='text/javascript', src='/libs/blueimp-file-upload/js/vendor/jquery.ui.widget.js', charset='utf-8')
script(type='text/javascript', src='/libs/blueimp-file-upload/js/jquery.fileupload.js', charset='utf-8')
script(type='text/javascript', src='/libs/sweetalert/dist/sweetalert.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/aboutmanage.js', charset='utf-8')

View File

@@ -0,0 +1,38 @@
@{this.layout = './shared/layoutAdmin'}
<link href="/libs/bootstrap-table/dist/bootstrap-table.min.css" rel="stylesheet"/>
<link href="/libs/sweetalert/dist/sweetalert.css" rel="stylesheet"/>
<div class="row wrapper border-bottom white-bg page-heading">
<div class="col-lg-8">
<h2>@__("admin.articlemanage.post")</h2>
</div>
</div>
<div class="wrapper wrapper-content animated fadeIn">
<div class="row">
<div class="col-lg-12">
<div class="ibox">
<div class="ibox-content">
<div id="toolbar">
<button id="remove" disabled="" class="btn btn-white">
<i class="fa fa-trash-o"></i> <span class="badge"></span>
</button>
<a href="/admin/newarticle" class="btn btn-white">
<i class="fa fa-plus"></i> @__("admin.articlemanage.new_article")
</a>
</div>
<table id="articles"></table>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="/libs/jquery/dist/jquery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap/dist/js/bootstrap.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/metisMenu/dist/metisMenu.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/admin.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap-table/dist/bootstrap-table.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap-table/dist/extensions/filter-control/bootstrap-table-filter-control.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap-table/dist/locale/bootstrap-table-zh-CN.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/lodash/dist/lodash.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/sweetalert/dist/sweetalert.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/articlemanage.js" charset="utf-8"></script>

View File

@@ -1,32 +0,0 @@
extends ../shared/layoutAdmin
block content
link(href='/libs/bootstrap-table/dist/bootstrap-table.min.css', rel='stylesheet')
link(href='/libs/sweetalert/dist/sweetalert.css', rel='stylesheet')
.row.wrapper.border-bottom.white-bg.page-heading
.col-lg-8
h2 #{__("admin.articlemanage.post")}
.wrapper.wrapper-content.animated.fadeIn
.row
.col-lg-12
.ibox
.ibox-content
#toolbar
button#remove.btn.btn-white(disabled='')
i.fa.fa-trash-o
=' '
span.badge
=' '
a.btn.btn-white(href='/admin/newarticle')
i.fa.fa-plus
| #{__("admin.articlemanage.new_article")}
table#articles
script(type='text/javascript', src='/libs/jquery/dist/jquery.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap/dist/js/bootstrap.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/metisMenu/dist/metisMenu.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/admin.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap-table/dist/bootstrap-table.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap-table/dist/extensions/filter-control/bootstrap-table-filter-control.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap-table/dist/locale/bootstrap-table-zh-CN.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/lodash/dist/lodash.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/sweetalert/dist/sweetalert.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/articlemanage.js', charset='utf-8')

View File

@@ -0,0 +1,71 @@
@{this.layout = './shared/layoutAdmin'}
<link href="/libs/fuelux/dist/css/fuelux.min.css" rel="stylesheet"/>
<link href="/libs/sweetalert/dist/sweetalert.css" rel="stylesheet"/>
<div class="row wrapper border-bottom white-bg page-heading">
<div class="col-lg-8">
<h2>@__("admin.cachemanage.cache")</h2>
</div>
</div>
<div class="wrapper wrapper-content animated fadeIn">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="ibox m-t-xl">
<div class="row">
<div class="col-md-10">
<div id="keyinput" data-initialize="combobox" class="input-group input-append dropdown combobox">
<input id="cacheKey" type="text" placeholder='@__("admin.cachemanage.cache_key")' class="form-control"/>
<div class="input-group-btn">
<button type="button" data-toggle="dropdown" class="btn btn-white dropdown-toggle"><span class="caret"></span></button>
<ul style="left:auto;" class="dropdown-menu dropdown-menu-right">
<li data-value="categories">
<a href="#">@__("admin.cachemanage.li_1")</a>
</li>
<li data-value="categories_all">
<a href="#">@__("admin.cachemanage.li_2")</a>
</li>
<li data-value="category_分类alias">
<a href="#">@__("admin.cachemanage.li_3")</a>
</li>
<li data-value="posts_cateid_分类id_pageindex_页码_pagesize_每页条数_sortby_排序类型_keyword_关键字_filtertype_查询类型">
<a href="#">@__("admin.cachemanage.li_4")</a>
</li>
<li data-value="posts_count_cateid_分类id_pageindex_页码_pagesize_每页条数_sortby_排序类型_keyword_关键字_filtertype_查询类型">
<a href="#">@__("admin.cachemanage.li_5")</a>
</li>
<li data-value="article_文章alias">
<a href="#">@__("admin.cachemanage.li_6")</a>
</li>
</ul>
</div>
</div>
</div>
<div class="col-md-2 text-right">
<button id="btnQuery" type="button" class="btn btn-white">
<i class="fa fa-search"></i> @__("admin.cachemanage.search_cache")
</button>
</div>
</div>
<div class="row">
<div class="col-md-12">
<textarea id="cacheContent" rows="20" style="max-width:100%;min-width:100%;" class="form-control m-t-sm"></textarea>
</div>
</div>
<div class="row">
<div class="col-md-12 text-right">
<button id="btnClear" type="button" class="btn btn-primary m-t-sm">
<i class="fa fa-times"></i> @__("admin.cachemanage.clear_cache")
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="/libs/jquery/dist/jquery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap/dist/js/bootstrap.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/metisMenu/dist/metisMenu.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/admin.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/fuelux/dist/js/fuelux.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/sweetalert/dist/sweetalert.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/cachemanage.js" charset="utf-8"></script>

View File

@@ -1,50 +0,0 @@
extends ../shared/layoutAdmin
block content
link(href='/libs/fuelux/dist/css/fuelux.min.css', rel='stylesheet')
link(href='/libs/sweetalert/dist/sweetalert.css', rel='stylesheet')
.row.wrapper.border-bottom.white-bg.page-heading
.col-lg-8
h2 #{__("admin.cachemanage.cache")}
.wrapper.wrapper-content.animated.fadeIn
.row
.col-md-6.col-md-offset-3
.ibox.m-t-xl
.row
.col-md-10
#keyinput.input-group.input-append.dropdown.combobox(data-initialize='combobox')
input#cacheKey.form-control(type='text', placeholder='#{__("admin.cachemanage.cache_key")}')
.input-group-btn
button.btn.btn-white.dropdown-toggle(type='button', data-toggle='dropdown')
span.caret
ul.dropdown-menu.dropdown-menu-right(style='left:auto;')
li(data-value='categories')
a(href='#') #{__("admin.cachemanage.li_1")}
li(data-value='categories_all')
a(href='#') #{__("admin.cachemanage.li_2")}
li(data-value='category_分类alias')
a(href='#') #{__("admin.cachemanage.li_3")}
li(data-value='posts_cateid_分类id_pageindex_页码_pagesize_每页条数_sortby_排序类型_keyword_关键字_filtertype_查询类型')
a(href='#') #{__("admin.cachemanage.li_4")}
li(data-value='posts_count_cateid_分类id_pageindex_页码_pagesize_每页条数_sortby_排序类型_keyword_关键字_filtertype_查询类型')
a(href='#') #{__("admin.cachemanage.li_5")}
li(data-value='article_文章alias')
a(href='#') #{__("admin.cachemanage.li_6")}
.col-md-2.text-right
button#btnQuery.btn.btn-white(type='button')
i.fa.fa-search
| #{__("admin.cachemanage.search_cache")}
.row
.col-md-12
textarea#cacheContent.form-control.m-t-sm(rows='20', style='max-width:100%;min-width:100%;')
.row
.col-md-12.text-right
button#btnClear.btn.btn-primary.m-t-sm(type='button')
i.fa.fa-times
| #{__("admin.cachemanage.clear_cache")}
script(type='text/javascript', src='/libs/jquery/dist/jquery.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap/dist/js/bootstrap.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/metisMenu/dist/metisMenu.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/admin.js', charset='utf-8')
script(type='text/javascript', src='/libs/fuelux/dist/js/fuelux.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/sweetalert/dist/sweetalert.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/cachemanage.js', charset='utf-8')

View File

@@ -0,0 +1,37 @@
@{this.layout = './shared/layoutAdmin'}
<link href="/libs/fuelux/dist/css/fuelux.min.css" rel="stylesheet"/>
<link href="/libs/sweetalert/dist/sweetalert.css" rel="stylesheet"/>
<link href="/libs/blueimp-file-upload/css/jquery.fileupload.css" rel="stylesheet"/>
<div class="row wrapper border-bottom white-bg page-heading">
<div class="col-lg-8">
<h2>@__("admin.categorymanage.category")</h2>
</div>
</div>
<div class="wrapper wrapper-content animated fadeIn">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="ibox">
<div>
<ul id="cate-list" class="list-group list-unstyled"></ul>
<button id="btnNew" class="btn btn-white">
<i class="fa fa-plus"></i> @__("admin.categorymanage.new_category")
</button>
<button id="btnSave" class="btn btn-primary pull-right">
<i class="fa fa-cloud-upload"></i> @__("admin.categorymanage.save")
</button>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="/libs/jquery/dist/jquery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap/dist/js/bootstrap.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/metisMenu/dist/metisMenu.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/admin.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/fuelux/dist/js/fuelux.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/jquery-sortable/source/js/jquery-sortable-min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/blueimp-file-upload/js/vendor/jquery.ui.widget.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/blueimp-file-upload/js/jquery.fileupload.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/sweetalert/dist/sweetalert.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/categorymanage.js" charset="utf-8"></script>

View File

@@ -1,30 +0,0 @@
extends ../shared/layoutAdmin
block content
link(href='/libs/fuelux/dist/css/fuelux.min.css', rel='stylesheet')
link(href='/libs/sweetalert/dist/sweetalert.css', rel='stylesheet')
link(href='/libs/blueimp-file-upload/css/jquery.fileupload.css', rel='stylesheet')
.row.wrapper.border-bottom.white-bg.page-heading
.col-lg-8
h2 #{__("admin.categorymanage.category")}
.wrapper.wrapper-content.animated.fadeIn
.row
.col-md-10.col-md-offset-1
.ibox
div
ul#cate-list.list-group.list-unstyled
button#btnNew.btn.btn-white
i.fa.fa-plus
| #{__("admin.categorymanage.new_category")}
button#btnSave.btn.btn-primary.pull-right
i.fa.fa-cloud-upload
| #{__("admin.categorymanage.save")}
script(type='text/javascript', src='/libs/jquery/dist/jquery.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap/dist/js/bootstrap.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/metisMenu/dist/metisMenu.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/admin.js', charset='utf-8')
script(type='text/javascript', src='/libs/fuelux/dist/js/fuelux.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/jquery-sortable/source/js/jquery-sortable-min.js', charset='utf-8')
script(type='text/javascript', src='/libs/blueimp-file-upload/js/vendor/jquery.ui.widget.js', charset='utf-8')
script(type='text/javascript', src='/libs/blueimp-file-upload/js/jquery.fileupload.js', charset='utf-8')
script(type='text/javascript', src='/libs/sweetalert/dist/sweetalert.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/categorymanage.js', charset='utf-8')

22
views/admin/comments.html Normal file
View File

@@ -0,0 +1,22 @@
@{this.layout = './shared/layoutAdmin'}
<div class="row wrapper border-bottom white-bg page-heading">
<div class="col-lg-8">
<h2>@__("admin.comments.comments")</h2>
</div>
</div>
<div class="wrapper wrapper-content animated fadeIn">
<div class="row">
<div class="col-lg-12">
<div class="ibox">
<div class="ibox-content">
<iframe src="http://changyan.kuaizhan.com/audit/comments/AUDITED/1" style="width: 100%; min-height: 4000px; border: none;"></iframe>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="/libs/jquery/dist/jquery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap/dist/js/bootstrap.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/metisMenu/dist/metisMenu.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/admin.js" charset="utf-8"></script>

View File

@@ -1,15 +0,0 @@
extends ../shared/layoutAdmin
block content
.row.wrapper.border-bottom.white-bg.page-heading
.col-lg-8
h2 #{__("admin.comments.comments")}
.wrapper.wrapper-content.animated.fadeIn
.row
.col-lg-12
.ibox
.ibox-content
iframe(src='http://changyan.kuaizhan.com/audit/comments/AUDITED/1', style='width: 100%; min-height: 4000px; border: none;')
script(type='text/javascript', src='/libs/jquery/dist/jquery.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap/dist/js/bootstrap.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/metisMenu/dist/metisMenu.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/admin.js', charset='utf-8')

View File

@@ -0,0 +1,136 @@
@{this.layout = './shared/layoutAdmin'}
<link href="/libs/fuelux/dist/css/fuelux.min.css" rel="stylesheet"/>
<link href="/libs/sweetalert/dist/sweetalert.css" rel="stylesheet"/>
<link href="/libs/form.validation/dist/css/formValidation.min.css" rel="stylesheet"/>
<div class="row wrapper border-bottom white-bg page-heading">
<div class="col-lg-8">
<h2>@__("admin.editarticle.edit")</h2>
</div>
</div>
<div class="wrapper wrapper-content animated fadeIn">
<div class="row">
<div class="col-lg-12">
<div class="ibox">
<div class="ibox-content">
<form id="postForm" action="/admin/saveArticle" method="post">
<div class="row">
<div class="col-md-9">
<div class="form-group">
<label for="Title">@__("admin.editarticle.title")</label>
<input id="Title" type="text" name="Title" placeholder='@__("admin.editarticle.enter_title")' class="form-control" value="@post.Title"/>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label for="CategoryId" style="display:block;">@__("admin.editarticle.category")</label>
<div id="Categorylist" data-resize="auto" data-initialize="selectlist" class="btn-group selectlist">
<button data-toggle="dropdown" type="button" class="btn btn-white dropdown-toggle"><span class="selected-label"></span><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
<ul role="menu" class="dropdown-menu"></ul>
<input id="CategoryId" type="text" name="CategoryId" readonly="readonly" aria-hidden="true" class="hidden hidden-field" value="@post.CategoryId"/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-9">
<div class="form-group">
<label for="Alias">Alias</label>
<input id="Alias" type="text" name="Alias" placeholder='@__("admin.editarticle.enter_alias")' class="form-control" value="@post.Alias"/>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<button type="button" class="btn btn-sm btn-white btn-alias">
<i class="fa fa-flash"></i> @__("admin.editarticle.auto_generate")
</button>
</div>
</div>
</div>
<div class="form-group">
<label for="Summary">@__("admin.editarticle.summary")</label>
<textarea id="Summary" name="Summary" style="min-width: 100%;max-width: 100%;" placeholder='@__("admin.editarticle.enter_summary")' class="form-control">@this.raw(post.Summary)</textarea>
</div>
<div class="form-group">
<label style="display:block;">@__("admin.editarticle.source")</label>
<label id="soruceLocal" data-initialize="radio" class="radio-custom radio-inline">
<input data-toggle="#block-local" name="Source" type="radio" value="0" checked="checked" class="sr-only"/> @__("admin.editarticle.local")
</label>
<label id="soruceLink" data-initialize="radio" class="radio-custom radio-inline">
<input data-toggle="#block-link" name="Source" type="radio" value="1" class="sr-only"/> @__("admin.editarticle.url")
</label>
</div>
<div id="block-local">
<div class="form-group">
<label for="pillbox-input">@__("admin.editarticle.tag")</label>
<div id="myPillbox" data-initialize="pillbox" class="pillbox">
<ul class="clearfix pill-group">
<li class="pillbox-input-wrap btn-group"><a class="pillbox-more">and<span class="pillbox-more-count"></span> more...</a>
<input id="pillbox-input" type="text" placeholder='@__("admin.editarticle.enter_to_add")' class="form-control dropdown-toggle pillbox-add-item"/>
<button type="button" class="dropdown-toggle sr-only"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
<ul role="menu" data-toggle="dropdown" data-flip="auto" class="suggest dropdown-menu"></ul>
</li>
</ul>
</div>
<input id="Labels" type="hidden" name="Labels" value="@post.Labels"/>
</div>
<div class="form-group">
<label>@__("admin.editarticle.article")</label>
<script id="editor" type="text/plain">@this.raw(post.Content)</script>
</div>
</div>
<div id="block-link">
<div class="form-group">
<label for="Url">Url</label>
<input id="Url" type="text" name="Url" placeholder='@__("admin.editarticle.enter_url")' class="form-control" value="@post.Url"/>
</div>
</div>
<div>
@if(!post.IsDraft) {
<button id="btnUpdate" type="submit" class="btn btn-primary">
<i class="fa fa-cloud-upload"></i> @__("admin.editarticle.update")
</button>
<a href="/admin/articlemanage" class="btn btn-white">
<i class="fa fa-reply"></i> @__("admin.editarticle.back")
</a>
} else {
<button id="btnPublish" type="submit" class="btn btn-danger">
<i class="fa fa-send"></i> @__("admin.editarticle.publish")
</button>
<button id="btnSave" type="button" class="btn btn-primary">
<i class="fa fa-save"></i> @__("admin.editarticle.save_draft")
</button>
<a href="/admin/articlemanage" class="btn btn-white">
<i class="fa fa-reply"></i> @__("admin.editarticle.back")
</a>
}
<input id="UniqueId" type="hidden" name="UniqueId" value="@post._id"/>
<input id="IsDraft" type="hidden" name="IsDraft" value='@(post.IsDraft ? "True" : "False")'/>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="/libs/jquery/dist/jquery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap/dist/js/bootstrap.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/form.validation/dist/js/formValidation.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/form.validation/dist/js/framework/bootstrap.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/form.validation/dist/js/language/zh_CN.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/metisMenu/dist/metisMenu.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/admin.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/ueditor/ueditor.config.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/ueditor/ueditor.all.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/ueditor/dialogs/insertalert/insertalert.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/ueditor/dialogs/inserticon/inserticon.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/ueditor/dialogs/insertlabel/insertlabel.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/fuelux/dist/js/fuelux.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/sweetalert/dist/sweetalert.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/js-md5/js/md5.min.js" charset="utf-8"></script>
<script>
var categoryId = '@post.CategoryId';
var source = '@post.Source';
var translateKey = '@config.TranslateKey';
</script>
<script type="text/javascript" src="/javascripts/editarticle.js" charset="utf-8"></script>

View File

@@ -1,118 +0,0 @@
extends ../shared/layoutAdmin
block content
link(href='/libs/fuelux/dist/css/fuelux.min.css', rel='stylesheet')
link(href='/libs/sweetalert/dist/sweetalert.css', rel='stylesheet')
link(href='/libs/form.validation/dist/css/formValidation.min.css', rel='stylesheet')
.row.wrapper.border-bottom.white-bg.page-heading
.col-lg-8
h2 #{__("admin.editarticle.edit")}
.wrapper.wrapper-content.animated.fadeIn
.row
.col-lg-12
.ibox
.ibox-content
form#postForm(action='/admin/saveArticle', method='post')
.row
.col-md-9
.form-group
label(for='Title') #{__("admin.editarticle.title")}
input#Title.form-control(type='text', name='Title', placeholder='#{__("admin.editarticle.enter_title")}',value=post.Title)
.col-md-3
.form-group
label(for='CategoryId', style='display:block;') #{__("admin.editarticle.category")}
#Categorylist.btn-group.selectlist(data-resize='auto', data-initialize='selectlist')
button.btn.btn-white.dropdown-toggle(data-toggle='dropdown', type='button')
span.selected-label
span.caret
span.sr-only Toggle Dropdown
ul.dropdown-menu(role='menu')
input#CategoryId.hidden.hidden-field(type='text', name='CategoryId', readonly='readonly', aria-hidden='true',value=post.CategoryId)
.row
.col-md-9
.form-group
label(for='Alias') Alias
input#Alias.form-control(type='text', name='Alias', placeholder='#{__("admin.editarticle.enter_alias")}',value=post.Alias)
.col-md-3
.form-group
button.btn.btn-sm.btn-white.btn-alias(type='button')
i.fa.fa-flash
| #{__("admin.editarticle.auto_generate")}
.form-group
label(for='Summary') #{__("admin.editarticle.summary")}
textarea#Summary.form-control(name='Summary', style='min-width: 100%;max-width: 100%;', placeholder='#{__("admin.editarticle.enter_summary")}')
!=post.Summary
.form-group
label(style='display:block;') #{__("admin.editarticle.source")}
label#soruceLocal.radio-custom.radio-inline(data-initialize='radio')
input.sr-only(data-toggle='#block-local', name='Source', type='radio', value='0', checked='checked')
| #{__("admin.editarticle.local")}
label#soruceLink.radio-custom.radio-inline(data-initialize='radio')
input.sr-only(data-toggle='#block-link', name='Source', type='radio', value='1')
| #{__("admin.editarticle.url")}
#block-local
.form-group
label(for='pillbox-input') #{__("admin.editarticle.tag")}
#myPillbox.pillbox(data-initialize='pillbox')
ul.clearfix.pill-group
li.pillbox-input-wrap.btn-group
a.pillbox-more
| and
span.pillbox-more-count
| more...
input#pillbox-input.form-control.dropdown-toggle.pillbox-add-item(type='text', placeholder='#{__("admin.editarticle.enter_to_add")}')
button.dropdown-toggle.sr-only(type='button')
span.caret
span.sr-only Toggle Dropdown
ul.suggest.dropdown-menu(role='menu', data-toggle='dropdown', data-flip='auto')
input#Labels(type='hidden', name='Labels',value=post.Labels)
.form-group
label #{__("admin.editarticle.article")}
script#editor(type='text/plain')
!=post.Content
#block-link
.form-group
label(for='Url') Url
input#Url.form-control(type='text', name='Url', placeholder='#{__("admin.editarticle.enter_url")}',value=post.Url)
div
if(!post.IsDraft)
button#btnUpdate.btn.btn-primary(type='submit')
i.fa.fa-cloud-upload
| #{__("admin.editarticle.update")}
=' '
a.btn.btn-white(href='/admin/articlemanage')
i.fa.fa-reply
| #{__("admin.editarticle.back")}
else
button#btnPublish.btn.btn-danger(type='submit')
i.fa.fa-send
| #{__("admin.editarticle.publish")}
=' '
button#btnSave.btn.btn-primary(type='button')
i.fa.fa-save
| #{__("admin.editarticle.save_draft")}
=' '
a.btn.btn-white(href='/admin/articlemanage')
i.fa.fa-reply
| #{__("admin.editarticle.back")}
input#UniqueId(type='hidden',name='UniqueId',value=post._id)
input#IsDraft(type='hidden',name='IsDraft',value='#{post.IsDraft ? "True" : "False"}')
script(type='text/javascript', src='/libs/jquery/dist/jquery.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap/dist/js/bootstrap.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/form.validation/dist/js/formValidation.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/form.validation/dist/js/framework/bootstrap.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/form.validation/dist/js/language/zh_CN.js', charset='utf-8')
script(type='text/javascript', src='/libs/metisMenu/dist/metisMenu.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/admin.js', charset='utf-8')
script(type='text/javascript', src='/libs/ueditor/ueditor.config.js', charset='utf-8')
script(type='text/javascript', src='/libs/ueditor/ueditor.all.js', charset='utf-8')
script(type='text/javascript', src='/libs/ueditor/dialogs/insertalert/insertalert.js', charset='utf-8')
script(type='text/javascript', src='/libs/ueditor/dialogs/inserticon/inserticon.js', charset='utf-8')
script(type='text/javascript', src='/libs/ueditor/dialogs/insertlabel/insertlabel.js', charset='utf-8')
script(type='text/javascript', src='/libs/fuelux/dist/js/fuelux.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/sweetalert/dist/sweetalert.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/js-md5/js/md5.min.js', charset='utf-8')
script.
var categoryId = '#{post.CategoryId}';
var source = '#{post.Source}';
var translateKey = '#{settings.TranslateKey}';
script(type='text/javascript', src='/javascripts/editarticle.js', charset='utf-8')

View File

@@ -0,0 +1,27 @@
@{this.layout = './shared/layoutAdmin'}
<link href="/libs/bootstrap-table/dist/bootstrap-table.min.css" rel="stylesheet"/>
<div class="row wrapper border-bottom white-bg page-heading">
<div class="col-lg-8">
<h2>@__("admin.exception.exception_manage")</h2>
</div>
</div>
<div class="wrapper wrapper-content animated fadeIn">
<div class="row">
<div class="col-lg-12">
<div class="ibox">
<div class="ibox-content">
<table id="exceptions"></table>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="/libs/jquery/dist/jquery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap/dist/js/bootstrap.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/metisMenu/dist/metisMenu.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/admin.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap-table/dist/bootstrap-table.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap-table/dist/locale/bootstrap-table-zh-CN.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/lodash/dist/lodash.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/exception.js" charset="utf-8"></script>

View File

@@ -1,20 +0,0 @@
extends ../shared/layoutAdmin
block content
link(href='/libs/bootstrap-table/dist/bootstrap-table.min.css', rel='stylesheet')
.row.wrapper.border-bottom.white-bg.page-heading
.col-lg-8
h2 #{__("admin.exception.exception_manage")}
.wrapper.wrapper-content.animated.fadeIn
.row
.col-lg-12
.ibox
.ibox-content
table#exceptions
script(type='text/javascript', src='/libs/jquery/dist/jquery.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap/dist/js/bootstrap.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/metisMenu/dist/metisMenu.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/admin.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap-table/dist/bootstrap-table.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap-table/dist/locale/bootstrap-table-zh-CN.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/lodash/dist/lodash.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/exception.js', charset='utf-8')

View File

@@ -0,0 +1,22 @@
@{this.layout = './shared/layoutAdmin'}
<div class="row wrapper border-bottom white-bg page-heading">
<div class="col-lg-8">
<h2>@__("admin.guestbook.message_manage")</h2>
</div>
</div>
<div class="wrapper wrapper-content animated fadeIn">
<div class="row">
<div class="col-lg-12">
<div class="ibox">
<div class="ibox-content">
<iframe src="http://www.uyan.cc/comment/content/?domain=@(settings.SiteDomain)&ufrom=&stat=0" style="width: 100%; min-height: 2000px; border: none;"></iframe>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="/libs/jquery/dist/jquery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap/dist/js/bootstrap.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/metisMenu/dist/metisMenu.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/admin.js" charset="utf-8"></script>

View File

@@ -1,15 +0,0 @@
extends ../shared/layoutAdmin
block content
.row.wrapper.border-bottom.white-bg.page-heading
.col-lg-8
h2 #{__("admin.guestbook.message_manage")}
.wrapper.wrapper-content.animated.fadeIn
.row
.col-lg-12
.ibox
.ibox-content
iframe(src='http://www.uyan.cc/comment/content/?domain=#{settings.SiteDomain}&ufrom=&stat=0', style='width: 100%; min-height: 2000px; border: none;')
script(type='text/javascript', src='/libs/jquery/dist/jquery.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap/dist/js/bootstrap.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/metisMenu/dist/metisMenu.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/admin.js', charset='utf-8')

22
views/admin/index.html Normal file
View File

@@ -0,0 +1,22 @@
@{this.layout = './shared/layoutAdmin'}
<div class="row wrapper border-bottom white-bg page-heading">
<div class="col-lg-8">
<h2>@__("admin.index.analysis")</h2>
</div>
</div>
<div class="wrapper wrapper-content animated fadeIn">
<div class="row">
<div class="col-lg-12">
<div class="ibox">
<div class="ibox-content">
<iframe src="http://tongji.baidu.com" style="width: 100%; min-height: 2000px; border: none;"></iframe>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="/libs/jquery/dist/jquery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap/dist/js/bootstrap.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/metisMenu/dist/metisMenu.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/admin.js" charset="utf-8"></script>

View File

@@ -1,15 +0,0 @@
extends ../shared/layoutAdmin
block content
.row.wrapper.border-bottom.white-bg.page-heading
.col-lg-8
h2 #{__("admin.index.analysis")}
.wrapper.wrapper-content.animated.fadeIn
.row
.col-lg-12
.ibox
.ibox-content
iframe(src='http://tongji.baidu.com', style='width: 100%; min-height: 2000px; border: none;')
script(type='text/javascript', src='/libs/jquery/dist/jquery.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap/dist/js/bootstrap.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/metisMenu/dist/metisMenu.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/admin.js', charset='utf-8')

120
views/admin/newarticle.html Normal file
View File

@@ -0,0 +1,120 @@
@{this.layout = './shared/layoutAdmin'}
<link href="/libs/fuelux/dist/css/fuelux.min.css" rel="stylesheet"/>
<link href="/libs/sweetalert/dist/sweetalert.css" rel="stylesheet"/>
<link href="/libs/form.validation/dist/css/formValidation.min.css" rel="stylesheet"/>
<div class="row wrapper border-bottom white-bg page-heading">
<div class="col-lg-8">
<h2>@__("admin.newarticle.new")</h2>
</div>
</div>
<div class="wrapper wrapper-content animated fadeIn">
<div class="row">
<div class="col-lg-12">
<div class="ibox">
<div class="ibox-content">
<form id="postForm" action="/admin/saveArticle" method="post">
<div class="row">
<div class="col-md-9">
<div class="form-group">
<label for="Title">@__("admin.newarticle.title")</label>
<input id="Title" type="text" name="Title" placeholder='@__("admin.newarticle.enter_title")' class="form-control"/>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<label for="CategoryId" style="display:block;">@__("admin.newarticle.category")</label>
<div id="Categorylist" data-resize="auto" data-initialize="selectlist" class="btn-group selectlist">
<button data-toggle="dropdown" type="button" class="btn btn-white dropdown-toggle"><span class="selected-label"></span><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
<ul role="menu" class="dropdown-menu"></ul>
<input id="CategoryId" type="text" name="CategoryId" readonly="readonly" aria-hidden="true" class="hidden hidden-field"/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-9">
<div class="form-group">
<label for="Alias">Alias</label>
<input id="Alias" type="text" name="Alias" placeholder='@__("admin.newarticle.enter_alias")' class="form-control"/>
</div>
</div>
<div class="col-md-3">
<div class="form-group">
<button type="button" class="btn btn-sm btn-white btn-alias">
<i class="fa fa-flash"></i> @__("admin.newarticle.auto_generate")
</button>
</div>
</div>
</div>
<div class="form-group">
<label for="Summary">@__("admin.newarticle.summary")</label>
<textarea id="Summary" name="Summary" style="min-width: 100%;max-width: 100%;" placeholder='@__("admin.newarticle.enter_summary")' class="form-control"></textarea>
</div>
<div class="form-group">
<label style="display:block;">@__("admin.newarticle.source")</label>
<label id="soruceLocal" data-initialize="radio" class="radio-custom radio-inline">
<input data-toggle="#block-local" name="Source" type="radio" value="0" checked="checked" class="sr-only"/> @__("admin.newarticle.local")
</label>
<label id="soruceLink" data-initialize="radio" class="radio-custom radio-inline">
<input data-toggle="#block-link" name="Source" type="radio" value="1" class="sr-only"/> @__("admin.newarticle.url")
</label>
</div>
<div id="block-local">
<div class="form-group">
<label for="pillbox-input">@__("admin.newarticle.tag")</label>
<div id="myPillbox" data-initialize="pillbox" class="pillbox">
<ul class="clearfix pill-group">
<li class="pillbox-input-wrap btn-group"><a class="pillbox-more">and<span class="pillbox-more-count"></span> more...</a>
<input id="pillbox-input" type="text" placeholder='@__("admin.newarticle.enter_to_add")' class="form-control dropdown-toggle pillbox-add-item"/>
<button type="button" class="dropdown-toggle sr-only"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
<ul role="menu" data-toggle="dropdown" data-flip="auto" class="suggest dropdown-menu"></ul>
</li>
</ul>
</div>
<input id="Labels" type="hidden" name="Labels"/>
</div>
<div class="form-group">
<label>@__("admin.newarticle.article")</label>
<script id="editor" type="text/plain"></script>
</div>
</div>
<div id="block-link">
<div class="form-group">
<label for="Url">Url</label>
<input id="Url" type="text" name="Url" placeholder='@__("admin.newarticle.enter_url")' class="form-control"/>
</div>
</div>
<div>
<button id="btnPublish" type="submit" class="btn btn-danger">
<i class="fa fa-send"></i> @__("admin.newarticle.publish")
</button>
<button id="btnSave" type="button" class="btn btn-primary">
<i class="fa fa-save"></i> @__("admin.newarticle.save_draft")
</button>
<input id="UniqueId" type="hidden" name="UniqueId"/>
<input id="IsDraft" type="hidden" name="IsDraft"/>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="/libs/jquery/dist/jquery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap/dist/js/bootstrap.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/form.validation/dist/js/formValidation.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/form.validation/dist/js/framework/bootstrap.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/form.validation/dist/js/language/zh_CN.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/metisMenu/dist/metisMenu.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/admin.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/ueditor/ueditor.config.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/ueditor/ueditor.all.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/ueditor/dialogs/insertalert/insertalert.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/ueditor/dialogs/inserticon/inserticon.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/ueditor/dialogs/insertlabel/insertlabel.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/fuelux/dist/js/fuelux.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/sweetalert/dist/sweetalert.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/js-md5/js/md5.min.js" charset="utf-8"></script>
<script>var translateKey = '@config.TranslateKey';</script>
<script type="text/javascript" src="/javascripts/newarticle.js" charset="utf-8"></script>

View File

@@ -1,101 +0,0 @@
extends ../shared/layoutAdmin
block content
link(href='/libs/fuelux/dist/css/fuelux.min.css', rel='stylesheet')
link(href='/libs/sweetalert/dist/sweetalert.css', rel='stylesheet')
link(href='/libs/form.validation/dist/css/formValidation.min.css', rel='stylesheet')
.row.wrapper.border-bottom.white-bg.page-heading
.col-lg-8
h2 #{__("admin.newarticle.new")}
.wrapper.wrapper-content.animated.fadeIn
.row
.col-lg-12
.ibox
.ibox-content
form#postForm(action='/admin/saveArticle', method='post')
.row
.col-md-9
.form-group
label(for='Title') #{__("admin.newarticle.title")}
input#Title.form-control(type='text', name='Title', placeholder='#{__("admin.newarticle.enter_title")}')
.col-md-3
.form-group
label(for='CategoryId', style='display:block;') #{__("admin.newarticle.category")}
#Categorylist.btn-group.selectlist(data-resize='auto', data-initialize='selectlist')
button.btn.btn-white.dropdown-toggle(data-toggle='dropdown', type='button')
span.selected-label
span.caret
span.sr-only Toggle Dropdown
ul.dropdown-menu(role='menu')
input#CategoryId.hidden.hidden-field(type='text', name='CategoryId', readonly='readonly', aria-hidden='true')
.row
.col-md-9
.form-group
label(for='Alias') Alias
input#Alias.form-control(type='text', name='Alias', placeholder='#{__("admin.newarticle.enter_alias")}')
.col-md-3
.form-group
button.btn.btn-sm.btn-white.btn-alias(type='button')
i.fa.fa-flash
| #{__("admin.newarticle.auto_generate")}
.form-group
label(for='Summary') #{__("admin.newarticle.summary")}
textarea#Summary.form-control(name='Summary', style='min-width: 100%;max-width: 100%;', placeholder='#{__("admin.newarticle.enter")}')
.form-group
label(style='display:block;') #{__("admin.newarticle.source")}
label#soruceLocal.radio-custom.radio-inline(data-initialize='radio')
input.sr-only(data-toggle='#block-local', name='Source', type='radio', value='0', checked='checked')
| #{__("admin.newarticle.local")}
label#soruceLink.radio-custom.radio-inline(data-initialize='radio')
input.sr-only(data-toggle='#block-link', name='Source', type='radio', value='1')
| #{__("admin.newarticle.url")}
#block-local
.form-group
label(for='pillbox-input') #{__("admin.newarticle.tag")}
#myPillbox.pillbox(data-initialize='pillbox')
ul.clearfix.pill-group
li.pillbox-input-wrap.btn-group
a.pillbox-more
| and
span.pillbox-more-count
| more...
input#pillbox-input.form-control.dropdown-toggle.pillbox-add-item(type='text', placeholder='#{__("admin.newarticle.enter_to_add")}')
button.dropdown-toggle.sr-only(type='button')
span.caret
span.sr-only Toggle Dropdown
ul.suggest.dropdown-menu(role='menu', data-toggle='dropdown', data-flip='auto')
input#Labels(type='hidden', name='Labels')
.form-group
label #{__("admin.newarticle.article")}
script#editor(type='text/plain')
#block-link
.form-group
label(for='Url') Url
input#Url.form-control(type='text', name='Url', placeholder='#{__("admin.newarticle.enter_url")}')
div
button#btnPublish.btn.btn-danger(type='submit')
i.fa.fa-send
| #{__("admin.newarticle.publish")}
=' '
button#btnSave.btn.btn-primary(type='button')
i.fa.fa-save
| #{__("admin.newarticle.save_draft")}
input#UniqueId(type='hidden',name='UniqueId',value=uniqueId)
input#IsDraft(type='hidden',name='IsDraft')
script(type='text/javascript', src='/libs/jquery/dist/jquery.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap/dist/js/bootstrap.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/form.validation/dist/js/formValidation.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/form.validation/dist/js/framework/bootstrap.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/form.validation/dist/js/language/zh_CN.js', charset='utf-8')
script(type='text/javascript', src='/libs/metisMenu/dist/metisMenu.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/admin.js', charset='utf-8')
script(type='text/javascript', src='/libs/ueditor/ueditor.config.js', charset='utf-8')
script(type='text/javascript', src='/libs/ueditor/ueditor.all.js', charset='utf-8')
script(type='text/javascript', src='/libs/ueditor/dialogs/insertalert/insertalert.js', charset='utf-8')
script(type='text/javascript', src='/libs/ueditor/dialogs/inserticon/inserticon.js', charset='utf-8')
script(type='text/javascript', src='/libs/ueditor/dialogs/insertlabel/insertlabel.js', charset='utf-8')
script(type='text/javascript', src='/libs/fuelux/dist/js/fuelux.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/sweetalert/dist/sweetalert.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/js-md5/js/md5.min.js', charset='utf-8')
script.
var translateKey = '#{settings.TranslateKey}';
script(type='text/javascript', src='/javascripts/newarticle.js', charset='utf-8')

209
views/admin/settings.html Normal file
View File

@@ -0,0 +1,209 @@
@{this.layout = './shared/layoutAdmin'}
<link href="/libs/fuelux/dist/css/fuelux.min.css" rel="stylesheet"/>
<link href="/libs/blueimp-file-upload/css/jquery.fileupload.css" rel="stylesheet"/>
<link href="/libs/switchery/dist/switchery.min.css" rel="stylesheet"/>
<link href="/libs/sweetalert/dist/sweetalert.css" rel="stylesheet"/>
<div class="row wrapper border-bottom white-bg page-heading">
<div class="col-lg-8">
<h2>@__("admin.settings.setting")</h2>
</div>
</div>
<div class="wrapper wrapper-content animated fadeIn">
<div class="row">
<div class="col-lg-12">
<div class="ibox">
<div class="ibox-content">
<form id="postForm" action="/admin/saveSettings" method="post">
<div role="tablist" aria-multiselectable="false" class="panel-group">
<div class="row">
<div style="margin-bottom:10px;" class="col-md-6">
<div class="panel panel-default">
<div id="headingSite" role="tab" class="panel-heading">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" href="#tabSite" aria-expanded="true" aria-controls="tabSite">@__("admin.settings.site")</a>
</h4>
</div>
<div id="tabSite" role="tabpanel" aria-labelledby="headingSite" class="panel-collapse collapse in">
<ul class="list-group">
<li class="list-group-item clearfix">
<div class="pull-left">@__("admin.settings.site_name")</div>
<div class="pull-right">
<input id="SiteName" type="text" name="SiteName" placeholder='@__("admin.settings.site_name_placeholder")' value="@config.SiteName" class="form-control"/>
</div>
</li>
<li class="list-group-item clearfix">
<div class="pull-left">@__("admin.settings.domain_name")</div>
<div class="pull-right">
<input id="SiteDomain" type="text" name="SiteDomain" placeholder='@__("admin.settings.domain_name_placeholder")' value="@config.SiteDomain" class="form-control"/>
</div>
</li>
<li class="list-group-item clearfix">
<div class="pull-left">@__("admin.settings.ICP")</div>
<div class="pull-right">
<input id="RecordNo" type="text" name="RecordNo" placeholder='@__("admin.settings.ICP_placeholder")' value="@config.RecordNo" class="form-control"/>
</div>
</li>
<li class="list-group-item clearfix">
<div class="pull-left">@__("admin.settings.logo")</div>
<div class="pull-right">
<span class="fileinput-button">
<img alt="profile" src="@config.LogoPath" style="width:146px;height:146px;" class="img-circle profile-img"/>
<input type="file" name="file" class="fileupload"/>
<input id="LogoPath" type="hidden" name="LogoPath" value="@config.LogoPath"/>
</span>
</div>
</li>
<li class="list-group-item clearfix">
<div class="pull-left">@__("admin.settings.posts_per_page")</div>
<div class="pull-right">
<div data-initialize="spinbox" data-step="5" class="spinbox">
<input id="PageSize" type="text" name="PageSize" placeholder='@__("admin.settings.posts_per_page_placeholder")' value="@config.PageSize" class="form-control input-mini spinbox-input"/>
<div class="spinbox-buttons btn-group btn-group-vertical">
<button type="button" class="btn btn-white spinbox-up btn-xs">
<span class="fa fa-chevron-up"></span>
<span class="sr-only">Increase</span>
</button>
<button type="button" class="btn btn-white spinbox-down btn-xs">
<span class="fa fa-chevron-down"></span>
<span class="sr-only">Decrease</span>
</button>
</div>
</div>
</div>
</li>
<li class="list-group-item clearfix">
<div class="pull-left">@__("admin.settings.show_summary")</div>
<div class="pull-right">
<input id="ExpandMenu" type="hidden" name="ExpandMenu" value="@config.ExpandMenu"/>
<input type="checkbox" checked="@(config.ExpandMenu === 'true')" class="js-switch"/>
</div>
</li>
<li class="list-group-item clearfix">
<div class="pull-left">@__("admin.settings.cache_expire_time")</div>
<div class="pull-right">
<div data-initialize="spinbox" data-max="9999999" class="spinbox">
<input id="CacheExpired" type="text" name="CacheExpired" placeholder='@__("admin.settings.cache_expire_time_placeholder")' value="@config.CacheExpired" class="form-control input-mini spinbox-input"/>
<div class="spinbox-buttons btn-group btn-group-vertical">
<button type="button" class="btn btn-white spinbox-up btn-xs">
<span class="fa fa-chevron-up"></span>
<span class="sr-only">Increase</span>
</button>
<button type="button" class="btn btn-white spinbox-down btn-xs">
<span class="fa fa-chevron-down"></span>
<span class="sr-only">Decrease</span>
</button>
</div>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
<div style="margin-bottom:10px;" class="col-md-6">
<div class="panel panel-default">
<div id="headingComponent" role="tab" class="panel-heading">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" href="#tabComponent" aria-expanded="true" aria-controls="tabComponent">@__("admin.settings.utility")</a>
</h4>
</div>
<div id="tabComponent" role="tabpanel" aria-labelledby="headingComponent" class="panel-collapse collapse in">
<ul class="list-group">
<li class="list-group-item clearfix">
<div class="pull-left">
<a href="http://api.fanyi.baidu.com" target="_blank"> @__("admin.settings.trans")
</a>
@__("admin.settings.key")
</div>
<div class="pull-right">
<input id="TranslateKey" type="text" name="TranslateKey" placeholder='@__("admin.settings.key_placeholder")' value="@config.TranslateKey" class="form-control"/>
</div>
</li>
<li class="list-group-item clearfix">
<div class="pull-left">@(__("admin.settings.analysis"))<a href="http://tongji.baidu.com" target="_blank">@__("admin.settings.analysis_service")</a></div>
<div class="pull-right">
<input id="EnableStatistics" type="hidden" name="EnableStatistics" value="@config.EnableStatistics"/>
<input type="checkbox" checked="@(config.EnableStatistics === 'true')" class="js-switch"/>
</div>
</li>
<li class="list-group-item clearfix">
<div class="pull-left">@__("admin.settings.analysis_id")</div>
<div class="pull-right">
<input id="StatisticsId" type="text" name="StatisticsId" placeholder='@__("admin.settings.analysis_id_placeholder")' value="@config.StatisticsId" class="form-control"/>
</div>
</li>
<li class="list-group-item clearfix">
<div class="pull-left">@(__("admin.settings.share"))<a href="http://www.jiathis.com/" target="_blank">@__("admin.settings.share_service")</a></div>
<div class="pull-right">
<input id="EnableShare" type="hidden" name="EnableShare" value="@config.EnableShare"/>
<input type="checkbox" checked="@(config.EnableShare === 'true')" class="js-switch"/>
</div>
</li>
<li class="list-group-item clearfix">
<div class="pull-left">@__("admin.settings.share_id")</div>
<div class="pull-right">
<input id="JiaThisId" type="text" name="JiaThisId" placeholder='@__("admin.settings.share_id_placeholder")' value="@config.JiaThisId" class="form-control"/>
</div>
</li>
<li class="list-group-item clearfix">
<div class="pull-left">@(__("admin.settings.comments"))<a href="http://changyan.kuaizhan.com" target="_blank">@__("admin.settings.comments_service")</a></div>
<div class="pull-right">
<input id="ShowComments" type="hidden" name="ShowComments" value="@config.ShowComments"/>
<input type="checkbox" checked="@(config.ShowComments === 'true')" class="js-switch"/>
</div>
</li>
<li class="list-group-item clearfix">
<div class="pull-left">@__("admin.settings.comments_id")</div>
<div class="pull-right">
<input id="ChangyanId" type="text" name="ChangyanId" placeholder='@__("admin.settings.comments_id_placeholder")' value="@config.ChangyanId" class="form-control"/>
</div>
</li>
<li class="list-group-item clearfix">
<div class="pull-left">@__("admin.settings.comments_conf")</div>
<div class="pull-right">
<input id="ChangyanConf" type="text" name="ChangyanConf" placeholder='@__("admin.settings.comments_conf_placeholder")' value="@config.ChangyanConf" class="form-control"/>
</div>
</li>
<li class="list-group-item clearfix">
<div class="pull-left">@(__("admin.settings.message"))<a href="http://www.uyan.cc/" target="_blank">@__("admin.settings.message_service")</a></div>
<div class="pull-right">
<input id="ShowGuestbook" type="hidden" name="ShowGuestbook" value="@config.ShowGuestbook"/>
<input type="checkbox" checked="@(config.ShowGuestbook === 'true')" class="js-switch"/>
</div>
</li>
<li class="list-group-item clearfix">
<div class="pull-left">@__("admin.settings.message_id")</div>
<div class="pull-right">
<input id="YouyanId" type="text" name="YouyanId" placeholder='@__("admin.settings.message_id_placeholder")' value="@config.YouyanId" class="form-control"/>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<button id="btnSave" type="button" role="button" class="btn btn-primary">
<i class="fa fa-cloud-upload"></i> @__("admin.settings.save")
</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="/libs/jquery/dist/jquery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap/dist/js/bootstrap.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/metisMenu/dist/metisMenu.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/admin.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/blueimp-file-upload/js/vendor/jquery.ui.widget.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/blueimp-file-upload/js/jquery.fileupload.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/fuelux/dist/js/fuelux.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/sweetalert/dist/sweetalert.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/switchery/dist/switchery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/settings.js" charset="utf-8"></script>

View File

@@ -1,167 +0,0 @@
extends ../shared/layoutAdmin
block content
link(href='/libs/fuelux/dist/css/fuelux.min.css', rel='stylesheet')
link(href='/libs/blueimp-file-upload/css/jquery.fileupload.css', rel='stylesheet')
link(href='/libs/switchery/dist/switchery.min.css', rel='stylesheet')
link(href='/libs/sweetalert/dist/sweetalert.css', rel='stylesheet')
.row.wrapper.border-bottom.white-bg.page-heading
.col-lg-8
h2 #{__("admin.settings.setting")}
.wrapper.wrapper-content.animated.fadeIn
.row
.col-lg-12
.ibox
.ibox-content
form#postForm(action='/admin/saveSettings', method='post')
.panel-group(role='tablist', aria-multiselectable='false')
.row
.col-md-6(style='margin-bottom:10px;')
.panel.panel-default
#headingSite.panel-heading(role='tab')
h4.panel-title
a(role='button', data-toggle='collapse', href='#tabSite', aria-expanded='true', aria-controls='tabSite')
| #{__("admin.settings.site")}
#tabSite.panel-collapse.collapse.in(role='tabpanel', aria-labelledby='headingSite')
ul.list-group
li.list-group-item.clearfix
.pull-left
| #{__("admin.settings.site_name")}
.pull-right
input#SiteName.form-control(type='text', name='SiteName', placeholder='#{__("admin.settings.site_name_placeholder")}', value=settings.SiteName)
li.list-group-item.clearfix
.pull-left
| #{__("admin.settings.domain_name")}
.pull-right
input#SiteDomain.form-control(type='text', name='SiteDomain', placeholder='#{__("admin.settings.domain_name_placeholder")}', value=settings.SiteDomain)
li.list-group-item.clearfix
.pull-left
| #{__("admin.settings.ICP")}
.pull-right
input#RecordNo.form-control(type='text', name='RecordNo', placeholder='#{__("admin.settings.ICP_placeholder")}', value=settings.RecordNo)
li.list-group-item.clearfix
.pull-left
| #{__("admin.settings.logo")}
.pull-right
span.fileinput-button
img.img-circle.profile-img(alt='profile', src=settings.LogoPath, style='width:146px;height:146px;')
input.fileupload(type='file', name='file')
input#LogoPath(type='hidden', name='LogoPath',value=settings.LogoPath)
li.list-group-item.clearfix
.pull-left
| #{__("admin.settings.posts_per_page")}
.pull-right
.spinbox(data-initialize='spinbox', data-step='5')
input#PageSize.form-control.input-mini.spinbox-input(type='text', name='PageSize', placeholder='#{__("admin.settings.posts_per_page_placeholder")}', value=settings.PageSize)
.spinbox-buttons.btn-group.btn-group-vertical
button.btn.btn-white.spinbox-up.btn-xs(type='button')
span.fa.fa-chevron-up
span.sr-only Increase
button.btn.btn-white.spinbox-down.btn-xs(type='button')
span.fa.fa-chevron-down
span.sr-only Decrease
li.list-group-item.clearfix
.pull-left
| #{__("admin.settings.show_summary")}
.pull-right
input#ExpandMenu(type='hidden', name='ExpandMenu', value=settings.ExpandMenu)
input.js-switch(type='checkbox', checked=settings.ExpandMenu === 'true')
li.list-group-item.clearfix
.pull-left
| #{__("admin.settings.cache_expire_time")}
.pull-right
.spinbox(data-initialize='spinbox',data-max='9999999')
input#CacheExpired.form-control.input-mini.spinbox-input(type='text', name='CacheExpired', placeholder='#{__("admin.settings.cache_expire_time_placeholder")}', value=settings.CacheExpired)
.spinbox-buttons.btn-group.btn-group-vertical
button.btn.btn-white.spinbox-up.btn-xs(type='button')
span.fa.fa-chevron-up
span.sr-only Increase
button.btn.btn-white.spinbox-down.btn-xs(type='button')
span.fa.fa-chevron-down
span.sr-only Decrease
.col-md-6(style='margin-bottom:10px;')
.panel.panel-default
#headingComponent.panel-heading(role='tab')
h4.panel-title
a(role='button', data-toggle='collapse', href='#tabComponent', aria-expanded='true', aria-controls='tabComponent')
| #{__("admin.settings.utility")}
#tabComponent.panel-collapse.collapse.in(role='tabpanel', aria-labelledby='headingComponent')
ul.list-group
li.list-group-item.clearfix
.pull-left
a(href='http://api.fanyi.baidu.com', target='_blank') #{__("admin.settings.trans")}
| #{__("admin.settings.key")}
.pull-right
input#TranslateKey.form-control(type='text', name='TranslateKey', placeholder='#{__("admin.settings.key_placeholder")}', value=settings.TranslateKey)
li.list-group-item.clearfix
.pull-left
| #{__("admin.settings.analysis")}(
a(href='http://tongji.baidu.com', target='_blank') #{__("admin.settings.analysis_service")}
| )
.pull-right
input#EnableStatistics(type='hidden', name='EnableStatistics', value=settings.EnableStatistics)
input.js-switch(type='checkbox', checked=settings.EnableStatistics === 'true')
li.list-group-item.clearfix
.pull-left
| #{__("admin.settings.analysis_id")}
.pull-right
input#StatisticsId.form-control(type='text', name='StatisticsId', placeholder='#{__("admin.settings.analysis_id_placeholder")}', value=settings.StatisticsId)
li.list-group-item.clearfix
.pull-left
| #{__("admin.settings.share")}(
a(href='http://www.jiathis.com/', target='_blank') #{__("admin.settings.share_service")}
| )
.pull-right
input#EnableShare(type='hidden', name='EnableShare', value=settings.EnableShare)
input.js-switch(type='checkbox', checked=settings.EnableShare === 'true')
li.list-group-item.clearfix
.pull-left
| #{__("admin.settings.share_id")}
.pull-right
input#JiaThisId.form-control(type='text', name='JiaThisId', placeholder='#{__("admin.settings.share_id_placeholder")}', value=settings.JiaThisId)
li.list-group-item.clearfix
.pull-left
| #{__("admin.settings.comments")} (
a(href='http://changyan.kuaizhan.com', target='_blank') #{__("admin.settings.comments_service")}
| )
.pull-right
input#ShowComments(type='hidden', name='ShowComments', value=settings.ShowComments)
input.js-switch(type='checkbox', checked=settings.ShowComments === 'true')
li.list-group-item.clearfix
.pull-left
| #{__("admin.settings.comments_id")}
.pull-right
input#ChangyanId.form-control(type='text', name='ChangyanId', placeholder='#{__("admin.settings.comments_id_placeholder")}', value=settings.ChangyanId)
li.list-group-item.clearfix
.pull-left
| #{__("admin.settings.comments_conf")}
.pull-right
input#ChangyanConf.form-control(type='text', name='ChangyanConf', placeholder='#{__("admin.settings.comments_conf_placeholder")}', value=settings.ChangyanConf)
li.list-group-item.clearfix
.pull-left
| #{__("admin.settings.message")} (
a(href='http://www.uyan.cc/', target='_blank') #{__("admin.settings.message_service")}
| )
.pull-right
input#ShowGuestbook(type='hidden', name='ShowGuestbook', value=settings.ShowGuestbook)
input.js-switch(type='checkbox', checked=settings.ShowGuestbook === 'true')
li.list-group-item.clearfix
.pull-left
| #{__("admin.settings.message_id")}
.pull-right
input#YouyanId.form-control(type='text', name='YouyanId', placeholder='#{__("admin.settings.message_id_placeholder")}', value=settings.YouyanId)
.row
.col-lg-12
button#btnSave(type='button', class='btn btn-primary', role='button')
i.fa.fa-cloud-upload
| #{__("admin.settings.save")}
script(type='text/javascript', src='/libs/jquery/dist/jquery.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap/dist/js/bootstrap.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/metisMenu/dist/metisMenu.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/admin.js', charset='utf-8')
script(type='text/javascript', src='/libs/blueimp-file-upload/js/vendor/jquery.ui.widget.js', charset='utf-8')
script(type='text/javascript', src='/libs/blueimp-file-upload/js/jquery.fileupload.js', charset='utf-8')
script(type='text/javascript', src='/libs/fuelux/dist/js/fuelux.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/sweetalert/dist/sweetalert.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/switchery/dist/switchery.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/settings.js', charset='utf-8')

32
views/auth/login.html Normal file
View File

@@ -0,0 +1,32 @@
<link href="/libs/sweetalert/dist/sweetalert.css" rel="stylesheet"/>
<link href="/libs/supersized/slideshow/css/supersized.css" rel="stylesheet"/>
<link href="/libs/supersized/slideshow/theme/supersized.shutter.css" rel="stylesheet"/>
<link href="/libs/animate.css/animate.min.css" rel="stylesheet"/>
<link href="/stylesheets/account.css" rel="stylesheet"/>
<div class="container animated fadeInDownSmall">
<div class="row login-block">
<h3 class="col-md-4 col-md-offset-4 login-title text-center">@__("auth.title")</h3>
<div class="col-md-4 col-md-offset-4 login-wrap">
<div class="form-group form-group-lg">
<input id="txtUserName" type="text" placeholder='@__("auth.username")' class="form-control"/>
</div>
<div class="form-group form-group-lg">
<input id="txtPwd" type="password" placeholder='@__("auth.password")' class="form-control"/>
</div>
<button id="btnLogin" type="button" autocomplete="off" class="btn btn-green btn-lg btn-block">
<i class="fa fa-sign-in fa-fw"></i> @__("auth.login")
</button>
</div>
</div>
</div>
<!-- Time Bar-->
<div id="progress-back" class="load-item">
<div id="progress-bar"></div>
</div>
<script type="text/javascript" src="/libs/jquery/dist/jquery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap/dist/js/bootstrap.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/sweetalert/dist/sweetalert.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/supersized/slideshow/js/supersized.3.2.7.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/supersized/slideshow/theme/supersized.shutter.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/js-md5/js/md5.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/account.js" charset="utf-8"></script>

View File

@@ -1,28 +0,0 @@
extends ../shared/layout
block content
link(href='/libs/sweetalert/dist/sweetalert.css', rel='stylesheet')
link(href='/libs/supersized/slideshow/css/supersized.css', rel='stylesheet')
link(href='/libs/supersized/slideshow/theme/supersized.shutter.css', rel='stylesheet')
link(href='/libs/animate.css/animate.min.css', rel='stylesheet')
link(href='/stylesheets/account.css', rel='stylesheet')
.container.animated.fadeInDownSmall
.row.login-block
h3.col-md-4.col-md-offset-4.login-title.text-center #{__("auth.title")}
.col-md-4.col-md-offset-4.login-wrap
.form-group.form-group-lg
input#txtUserName.form-control(type='text', placeholder='#{__("auth.username")}')
.form-group.form-group-lg
input#txtPwd.form-control(type='password', placeholder='#{__("auth.password")}')
button#btnLogin.btn.btn-green.btn-lg.btn-block(type='button', autocomplete='off')
i.fa.fa-sign-in.fa-fw
| #{__("auth.login")}
// Time Bar
#progress-back.load-item
#progress-bar
script(type='text/javascript', src='/libs/jquery/dist/jquery.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap/dist/js/bootstrap.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/sweetalert/dist/sweetalert.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/supersized/slideshow/js/supersized.3.2.7.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/supersized/slideshow/theme/supersized.shutter.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/js-md5/js/md5.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/account.js', charset='utf-8')

108
views/blog/article.html Normal file
View File

@@ -0,0 +1,108 @@
<link href="/stylesheets/animate-custom.css" rel="stylesheet"/>
<link href="/stylesheets/railscasts.css" rel="stylesheet"/>
<link href="/libs/lightbox2/dist/css/lightbox.min.css" rel="stylesheet"/>
<div class="detail-container">
<div class="container">
<div class="row">
<article class="col-sm-12 col-xs-12 detail-wrap post-content animated fadeIn @(config.ExpandMenu === 'true' ? 'col-md-9' : 'col-md-12')">
<button title='@__("blog.article.table_of_content")' class="btn btn-white btn-menu">
<i class="fa fa-align-justify"></i>
</button>
<div class="hidden-sm hidden-xs">
<div class="text-muted pull-left">
<span title='@__("blog.article.category")'>
<i class="fa fa-map-signs"></i>
<a href="/blog/@post.CategoryAlias" target="_blank" class="black-link">@post.CateName</a>
</span></div>
<div class="text-muted pull-right">
@{
post.LabelList.forEach(function(label) {
<span class="post-label" title="@label">@label</span>
});
}
</div>
<div class="clearfix"></div>
</div>
<header class="text-center post-title">
<span title='@__("blog.article.post_date")' class="text-muted">
<i class="fa fa-clock-o"></i> @post.CreateTimeStr</span>
<h1>@post.Title</h1>
</header>
<div id="main-context">
<blockquote>
<h2>@__("blog.article.brief")</h2>
<span>@post.Summary</span>
</blockquote>
@this.raw(post.Content)
</div>
@if(config.ShowComments === 'true') {
<hr class="hr-article">
<div id="SOHUCS" sid="@post.UniqueId"></div>
<script>
(function () {
var appid = '@config.ChangyanId';
var conf = '@config.ChangyanConf';
var width = window.innerWidth || document.documentElement.clientWidth;
if (width < 960) {
window.document.write('<script id="changyan_mobile_js" charset="utf-8" type="text/javascript" src="http://changyan.sohu.com/upload/mobile/wap-js/changyan_mobile.js?client_id=' + appid + '&conf=' + conf + '"><\/script>');
} else {
var loadJs = function (d, a) {
var c = document.getElementsByTagName("head")[0] || document.head || document.documentElement;
var b = document.createElement("script");
b.setAttribute("type", "text/javascript");
b.setAttribute("charset", "UTF-8");
b.setAttribute("src", d);
if (typeof a === "function") {
if (window.attachEvent) {
b.onreadystatechange = function () {
var e = b.readyState;
if (e === "loaded" || e === "complete") {
b.onreadystatechange = null;
a()
}
}
} else {
b.onload = a
}
}
c.appendChild(b)
};
loadJs("http://changyan.sohu.com/upload/changyan.js", function () {
window.changyan.api.config({
appid: appid, conf: conf
})
});
}
})();
</script>
}
</article>
<div id="control-wrap" class="col-md-3 hidden-sm hidden-xs" style='@(config.ExpandMenu === "true" ? "display: block;" : "display: none;")'>
<a class="close-menu" title='@__("blog.article.hide")'>
<i class="fa fa-times"></i>
</a>
</div>
</div>
@this.renderPartial('./footer')
</div>
</div>
@this.renderPartial('./top')
<script type="text/javascript" src="/libs/jquery/dist/jquery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap/dist/js/bootstrap.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/lightbox2/dist/js/lightbox.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/scrollNav/dist/jquery.scrollNav.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/highlight.pack.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/article.js" charset="utf-8"></script>
<script>
var expandMenu = '@config.ExpandMenu';
var logoPath = "@config.LogoPath";
var jiathis_config = {
data_track_clickback: true,
url: window.location.href,
summary: "@post.Summary",
title: "@post.Title"
};
</script>
<script type="text/javascript" src="http://v3.jiathis.com/code/jia.js?uid=@config.JiaThisId" charset="utf-8"></script>
<script type="text/javascript" src="/libs/jquery-qrcode/dist/jquery.qrcode.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/top.js" charset="utf-8"></script>

View File

@@ -1,94 +0,0 @@
extends ../shared/layout
block content
link(href='/stylesheets/animate-custom.css', rel='stylesheet')
link(href='/stylesheets/railscasts.css', rel='stylesheet')
link(href='/libs/lightbox2/dist/css/lightbox.min.css', rel='stylesheet')
.detail-container
.container
.row
article.col-sm-12.col-xs-12.detail-wrap.post-content.animated.fadeIn(class='#{settings.ExpandMenu === "true" ? "col-md-9" : "col-md-12"}')
button.btn.btn-white.btn-menu(title='#{__("blog.article.table_of_content")}')
i.fa.fa-align-justify
.hidden-sm.hidden-xs
.text-muted.pull-left
span(title='#{__("blog.article.category")}')
i.fa.fa-map-signs
=' '
a.black-link(href='/blog/' + post.CategoryAlias,target='_blank')=post.CateName
.text-muted.pull-right
each label in post.LabelList
span.post-label(title=label)=label
=' '
.clearfix
header.text-center.post-title
span.text-muted(title='#{__("blog.article.post_date")}')
i.fa.fa-clock-o
=' ' + post.CreateTimeStr
h1=post.Title
#main-context
blockquote
h2 #{__("blog.article.brief")}
span='' + post.Summary
!=post.Content
if(settings.ShowComments === 'true')
hr.hr-article
#SOHUCS(sid=post.UniqueId)
script.
(function () {
var appid = '#{settings.ChangyanId}';
var conf = '#{settings.ChangyanConf}';
var width = window.innerWidth || document.documentElement.clientWidth;
if (width < 960) {
window.document.write('<script id="changyan_mobile_js" charset="utf-8" type="text/javascript" src="http://changyan.sohu.com/upload/mobile/wap-js/changyan_mobile.js?client_id=' + appid + '&conf=' + conf + '"><\/script>');
} else {
var loadJs = function (d, a) {
var c = document.getElementsByTagName("head")[0] || document.head || document.documentElement;
var b = document.createElement("script");
b.setAttribute("type", "text/javascript");
b.setAttribute("charset", "UTF-8");
b.setAttribute("src", d);
if (typeof a === "function") {
if (window.attachEvent) {
b.onreadystatechange = function () {
var e = b.readyState;
if (e === "loaded" || e === "complete") {
b.onreadystatechange = null;
a()
}
}
} else {
b.onload = a
}
}
c.appendChild(b)
};
loadJs("http://changyan.sohu.com/upload/changyan.js", function () {
window.changyan.api.config({
appid: appid, conf: conf
})
});
}
})();
#control-wrap.col-md-3.hidden-sm.hidden-xs(style='#{settings.ExpandMenu === "true" ? "display: block;" : "display: none;"}')
a.close-menu(title='#{__("blog.article.hide")}')
i.fa.fa-times
include ../shared/footer
include ../shared/top
script(type='text/javascript', src='/libs/jquery/dist/jquery.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap/dist/js/bootstrap.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/lightbox2/dist/js/lightbox.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/scrollNav/dist/jquery.scrollNav.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/highlight.pack.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/article.js', charset='utf-8')
script.
var expandMenu = '#{settings.ExpandMenu}';
var logoPath = "#{settings.LogoPath}";
var jiathis_config = {
data_track_clickback: true,
url: window.location.href,
summary: "#{post.Summary}",
title: "#{post.Title}"
};
script(type = 'text/javascript', src = 'http://v3.jiathis.com/code/jia.js?uid=#{settings.JiaThisId}', charset = 'utf-8')
script(type='text/javascript', src='/libs/jquery-qrcode/dist/jquery.qrcode.min.js', charset='utf-8')
script(type = 'text/javascript', src = '/javascripts/top.js', charset = 'utf-8')

150
views/blog/index.html Normal file
View File

@@ -0,0 +1,150 @@
<link href="/stylesheets/selectlist.css" rel="stylesheet"/>
<link href="/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.min.css" rel="stylesheet"/>
<link href="/stylesheets/railscasts.css" rel="stylesheet"/>
<div class="container-fluid render-body">
<div class="row">
<div class="col-md-2 category-block hidden-sm hidden-xs">
<div class="category-top">
@__("blog.index.category")
</div>
<div class="category-split"></div>
<div class="category-list">
<ul class="nav nav-pills nav-stacked">
@{
cateData.forEach(function(cate) {
var link = cate.Link ? cate.Link : ("/blog" + (cate.Alias ? "/" + (cate.Alias) : ""));
<li class='@(currentCate === cate.Alias ? "active" : "")'>
<a href='@link'>
<img src="@cate.Img">
<span>@cate.CateName</span>
</a>
</li>
});
}
</ul>
</div>
</div>
<div class="col-md-8 col-md-offset-2 blog-list">
<div class="row data-block">
<div class="col-md-12">
<div class="list-wrap">
<div class="row top-bar">
<form id="filterForm" action="/blog/getPosts" method="Post">
<div class="col-md-7 col-sm-4 hidden-xs list-top-left">
<a class="current" title='@__("blog.index.sort_date")' sort="date">
@__("blog.index.date")
</a>
<a class="current" title='@__("blog.index.sort_title")' sort="title">
@__("blog.index.title")
</a>
<input id="CateAlias" type="text" value="@currentCate" name="CateAlias" class="hidden"/>
<input id="SortBy" type="text" value="0" name="SortBy" class="hidden"/>
<input id="PageIndex" type="text" value="1" name="PageIndex" class="hidden"/>
<input id="PageSize" type="text" value="@config.PageSize" name="PageSize" class="hidden"/>
</div>
<div class="col-md-5 list-top-right">
<div class="input-group">
<div class="input-group-btn">
<div data-resize="auto" data-initialize="selectlist" class="btn-group selectlist">
<button data-toggle="dropdown" type="button" class="btn btn-white dropdown-toggle">
<span class="selected-label"></span>
<span class="caret"></span>
<span class="sr-only">Toggle Dropdown</span>
</button>
<ul role="menu" class="dropdown-menu animated-quick fadeInDown">
<li data-value="0" data-selected="true" class="active">
<a href="#">@__("blog.index.full")</a>
</li>
<li data-value="1">
<a href="#">@__("blog.index.title")</a>
</li>
<li data-value="2">
<a href="#">@__("blog.index.tag")</a>
</li>
<li data-value="3">
<a href="#">@__("blog.index.date")</a>
</li>
</ul>
<input id="FilterType" type="text" readonly="readonly" aria_hidden="true" name="FilterType" class="hidden hidden-field"/>
</div>
</div>
<input type="text" placeholder='@__("blog.index.keyword")' name="Keyword" id="Keyword" class="form-control">
<div class="input-group-btn">
<button id="btnFilter" type="button" class="btn btn-white">
<i class="fa fa-search"></i>
<span class="hidden-sm hidden-xs">@__("blog.index.search")</span>
</button>
</div>
</div>
</div>
</form>
</div>
<ol class="list-unstyled"></ol>
<div id="load-list" style="display: none;" class="spinner">
<div class="bounce1"></div>
<div class="bounce2"></div>
<div class="bounce3"></div>
</div>
<div id="no-more" style="display: none;" class="text-muted text-center">@__("blog.index.reach_end")</div>
</div>
</div>
<div id="scrollSpy" class="col-md-1">
<ul id="page-nav" class="list-unstyled hidden-sm hidden-xs affix-top"></ul>
</div>
</div>
@this.renderPartial('./footer')
</div>
<div class="col-md-2 hidden-sm hidden-xs empty-block"></div>
</div>
<div class="post-cover"></div>
<div class="post-modal col-md-7 col-sm-12 col-xs-12">
<div class="modal-header">
<h4></h4>
</div>
<div class="modal-body">
<div style="display:none;" class="sk-cube-grid">
<div class="sk-cube sk-cube1"></div>
<div class="sk-cube sk-cube2"></div>
<div class="sk-cube sk-cube3"></div>
<div class="sk-cube sk-cube4"></div>
<div class="sk-cube sk-cube5"></div>
<div class="sk-cube sk-cube6"></div>
<div class="sk-cube sk-cube7"></div>
<div class="sk-cube sk-cube8"></div>
<div class="sk-cube sk-cube9"></div>
</div>
<div class="post-content">
<div></div>
</div>
</div>
<div class="modal-footer">
<div id="label-foot" style="margin-top: 3px;" class="col-md-7 text-left hidden-sm hidden-xs"></div>
<div class="col-md-5 text-right">
<button id="btnCloseModal" type="button" class="btn btn-white">@__("blog.index.close")</button>
<a id="btnFullMode" href="" target="_blank" class="btn btn-green">
<i class="fa fa-external-link"></i> @__("blog.index.full_mode")
</a>
</div>
</div>
</div>
@this.renderPartial('./top')
<script type="text/javascript" src="/libs/jquery/dist/jquery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap/dist/js/bootstrap.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/selectlist.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.concat.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/highlight.pack.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/index.js" charset="utf-8"></script>
<script>
var logoPath = "@config.LogoPath";
var jiathis_config = {
data_track_clickback: true,
url: "http://@config.SiteDomain",
summary: "",
title: "@config.SiteName"
};
</script>
<script type="text/javascript" src="http://v3.jiathis.com/code/jia.js?uid=@config.JiaThisId" charset="utf-8"></script>
<script type="text/javascript" src="/libs/jquery-qrcode/dist/jquery.qrcode.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/top.js" charset="utf-8"></script>
</div>

View File

@@ -1,114 +0,0 @@
extends ../shared/layout
block content
link(href='/stylesheets/selectlist.css', rel='stylesheet')
link(href='/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.min.css', rel='stylesheet')
link(href='/stylesheets/railscasts.css', rel='stylesheet')
.container-fluid.render-body
.row
.col-md-2.category-block.hidden-sm.hidden-xs
.category-top
| #{__("blog.index.category")}
.category-split
.category-list
ul.nav.nav-pills.nav-stacked
each cate in cateData
li(class='#{currentCate === cate.Alias ? "active" : ""}')
if(!cate.Link)
a(href='/blog#{cate.Alias ? "/" + cate.Alias : ""}')
img(src=cate.Img)
span=cate.CateName
else
a(href=cate.Link, target='_blank')
img(src=cate.Img)
span=cate.CateName
.col-md-8.col-md-offset-2.blog-list
.row.data-block
.col-md-12
.list-wrap
.row.top-bar
form#filterForm(action='/blog/getPosts', method='Post')
.col-md-7.col-sm-4.hidden-xs.list-top-left
a.current(title='#{__("blog.index.sort_date")}',sort='date') #{__("blog.index.date")}
= ' '
a(title='#{__("blog.index.sort_title")}',sort='title') #{__("blog.index.title")}
input#CateAlias.hidden(type='text', value=currentCate, name='CateAlias')
input#SortBy.hidden(type='text', value=0, name='SortBy')
input#PageIndex.hidden(type='text', value=1, name='PageIndex')
input#PageSize.hidden(type='text', value=settings.PageSize, name='PageSize')
.col-md-5.list-top-right
.input-group
.input-group-btn
.btn-group.selectlist(data-resize='auto', data-initialize='selectlist')
button.btn.btn-white.dropdown-toggle(data-toggle='dropdown', type='button')
span.selected-label
span.caret
span.sr-only Toggle Dropdown
ul.dropdown-menu.animated-quick.fadeInDown(role='menu')
li.active(data-value='0', data-selected='true')
a(href='#') #{__("blog.index.full")}
li(data-value='1')
a(href='#') #{__("blog.index.title")}
li(data-value='2')
a(href='#') #{__("blog.index.tag")}
li(data-value='3')
a(href='#') #{__("blog.index.date")}
input#FilterType.hidden.hidden-field(type='text',readonly = "readonly", aria_hidden = "true",name='FilterType')
input#Keyword.form-control(type='text',placeholder = '#{__("blog.index.keyword")}',name='Keyword')
.input-group-btn
button#btnFilter.btn.btn-white(type='button')
i.fa.fa-search
=' '
span.hidden-sm.hidden-xs #{__("blog.index.search")}
ol.list-unstyled
#load-list.spinner(style='display: none;')
.bounce1
.bounce2
.bounce3
#no-more.text-muted.text-center(style='display: none;')
| #{__("blog.index.reach_end")}
#scrollSpy.col-md-1
ul#page-nav.list-unstyled.hidden-sm.hidden-xs.affix-top
include ../shared/footer
.col-md-2.hidden-sm.hidden-xs.empty-block
.post-cover
.post-modal.col-md-7.col-sm-12.col-xs-12
.modal-header
h4
.modal-body
.sk-cube-grid(style='display:none;')
.sk-cube.sk-cube1
.sk-cube.sk-cube2
.sk-cube.sk-cube3
.sk-cube.sk-cube4
.sk-cube.sk-cube5
.sk-cube.sk-cube6
.sk-cube.sk-cube7
.sk-cube.sk-cube8
.sk-cube.sk-cube9
.post-content
div
.modal-footer
#label-foot.col-md-7.text-left.hidden-sm.hidden-xs(style='margin-top: 3px;')
.col-md-5.text-right
button#btnCloseModal.btn.btn-white(type='button') #{__("blog.index.close")}
a#btnFullMode.btn.btn-green(href='', target='_blank')
i.fa.fa-external-link
| #{__("blog.index.full_mode")}
include ../shared/top
script(type='text/javascript', src='/libs/jquery/dist/jquery.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap/dist/js/bootstrap.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/selectlist.js', charset='utf-8')
script(type='text/javascript', src='/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.concat.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/highlight.pack.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/index.js', charset='utf-8')
script.
var logoPath = "#{settings.LogoPath}";
var jiathis_config = {
data_track_clickback: true,
url: "http://#{settings.SiteDomain}",
summary: "",
title: "#{settings.SiteName}"
};
script(type='text/javascript', src='http://v3.jiathis.com/code/jia.js?uid=#{settings.JiaThisId}', charset='utf-8')
script(type='text/javascript', src='/libs/jquery-qrcode/dist/jquery.qrcode.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/top.js', charset='utf-8')

51
views/misc/about.html Normal file
View File

@@ -0,0 +1,51 @@
<div class="container-fluid detail-container">
<div class="row">
<div class="col-lg-4 col-lg-offset-4">
<div class="about-block animated fadeInDown">
<div class="widget-head-color-box navy-bg p-lg text-center">
<div class="m-b-md">
<h2 class="font-bold no-margins">@this.raw(about.FirstLine)</h2>
<h4>@this.raw(about.SecondLine)</h4>
</div>
<img alt="profile" src="@about.PhotoPath" class="img-circle profile-img m-b-md animated zoomIn"/>
<img alt="wechat" src="@about.QrcodePath" style="display:none;" class="wechat-img m-b-md animated zoomIn"/>
<h4>
<span id="job-title">@this.raw(about.ThirdLine)</span>
</h4>
</div>
<div class="widget-text-box">
<p>@this.raw(about.Profile)</p>
<div class="row">
<div class="col-md-6">
<i title='__("about.wechat")' class="fa fa-wechat"></i>
@this.raw(about.Wechat)
<i title='__("about.qr_code")' class="fa fa-lg fa-qrcode"></i>
</div>
<div class="col-md-6">
<i title='__("about.email")' class="fa fa-envelope"></i>
@this.raw(about.Email)
</div>
</div>
</div>
</div>
</div>
</div>
@this.renderPartial('./footer')
</div>
@this.renderPartial('./top')
<script type="text/javascript" src="/libs/jquery/dist/jquery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap/dist/js/bootstrap.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/jQuery-cycleText/dist/js/jquery.cycleText.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/about.js" charset="utf-8"></script>
<script>
var logoPath = "@config.LogoPath";
var jiathis_config = {
data_track_clickback: true,
url: window.location.href,
summary: "",
title: "@(config.SiteName) - 关于"
};
</script>
<script type="text/javascript" src="http://v3.jiathis.com/code/jia.js?uid=@config.JiaThisId" charset="utf-8"></script>
<script type="text/javascript" src="/libs/jquery-qrcode/dist/jquery.qrcode.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/top.js" charset="utf-8"></script>

View File

@@ -1,44 +0,0 @@
extends ../shared/layout
block content
.container-fluid.detail-container
.row
.col-lg-4.col-lg-offset-4
.about-block.animated.fadeInDown
.widget-head-color-box.navy-bg.p-lg.text-center
.m-b-md
h2.font-bold.no-margins!=about.FirstLine
h4!=about.SecondLine
img.img-circle.profile-img.m-b-md.animated.zoomIn(alt='profile', src='#{about.PhotoPath}')
img.wechat-img.m-b-md.animated.zoomIn(alt='wechat', src='#{about.QrcodePath}', style='display:none;')
h4
span#job-title!=about.ThirdLine
.widget-text-box
p!=about.Profile
.row
.col-md-6
i.fa.fa-wechat(title='#{__("about.wechat")}')
= ' '
!=about.Wechat
= ' '
i.fa.fa-lg.fa-qrcode(title='#{__("about.qr_code")}')
.col-md-6
i.fa.fa-envelope(title='#{__("about.email")}')
= ' '
!=about.Email
include ../shared/footer
include ../shared/top
script(type='text/javascript', src='/libs/jquery/dist/jquery.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap/dist/js/bootstrap.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/jQuery-cycleText/dist/js/jquery.cycleText.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/about.js', charset='utf-8')
script.
var logoPath = "#{settings.LogoPath}";
var jiathis_config = {
data_track_clickback: true,
url: window.location.href,
summary: "",
title: "#{settings.SiteName + ' - 关于'}"
};
script(type='text/javascript', src='http://v3.jiathis.com/code/jia.js?uid=#{settings.JiaThisId}', charset='utf-8')
script(type='text/javascript', src='/libs/jquery-qrcode/dist/jquery.qrcode.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/top.js', charset='utf-8')

17
views/misc/guestbook.html Normal file
View File

@@ -0,0 +1,17 @@
<div class="container-fluid detail-container">
<div class="row">
<div style="min-height: 800px;" class="col-md-8 col-md-offset-2 detail-wrap">
<div id="uyan_frame"></div>
<script type="text/javascript" src="http://v2.uyan.cc/code/uyan.js?uid=@config.YouyanId"></script>
</div>
</div>
@this.renderPartial('./footer')
</div>
@this.renderPartial('./top')
<script type="text/javascript" src="/libs/jquery/dist/jquery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/libs/bootstrap/dist/js/bootstrap.min.js" charset="utf-8"></script>
<script type="text/javascript" src="/javascripts/guestbook.js" charset="utf-8"></script>
<script>
var tools = [2];
</script>
<script type="text/javascript" src="/javascripts/top.js" charset="utf-8"></script>

View File

@@ -1,15 +0,0 @@
extends ../shared/layout
block content
.container-fluid.detail-container
.row
.col-md-8.col-md-offset-2.detail-wrap(style='min-height: 800px;')
#uyan_frame
script(type='text/javascript', src='http://v2.uyan.cc/code/uyan.js?uid=#{settings.YouyanId}')
include ../shared/footer
include ../shared/top
script(type='text/javascript', src='/libs/jquery/dist/jquery.min.js', charset='utf-8')
script(type='text/javascript', src='/libs/bootstrap/dist/js/bootstrap.min.js', charset='utf-8')
script(type='text/javascript', src='/javascripts/guestbook.js', charset='utf-8')
script.
var tools = [2];
script(type = 'text/javascript', src = '/javascripts/top.js', charset = 'utf-8')

29
views/shared/error.html Normal file
View File

@@ -0,0 +1,29 @@
@{this.layout = null}
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="/libs/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="/stylesheets/bootstrap-addon.css" rel="stylesheet">
<link href="/stylesheets/site.css" rel="stylesheet">
<link href="/stylesheets/error.css" rel="stylesheet">
<title></title>
</head>
<body>
<div class="container-fluid back-img">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="error-block">
<h1>@code</h1>
<div class="desc">@message</div>
<a href="/" class="btn btn-green btn-lg">
<i class="fa fa-home"></i> @__("error.back_to_home")
</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -1,22 +0,0 @@
doctype html
html(lang='zh-CN')
head
meta(http-equiv='Content-Type', content='text/html; charset=utf-8')
meta(charset='utf-8')
meta(name='viewport', content='width=device-width, initial-scale=1.0')
link(href='/libs/bootstrap/dist/css/bootstrap.min.css', rel='stylesheet')
link(href='/stylesheets/bootstrap-addon.css', rel='stylesheet')
link(href='/stylesheets/site.css', rel='stylesheet')
link(href='/stylesheets/error.css', rel='stylesheet')
title=title
body
.container-fluid.back-img
.row
.col-md-8.col-md-offset-2
.error-block
h1=code
.desc=message
div=error
a.btn.btn-green.btn-lg(href='/')
i.fa.fa-home
| #{__("error.back_to_home")}

7
views/shared/footer.html Normal file
View File

@@ -0,0 +1,7 @@
<div class="row footer">
<div class="col-md-12">
<footer>
<p>@(new Date().getFullYear()) © All Rights Reserved@(config.RecordNo ? ' | ' + config.RecordNo : '') <span class="hidden-xs"> | <a href="/admin" target="_blank">@__("footer.admin_system")</a></span></p>
</footer>
</div>
</div>

View File

@@ -1,8 +0,0 @@
.row.footer
.col-md-12
footer
p
| #{new Date().getFullYear()} © All Rights Reserved#{settings.RecordNo ? ' | ' + settings.RecordNo : ''}
span.hidden-xs
=' | '
a(href='/admin', target='_blank') #{__("footer.admin_system")}

90
views/shared/layout.html Normal file
View File

@@ -0,0 +1,90 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="keywords" content="@(model.keywords ? model.keywords : 'blog,iBlog')">
<meta name="description" content="@(model.description ? model.description : 'iBlog')">
<link href="/libs/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="/stylesheets/bootstrap-addon.css" rel="stylesheet">
<link href="/stylesheets/site.css" rel="stylesheet">
<link href="/libs/font-awesome/css/font-awesome.min.css" rel="stylesheet">
<link href="/stylesheets/share.css" rel="stylesheet">
<link href="/stylesheets/animate-custom.css" rel="stylesheet">
<title></title>
</head>
<body class="fuelux">
@if(model.isRoot) {
<link href="/stylesheets/home-loading.css" rel="stylesheet"/>
<div id="home-loading" class="home-loading">
<div id="loading-con" style="display:none;" class="loading-con">
<div class="loading-circle"></div>
<script>
var home_loading_begin = new Date();
document.body.style.overflow = "hidden";
function imgLoad() {
document.getElementById("home-loading").style.background = "#f3f3f4";
document.getElementById("loading-con").style.display = "block";
}
</script>
<img id="loadingImg" alt="loading" src="@config.LogoPath" onload="imgLoad();"/>
</div>
</div>
}
<div class="navbar navbar-default navbar-fixed-top">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" data-toggle="collapse" data-target=".navbar-collapse" class="navbar-toggle">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="/" class="navbar-brand">
<img src="@config.LogoPath"/>
<span>@config.SiteName</span>
</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav my-nav-pills navbar-right">
<li>
<a href="/blog">
<i class="fa fa-file-text-o fa-fw"></i> @__("layout.blog")
</a>
</li>
@if(config.ShowGuestbook === 'true') {
<li>
<a href="/guestbook">
<i class="fa fa-edit fa-fw"></i> @__("layout.message")
</a>
</li>
}
<li>
<a href="/about">
<i class="fa fa-user fa-fw"></i> @__("layout.about")
</a>
</li>
<li>
<a href="/locale/@__('lang-code')">
<i class="fa fa-language fa-fw"></i> @__("language")
</a>
</li>
</ul>
</div>
</div>
</div>
@this.renderBody()
@if(config.EnableStatistics === 'true') {
//百度统计代码
<script>
var _hmt = _hmt || [];
(function () {
var hm = document.createElement("script");
hm.src = "//hm.baidu.com/hm.js?@config.StatisticsId";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
}
</body>
</html>

View File

@@ -1,70 +0,0 @@
doctype html
html(lang='zh-CN')
head
meta(http-equiv='Content-Type', content='text/html; charset=utf-8')
meta(charset='utf-8')
meta(name='viewport', content='width=device-width, initial-scale=1.0')
meta(name='keywords',content='#{keywords ? keywords : "blog,iBlog"}')
meta(name='description',content='#{description ? description : "iBlog"}')
link(href='/libs/bootstrap/dist/css/bootstrap.min.css', rel='stylesheet')
link(href='/stylesheets/bootstrap-addon.css', rel='stylesheet')
link(href='/stylesheets/site.css', rel='stylesheet')
link(href='/libs/font-awesome/css/font-awesome.min.css', rel='stylesheet')
link(href='/stylesheets/share.css', rel='stylesheet')
link(href='/stylesheets/animate-custom.css', rel='stylesheet')
title=title
body.fuelux
if(isRoot)
link(href='/stylesheets/home-loading.css', rel='stylesheet')
#home-loading.home-loading
#loading-con.loading-con(style='display:none;')
.loading-circle
script.
var home_loading_begin = new Date();
document.body.style.overflow = "hidden";
function imgLoad() {
document.getElementById("home-loading").style.background = "#f3f3f4";
document.getElementById("loading-con").style.display = "block";
}
img#loadingImg(alt='loading', src=settings.LogoPath, onload='imgLoad();')
.navbar.navbar-default.navbar-fixed-top
.container-fluid
.navbar-header
button.navbar-toggle(type='button', data-toggle='collapse', data-target='.navbar-collapse')
span.icon-bar
span.icon-bar
span.icon-bar
a.navbar-brand(href='/')
img(src=settings.LogoPath)
=' '
span=settings.SiteName
.navbar-collapse.collapse
ul.nav.navbar-nav.my-nav-pills.navbar-right
li
a(href='/blog')
i.fa.fa-file-text-o.fa-fw
| #{__("layout.blog")}
if(settings.ShowGuestbook === 'true')
li
a(href='/guestbook')
i.fa.fa-edit.fa-fw
| #{__("layout.message")}
li
a(href='/about')
i.fa.fa-user.fa-fw
| #{__("layout.about")}
li
a(href='/locale/#{__("lang-code")}')
i.fa.fa-language.fa-fw
| #{__("language")}
block content
if(settings.EnableStatistics === 'true')
//百度统计代码
script.
var _hmt = _hmt || [];
(function () {
var hm = document.createElement("script");
hm.src = "//hm.baidu.com/hm.js?#{settings.StatisticsId}";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();

View File

@@ -0,0 +1,125 @@
@{this.layout = null}
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>
<link href="/libs/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="/stylesheets/admin.css" rel="stylesheet">
<link href="/libs/font-awesome/css/font-awesome.min.css" rel="stylesheet">
<link href="/libs/animate.css/animate.min.css" rel="stylesheet">
</head>
<body class="fuelux">
<div id="wrapper">
<nav role="navigation" class="navbar-default navbar-static-side">
<div class="sidebar-collapse">
<ul id="side-menu" class="nav metismenu">
<li class="nav-header">
<div class="dropdown profile-element">
<span>
<a href="/" target="_blank">
<img alt="image" class="img-circle img-lg" src="@config.LogoPath">
</a>
</span>
<a href="/admin">
<h4>@__("layoutAdmin.title")</h4>
</a>
</div>
<div class="logo-element">
<img alt="image" class="img-circle img-sm" src="@config.LogoPath">
</div>
</li>
<li>
<a href="/admin">
<i class="fa fa-bar-chart-o"></i>
<span class="nav-label">@__("layoutAdmin.web_statistic")</span>
</a>
</li>
<li>
<a href="#">
<i class="fa fa-file-text-o"></i>
<span class="nav-label">@__("layoutAdmin.classified_management")</span>
<span class="fa arrow"></span>
</a>
<ul class="nav nav-second-level collapse">
<li>
<a href="/admin/newarticle">@__("layoutAdmin.new_article")</a>
</li>
<li>
<a href="/admin/categorymanage">@__("layoutAdmin.classified_management")</a>
</li>
<li>
<a href="/admin/articlemanage">@__("layoutAdmin.article_management")</a>
</li>
</ul>
</li>
<li>
<a href="/admin/comments">
<i class="fa fa-comments-o"></i>
<span class="nav-label">@__("layoutAdmin.comment_management")</span>
</a>
</li>
<li>
<a href="/admin/guestbook">
<i class="fa fa-edit"></i>
<span class="nav-label">@__("layoutAdmin.msg_management")</span>
</a>
</li>
<li>
<a href="/admin/aboutmanage">
<i class="fa fa-user"></i>
<span class="nav-label">@__("layoutAdmin.about_management")</span>
</a>
</li>
<li>
<a href="/admin/cachemanage">
<i class="fa fa-database"></i>
<span class="nav-label">@__("layoutAdmin.cache_management")</span>
</a>
</li>
<li>
<a href="/admin/exception">
<i class="fa fa-bug"></i>
<span class="nav-label">@__("layoutAdmin.exception_management")</span>
</a>
</li>
<li>
<a href="/admin/settings">
<i class="fa fa-gears"></i>
<span class="nav-label">@__("layoutAdmin.settings")</span>
</a>
</li>
</ul>
</div>
</nav>
<div id="page-wrapper" class="gray-bg">
<div class="row border-bottom">
<nav role="navigation" style="margin-bottom: 0" class="navbar navbar-static-top">
<div class="navbar-header">
<a href="#" class="navbar-minimalize minimalize-styl-2 btn btn-primary">
<i class="fa fa-bars"></i>
</a>
</div>
<form id="logoutForm" action="/logout" method="Post">
<ul class="nav navbar-top-links navbar-right">
<li>
<a href="javascript:$('#logoutForm').submit()" title='@__("layoutAdmin.btn_logout")'>
<i class="fa fa-power-off"></i> @__("layoutAdmin.btn_logout")
</a>
</li>
</ul>
</form>
</nav>
</div>
@this.renderBody()
<div class="footer">
<div class="text-center">
@(new Date().getFullYear()) © All Rights Reserved@(config.RecordNo ? (' | ' + config.RecordNo) : '')
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -1,81 +0,0 @@
doctype html
html(lang='zh-CN')
head
meta(http-equiv='Content-Type', content='text/html; charset=utf-8')
meta(charset='utf-8')
meta(name='viewport', content='width=device-width, initial-scale=1.0')
title=title
link(href='/libs/bootstrap/dist/css/bootstrap.min.css', rel='stylesheet')
link(href='/stylesheets/admin.css', rel='stylesheet')
link(href='/libs/font-awesome/css/font-awesome.min.css', rel='stylesheet')
link(href='/libs/animate.css/animate.min.css', rel='stylesheet')
body.fuelux
#wrapper
nav.navbar-default.navbar-static-side(role='navigation')
.sidebar-collapse
ul#side-menu.nav.metismenu
li.nav-header
.dropdown.profile-element
span
a(href='/', target='_blank')
img.img-circle.img-lg(alt='image', src=settings.LogoPath)
a(href='/admin')
h4 #{__("layoutAdmin.title")}
.logo-element
img.img-circle.img-sm(alt='image', src=settings.LogoPath)
li
a(href='/admin')
i.fa.fa-bar-chart-o
span.nav-label #{__("layoutAdmin.web_statistic")}
li
a(href='#')
i.fa.fa-file-text-o
span.nav-label #{__("layoutAdmin.classified_management")}
span.fa.arrow
ul.nav.nav-second-level.collapse
li
a(href='/admin/newarticle') #{__("layoutAdmin.new_article")}
li
a(href='/admin/categorymanage') #{__("layoutAdmin.classified_management")}
li
a(href='/admin/articlemanage') #{__("layoutAdmin.article_management")}
li
a(href='/admin/comments')
i.fa.fa-comments-o
span.nav-label #{__("layoutAdmin.comment_management")}
li
a(href='/admin/guestbook')
i.fa.fa-edit
span.nav-label #{__("layoutAdmin.comment_management")}
li
a(href='/admin/aboutmanage')
i.fa.fa-user
span.nav-label #{__("layoutAdmin.about_management")}
li
a(href='/admin/cachemanage')
i.fa.fa-database
span.nav-label #{__("layoutAdmin.cache_management")}
li
a(href='/admin/exception')
i.fa.fa-bug
span.nav-label #{__("layoutAdmin.exception_management")}
li
a(href='/admin/settings')
i.fa.fa-gears
span.nav-label #{__("layoutAdmin.settings")}
#page-wrapper.gray-bg
.row.border-bottom
nav.navbar.navbar-static-top(role='navigation', style='margin-bottom: 0')
.navbar-header
a.navbar-minimalize.minimalize-styl-2.btn.btn-primary(href='#')
i.fa.fa-bars
form#logoutForm(action='/logout', method='Post')
ul.nav.navbar-top-links.navbar-right
li
a(href="javascript:$('#logoutForm').submit()", title='#{__("layoutAdmin.btn_logout")}')
i.fa.fa-power-off
| #{__("layoutAdmin.btn_logout")}
block content
.footer
.text-center
| #{new Date().getFullYear()} © All Rights Reserved#{settings.RecordNo ? ' | ' + settings.RecordNo : ''}

41
views/shared/top.html Normal file
View File

@@ -0,0 +1,41 @@
<ul class="fixed-tool list-unstyled">
@if(config.EnableShare === 'true') {
<li style="display: none;" class="share-li">
<div id="share-menu" class="jiathis_style_32x32">
<a class="jiathis_button_weixin">
<i class="fa fa-weixin"></i>
</a>
<a class="jiathis_button_qzone">
<i class="fa fa-qq"></i>
</a>
<a class="jiathis_button_tsina">
<i class="fa fa-weibo"></i>
</a>
<a class="jiathis_button_renren">
<i class="fa fa-renren"></i>
</a>
<a title="@__('top.share')" class="menu">
<div id="ss_toggle" data-rot="180" class="share">
<div class="circle"></div>
<div class="bar"></div>
</div>
</a></div>
</li>
}
<li style="display: none;" class="qr-li hidden-sm hidden-xs">
<a id="qrBtn" title="@__('top.qr_code')">
<i class="fa fa-qrcode"></i>
</a>
<div class="qrcontain popover left animated fadeInLeft">
<div class="arrow"></div>
<div class="popover-content text-center">
<div id="qrcode"></div>
<span>@__("top.small_screen")</span>
</div>
</div>
</li>
<li id="scrollTop" style="display: none;" class="top-li">
<a title="@__('top.back_to_top')"><i class="fa fa-arrow-up"></i>
</a>
</li>
</ul>

View File

@@ -1,27 +0,0 @@
ul.fixed-tool.list-unstyled
if(settings.EnableShare === 'true')
li.share-li(style='display: none;')
#share-menu.jiathis_style_32x32
a.jiathis_button_weixin
i.fa.fa-weixin
a.jiathis_button_qzone
i.fa.fa-qq
a.jiathis_button_tsina
i.fa.fa-weibo
a.jiathis_button_renren
i.fa.fa-renren
a.menu(title='#{__("top.share")}')
#ss_toggle.share(data-rot='180')
.circle
.bar
li.qr-li.hidden-sm.hidden-xs(style='display: none;')
a#qrBtn(title='#{__("top.qr_code")}')
i.fa.fa-qrcode
.qrcontain.popover.left.animated.fadeInLeft
.arrow
.popover-content.text-center
#qrcode
span #{__("top.small_screen")}
li#scrollTop.top-li(style='display: none;')
a(title='#{__("top.back_to_top")}')
i.fa.fa-arrow-up