just for test
This commit is contained in:
@@ -1,130 +0,0 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">Blog</h3></div>
|
||||
|
||||
<section class="panel panel-default">
|
||||
<div class="row wrapper">
|
||||
<div class="col-sm-5 m-b-xs">
|
||||
<button class="btn btn-sm btn-default">
|
||||
Action1
|
||||
</button>
|
||||
<button class="btn btn-sm btn-default">
|
||||
Action2
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-sm-4 m-b-xs">
|
||||
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<div class="input-group search-group">
|
||||
<input type="text" class="input-sm form-control" placeholder="Title" id="keywords" value="{{.keywords}}" />
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-sm btn-default" type="button" data-url="/adminBlog/index">Search</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped b-t b-light">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="20">
|
||||
<input type="checkbox">
|
||||
</th>
|
||||
{{$url := urlConcat "/adminBlog/index" "keywords" .keywords}}
|
||||
<th
|
||||
{{sorterTh $url "title" .sorter}}
|
||||
>
|
||||
Title
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th
|
||||
{{sorterTh $url "userId" .sorter}}
|
||||
>
|
||||
Username
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
|
||||
<th
|
||||
{{sorterTh $url "createdTime" .sorter}}
|
||||
>
|
||||
Create Date
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{range .blogs}}
|
||||
<tr>
|
||||
<td>
|
||||
<input type="checkbox" name="post[]" value="2">
|
||||
</td>
|
||||
<td>
|
||||
<a href="/blog/view/{{.NoteId.Hex}}" target="_blank">{{.Title|raw}}</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="/blog/{{.UserId.Hex}}" target="_blank">
|
||||
{{.User.Username}}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
{{.CreatedTime|datetime}}
|
||||
</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<footer class="panel-footer">
|
||||
<div class="row">
|
||||
<div class="col-sm-4 hidden-xs">
|
||||
<button class="btn btn-sm btn-default">
|
||||
Action1
|
||||
</button>
|
||||
<button class="btn btn-sm btn-default">
|
||||
Action2
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-sm-4 text-center">
|
||||
<small class="text-muted inline m-t-sm m-b-sm">
|
||||
showing 20-30 of 50 items
|
||||
</small>
|
||||
</div>
|
||||
<div class="col-sm-4 text-right text-center-xs">
|
||||
{{set . "url" (urlConcat "/adminBlog/index" "sorter" .sorter "keywords" .keywords)}}
|
||||
{{template "admin/user/page.html" .}}
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</section>
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$(".change-recommend").click(function() {
|
||||
var isRecommend = +$(this).data("recommend");
|
||||
var noteId = $(this).data("id");
|
||||
var t = this;
|
||||
$(t).button("loading");
|
||||
ajaxGet("/adminBlog/setRecommend", {noteId: noteId, recommend: !isRecommend}, function() {
|
||||
$(t).button("reset");
|
||||
$(t).text(isRecommend ? "N" : "Y");
|
||||
$(t).data("recommend", !isRecommend);
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{{template "admin/end.html" .}}
|
||||
@@ -1,33 +0,0 @@
|
||||
{{if gt .pageInfo.TotalPage 1}}
|
||||
<ul class="pagination pagination-sm m-t-none m-b-none">
|
||||
<li class="{{if eq $.pageInfo.CurPage 1}}disabled{{end}}" >
|
||||
<a href="{{if eq $.pageInfo.CurPage 1}}javascript:;{{else}}{{sub $.pageInfo.CurPage | urlConcat $.url "page" }}{{end}}">
|
||||
<i class="fa fa-chevron-left">
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
{{range $i := N 1 .pageInfo.TotalPage}}
|
||||
{{if eq $i $.pageInfo.CurPage}}
|
||||
<li class="active">
|
||||
<a href="javascript:;">
|
||||
{{$i}}
|
||||
</a>
|
||||
</li>
|
||||
{{else}}
|
||||
<li class="">
|
||||
<a href="{{urlConcat $.url "page" $i}}">
|
||||
{{$i}}
|
||||
</a>
|
||||
</li>
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
<li class="{{if eq .pageInfo.CurPage .pageInfo.TotalPage}}disabled{{end}}" >
|
||||
<a href="{{if eq .pageInfo.CurPage .pageInfo.TotalPage}}javascript:;{{else}}{{add $.pageInfo.CurPage | urlConcat $.url "page" }}{{end}}">
|
||||
<i class="fa fa-chevron-right">
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
{{end}}
|
||||
@@ -1,55 +0,0 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">Mongodb Tool Configuration</h3></div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6">
|
||||
<form id="data_form">
|
||||
<section class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<label>mongodump path</label>
|
||||
<input type="text" class="form-control" name="mongodumpPath" value="{{.str.mongodumpPath}}" placeholder="">
|
||||
Please input the bin mongodump's absolute path
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>mongorestore path</label>
|
||||
<input type="text" class="form-control" name="mongorestorePath" value="{{.str.mongorestorePath}}" placeholder="">
|
||||
Please input the bin mongorestore's absolute path
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="panel-footer text-right bg-light lter">
|
||||
<button type="submit" id="submit" class="btn btn-success btn-s-xs">Submit</button>
|
||||
</footer>
|
||||
</section>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
<script src="/public/admin/js/jquery-validation-1.13.0/jquery.validate.js"></script>
|
||||
<script>
|
||||
$(function() {
|
||||
init_validator("#data_form");
|
||||
|
||||
$("#submit").click(function(e){
|
||||
e.preventDefault();
|
||||
var t = this;
|
||||
if($("#data_form").valid()) {
|
||||
$(t).button('loading');
|
||||
ajaxPost("/adminSetting/mongodb", getFormJsonData("data_form"), function(ret){
|
||||
$(t).button('reset')
|
||||
if(!ret.Ok) {
|
||||
art.alert(ret.Msg)
|
||||
} else {
|
||||
art.tips("Success");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{{template "admin/end.html" .}}
|
||||
@@ -1,115 +0,0 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">Backup & Restore</h3></div>
|
||||
|
||||
<style>
|
||||
.break-all {
|
||||
word-break:break-all; /*支持IE,chrome,FF不支持*/
|
||||
word-wrap:break-word;/*支持IE,chrome,FF*/
|
||||
}
|
||||
</style>
|
||||
<section class="panel panel-default">
|
||||
|
||||
<div class="row wrapper">
|
||||
<div class="col-sm-5 m-b-xs">
|
||||
<button class="btn btn-primary backup-btn">Backup</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped b-t b-light">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="136px">
|
||||
Date
|
||||
</th>
|
||||
<th width="">
|
||||
Remark
|
||||
</th>
|
||||
<th>
|
||||
Path
|
||||
</th>
|
||||
<th width="170px">
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{range $each := .backups}}
|
||||
<tr>
|
||||
<td>
|
||||
{{$each.createdTime|unixDatetime}}
|
||||
</td>
|
||||
<td>
|
||||
<textarea class="remark" data-id="{{$each.createdTime}}">{{$each.remark}}</textarea>
|
||||
</td>
|
||||
<td class="break-all">
|
||||
{{$each.path}}
|
||||
</td>
|
||||
<td>
|
||||
<button href="#" class="btn btn-sm btn-danger restore-btn" data-id="{{$each.createdTime}}">Restore</button>
|
||||
<a class="btn btn-sm btn-default download-attach" href="/adminData/download?createdTime={{$each.createdTime}}" target="_blank" title="Download" data-id=""><i class="fa fa-download"></i></a>
|
||||
<button class="btn btn-sm btn-warning delete-btn" title="Delete" data-id="{{$each.createdTime}}"><i class="fa fa-trash-o"></i></button>
|
||||
</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$(".backup-btn").click(function(){
|
||||
ajaxGet("/adminData/backup", {}, function(ret) {
|
||||
if(ret.Ok) {
|
||||
art.tips("Success");
|
||||
location.reload();
|
||||
} else {
|
||||
art.alert(ret.Msg);
|
||||
}
|
||||
});
|
||||
});
|
||||
// 还原
|
||||
$(".restore-btn").click(function() {
|
||||
var createdTime = $(this).data("id");
|
||||
art.confirm("Are you sure? <br />Note. Leanote will do the following steps: <br />1)Backup the current database first. <br />2) And then delete the database. <br />3) Restore database from the selected version.", function() {
|
||||
ajaxGet("/adminData/restore", {createdTime: createdTime}, function(ret) {
|
||||
if(ret.Ok) {
|
||||
art.tips("Success");
|
||||
location.reload();
|
||||
} else {
|
||||
art.alert(ret.Msg);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
$(".delete-btn").click(function() {
|
||||
var createdTime = $(this).data("id");
|
||||
art.confirm("Are you sure?", function() {
|
||||
ajaxGet("/adminData/delete", {createdTime: createdTime}, function(ret) {
|
||||
if(ret.Ok) {
|
||||
art.tips("Success");
|
||||
location.reload();
|
||||
} else {
|
||||
art.alert(ret.Msg);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
$(".remark").change(function() {
|
||||
var createdTime = $(this).data("id");
|
||||
var remark = $(this).val();
|
||||
ajaxPost("/adminData/updateRemark", {createdTime: createdTime, remark: remark}, function(ret) {
|
||||
if(ret.Ok) {
|
||||
art.tips("Update Remark Success");
|
||||
} else {
|
||||
art.alert(ret.Msg);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{{template "admin/end.html" .}}
|
||||
@@ -1,76 +0,0 @@
|
||||
<div class="row" style="width: 500px;
|
||||
height: 500px;
|
||||
overflow-y: scroll;">
|
||||
|
||||
<div class="col-sm-12">
|
||||
<form id="sendEmailForm">
|
||||
<section class="panel panel-default">
|
||||
<header class="panel-heading font-bold">Email</header>
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<label>Email List</label>
|
||||
<textarea type="text" rows="10" class="form-control" name="emails">{{.emailsNl}}</textarea>
|
||||
input email line by line
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Select Old Email</label>
|
||||
<select class="form-control old-emails">
|
||||
<option value="">---Select---</option>
|
||||
{{range $subject, $body := .map.oldEmails}}
|
||||
<option>
|
||||
{{$subject}}
|
||||
</option>
|
||||
{{end}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Subject</label>
|
||||
<input type="text" class="form-control" id="latestEmailSubject" name="latestEmailSubject" value="{{$.str.latestEmailSubject}}">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Body</label>
|
||||
<textarea type="text" rows="10" id="latestEmailBody" class="form-control" name="latestEmailBody">{{$.str.latestEmailBody}}</textarea>
|
||||
</div>
|
||||
<label class="checkbox-inline"> <input type="checkbox" id="saveAsOldEmail" name="saveAsOldEmail" value="1"> Save As Old Email </label>
|
||||
</div>
|
||||
|
||||
<footer class="panel-footer text-right bg-light lter">
|
||||
<button type="submit" id="submitEmail" class="btn btn-success btn-s-xs">Submit</button>
|
||||
</footer>
|
||||
</section>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var oldEmails = eval("(" + {{json .map.oldEmails}} + ")");
|
||||
$(function() {
|
||||
$(".old-emails").change(function() {
|
||||
var subject = $(this).val();
|
||||
var body = oldEmails[subject];
|
||||
if(subject) {
|
||||
$("#latestEmailSubject").val(subject);
|
||||
$("#latestEmailBody").val(body);
|
||||
$("#saveAsOldEmail").prop("checked", false);
|
||||
}
|
||||
});
|
||||
|
||||
$("#submitEmail").click(function(e){
|
||||
e.preventDefault();
|
||||
var t = this;
|
||||
$(t).button('loading');
|
||||
ajaxPost("/adminEmail/sendToUsers2", getFormJsonData("sendEmailForm"), function(ret){
|
||||
$(t).button('reset')
|
||||
if(!ret.Ok) {
|
||||
art.alert(ret.Msg)
|
||||
} else {
|
||||
art.tips("Success");
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -1,191 +0,0 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">Email Logs</h3></div>
|
||||
|
||||
<section class="panel panel-default">
|
||||
<div class="row wrapper">
|
||||
<div class="col-sm-5 m-b-xs">
|
||||
<button class="btn btn-sm btn-default bulk-send">
|
||||
Send
|
||||
</button>
|
||||
<button class="btn btn-sm btn-default bulk-delete">
|
||||
Delete
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-sm-4 m-b-xs">
|
||||
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<div class="input-group search-group">
|
||||
<input type="text" class="input-sm form-control" placeholder="Email" id="keywords" value="{{.keywords}}" />
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-sm btn-default" type="button" data-url="/adminEmail/list">Search</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped b-t b-light">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="20">
|
||||
<input type="checkbox">
|
||||
</th>
|
||||
{{$url := urlConcat "/adminEmail/list" "keywords" .keywords}}
|
||||
<th
|
||||
{{sorterTh $url "email" .sorter}}
|
||||
>
|
||||
Email
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th
|
||||
{{sorterTh $url "subject" .sorter}}
|
||||
>
|
||||
Subject
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th
|
||||
{{sorterTh $url "ok" .sorter}}
|
||||
>
|
||||
Ok
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th
|
||||
{{sorterTh $url "msg" .sorter}}
|
||||
>
|
||||
Msg
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th
|
||||
{{sorterTh $url "createdTime" .sorter}}
|
||||
>
|
||||
Date
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{range .emails}}
|
||||
<tr id="tr_{{.LogId.Hex}}">
|
||||
<td>
|
||||
<input type="checkbox" class="ck" data-email="{{.Email}}" data-id="{{.LogId.Hex}}">
|
||||
</td>
|
||||
<td>
|
||||
{{.Email}}
|
||||
</td>
|
||||
<td>
|
||||
{{.Subject}}
|
||||
</td>
|
||||
<td>
|
||||
{{.Ok}}
|
||||
</td>
|
||||
<td>
|
||||
{{.Msg}}
|
||||
</td>
|
||||
<td>
|
||||
{{.CreatedTime|datetime}}
|
||||
</td>
|
||||
<td>
|
||||
<a href="#" class="btn btn-default send-email" data-email="{{.Email}}">Send</a>
|
||||
<a href="#" class="btn btn-default delete-email" data-id="{{.LogId.Hex}}">Delete</a>
|
||||
</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<footer class="panel-footer">
|
||||
<div class="row">
|
||||
<div class="col-sm-4 hidden-xs">
|
||||
<button class="btn btn-sm btn-default bulk-send">
|
||||
Send
|
||||
</button>
|
||||
<button class="btn btn-sm btn-default bulk-delete">
|
||||
Delete
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-sm-4 text-right text-center-xs">
|
||||
{{set . "url" (urlConcat "/adminEmail/list" "sorter" .sorter "keywords" .keywords)}}
|
||||
{{template "admin/user/page.html" .}}
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</section>
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$(".send-email").click(function() {
|
||||
openSendEmailDialog($(this).data("email"));
|
||||
});
|
||||
$(".bulk-send").click(function() {
|
||||
var emails = [];
|
||||
$(".ck:checked").each(function() {
|
||||
emails.push($(this).data("email"));
|
||||
});
|
||||
if(emails.length == 0) {
|
||||
art.alert("No user");
|
||||
return;
|
||||
}
|
||||
openSendEmailDialog(emails.join(","));
|
||||
});
|
||||
|
||||
function deleteEmails(ids) {
|
||||
if(!isArray(ids)) {
|
||||
ids = [ids];
|
||||
}
|
||||
ajaxPost("/adminEmail/deleteEmails", {ids: ids.join(",")}, function(ret) {
|
||||
if(ret.Ok) {
|
||||
if(ids.length > 8) {
|
||||
location.reload();
|
||||
}
|
||||
for(var i in ids) {
|
||||
$("#tr_" + ids[i]).remove();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$(".delete-email").click(function() {
|
||||
var id = $(this).data('id');
|
||||
deleteEmails(id);
|
||||
});
|
||||
|
||||
$(".bulk-delete").click(function() {
|
||||
var ids = [];
|
||||
$(".ck:checked").each(function() {
|
||||
ids.push($(this).data("id"));
|
||||
});
|
||||
if(ids.length == 0) {
|
||||
art.alert("No email");
|
||||
return;
|
||||
}
|
||||
deleteEmails(ids);
|
||||
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{{template "admin/end.html" .}}
|
||||
@@ -1,33 +0,0 @@
|
||||
{{if gt .pageInfo.TotalPage 1}}
|
||||
<ul class="pagination pagination-sm m-t-none m-b-none">
|
||||
<li class="{{if eq $.pageInfo.CurPage 1}}disabled{{end}}" >
|
||||
<a href="{{if eq $.pageInfo.CurPage 1}}javascript:;{{else}}{{sub $.pageInfo.CurPage | urlConcat $.url "page" }}{{end}}">
|
||||
<i class="fa fa-chevron-left">
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
{{range $i := N 1 .pageInfo.TotalPage}}
|
||||
{{if eq $i $.pageInfo.CurPage}}
|
||||
<li class="active">
|
||||
<a href="javascript:;">
|
||||
{{$i}}
|
||||
</a>
|
||||
</li>
|
||||
{{else}}
|
||||
<li class="">
|
||||
<a href="{{urlConcat $.url "page" $i}}">
|
||||
{{$i}}
|
||||
</a>
|
||||
</li>
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
<li class="{{if eq .pageInfo.CurPage .pageInfo.TotalPage}}disabled{{end}}" >
|
||||
<a href="{{if eq .pageInfo.CurPage .pageInfo.TotalPage}}javascript:;{{else}}{{add $.pageInfo.CurPage | urlConcat $.url "page" }}{{end}}">
|
||||
<i class="fa fa-chevron-right">
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
{{end}}
|
||||
@@ -1,85 +0,0 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">Send Email</h3></div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-12">
|
||||
<form id="formContainer">
|
||||
<section class="panel panel-default">
|
||||
<header class="panel-heading font-bold">Email</header>
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<label>Email List</label>
|
||||
<textarea type="text" rows="10" class="form-control" name="sendEmails">{{.str.sendEmails}}</textarea>
|
||||
input email line by line
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Select Old Email</label>
|
||||
<select class="form-control old-emails">
|
||||
<option value="">---Select---</option>
|
||||
{{range $subject, $body := .map.oldEmails}}
|
||||
<option>
|
||||
{{$subject}}
|
||||
</option>
|
||||
{{end}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Subject</label>
|
||||
<input type="text" class="form-control" id="latestEmailSubject" name="latestEmailSubject" value="{{$.str.latestEmailSubject}}">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Body</label>
|
||||
<textarea type="text" rows="10" id="latestEmailBody" class="form-control" name="latestEmailBody">{{$.str.latestEmailBody}}</textarea>
|
||||
</div>
|
||||
<label class="checkbox-inline"> <input type="checkbox" id="saveAsOldEmail" name="saveAsOldEmail" value="1"> Save As Old Email </label>
|
||||
</div>
|
||||
|
||||
<footer class="panel-footer text-right bg-light lter">
|
||||
<button type="submit" id="submit" class="btn btn-success btn-s-xs">Submit</button>
|
||||
</footer>
|
||||
</section>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
<script src="/public/admin/js/jquery-validation-1.13.0/jquery.validate.js"></script>
|
||||
<script>
|
||||
var oldEmails = eval("(" + {{json .map.oldEmails}} + ")");
|
||||
$(function() {
|
||||
init_validator("#formContainer");
|
||||
|
||||
$(".old-emails").change(function() {
|
||||
var subject = $(this).val();
|
||||
var body = oldEmails[subject];
|
||||
if(subject) {
|
||||
$("#latestEmailSubject").val(subject);
|
||||
$("#latestEmailBody").val(body);
|
||||
$("#saveAsOldEmail").prop("checked", false);
|
||||
}
|
||||
});
|
||||
|
||||
$("#submit").click(function(e){
|
||||
e.preventDefault();
|
||||
var t = this;
|
||||
if($("#formContainer").valid()) {
|
||||
$(t).button('loading');
|
||||
ajaxPost("/adminEmail/sendEmailToEmails", getFormJsonData("formContainer"), function(ret){
|
||||
$(t).button('reset')
|
||||
if(!ret.Ok) {
|
||||
art.alert(ret.Msg)
|
||||
} else {
|
||||
art.tips("Success");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{{template "admin/end.html" .}}
|
||||
@@ -1,105 +0,0 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">Send Email to Users</h3></div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-12">
|
||||
<form id="formContainer">
|
||||
<section class="panel panel-default">
|
||||
<header class="panel-heading font-bold">User filter</header>
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<label>Search Email/Username</label>
|
||||
<input type="text" class="form-control" name="userFilterEmail" value="{{.str.userFilterEmail}}">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="checkbox-inline"> <input type="checkbox" name="verified" value="1"> Verfied </label>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>White List</label>
|
||||
<textarea type="text" rows="10" class="form-control" name="userFilterWhiteList">{{.str.userFilterWhiteList}}</textarea>
|
||||
input email line by line
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Black List</label>
|
||||
<textarea type="text" rows="10" class="form-control" name="userFilterBlackList">{{.str.userFilterBlackList}}</textarea>
|
||||
input email line by line
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="panel panel-default">
|
||||
<header class="panel-heading font-bold">Email</header>
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<label>Select Old Email</label>
|
||||
<select class="form-control old-emails">
|
||||
<option value="">---Select---</option>
|
||||
{{range $subject, $body := .map.oldEmails}}
|
||||
<option>
|
||||
{{$subject}}
|
||||
</option>
|
||||
{{end}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Subject</label>
|
||||
<input type="text" class="form-control" id="latestEmailSubject" name="latestEmailSubject" value="{{$.str.latestEmailSubject}}">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Body</label>
|
||||
<textarea type="text" rows="10" id="latestEmailBody" class="form-control" name="latestEmailBody">{{$.str.latestEmailBody}}</textarea>
|
||||
</div>
|
||||
<label class="checkbox-inline"> <input type="checkbox" id="saveAsOldEmail" name="saveAsOldEmail" value="1"> Save As Old Email </label>
|
||||
</div>
|
||||
|
||||
<footer class="panel-footer text-right bg-light lter">
|
||||
<button type="submit" id="submit" class="btn btn-success btn-s-xs">Submit</button>
|
||||
</footer>
|
||||
</section>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
<script src="/public/admin/js/jquery-validation-1.13.0/jquery.validate.js"></script>
|
||||
<script>
|
||||
var oldEmails = eval("(" + {{json .map.oldEmails}} + ")");
|
||||
$(function() {
|
||||
init_validator("#formContainer");
|
||||
|
||||
$(".old-emails").change(function() {
|
||||
var subject = $(this).val();
|
||||
var body = oldEmails[subject];
|
||||
if(subject) {
|
||||
$("#latestEmailSubject").val(subject);
|
||||
$("#latestEmailBody").val(body);
|
||||
$("#saveAsOldEmail").prop("checked", false);
|
||||
}
|
||||
});
|
||||
|
||||
$("#submit").click(function(e){
|
||||
e.preventDefault();
|
||||
var t = this;
|
||||
if($("#formContainer").valid()) {
|
||||
$(t).button('loading');
|
||||
ajaxPost("/adminEmail/sendToUsers", getFormJsonData("formContainer"), function(ret){
|
||||
$(t).button('reset')
|
||||
if(!ret.Ok) {
|
||||
art.alert(ret.Msg)
|
||||
} else {
|
||||
art.tips("Success");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{{template "admin/end.html" .}}
|
||||
@@ -1,62 +0,0 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">Email Configuration</h3></div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6">
|
||||
<form id="add_user_form">
|
||||
<section class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<label>Host</label>
|
||||
<input type="text" class="form-control" name="emailHost" value="{{.str.emailHost}}" placeholder="eg. smtp.ym.163.com">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Port</label>
|
||||
<input type="text" class="form-control" name="emailPort" value="{{.str.emailPort}}" placeholder="eg. 25">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Username</label>
|
||||
<input type="text" class="form-control" name="emailUsername" value="{{.str.emailUsername}}" placeholder="">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Password</label>
|
||||
<input type="text" class="form-control" name="emailPassword" value="{{.str.emailPassword}}" placeholder="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="panel-footer text-right bg-light lter">
|
||||
<button type="submit" id="submit" class="btn btn-success btn-s-xs">Submit</button>
|
||||
</footer>
|
||||
</section>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
<script src="/public/admin/js/jquery-validation-1.13.0/jquery.validate.js"></script>
|
||||
<script>
|
||||
$(function() {
|
||||
init_validator("#add_user_form");
|
||||
|
||||
$("#submit").click(function(e){
|
||||
e.preventDefault();
|
||||
var t = this;
|
||||
if($("#add_user_form").valid()) {
|
||||
$(t).button('loading');
|
||||
ajaxPost("/adminEmail/set", getFormJsonData("add_user_form"), function(ret){
|
||||
$(t).button('reset')
|
||||
if(!ret.Ok) {
|
||||
art.alert(ret.Msg)
|
||||
} else {
|
||||
art.tips("Success");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{{template "admin/end.html" .}}
|
||||
@@ -1,325 +0,0 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">Email Template</h3></div>
|
||||
|
||||
<style>
|
||||
.preview {
|
||||
overflow: auto;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
label {
|
||||
}
|
||||
</style>
|
||||
|
||||
<form id="add_user_form">
|
||||
<section class="panel panel-default">
|
||||
<header class="panel-heading bg-light">
|
||||
<ul class="nav nav-tabs nav-justified">
|
||||
<li class="active"><a href="#tab1" data-toggle="tab">Layout</a></li>
|
||||
<li class=""><a href="#tab2" data-toggle="tab">Register</a></li>
|
||||
<li class=""><a href="#tab3" data-toggle="tab">Update Email</a></li>
|
||||
<li ><a href="#tab4" data-toggle="tab">Find Passord</a></li>
|
||||
<li ><a href="#tab5" data-toggle="tab">Invite Register</a></li>
|
||||
<li ><a href="#tab6" data-toggle="tab">Blog Comment</a></li>
|
||||
|
||||
</ul>
|
||||
</header>
|
||||
<div class="panel-body">
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active" id="tab1">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<section class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<b>Layout</b>
|
||||
<div>
|
||||
Available tokens:
|
||||
<code>$.subject</code>
|
||||
<code>$.siteUrl</code>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Header</label>
|
||||
<textarea type="text" id="emailHeader" rows="10" class="form-control" name="emailTemplateHeader">{{.str.emailTemplateHeader}}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Footer</label>
|
||||
<textarea type="text" id="emailFooter" rows="10" class="form-control" name="emailTemplateFooter">{{.str.emailTemplateFooter}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane" id="tab2">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<section class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<b>Register Welcome And Email Validation:</b>
|
||||
<div>
|
||||
Available tokens:
|
||||
<code>header</code>
|
||||
<code>footer</code>
|
||||
<code>$.siteUrl</code>
|
||||
<code>$.tokenUrl</code>
|
||||
<code>$.token</code>
|
||||
<code>$.tokenTimeout</code>
|
||||
<code>$.user.userId</code>
|
||||
<code>$.user.email</code>
|
||||
<code>$.user.username</code>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Subject</label>
|
||||
<input type="text" class="form-control" name="emailTemplateRegisterSubject" value="{{.str.emailTemplateRegisterSubject}}">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Body</label>
|
||||
<textarea type="text" rows="10" class="form-control" name="emailTemplateRegister">{{.str.emailTemplateRegister}}</textarea>
|
||||
</div>
|
||||
<div>
|
||||
Preview
|
||||
<div class="preview">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane" id="tab3">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<section class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<b>Update Email and Send Active Email</b>
|
||||
<div>
|
||||
Available tokens:
|
||||
<code>header</code>
|
||||
<code>footer</code>
|
||||
<code>$.siteUrl</code>
|
||||
<code>$.tokenUrl</code>
|
||||
<code>$.token</code>
|
||||
<code>$.tokenTimeout</code>
|
||||
<code>$.user.userId</code>
|
||||
<code>$.user.email</code>
|
||||
<code>$.user.username</code>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Subject</label>
|
||||
<input type="text" class="form-control" name="emailTemplateUpdateEmailSubject" value="{{.str.emailTemplateUpdateEmailSubject}}">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Body</label>
|
||||
<textarea type="text" rows="10" class="form-control" name="emailTemplateUpdateEmail">{{.str.emailTemplateUpdateEmail}}</textarea>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
Preview
|
||||
<div class="preview">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane" id="tab4">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<section class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<b>Find Passord</b>
|
||||
<div>
|
||||
Available tokens:
|
||||
<code>header</code>
|
||||
<code>footer</code>
|
||||
<code>$.siteUrl</code>
|
||||
<code>$.tokenUrl</code>
|
||||
<code>$.token</code>
|
||||
<code>$.tokenTimeout</code>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Subject</label>
|
||||
<input type="text" class="form-control" name="emailTemplateFindPasswordSubject" value="{{.str.emailTemplateFindPasswordSubject}}">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Body</label>
|
||||
<textarea type="text" rows="10" class="form-control" name="emailTemplateFindPassword">{{.str.emailTemplateFindPassword}}</textarea>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
Preview
|
||||
<div class="preview">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane" id="tab5">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<section class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<b>Invite Register</b>
|
||||
<div>
|
||||
Available tokens:
|
||||
<code>header</code>
|
||||
<code>footer</code>
|
||||
<code>$.siteUrl</code>
|
||||
<code>$.registerUrl</code>
|
||||
<code>$.user.username</code>
|
||||
<code>$.user.email</code>
|
||||
<code>$.content</code>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Subject</label>
|
||||
<input type="text" class="form-control" name="emailTemplateInviteSubject" value="{{.str.emailTemplateInviteSubject}}">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Body</label>
|
||||
<textarea type="text" rows="10" class="form-control" name="emailTemplateInvite">{{.str.emailTemplateInvite}}</textarea>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
Preview
|
||||
<div class="preview">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane" id="tab6">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<section class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<b>Blog Comment</b>
|
||||
<div>
|
||||
Available tokens:
|
||||
<code>header</code>
|
||||
<code>footer</code>
|
||||
<code>$.siteUrl</code>
|
||||
<code>$.blogUrl</code>
|
||||
|
||||
<br />
|
||||
<code>$.commentContent</code>
|
||||
|
||||
<br />
|
||||
<code>$.blog.id</code>
|
||||
<code>$.blog.title</code>
|
||||
<code>$.blog.url</code>
|
||||
|
||||
<br />
|
||||
<code>$.commentUser.userId</code>
|
||||
<code>$.commentUser.username</code>
|
||||
<code>$.commentUser.email</code>
|
||||
<code>$.commentUser.isBlogAuthor</code>
|
||||
|
||||
<br />
|
||||
<code>$.commentedUser.userId</code>
|
||||
<code>$.commentedUser.username</code>
|
||||
<code>$.commentedUser.email</code>
|
||||
<code>$.commentedUser.isBlogAuthor</code>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Subject</label>
|
||||
<input type="text" class="form-control" name="emailTemplateCommentSubject" value="{{.str.emailTemplateCommentSubject}}">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Body</label>
|
||||
<textarea type="text" rows="10" class="form-control" name="emailTemplateComment">{{.str.emailTemplateComment}}</textarea>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
Preview
|
||||
<div class="preview">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer class="panel-footer text-right bg-light lter">
|
||||
<button type="submit" id="submit" class="btn btn-success btn-s-xs">Submit</button>
|
||||
</footer>
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
<script src="/public/admin/js/jquery-validation-1.13.0/jquery.validate.js"></script>
|
||||
<script>
|
||||
$(function() {
|
||||
$("code").each(function() {
|
||||
var h = $(this).text();
|
||||
$(this).text("{" + "{" + h + "}" + "}");
|
||||
});
|
||||
|
||||
function previewEmail(t) {
|
||||
var $p = $(t).closest(".row");
|
||||
var tpl = $(t).val();
|
||||
var subject = $p.find("input").val() || "";
|
||||
var $preview = $p.find(".preview");
|
||||
|
||||
var header = $("#emailHeader").val();
|
||||
var footer = $("#emailFooter").val();
|
||||
|
||||
header = header.replace("{" + "{$.subject}" + "}", subject);
|
||||
tpl = tpl.replace("{" + "{header}" + "}", header);
|
||||
tpl = tpl.replace("{" + "{footer}" + "}", footer);
|
||||
|
||||
$preview.html(tpl);
|
||||
}
|
||||
|
||||
$("textarea").each(function() {
|
||||
previewEmail(this);
|
||||
});
|
||||
|
||||
$("textarea").keyup(function() {
|
||||
previewEmail(this);
|
||||
});
|
||||
|
||||
init_validator("#add_user_form");
|
||||
|
||||
$("#submit").click(function(e){
|
||||
e.preventDefault();
|
||||
var t = this;
|
||||
if($("#add_user_form").valid()) {
|
||||
$(t).button('loading');
|
||||
ajaxPost("/adminEmail/template", getFormJsonData("add_user_form"), function(ret){
|
||||
$(t).button('reset')
|
||||
if(!ret.Ok) {
|
||||
art.alert(ret.Msg)
|
||||
} else {
|
||||
art.tips("Success");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{{template "admin/end.html" .}}
|
||||
@@ -1,52 +0,0 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">Demo User</h3></div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6">
|
||||
<form id="add_user_form">
|
||||
<section class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<label>Demo Username</label>
|
||||
<input type="text" class="form-control" name="demoUsername" value="{{.str.demoUsername}}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Demo Password</label>
|
||||
<input type="text" class="form-control" name="demoPassword" value="{{.str.demoPassword}}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="panel-footer text-right bg-light lter">
|
||||
<button type="submit" id="submit" class="btn btn-success btn-s-xs">Submit</button>
|
||||
</footer>
|
||||
</section>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
<script src="/public/admin/js/jquery-validation-1.13.0/jquery.validate.js"></script>
|
||||
<script>
|
||||
$(function() {
|
||||
init_validator("#add_user_form");
|
||||
$("#submit").click(function(e){
|
||||
e.preventDefault();
|
||||
var t = this;
|
||||
if($("#add_user_form").valid()) {
|
||||
$(t).button('loading');
|
||||
ajaxPost("/adminSetting/doDemo", getFormJsonData("add_user_form"), function(ret){
|
||||
$(t).button('reset')
|
||||
if(!ret.Ok) {
|
||||
art.alert(ret.Msg)
|
||||
} else {
|
||||
art.tips("Success");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{{template "admin/end.html" .}}
|
||||
@@ -1,48 +0,0 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">Open Register</h3></div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6">
|
||||
<form id="form_data">
|
||||
<section class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<label>Open ?</label>
|
||||
<input type="checkbox" class="form-control" name="openRegister" {{if .str.openRegister}}checked="checked"{{end}} value="1">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="panel-footer text-right bg-light lter">
|
||||
<button type="submit" id="submit" class="btn btn-success btn-s-xs">Submit</button>
|
||||
</footer>
|
||||
</section>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
<script src="/public/admin/js/jquery-validation-1.13.0/jquery.validate.js"></script>
|
||||
<script>
|
||||
$(function() {
|
||||
init_validator("#form_data");
|
||||
$("#submit").click(function(e){
|
||||
e.preventDefault();
|
||||
var t = this;
|
||||
if($("#form_data").valid()) {
|
||||
$(t).button('loading');
|
||||
ajaxPost("/adminSetting/openRegister", getFormJsonData("form_data"), function(ret){
|
||||
$(t).button('reset')
|
||||
if(!ret.Ok) {
|
||||
art.alert(ret.Msg)
|
||||
} else {
|
||||
art.tips("Success");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{{template "admin/end.html" .}}
|
||||
@@ -1,173 +0,0 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">Register Share Note</h3></div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6">
|
||||
<form id="formContainer">
|
||||
<section class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<label>Shared UserId</label>
|
||||
<input type="text" class="form-control" name="registerSharedUserId" value="{{.str.registerSharedUserId}}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Shared Notebooks</label>
|
||||
<div class="clearfix" id="notebooks">
|
||||
{{range $notebook := .arrMap.registerSharedNotebooks}}
|
||||
<div class="row">
|
||||
<div class="col-xs-8">
|
||||
<input type="text" class="form-control" placeholder="notebookId" name="registerSharedNotebookIds[]"
|
||||
value="{{$notebook.notebookId}}"
|
||||
>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<select class="form-control" name="registerSharedNotebookPerms[]">
|
||||
<option value="0" {{if eq $notebook.perm "0"}}selected{{end}}>Read Only</option>
|
||||
<option value="1" {{if eq $notebook.perm "1"}}selected{{end}}>Writable</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-8">
|
||||
<input type="text" class="form-control" placeholder="notebookId" name="registerSharedNotebookIds[]">
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<select class="form-control" name="registerSharedNotebookPerms[]">
|
||||
<option value="0">Read Only</option>
|
||||
<option value="1">Writable</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-8">
|
||||
<input type="text" class="form-control" placeholder="notebookId" name="registerSharedNotebookIds[]">
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<select class="form-control" name="registerSharedNotebookPerms[]">
|
||||
<option value="0">Read Only</option>
|
||||
<option value="1">Writable</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
The notebooks will shared to register user
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Shared Notes</label>
|
||||
<div class="clearfix" id="notebooks">
|
||||
{{range $note := .arrMap.registerSharedNotes}}
|
||||
<div class="row">
|
||||
<div class="col-xs-8">
|
||||
<input type="text" class="form-control" name="registerSharedNoteIds[]"
|
||||
value="{{$note.noteId}}"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<select class="form-control" name="registerSharedNotePerms[]">
|
||||
<option value="0" {{if eq $note.perm "0"}}selected{{end}}>Read Only</option>
|
||||
<option value="1" {{if eq $note.perm "1"}}selected{{end}}>Writable</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-8">
|
||||
<input type="text" class="form-control" placeholder="noteId" name="registerSharedNoteIds[]">
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<select class="form-control" name="registerSharedNotePerms[]">
|
||||
<option value="0">Read Only</option>
|
||||
<option value="1">Writable</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-8">
|
||||
<input type="text" class="form-control" placeholder="noteId" name="registerSharedNoteIds[]">
|
||||
</div>
|
||||
<div class="col-xs-4">
|
||||
<select class="form-control" name="registerSharedNotePerms[]">
|
||||
<option value="0">Read Only</option>
|
||||
<option value="1">Writable</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
The notes will shared to register user
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Copy Notes</label>
|
||||
<div class="clearfix" id="notebooks">
|
||||
{{range $noteId := .arr.registerCopyNoteIds}}
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<input type="text" class="form-control" name="registerCopyNoteIds[]"
|
||||
value="{{$noteId}}"
|
||||
placeholder="noteId"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<input type="text" class="form-control" name="registerCopyNoteIds[]" placeholder="noteId"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<input type="text" class="form-control" name="registerCopyNoteIds[]" placeholder="noteId"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
The notes will copy to register user
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="panel-footer text-right bg-light lter">
|
||||
<button type="submit" id="submit" class="btn btn-success btn-s-xs">Submit</button>
|
||||
</footer>
|
||||
</section>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
<script src="/public/admin/js/jquery-validation-1.13.0/jquery.validate.js"></script>
|
||||
<script>
|
||||
var a = "{{json .arrMap}}"
|
||||
|
||||
|
||||
$(function() {
|
||||
|
||||
init_validator("#formContainer");
|
||||
|
||||
$("#submit").click(function(e){
|
||||
e.preventDefault();
|
||||
var t = this;
|
||||
if($("#formContainer").valid()) {
|
||||
$(t).button('loading');
|
||||
ajaxPost("/adminSetting/shareNote", getFormJsonData("formContainer"), function(ret){
|
||||
$(t).button('reset')
|
||||
if(!ret.Ok) {
|
||||
art.alert(ret.Msg)
|
||||
} else {
|
||||
art.tips(ret.Msg || "Success");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{{template "admin/end.html" .}}
|
||||
@@ -1,58 +0,0 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">Add User</h3></div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-6">
|
||||
<form id="add_user_form">
|
||||
<section class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="form-group">
|
||||
<label>Email</label>
|
||||
<input type="text" class="form-control" name="email" data-rule-required="true" data-rule-email="true">
|
||||
</div>
|
||||
<div class="form-group pull-in clearfix">
|
||||
<div class="col-sm-6">
|
||||
<label>Enter password</label>
|
||||
<input type="password" class="form-control" data-rule-required="true" id="pwd" name="pwd" data-rule-minlength="6">
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<label>Confirm password</label>
|
||||
<input type="password" class="form-control parsley-validated" data-rule-equalto="#pwd" data-rule-required="true" name="password2">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="panel-footer text-right bg-light lter">
|
||||
<button type="submit" id="submit" class="btn btn-success btn-s-xs">Submit</button>
|
||||
</footer>
|
||||
</section>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
<script src="/public/admin/js/jquery-validation-1.13.0/jquery.validate.js"></script>
|
||||
<script>
|
||||
$(function() {
|
||||
init_validator("#add_user_form");
|
||||
|
||||
$("#submit").click(function(e){
|
||||
e.preventDefault();
|
||||
var t = this;
|
||||
if($("#add_user_form").valid()) {
|
||||
$(t).button('loading');
|
||||
ajaxPost("/auth/doRegister", getFormJsonData("add_user_form"), function(ret){
|
||||
$(t).button('reset')
|
||||
if(!ret.Ok) {
|
||||
art.alert(ret.Msg);
|
||||
} else {
|
||||
art.tips("Success");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{{template "admin/end.html" .}}
|
||||
@@ -1,157 +0,0 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">Users</h3></div>
|
||||
|
||||
<section class="panel panel-default">
|
||||
<div class="row wrapper">
|
||||
<div class="col-sm-5 m-b-xs">
|
||||
<select class="input-sm form-control input-s-sm inline v-middle">
|
||||
<option value="">
|
||||
Bulk action
|
||||
</option>
|
||||
<option value="1">
|
||||
Send Email
|
||||
</option>
|
||||
</select>
|
||||
<button class="btn btn-sm btn-default bulk-btn">
|
||||
Apply
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-sm-4 m-b-xs">
|
||||
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<div class="input-group search-group">
|
||||
<input type="text" class="input-sm form-control" placeholder="Email" id="keywords" value="{{.keywords}}" />
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-sm btn-default" type="button" data-url="/adminUser/index">Search</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped b-t b-light">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="20">
|
||||
<input type="checkbox">
|
||||
</th>
|
||||
{{$url := urlConcat "/adminUser/index" "keywords" .keywords}}
|
||||
<th
|
||||
{{sorterTh $url "email" .sorter}}
|
||||
>
|
||||
Email
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th
|
||||
{{sorterTh $url "username" .sorter}}
|
||||
>
|
||||
Username
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th
|
||||
{{sorterTh $url "verified" .sorter}}
|
||||
>
|
||||
Verified
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th
|
||||
{{sorterTh $url "createdTime" .sorter}}
|
||||
>
|
||||
Register Date
|
||||
<span class="th-sort">
|
||||
<i class="fa fa-sort-down"></i>
|
||||
<i class="fa fa-sort-up"></i>
|
||||
<i class="fa fa-sort"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th width="30">
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{range .users}}
|
||||
<tr>
|
||||
<td>
|
||||
<input type="checkbox" class="ck" data-email="{{.Email}}" data-id="{{.UserId.Hex}}">
|
||||
</td>
|
||||
<td>
|
||||
<a target="_blank" href="/blog/{{.UserId.Hex}}">{{.Email}}</a>
|
||||
</td>
|
||||
<td>
|
||||
{{.Username}}
|
||||
</td>
|
||||
<td>
|
||||
{{.Verified}}
|
||||
</td>
|
||||
<td>
|
||||
{{.CreatedTime|datetime}}
|
||||
</td>
|
||||
<td>
|
||||
<a href="#" class="btn btn-default send-email" data-email="{{.Email}}">Send Email</a>
|
||||
</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<footer class="panel-footer">
|
||||
<div class="row">
|
||||
<div class="col-sm-4 hidden-xs">
|
||||
<select class="input-sm form-control input-s-sm inline v-middle">
|
||||
<option value="">
|
||||
Bulk action
|
||||
</option>
|
||||
<option value="1">
|
||||
Send Email
|
||||
</option>
|
||||
</select>
|
||||
<button class="btn btn-sm btn-default bulk-btn">
|
||||
Apply
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-8 text-right text-center-xs">
|
||||
{{set . "url" (urlConcat "/adminUser/index" "sorter" .sorter "keywords" .keywords)}}
|
||||
{{template "admin/user/page.html" .}}
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</section>
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$(".send-email").click(function() {
|
||||
openSendEmailDialog($(this).data("email"));
|
||||
});
|
||||
$(".bulk-btn").click(function() {
|
||||
// email
|
||||
if($(this).prev().val() == "1") {
|
||||
var emails = [];
|
||||
$(".ck:checked").each(function() {
|
||||
emails.push($(this).data("email"));
|
||||
});
|
||||
if(emails.length == 0) {
|
||||
art.alert("No user");
|
||||
return;
|
||||
}
|
||||
openSendEmailDialog(emails.join(","));
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
{{template "admin/end.html" .}}
|
||||
@@ -1,33 +0,0 @@
|
||||
{{if gt .pageInfo.TotalPage 1}}
|
||||
<ul class="pagination pagination-sm m-t-none m-b-none">
|
||||
<li class="{{if eq $.pageInfo.CurPage 1}}disabled{{end}}" >
|
||||
<a href="{{if eq $.pageInfo.CurPage 1}}javascript:;{{else}}{{sub $.pageInfo.CurPage | urlConcat $.url "page" }}{{end}}">
|
||||
<i class="fa fa-chevron-left">
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
{{range $i := N 1 .pageInfo.TotalPage}}
|
||||
{{if eq $i $.pageInfo.CurPage}}
|
||||
<li class="active">
|
||||
<a href="javascript:;">
|
||||
{{$i}}
|
||||
</a>
|
||||
</li>
|
||||
{{else}}
|
||||
<li class="">
|
||||
<a href="{{urlConcat $.url "page" $i}}">
|
||||
{{$i}}
|
||||
</a>
|
||||
</li>
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
<li class="{{if eq .pageInfo.CurPage .pageInfo.TotalPage}}disabled{{end}}" >
|
||||
<a href="{{if eq .pageInfo.CurPage .pageInfo.TotalPage}}javascript:;{{else}}{{add $.pageInfo.CurPage | urlConcat $.url "page" }}{{end}}">
|
||||
<i class="fa fa-chevron-right">
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
{{end}}
|
||||
@@ -1,639 +0,0 @@
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-6">
|
||||
<h4 class="m-t-xs">
|
||||
Button options
|
||||
</h4>
|
||||
<div class="doc-buttons">
|
||||
<a href="#" class="btn btn-s-md btn-default">
|
||||
Default
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-primary">
|
||||
Primary
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-success">
|
||||
Success
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-info">
|
||||
Info
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-warning">
|
||||
Warning
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-danger">
|
||||
Danger
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-dark">
|
||||
Dark
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-default disabled">
|
||||
Disabled
|
||||
</a>
|
||||
</div>
|
||||
<h4 class="m-t">
|
||||
Button size
|
||||
</h4>
|
||||
<p>
|
||||
<a href="#" class="btn btn-default btn-lg">
|
||||
Large button
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="#" class="btn btn-default">
|
||||
Default button
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="#" class="btn btn-default btn-sm">
|
||||
Small button
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="#" class="btn btn-default btn-xs">
|
||||
Extra small button
|
||||
</a>
|
||||
</p>
|
||||
<h4 class="m-t-lg">
|
||||
Button dropdowns
|
||||
</h4>
|
||||
<p class="text-muted">
|
||||
Single button dropdowns
|
||||
</p>
|
||||
<div class="m-b-sm">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||
Action
|
||||
<span class="caret">
|
||||
</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#">
|
||||
Action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Another action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Something else here
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider">
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Separated link
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-success dropdown-toggle" data-toggle="dropdown">
|
||||
Action
|
||||
<span class="caret">
|
||||
</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#">
|
||||
Action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Another action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Something else here
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider">
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Separated link
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="m-b-sm">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">
|
||||
Action
|
||||
<span class="caret">
|
||||
</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#">
|
||||
Action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Another action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Something else here
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider">
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Separated link
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="m-b-sm">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown">
|
||||
Action
|
||||
<span class="caret">
|
||||
</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#">
|
||||
Action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Another action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Something else here
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider">
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Separated link
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-muted">
|
||||
Split button dropdowns & variation
|
||||
</p>
|
||||
<div class="m-b-sm">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-default">
|
||||
Action
|
||||
</button>
|
||||
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||
<span class="caret">
|
||||
</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#">
|
||||
Action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Another action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Something else here
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider">
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Separated link
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="btn-group dropup">
|
||||
<button class="btn btn-default">
|
||||
Action
|
||||
</button>
|
||||
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||
<span class="caret">
|
||||
</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#">
|
||||
Action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Another action
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Something else here
|
||||
</a>
|
||||
</li>
|
||||
<li class="divider">
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Separated link
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<h4 class="m-t-lg">
|
||||
Button with icon
|
||||
</h4>
|
||||
<p>
|
||||
<a href="#" class="btn btn-default">
|
||||
<i class="fa fa-html5">
|
||||
</i>
|
||||
Html5
|
||||
</a>
|
||||
<a href="#" class="btn btn-info">
|
||||
<i class="fa fa-css3">
|
||||
</i>
|
||||
CSS3
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="#" class="btn btn-default btn-lg btn-block">
|
||||
<i class="fa fa-bars pull-right">
|
||||
</i>
|
||||
Block button with icon
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="#" class="btn btn-default btn-block">
|
||||
<i class="fa fa-bars pull-left">
|
||||
</i>
|
||||
Block button with icon
|
||||
</a>
|
||||
</p>
|
||||
<h4 class="m-t-lg">
|
||||
Button icon
|
||||
</h4>
|
||||
<p id="social-buttons">
|
||||
<a href="#" class="btn btn-sm btn-icon btn-info">
|
||||
<i class="fa fa-twitter">
|
||||
</i>
|
||||
</a>
|
||||
<a href="#" class="btn btn-sm btn-icon btn-success">
|
||||
<i class="fa fa-facebook">
|
||||
</i>
|
||||
</a>
|
||||
<a href="#" class="btn btn-sm btn-icon btn-danger">
|
||||
<i class="fa fa-google-plus">
|
||||
</i>
|
||||
</a>
|
||||
</p>
|
||||
<h4 class="m-t-lg">
|
||||
Button icon rounded
|
||||
</h4>
|
||||
<p id="social-buttons">
|
||||
<a href="#" class="btn btn-rounded btn-sm btn-icon btn-default">
|
||||
<i class="fa fa-twitter">
|
||||
</i>
|
||||
</a>
|
||||
<a href="#" class="btn btn-rounded btn-sm btn-icon btn-default">
|
||||
<i class="fa fa-facebook">
|
||||
</i>
|
||||
</a>
|
||||
<a href="#" class="btn btn-rounded btn-sm btn-icon btn-default">
|
||||
<i class="fa fa-google-plus">
|
||||
</i>
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h4 class="m-t-xs">
|
||||
Rounded button
|
||||
</h4>
|
||||
<div class="doc-buttons">
|
||||
<a href="#" class="btn btn-s-md btn-default btn-rounded">
|
||||
Default
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-primary btn-rounded">
|
||||
Primary
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-success btn-rounded">
|
||||
Success
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-info btn-rounded">
|
||||
Info
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-warning btn-rounded">
|
||||
Warning
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-danger btn-rounded">
|
||||
Danger
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-dark btn-rounded">
|
||||
Dark
|
||||
</a>
|
||||
<a href="#" class="btn btn-s-md btn-default btn-rounded disabled">
|
||||
Disabled
|
||||
</a>
|
||||
</div>
|
||||
<h4 class="m-t-lg">
|
||||
Button groups
|
||||
</h4>
|
||||
<div class="m-b-sm">
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-default">
|
||||
Left
|
||||
</button>
|
||||
<button type="button" class="btn btn-default">
|
||||
Middle
|
||||
</button>
|
||||
<button type="button" class="btn btn-default">
|
||||
Right
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-muted">
|
||||
Vertical button groups
|
||||
</p>
|
||||
<div class="btn-group-vertical m-b-sm">
|
||||
<button type="button" class="btn btn-default">
|
||||
Top
|
||||
</button>
|
||||
<button type="button" class="btn btn-default">
|
||||
Middle
|
||||
</button>
|
||||
<button type="button" class="btn btn-default">
|
||||
Bottom
|
||||
</button>
|
||||
</div>
|
||||
<p class="text-muted">
|
||||
Nested button groups
|
||||
</p>
|
||||
<div class="btn-group m-b-sm">
|
||||
<button type="button" class="btn btn-default">
|
||||
1
|
||||
</button>
|
||||
<button type="button" class="btn btn-success">
|
||||
2
|
||||
</button>
|
||||
<button type="button" class="btn btn-default">
|
||||
3
|
||||
</button>
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||
Dropdown
|
||||
<span class="caret">
|
||||
</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a href="#">
|
||||
Dropdown link
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Dropdown link
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Dropdown link
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-muted">
|
||||
Justified button groups
|
||||
</p>
|
||||
<div class="m-b-sm">
|
||||
<div class="btn-group btn-group-justified">
|
||||
<a href="#" class="btn btn-primary">
|
||||
Left
|
||||
</a>
|
||||
<a href="#" class="btn btn-info">
|
||||
Middle
|
||||
</a>
|
||||
<a href="#" class="btn btn-success">
|
||||
Right
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-muted">
|
||||
Multiple button groups
|
||||
</p>
|
||||
<div class="btn-toolbar">
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-default">
|
||||
1
|
||||
</button>
|
||||
<button type="button" class="btn btn-default active">
|
||||
2
|
||||
</button>
|
||||
<button type="button" class="btn btn-default">
|
||||
3
|
||||
</button>
|
||||
<button type="button" class="btn btn-default">
|
||||
4
|
||||
</button>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-default">
|
||||
5
|
||||
</button>
|
||||
<button type="button" class="btn btn-default">
|
||||
6
|
||||
</button>
|
||||
<button type="button" class="btn btn-default">
|
||||
7
|
||||
</button>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-default">
|
||||
8
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<h4 class="m-t-lg">
|
||||
Button components
|
||||
</h4>
|
||||
<p class="text-muted">
|
||||
<span>
|
||||
There are a few easy ways to quickly get started with Bootstrap, each
|
||||
one ...
|
||||
</span>
|
||||
<span class="text-muted hide" id="moreless">
|
||||
appealing to a different skill level and use case. Read through to see
|
||||
what suits your particular needs.
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
<button href="#moreless" class="btn btn-sm btn-default" data-toggle="class:show">
|
||||
<i class="fa fa-plus text">
|
||||
</i>
|
||||
<span class="text">
|
||||
More
|
||||
</span>
|
||||
<i class="fa fa-minus text-active">
|
||||
</i>
|
||||
<span class="text-active">
|
||||
Less
|
||||
</span>
|
||||
</button>
|
||||
</p>
|
||||
<p>
|
||||
<button class="btn btn-default" id="btn-1" href="#btn-1" data-toggle="class:btn-success">
|
||||
<i class="fa fa-cloud-upload text">
|
||||
</i>
|
||||
<span class="text">
|
||||
Upload
|
||||
</span>
|
||||
<i class="fa fa-check text-active">
|
||||
</i>
|
||||
<span class="text-active">
|
||||
Success
|
||||
</span>
|
||||
</button>
|
||||
<button class="btn btn-default" data-toggle="button">
|
||||
<i class="fa fa-heart-o text">
|
||||
</i>
|
||||
<i class="fa fa-heart text-active text-danger">
|
||||
</i>
|
||||
</button>
|
||||
<button class="btn btn-default" data-toggle="button">
|
||||
<span class="text">
|
||||
<i class="fa fa-thumbs-up text-success">
|
||||
</i>
|
||||
25
|
||||
</span>
|
||||
<span class="text-active">
|
||||
<i class="fa fa-thumbs-down text-danger">
|
||||
</i>
|
||||
10
|
||||
</span>
|
||||
</button>
|
||||
<button class="btn btn-success" data-toggle="class:show inline" data-target="#spin"
|
||||
data-loading-text="Saving...">
|
||||
Save
|
||||
</button>
|
||||
<i class="fa fa-spin fa-spinner hide" id="spin">
|
||||
</i>
|
||||
</p>
|
||||
<div class="m-b-sm">
|
||||
<div class="btn-group" data-toggle="buttons">
|
||||
<label class="btn btn-sm btn-info active">
|
||||
<input type="radio" name="options" id="option1">
|
||||
<i class="fa fa-check text-active">
|
||||
</i>
|
||||
Male
|
||||
</label>
|
||||
<label class="btn btn-sm btn-success">
|
||||
<input type="radio" name="options" id="option2">
|
||||
<i class="fa fa-check text-active">
|
||||
</i>
|
||||
Female
|
||||
</label>
|
||||
<label class="btn btn-sm btn-primary">
|
||||
<input type="radio" name="options" id="option3">
|
||||
<i class="fa fa-check text-active">
|
||||
</i>
|
||||
N/A
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="m-b-sm">
|
||||
<div class="btn-group" data-toggle="buttons">
|
||||
<label class="btn btn-sm btn-default">
|
||||
<input type="checkbox" name="options" id="option1">
|
||||
option1
|
||||
</label>
|
||||
<label class="btn btn-sm btn-default">
|
||||
<input type="checkbox" name="options" id="option2">
|
||||
option2
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<h5 class="m-t-lg">
|
||||
Select Button
|
||||
</h5>
|
||||
<div class="btn-group m-r">
|
||||
<button data-toggle="dropdown" class="btn btn-sm btn-default dropdown-toggle">
|
||||
<span class="dropdown-label">
|
||||
Option1
|
||||
</span>
|
||||
<span class="caret">
|
||||
</span>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-select">
|
||||
<li class="active">
|
||||
<a href="#">
|
||||
<input type="radio" name="d-s-r" checked="">
|
||||
Option1
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
<input type="radio" name="d-s-r">
|
||||
Option2
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
<input type="radio" name="d-s-r">
|
||||
Option3
|
||||
</a>
|
||||
</li>
|
||||
<li class="disabled">
|
||||
<a href="#">
|
||||
<input type="radio" name="d-s-r" disabled="">
|
||||
I'm disabled
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h4 class="m-t-lg">
|
||||
<a href="#" class="pull-right text-sm" data-toggle="class:btn-rounded"
|
||||
data-target="#social-buttons a">
|
||||
Toggle
|
||||
</a>
|
||||
Social buttons
|
||||
</h4>
|
||||
<p id="social-buttons">
|
||||
<a href="#" class="btn btn-rounded btn-sm btn-twitter">
|
||||
<i class="fa fa-fw fa-twitter">
|
||||
</i>
|
||||
Twitter
|
||||
</a>
|
||||
<a href="#" class="btn btn-rounded btn-sm btn-facebook">
|
||||
<i class="fa fa-fw fa-facebook">
|
||||
</i>
|
||||
Facebook
|
||||
</a>
|
||||
<a href="#" class="btn btn-rounded btn-sm btn-gplus">
|
||||
<i class="fa fa-fw fa-google-plus">
|
||||
</i>
|
||||
Google+
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -1,3 +0,0 @@
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,30 +0,0 @@
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<script src="/js/jquery-1.9.0.min.js"></script>
|
||||
<script src="/js/bootstrap.js"></script>
|
||||
<script src="/public/admin/js/artDialog/jquery.artDialog.js?skin=default"></script>
|
||||
<script src="/public/js/common.js"></script>
|
||||
<script src="/public/admin/js/admin.js"></script>
|
||||
<script>
|
||||
$(function() {
|
||||
var pathname = location.pathname; // admin/t
|
||||
var search = location.search; // ?t=xxx, 如果有?page呢
|
||||
var fullPath = pathname;
|
||||
if(search.indexOf("?t=") >= 0) {
|
||||
var fullPath = pathname + search; // /admin/t?t=xxx
|
||||
}
|
||||
|
||||
$("#nav > li").removeClass("active");
|
||||
// 自己
|
||||
var $thisLi = $('#nav a[href^="' + fullPath + '"]').parent();
|
||||
$thisLi.addClass("active");
|
||||
// 父也active
|
||||
$thisLi.parent().parent().addClass('active');
|
||||
});
|
||||
</script>
|
||||
@@ -1,37 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="keywords" content="leanote,leanote.com">
|
||||
<meta name="description" content="leanote, {{msg $ "moto"}}">
|
||||
<meta name="author" content="leanote">
|
||||
<title>{{.title}}</title>
|
||||
|
||||
<link href="/css/bootstrap.css" rel="stylesheet">
|
||||
<link href="/css/font-awesome-4.2.0/css/font-awesome.css" rel="stylesheet">
|
||||
<link href="/public/admin/css/admin.css" rel="stylesheet">
|
||||
<style>
|
||||
</style>
|
||||
|
||||
<script>
|
||||
function log(o) {
|
||||
if(window.console) {
|
||||
console.log(o);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="headerContainer" class="navbar-fixed-top">
|
||||
<div class="container" style="clearfix" id="header">
|
||||
<div class="pull-left">
|
||||
<h1 id="logo" class="clearfix">
|
||||
<a href="/admin/index"></a>
|
||||
<span>Admin</span>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,89 +0,0 @@
|
||||
{{template "admin/top.html" .}}
|
||||
<div class="m-b-md"> <h3 class="m-b-none">Dashboard</h3></div>
|
||||
<section class="panel panel-default">
|
||||
<div class="row m-l-none m-r-none bg-light lter">
|
||||
<div class="col-sm-6 col-md-3 padder-v b-r b-light">
|
||||
<span class="fa-stack fa-2x pull-left m-r-sm">
|
||||
<i class="fa fa-circle fa-stack-2x text-info"></i>
|
||||
<i class="fa fa-users fa-stack-1x text-white"></i>
|
||||
</span>
|
||||
<a class="clear" href="/adminUser/index">
|
||||
<span class="h3 block m-t-xs"><strong>{{.countUser}}</strong></span>
|
||||
<small class="text-muted text-uc">Users</small>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-sm-6 col-md-3 padder-v b-r b-light lt">
|
||||
<span class="fa-stack fa-2x pull-left m-r-sm">
|
||||
<i class="fa fa-circle fa-stack-2x text-warning"></i>
|
||||
<i class="fa fa-file-o fa-stack-1x text-white"></i>
|
||||
</span>
|
||||
<a class="clear" href="javascript:;">
|
||||
<span class="h3 block m-t-xs"><strong>{{.countNote}}</strong></span>
|
||||
<small class="text-muted text-uc">Notes</small>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-sm-6 col-md-3 padder-v b-r b-light">
|
||||
<span class="fa-stack fa-2x pull-left m-r-sm">
|
||||
<i class="fa fa-circle fa-stack-2x text-info"></i>
|
||||
<i class="fa fa-bold fa-stack-1x text-white"></i>
|
||||
</span>
|
||||
<a class="clear" href="/adminBlog/index">
|
||||
<span class="h3 block m-t-xs"><strong>{{.countBlog}}</strong></span>
|
||||
<small class="text-muted text-uc">Blogs</small>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 最新动态 -->
|
||||
<section class="panel panel-default">
|
||||
<h4 class="font-thin padder">
|
||||
Leanote Events
|
||||
</h4>
|
||||
<ul class="list-group" id="eventsList"></ul>
|
||||
</section>
|
||||
|
||||
<!--
|
||||
<section class="panel panel-default">
|
||||
<form>
|
||||
<textarea class="form-control no-border" rows="3" placeholder="Suggestions to leanote"></textarea>
|
||||
</form>
|
||||
<footer class="panel-footer bg-light lter">
|
||||
<button class="btn btn-info pull-right btn-sm">
|
||||
POST
|
||||
</button>
|
||||
<ul class="nav nav-pills nav-sm">
|
||||
</footer>
|
||||
</section>
|
||||
-->
|
||||
|
||||
{{template "admin/footer.html" .}}
|
||||
<script>
|
||||
$(function() {
|
||||
// leanote动态
|
||||
var url = "http://leanote.com/blog/listCateLatest/5446753cfacfaa4f56000000";
|
||||
function renderItem(item) {
|
||||
return '<li class="list-group-item"><p><a target="_blank" href="http://leanote.com/blog/view/' + item.NoteId + '">' + item.Title + '</a></p><small class="block text-muted"><i class="fa fa-clock-o"></i> ' + goNowToDatetime(item.PublicTime) + '</small></li>';
|
||||
}
|
||||
$.ajax({
|
||||
dataType: "jsonp",//跨域访问 dataType 必须是jsonp 类型。
|
||||
url: url,
|
||||
type: "GET",
|
||||
jsonp: "callback",
|
||||
jsonpCallback: "jsonpCallback",
|
||||
success: function(data) {
|
||||
if(typeof data == "object" && data.Ok) {
|
||||
var list = data.List;
|
||||
var html = "";
|
||||
for(var i = 0; i < list.length; ++i) {
|
||||
var item = list[i];
|
||||
html += renderItem(item);
|
||||
}
|
||||
$("#eventsList").html(html);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
{{template "admin/end.html" .}}
|
||||
@@ -1,196 +0,0 @@
|
||||
<nav class="nav-primary hidden-xs">
|
||||
<ul class="nav" id="nav">
|
||||
|
||||
<li class="active">
|
||||
<a href="/admin/index">
|
||||
<i class="fa fa-dashboard icon">
|
||||
<b class="bg-success">
|
||||
</b>
|
||||
</i>
|
||||
<span>
|
||||
Dashboard
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li id="adminUserNav">
|
||||
<a href="#">
|
||||
<i class="fa fa-users icon">
|
||||
<b class="bg-danger">
|
||||
</b>
|
||||
</i>
|
||||
<span class="pull-right">
|
||||
<i class="fa fa-angle-down text">
|
||||
</i>
|
||||
<i class="fa fa-angle-up text-active">
|
||||
</i>
|
||||
</span>
|
||||
<span>
|
||||
User
|
||||
</span>
|
||||
</a>
|
||||
<!-- 导航列表 -->
|
||||
<ul class="nav lt">
|
||||
<li>
|
||||
<a href="/adminUser/index">
|
||||
<span>
|
||||
Users
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/adminUser/add">
|
||||
<span>
|
||||
Add User
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/adminBlog/index">
|
||||
<i class="fa fa-file icon">
|
||||
<b class="bg-warning">
|
||||
</b>
|
||||
</i>
|
||||
<span>
|
||||
Blog
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li id="adminEmailNav">
|
||||
<a href="#layout">
|
||||
<i class="fa fa-envelope-o icon">
|
||||
<b class="bg-warning">
|
||||
</b>
|
||||
</i>
|
||||
<span class="pull-right">
|
||||
<i class="fa fa-angle-down text">
|
||||
</i>
|
||||
<i class="fa fa-angle-up text-active">
|
||||
</i>
|
||||
</span>
|
||||
<span>
|
||||
Email
|
||||
</span>
|
||||
</a>
|
||||
<ul class="nav lt">
|
||||
<li>
|
||||
<a href="/admin/t?t=email/set">
|
||||
<span>
|
||||
Configuration
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/admin/t?t=email/template">
|
||||
<span>
|
||||
Template
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/admin/t?t=email/sendToUsers">
|
||||
<span>
|
||||
Send Email to Users
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/admin/t?t=email/send">
|
||||
<span>
|
||||
Send Email
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/adminEmail/list">
|
||||
<span>
|
||||
Email Logs
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li id="adminSettingNav">
|
||||
<a href="#layout">
|
||||
<i class="fa fa-cog icon">
|
||||
<b class="bg-info">
|
||||
</b>
|
||||
</i>
|
||||
<span class="pull-right">
|
||||
<i class="fa fa-angle-down text">
|
||||
</i>
|
||||
<i class="fa fa-angle-up text-active">
|
||||
</i>
|
||||
</span>
|
||||
<span>
|
||||
Setting
|
||||
</span>
|
||||
</a>
|
||||
<ul class="nav lt">
|
||||
<li>
|
||||
<a href="/admin/t?t=setting/demo">
|
||||
<span>
|
||||
Demo User
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/admin/t?t=setting/openRegister">
|
||||
<span>
|
||||
Open Register
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="/admin/t?t=setting/shareNote">
|
||||
<span>
|
||||
Register Share Note
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="#">
|
||||
<i class="fa fa-columns icon">
|
||||
<b class="bg-success">
|
||||
</b>
|
||||
</i>
|
||||
<span class="pull-right">
|
||||
<i class="fa fa-angle-down text">
|
||||
</i>
|
||||
<i class="fa fa-angle-up text-active">
|
||||
</i>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
Data
|
||||
</span>
|
||||
</a>
|
||||
<ul class="nav lt">
|
||||
<li>
|
||||
<a href="/admin/t?t=data/configuration">
|
||||
<span>
|
||||
Mongodb Tool Configuration
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/adminData/index">
|
||||
<span>
|
||||
Backup & Restore
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
@@ -1,123 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" class="app">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>
|
||||
leanote admin
|
||||
</title>
|
||||
<meta name="description" content="leanote admin"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
|
||||
<link href="/css/font-awesome-4.2.0/css/font-awesome.css" rel="stylesheet">
|
||||
<link href="/public/admin/css/bootstrap.3.2.0.min.css" rel="stylesheet">
|
||||
<link href="/public/admin/css/admin.css" rel="stylesheet">
|
||||
<!--[if lt IE 9]>
|
||||
<script src="/public/admin/js/ie/html5shiv.js"></script>
|
||||
<script src="/public/admin/js/ie/respond.min.js"></script>
|
||||
<script src="/public/admin/js/ie/excanvas.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body class="">
|
||||
<section class="vbox">
|
||||
<header class="bg-dark dk header navbar navbar-fixed-top-xs">
|
||||
<div class="navbar-header aside-md clearfix" id="logo">
|
||||
<a href="/admin/index" class="navbar-brand" data-toggle="fullscreen"></a>
|
||||
<div>Admin</div>
|
||||
</div>
|
||||
|
||||
<ul class="nav navbar-nav navbar-right m-n hidden-xs nav-user">
|
||||
<li class="hidden-xs">
|
||||
<a href="http://leanote.com" class="dk" target="_blank">
|
||||
Leanote Home
|
||||
</a>
|
||||
</li>
|
||||
<li class="hidden-xs">
|
||||
<a href="https://github.com/leanote/leanote" class="dk" target="_blank">
|
||||
Leanote Github
|
||||
</a>
|
||||
</li>
|
||||
<li class="hidden-xs">
|
||||
<a href="http://lea.leanote.com" class="dk" target="_blank">
|
||||
lea++
|
||||
</a>
|
||||
</li>
|
||||
<li class="hidden-xs">
|
||||
<a href="/note" class="dk" target="_blank">
|
||||
My Note
|
||||
</a>
|
||||
</li>
|
||||
<li class="hidden-xs">
|
||||
<a href="/blog/admin" class="dk" target="_blank">
|
||||
My Blog
|
||||
</a>
|
||||
</li>
|
||||
<li class="hidden-xs">
|
||||
<a href="/logout" class="dk">
|
||||
Logout
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</header>
|
||||
<section>
|
||||
<section class="hbox stretch">
|
||||
<!-- .aside -->
|
||||
<aside class="bg-light lter b-r aside-md hidden-print hidden-xs" id="nav">
|
||||
<section class="vbox">
|
||||
<!--
|
||||
<header class="header bg-primary lter text-center clearfix">
|
||||
<div class="btn-group">
|
||||
<div class="hidden-nav-xs">
|
||||
<a class="btn btn-sm btn-primary">
|
||||
Welcome, admin!
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
-->
|
||||
|
||||
<section class="w-f scrollable">
|
||||
<div class="slim-scroll" data-height="auto" data-disable-fade-out="true"
|
||||
data-distance="0" data-size="5px" data-color="#333333">
|
||||
<!-- nav -->
|
||||
{{template "admin/nav.html" .}}
|
||||
<!-- / nav -->
|
||||
</div>
|
||||
</section>
|
||||
<footer class="footer lt hidden-xs b-t b-light" style="min-height: initial;
|
||||
padding: 10px 15px;text-align:center;">
|
||||
<a href="http://leanote.com" target="_blank">leanote</a> © 2014
|
||||
<!--
|
||||
<a href="#nav" data-toggle="class:nav-xs" class="pull-right btn btn-sm btn-default btn-icon">
|
||||
<i class="fa fa-angle-left text">
|
||||
</i>
|
||||
<i class="fa fa-angle-right text-active">
|
||||
</i>
|
||||
</a>
|
||||
-->
|
||||
</footer>
|
||||
</section>
|
||||
</aside>
|
||||
<!-- /.aside -->
|
||||
<section id="content">
|
||||
<section class="vbox">
|
||||
<section class="scrollable padder">
|
||||
<!-- 导航
|
||||
<ul class="breadcrumb no-border no-radius b-b b-light pull-in">
|
||||
<li>
|
||||
<a href="index.html">
|
||||
<i class="fa fa-home">
|
||||
</i>
|
||||
Home
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#">
|
||||
Elements
|
||||
</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
Components
|
||||
</li>
|
||||
</ul>
|
||||
-->
|
||||
<!-- 主要内容区 -->
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
{{set . "title" "Home"}}
|
||||
{{template "header.html" .}}
|
||||
|
||||
<header class="hero-unit" style="background-color:#A9F16C">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="hero-text">
|
||||
<h1>It works!</h1>
|
||||
<p></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="span6">
|
||||
{{template "flash.html" .}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{template "footer.html" .}}
|
||||
@@ -1,19 +0,0 @@
|
||||
{{template "blog/header.html" .}}
|
||||
|
||||
<div id="postsContainer">
|
||||
<div id="posts">
|
||||
<div class="each-post">
|
||||
<div class="title">
|
||||
{{msg . "aboutMe"}}
|
||||
</div>
|
||||
<div class="created-time">
|
||||
</div>
|
||||
<div class="desc">
|
||||
{{.userBlog.AboutMe | raw}}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{template "blog/footer.html" .}}
|
||||
@@ -1,204 +0,0 @@
|
||||
<!-- 赞 -->
|
||||
<div class="entry-controls clearfix">
|
||||
<div class="vote-section-wrapper clearfix">
|
||||
<button class="btn btn-default btn-zan" id="likeBtn"><i class="fa fa-thumbs-o-up"></i> <span id="likeNum">{{.blog.LikeNum}}</span> {{msg . "like"}}</button>
|
||||
<span class="control-item read-counts"><i class="fa fa-eye"></i> {{if .blog.ReadNum}}{{.blog.ReadNum}}{{else}}1{{end}} {{msg . "viewers"}}</span>
|
||||
</div>
|
||||
<div class="right-section">
|
||||
<div id="weixinQRCode"></div>
|
||||
<!-- google+
|
||||
<g:plusone size=”medium”></g:plusone>
|
||||
-->
|
||||
<button class="btn btn-share btn-default btn-weibo"><i class="fa fa-weibo"></i> {{msg . "sinaWeibo"}}</button>
|
||||
<button class="btn btn-share btn-default btn-weixin"><i class="fa fa-wechat"></i> {{msg . "weixin"}}</button>
|
||||
<div class="dropdown" style="display: inline-block; cursor: pointer; padding: 5px 10px;">
|
||||
<!-- open -->
|
||||
<div class="dropdown-toggle" data-hover="dropdown" data-toggle="dropdown">
|
||||
<i class="fa fa-share-square-o"></i>
|
||||
{{msg . "moreShare"}}
|
||||
</div>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
<li><a href="#" class="btn-share tencent-weibo"><i class="fa fa-tencent-weibo"></i> {{msg . "tencentWeibo"}}</a></li>
|
||||
<li><a href="#" class="btn-share qq"><i class="fa fa-qq"></i> {{msg . "qqZone"}}</a></li>
|
||||
<li><a href="#" class="btn-share renren"><i class="fa fa-renren"></i> {{msg . "renren"}}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- 举报 -->
|
||||
{{if eq .locale "zh"}}
|
||||
<div style="display: inline-block">
|
||||
<a id="reportBtn"><i class="fa fa-flag-o"></i> {{msg . "report"}}</a>
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
<div class="voters clearfix" id="likers">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/x-jsrender" id="tLikers">
|
||||
[[for users]]
|
||||
<a id="liker_[[:UserId]]" href="[[:~root.blogUrl]]/[[:Username]]" target="_blank" class="voter">
|
||||
[[if Logo]]
|
||||
<img alt="avatar" class="avatar-small" src="[[:Logo]]">
|
||||
[[else]]
|
||||
<img alt="avatar" class="avatar-small" src="/images/blog/default_avatar.png">
|
||||
[[/if]]
|
||||
</a>
|
||||
[[/for]]
|
||||
</script>
|
||||
{{if and .userBlog.CanComment (not (eq .userBlog.CommentType "disqus"))}}
|
||||
|
||||
<script type="text/x-jsrender" id="tComments">
|
||||
[[for comments]]
|
||||
<li class="comment-item">
|
||||
<!-- 头像 -->
|
||||
<a ui-hovercard="" target="_blank" class="avatar-link" title="[[:UserInfo.Username]]" href="[[:~root.blogUrl]]/[[:UserInfo.Username]]">
|
||||
<img class="avatar" src="[[:UserInfo.Logo]]">
|
||||
</a>
|
||||
<!-- 评论 -->
|
||||
<div class="comment-body">
|
||||
<div class="comment-hd">
|
||||
<a href="[[:~root.blogUrl]]/[[:UserInfo.Username]]" target="_blank" >[[:UserInfo.Username]]</a>
|
||||
[[if IsAuthorComment]]
|
||||
<span>({{msg . "author"}})</span>
|
||||
[[/if]]
|
||||
|
||||
<!-- 回复其它人 -->
|
||||
[[if ToUserInfo]]
|
||||
<span class="in-reply-to">
|
||||
{{rawMsg . "reply"}}
|
||||
<a href="[[:~root.blogUrl]]/[[:ToUserInfo.Username]]">[[:ToUserInfo.Username]]</a>
|
||||
</span>
|
||||
[[if ToUserIsAuthor]]
|
||||
<span>({{msg . "author"}})</span>
|
||||
[[/if]]
|
||||
[[/if]]
|
||||
</div>
|
||||
<div class="comment-content ng-binding" ng-bind-html="comment.content">
|
||||
[[html:Content]]
|
||||
</div>
|
||||
<div class="comment-ft clearfix" data-comment-id="[[:CommentId]]" >
|
||||
<span title="" ui-time="" class="date">[[:PublishDate]] </span>
|
||||
<span class="like-num [[if !LikeNum]]hide[[/if]]" title="[[:LikeNum]] {{rawMsg . "like"}}"><span class="like-num-i">[[:LikeNum]]</span> {{rawMsg . "like"}}</span></span>
|
||||
|
||||
[[if ~root.visitUserInfo.UserId]]
|
||||
[[if IsMyNote && !IsMyComment]]
|
||||
<a href="javascript:;" class="comment-trash op-link "><i class="fa fa-trash"></i> {{rawMsg . "delete"}}</a>
|
||||
[[/if]]
|
||||
[[if !IsMyComment]]
|
||||
<a href="javascript:;" class="comment-reply op-link ">
|
||||
<i class="fa fa-reply"></i>
|
||||
{{rawMsg . "reply"}}
|
||||
</a>
|
||||
<a href="javascript:;" class="comment-like op-link"><i class="fa fa-thumbs-o-up"></i> <span class="like-text">[[if IsILikeIt]]{{rawMsg . "unlike"}}[[else]]{{rawMsg . "like"}}[[/if]]</span></a>
|
||||
{{if eq .locale "zh"}}
|
||||
<a href="javascript:;" class="comment-report op-link "><i class="fa fa-flag-o"></i> {{rawMsg . "report"}}</a>
|
||||
{{end}}
|
||||
[[else]]
|
||||
<a href="javascript:;" class="comment-trash op-link "><i class="fa fa-trash"></i> {{rawMsg . "delete"}}</a>
|
||||
[[/if]]
|
||||
[[/if]]
|
||||
</div>
|
||||
|
||||
<!-- 回复该评论 -->
|
||||
[[if ~root.visitUserInfo.UserId]]
|
||||
<form class="comment-form comment-box-ft">
|
||||
<div class="clearfix">
|
||||
<div class="avatar-wrap">
|
||||
<img class="avatar" src="[[:~root.visitUserInfo.Logo]]">
|
||||
</div>
|
||||
<div class="editor-wrap">
|
||||
<textarea class="editable" id="commentContent" name="commentContent" placeholder="{{rawMsg . "reply"}}"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="command clearfix" style="display: block;">
|
||||
<button class="reply-comment-btn save btn btn-primary" data-comment-id="[[:CommentId]]">{{rawMsg . "comment"}}</button>
|
||||
<a class="cancel reply-cancel btn-link">{{rawMsg . "cancel"}}</a>
|
||||
</div>
|
||||
</form>
|
||||
[[/if]]
|
||||
</div>
|
||||
</li>
|
||||
[[/for]]
|
||||
</script>
|
||||
|
||||
<!-- 评论 -->
|
||||
<div class="comment-box hide">
|
||||
{{if .visitUserInfo.UserId}}
|
||||
<form class="comment-form comment-box-ft" id="commentForm">
|
||||
<div class="clearfix">
|
||||
<div class="avatar-wrap">
|
||||
<img class="avatar" src="{{.visitUserInfo.Logo}}">
|
||||
</div>
|
||||
<div class="editor-wrap">
|
||||
<textarea class="editable" id="commentContent" name="commentContent" placeholder="{{msg . "comment"}}" style="height: 100px;"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="command clearfix" style="display: block;">
|
||||
<button id="commentBtn" class="reply-comment-btn save btn btn-primary">{{msg . "comment"}}</button>
|
||||
</div>
|
||||
</form>
|
||||
{{else}}
|
||||
<div class="needLogin">
|
||||
<a onclick="goLogin()">{{msg . "signIn"}}</a>, {{msg . "submitComment"}}.
|
||||
<br />
|
||||
没有帐号? <a onclick="goRegister()">{{msg . "signUp"}}</a>
|
||||
</div>
|
||||
{{end}}
|
||||
<div class="box-header">
|
||||
<span class="counter">
|
||||
<i class="icon icon-comment"></i><span id="commentNum">{{.blog.CommentNum}}</span> {{msg . "comments"}}
|
||||
</span>
|
||||
</div>
|
||||
<ul id="comments">
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="moreComments">
|
||||
<div class="hide comments-more">
|
||||
<a>More...</a>
|
||||
</div>
|
||||
<div class="comments-loading">
|
||||
<img src="/images/loading-32.gif" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{if eq .locale "zh"}}
|
||||
<div id="reportMsg" class="hide">
|
||||
<form class="report-form" name="reportForm">
|
||||
<ul class="options clearfix">
|
||||
<li><label><input required="" value="{{msg . "reportReason1"}}" name="reason" type="radio">{{msg . "reportReason1"}}</label></li>
|
||||
<li><label><input required="" value="{{msg . "reportReason2"}}" name="reason" type="radio">{{msg . "reportReason2"}}</label></li>
|
||||
<li><label><input required="" value="{{msg . "reportReason3"}}" name="reason" type="radio">{{msg . "reportReason3"}}</label></li>
|
||||
<li><label><input required="" value="{{msg . "reportReason4"}}" name="reason" type="radio">{{msg . "reportReason4"}}</label></li>
|
||||
<li><label><input required="" value="" name="reason" type="radio">{{msg . "other"}}</label></li>
|
||||
</ul>
|
||||
<p class="input-container" style="display: none">
|
||||
<input placeholder="{{msg . "reportReason"}}" type="text" name="detail" class="form-control reason-text basic-input" />
|
||||
</p>
|
||||
<p class="footnote"></p>
|
||||
</form>
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
{{end}}
|
||||
|
||||
{{if and .userBlog.CanComment (eq .userBlog.CommentType "disqus")}}
|
||||
|
||||
<div id="disqus_thread"></div>
|
||||
<!-- comment -->
|
||||
<script type="text/javascript">
|
||||
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
|
||||
var disqus_shortname = '{{.userBlog.DisqusId}}'; // required: replace example with your forum shortname
|
||||
var disqus_identifier = '{{.userBlog.UserId.Hex}}/{{.blog.NoteId.Hex}}/{{.blog.Title}}'; // 博客链接
|
||||
|
||||
/* * * DON'T EDIT BELOW THIS LINE * * */
|
||||
(function() {
|
||||
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
|
||||
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
|
||||
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
|
||||
})();
|
||||
</script>
|
||||
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
|
||||
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
|
||||
{{end}}
|
||||
@@ -1,56 +0,0 @@
|
||||
<div id="footerContainer">
|
||||
{{$userId := .userBlog.UserId.Hex}}
|
||||
<div class="container" id="footer">
|
||||
<div class="col-md-4">
|
||||
<h3>{{msg . "blogNavs"}}</h3>
|
||||
<ul>
|
||||
<li><a href="{{$.blogUrl}}/{{$.userInfo.Username}}">{{msg . "home"}}</a></li>
|
||||
{{range .notebooks}}
|
||||
<li>
|
||||
<a href="{{$.cateUrl}}/{{.NotebookId.Hex}}">{{.Title}}</a>
|
||||
</li>
|
||||
{{end}}
|
||||
<li><a href="{{$.aboutMeUrl}}">{{msg . "aboutMe"}}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<h3>{{msg . "latestPosts"}}</h3>
|
||||
<ul>
|
||||
{{range .recentBlogs}}
|
||||
<li title="{{.Title}}"><a href="{{$.blogUrl}}/view/{{.NoteId.Hex}}/">{{.Title}}</a></li>
|
||||
{{end}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<h3>{{msg . "quickLinks"}}</h3>
|
||||
<ul>
|
||||
<li><a href="{{$.noteUrl}}">{{msg . "myNote"}}</a></li>
|
||||
<li><a href="{{$.siteUrl}}/login">leanote {{msg . "login"}}</a></li>
|
||||
<li><a href="http://leanote.com" target="_blank">leanote {{msg . "home"}}</a></li>
|
||||
<li><a href="http://lea.leanote.com" target="_blank">lea++</a></li>
|
||||
<li><a href="http://bbs.leanote.com" target="_blank">leanote {{msg . "community"}}</a></li>
|
||||
<li><a href="https://github.com/leanote/leanote" target="_blank">leanote github</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="{{$.siteUrl}}/js/jquery-1.9.0.min.js"></script>
|
||||
<script src="{{$.siteUrl}}/js/bootstrap-min.js"></script>
|
||||
<script src="{{$.siteUrl}}/js/bootstrap-hover-dropdown.js"></script>
|
||||
<script src="{{$.siteUrl}}/js/i18n/blog.{{.locale}}.js"></script>
|
||||
{{if not .isMe}}
|
||||
<script src="{{$.siteUrl}}/blog/isMe.js?userId={{.userBlog.UserId.Hex}}"></script>
|
||||
{{end}}
|
||||
<script>
|
||||
// 搜索
|
||||
function search(e) {
|
||||
var key = $("#searchInput").val();
|
||||
if(!key) {
|
||||
location.href = "{{$.searchUrl}}";
|
||||
} else {
|
||||
var tpl = '<form action="{{$.searchUrl}}" method="get">';
|
||||
tpl += '<input name="key" value="' + key + '" />';
|
||||
tpl += "</form";
|
||||
$(tpl).submit();
|
||||
}
|
||||
}
|
||||
@@ -1,104 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="keywords" content="leanote,leanote.com">
|
||||
<meta name="description" content="leanote, {{msg $ "moto"}}">
|
||||
<meta name="author" content="leanote">
|
||||
|
||||
<title>{{.title}}</title>
|
||||
<!-- Bootstrap core CSS -->
|
||||
<link href="{{.siteUrl}}/css/bootstrap.css" rel="stylesheet">
|
||||
<!-- 字体必须同一域 -->
|
||||
{{if .set}}
|
||||
<link href="{{.siteUrl}}/css/font-awesome-4.2.0/css/font-awesome.css" rel="stylesheet">
|
||||
{{else}}
|
||||
<link href="{{$.staticUrl}}/css/font-awesome-4.2.0/css/font-awesome.css" rel="stylesheet">
|
||||
{{end}}
|
||||
<link id="styleLink" href="{{.siteUrl}}/css/blog/{{if .userBlog.Style}}{{.userBlog.Style}}{{else}}blog_default{{end}}.css" rel="stylesheet">
|
||||
<link href="{{.siteUrl}}/css/blog/comment.css" rel="stylesheet">
|
||||
<script>
|
||||
function log(o) {
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="headerAndNav" >
|
||||
<div id="headerContainer" class="container">
|
||||
<!-- 头部可放博客名, 导航 -->
|
||||
<div id="header">
|
||||
{{$userId := .userBlog.UserId.Hex}} <!-- 可不要了 -->
|
||||
{{$username := .userInfo.Username}}
|
||||
<h1>
|
||||
<a href="{{.indexUrl}}" id="logo">
|
||||
{{if .userBlog.Logo}}
|
||||
<img src="{{.userBlog.Logo}}" title="{{.userBlog.Title}}"/>
|
||||
{{else}}
|
||||
{{.userBlog.Title | raw}}
|
||||
{{end}}
|
||||
</a>
|
||||
</h1>
|
||||
<div id="blogDesc">
|
||||
{{.userBlog.SubTitle | raw}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Static navbar -->
|
||||
<div class="navbar navbar-default">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="{{.indexUrl}}">
|
||||
{{if .userBlog.Logo}}
|
||||
<img src="{{.userBlog.Logo}}" title="{{.userBlog.Title}}"/>
|
||||
{{else}}
|
||||
{{.userBlog.Title | raw}}
|
||||
{{end}}
|
||||
</a>
|
||||
</div>
|
||||
<div class="navbar-collapse collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
{{$navNotebookId := .notebookId}}
|
||||
<li class="{{if .index}}active{{end}}"><a href="{{.indexUrl}}">{{msg . "home"}}</a></li>
|
||||
{{range .notebooks}}
|
||||
{{$notebookId := .NotebookId.Hex}}
|
||||
<li class="{{if $navNotebookId}}{{if eq $navNotebookId $notebookId}}active{{else}}{{end}}{{end}}">
|
||||
<a href="{{$.cateUrl}}/{{$notebookId}}"
|
||||
>{{.Title}}</a>
|
||||
</li>
|
||||
{{end}}
|
||||
<li class="{{if .aboutMe}}active{{end}}"><a href="{{.aboutMeUrl}}">{{msg . "aboutMe"}}</a></li>
|
||||
<!-- 同源上传logo -->
|
||||
<li class="is-me {{if .set}}active{{end}} {{if not .isMe}}hide{{end}}" ><a href="{{$.siteUrl}}/blog/set/">{{msg . "blogSet"}}</a></li>
|
||||
<li><a href="{{$.noteUrl}}" class="is-me {{if not .isMe}}hide{{end}}">{{msg . "myNote"}}</a></li>
|
||||
</ul>
|
||||
<form class="navbar-form navbar-right" id="search" onsubmit="search(event);return false;">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon" id="searchIcon" onclick="search(event);"><i class="fa fa-search"></i></span>
|
||||
<input type="text" placeholder="search" id="searchInput" class="form-control" value="{{.key}}">
|
||||
</div>
|
||||
</form>
|
||||
</div><!--/.nav-collapse -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var UserInfo = {UserId: "{{$userId}}", Email: "{{.userInfo.Email}}", Username: "{{.userInfo.Username}}"};
|
||||
var UserBlogInfo={CanComment: {{.userBlog.CanComment}}, CommentType: "{{.userBlog.CommentType}}"};
|
||||
var indexUrl = "{{$.indexUrl}}";
|
||||
var viewUrl = "{{$.viewUrl}}";
|
||||
var blogUrl = "{{$.blogUrl}}";
|
||||
var staticUrl = "{{$.staticUrl}}"; // blog.leanote.com, life.leanote.com, aaa.com
|
||||
</script>
|
||||
@@ -1,73 +0,0 @@
|
||||
<!-- This file is Depreciated -->
|
||||
|
||||
<link href="/public/mdeditor/editor/google-code-prettify/prettify.css" type="text/css" rel="stylesheet">
|
||||
<script src="/public/mdeditor/editor/google-code-prettify/prettify.js"></script>
|
||||
|
||||
<script>
|
||||
$("pre").addClass("prettyprint linenums");
|
||||
prettyPrint();
|
||||
</script>
|
||||
|
||||
<!--
|
||||
<script type="text/javascript" src="/js/syntaxhighlighter/scripts/shCore.js"></script>
|
||||
<link href="/js/syntaxhighlighter/styles/shCore.css" rel="stylesheet" type="text/css" />
|
||||
<link href="/js/syntaxhighlighter/styles/shThemeDefault.css" rel="stylesheet" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
var pathPrefix = "/js/syntaxhighlighter/scripts/";
|
||||
var map = {
|
||||
"brush: jscript": "shBrushJScript.js",
|
||||
"brush: c#": "shBrushCSharp.js",
|
||||
"brush: css": "shBrushCss.js",
|
||||
"brush: cpp": "shBrushCpp.js",
|
||||
"brush: java": "shBrushJava.js",
|
||||
"brush: xml": "shBrushXml.js",
|
||||
"brush: php": "shBrushPhp.js",
|
||||
"brush: perl": "shBrushPerl.js",
|
||||
"brush: python": "shBrushPython.js",
|
||||
"brush: ruby": "shBrushRuby.js",
|
||||
"brush: sql": "shBrushSql.js"}
|
||||
var needLoadCount = 0;
|
||||
var alreadyLoadCount = 0;
|
||||
$('pre[class]').each(function() {
|
||||
var brush = $(this).attr("class");
|
||||
var js = map[brush]
|
||||
if (js) {
|
||||
needLoadCount++;
|
||||
map[brush] = null; // 不要重复加载
|
||||
loadJS(pathPrefix + js, function () {
|
||||
alreadyLoadCount++;
|
||||
if (alreadyLoadCount == needLoadCount) {
|
||||
//setTimeout(function() {
|
||||
SyntaxHighlighter.highlight();
|
||||
//}, 500);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function loadJS(url, callback) {
|
||||
$.getScript(url, function() {
|
||||
callback();
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
function loadJS(url, callback, charset) {
|
||||
var script = document.createElement('script');
|
||||
script.onload = script.onreadystatechange = function () {
|
||||
if (script && script.readyState && /^(?!(?:loaded|complete)$)/.test(script.readyState)) return;
|
||||
script.onload = script.onreadystatechange = null;
|
||||
script.src = '';
|
||||
script.parentNode.removeChild(script);
|
||||
script = null;
|
||||
if (callback) callback();
|
||||
};
|
||||
script.charset = charset || document.charset || document.characterSet;
|
||||
script.src = url;
|
||||
try { document.getElementsByTagName("head")[0].appendChild(script); } catch (e) { }
|
||||
}
|
||||
*/
|
||||
</script>
|
||||
-->
|
||||
@@ -1,50 +0,0 @@
|
||||
{{template "blog/header.html" .}}
|
||||
|
||||
<div id="postsContainer">
|
||||
<div class="container">
|
||||
{{if .notebookId}}
|
||||
<h2>{{msg . "blogClass"}} - {{.notebook.Title}}</h2>
|
||||
{{end}}
|
||||
</div>
|
||||
<div id="posts">
|
||||
{{$G := .}}
|
||||
{{range .blogs}}
|
||||
<div class="each-post">
|
||||
<div class="title">
|
||||
<a href="{{$.viewUrl}}/{{.NoteId.Hex}}" title="{{msg $ "fullBlog"}}">
|
||||
{{.Title}}
|
||||
</a>
|
||||
</div>
|
||||
<div class="created-time">
|
||||
<i class="fa fa-bookmark-o"></i>
|
||||
{{if .Tags}}
|
||||
{{blogTags $ .Tags}}
|
||||
{{else}}
|
||||
{{msg $ "noTag"}}
|
||||
{{end}}
|
||||
|
|
||||
<i class="fa fa-calendar"></i> {{msg $ "updatedTime"}} {{.UpdatedTime | datetime}} |
|
||||
<i class="fa fa-calendar"></i> {{msg $ "createdTime"}} {{.CreatedTime | datetime}}
|
||||
</div>
|
||||
<div class="desc">
|
||||
{{.Content | raw}}
|
||||
</div>
|
||||
<a class="more" href="{{$.viewUrl}}/{{.NoteId.Hex}}" title="{{msg $ "fullBlog"}}">{{msg $ "more"}}.</a>
|
||||
</div>
|
||||
{{end}}
|
||||
<!-- 分页 -->
|
||||
<ul class="pager">
|
||||
{{if .notebookId}}
|
||||
{{set $ "pageUrl" (concatStr $.cateUrl "/" .notebookId)}}
|
||||
{{else}}
|
||||
{{set $ "pageUrl" $.indexUrl}}
|
||||
{{end}}
|
||||
{{page $.pageUrl .page .pageSize .count}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{template "blog/footer.html" .}}
|
||||
{{template "blog/highlight.html"}}
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,45 +0,0 @@
|
||||
{{template "blog/header.html" .}}
|
||||
|
||||
<div id="postsContainer">
|
||||
<div class="container">
|
||||
<h2>{{msg . "search"}} - {{.key}} </h2>
|
||||
</div>
|
||||
|
||||
<div id="posts">
|
||||
{{range .blogs}}
|
||||
<div class="each-post">
|
||||
<div class="title">
|
||||
<a href="{{$.viewUrl}}/{{.NoteId.Hex}}" title="{{msg $ "fullBlog"}}">
|
||||
{{.Title}}
|
||||
</a>
|
||||
</div>
|
||||
<div class="created-time">
|
||||
<i class="fa fa-bookmark-o"></i>
|
||||
{{if .Tags}}
|
||||
{{blogTags $ .Tags}}
|
||||
{{else}}
|
||||
{{msg $ "noTag"}}
|
||||
{{end}}
|
||||
|
|
||||
<i class="fa fa-calendar"></i> {{msg $ "updatedTime"}} {{.UpdatedTime | datetime}} |
|
||||
<i class="fa fa-calendar"></i> {{msg $ "createdTime"}} {{.CreatedTime | datetime}}
|
||||
</div>
|
||||
<div class="desc">
|
||||
{{.Content | raw}}
|
||||
</div>
|
||||
<a class="more" href="{{$.viewUrl}}/{{.NoteId.Hex}}" title="{{msg $ "fullBlog"}}">{{msg $ "more"}}</a>
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
{{if not .blogs }}
|
||||
<div class="each-post">
|
||||
{{msg . "none"}}
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{template "blog/footer.html" .}}
|
||||
{{template "blog/highlight.html"}}
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,323 +0,0 @@
|
||||
{{template "blog/header.html" .}}
|
||||
|
||||
<!-- set页面不是自定义域名和二级域名页 -->
|
||||
<link rel="stylesheet" href="{{.siteUrl}}/tinymce/skins/custom/skin.min.css" type="text/css">
|
||||
<style>
|
||||
.tab-pane {
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
</style>
|
||||
<div id="postsContainer">
|
||||
<div id="posts">
|
||||
<ul id="myTab" class="nav nav-tabs">
|
||||
<li class="active"><a href="#baseInfo" data-toggle="tab">{{msg . "baseInfoSet"}}</a></li>
|
||||
<li class=""><a href="#commentInfo" data-toggle="tab">{{msg . "commentSet"}}</a></li>
|
||||
<li class=""><a href="#styleInfo" data-toggle="tab">{{msg . "themeSet"}}</a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Tab panes -->
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane" id="styleInfo">
|
||||
<form class="form-horizontal" role="form">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label"></label>
|
||||
<div class="col-sm-10">
|
||||
<div class="alert alert-success" id="styleMsg" style="display: none; margin-bottom: 3px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="Style" class="col-sm-2 control-label">{{msg . "theme"}}</label>
|
||||
<div class="col-sm-10" style="margin-top: 6px;" id="themeList">
|
||||
<label>
|
||||
<img class="preview" src="{{$.siteUrl}}/images/blog/theme/default.png" />
|
||||
<input type="radio" name="Style"
|
||||
value="blog_default"
|
||||
{{if not .userBlog.Style}}
|
||||
checked="checked"
|
||||
{{else}}
|
||||
{{if eq .userBlog.Style "blog_default"}}
|
||||
checked="checked"
|
||||
{{end}}
|
||||
{{end}}>
|
||||
{{msg . "default"}}
|
||||
</label>
|
||||
<label>
|
||||
<img class="preview" src="{{$.siteUrl}}/images/blog/theme/elegent.png" />
|
||||
<input type="radio" name="Style"
|
||||
value="blog_daqi"
|
||||
{{if eq .userBlog.Style "blog_daqi"}}checked="checked"{{end}}>
|
||||
{{msg . "elegant"}}
|
||||
</label>
|
||||
<label>
|
||||
<img class="preview" src="{{$.siteUrl}}/images/blog/theme/left_nav_fix.png" />
|
||||
<input type="radio" name="Style"
|
||||
value="blog_left_fixed"
|
||||
{{if eq .userBlog.Style "blog_left_fixed"}}checked="checked"{{end}}>
|
||||
{{msg . "navFixed"}}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<button class="btn btn-success">{{msg . "save"}}</button>
|
||||
<span class="msg"></span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="tab-pane" id="commentInfo">
|
||||
<form class="form-horizontal" role="form">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label"></label>
|
||||
<div class="col-sm-10">
|
||||
<div class="alert alert-success" id="commentMsg" style="display: none; margin-bottom: 3px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="subTitle" class="col-sm-2 control-label">{{msg . "chooseComment"}}</label>
|
||||
<div class="col-sm-10">
|
||||
<label>
|
||||
<input type="checkbox" id="CanComment" name="CanComment"
|
||||
{{if .userBlog.CanComment}}checked="checked"{{end}} > {{msg . "openComment"}}
|
||||
</label>
|
||||
|
||||
<br />
|
||||
|
||||
<div id="commentSet" {{if not .userBlog.CanComment}}style="display: none"{{end}}>
|
||||
<label>
|
||||
<input type="radio"
|
||||
name="commentType"
|
||||
value="default"
|
||||
{{if or (not .userBlog.CommentType) (eq .userBlog.CommentType "default")}}checked="checked"{{end}} > Default
|
||||
</label>
|
||||
|
||||
<label>
|
||||
<input type="radio" name="commentType" id="disqus"
|
||||
value="disqus"
|
||||
{{if eq .userBlog.CommentType "disqus"}}checked="checked"{{end}} > Disqus
|
||||
</label>
|
||||
|
||||
<div id="disqusSet" {{if not (eq .userBlog.CommentType "disqus")}}style="display: none"{{end}}>
|
||||
<label for="DisqusId">Disqus Id</label> <input type="text"
|
||||
class="form-control" style="display: inline; width: 50%"
|
||||
id="DisqusId" name="DisqusId"
|
||||
value="{{if .userBlog.DisqusId}}{{.userBlog.DisqusId}}{{else}}leanote{{end}}">
|
||||
<br />
|
||||
{{msg . "disqusHelp"}}
|
||||
<a target="_blank" href="http://leanote.com/blog/view/52db8463e01c530ef8000001">{{msg . "needHelp"}}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<button class="btn btn-success">{{msg . "save"}}</button>
|
||||
<span class="msg"></span>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane active" id="baseInfo">
|
||||
<div class="form-horizontal" role="form" id="userBlogForm">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label"></label>
|
||||
<div class="col-sm-10">
|
||||
<div class="alert alert-success" id="msg"
|
||||
style="display: none; margin-bottom: 3px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="title" class="col-sm-2 control-label">{{msg . "blogName"}}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="Title" name="Title"
|
||||
placeholder="eg: leanote's blog"
|
||||
value="{{if .userBlog.Title}}{{.userBlog.Title}}{{else}}{{.userInfo.Email}} 's blog{{end}}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="logo" class="col-sm-2 control-label">{{msg . "blogLogo"}}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="hidden" name="Logo" id="Logo"
|
||||
value="{{.userBlog.Logo}}" />
|
||||
<form id="formLogo" action="{{$.siteUrl}}/file/uploadBlogLogo" method="post"
|
||||
enctype="multipart/form-data" target="logoTarget"
|
||||
onsubmit="inProgress()">
|
||||
<input type="file" class="form-control" id="logo2" name="file"
|
||||
onChange='$("#formLogo").submit();' />
|
||||
{{msg . "blogLogoTips"}}
|
||||
<div id="logoImg"
|
||||
{{if .userBlog.Logo }}
|
||||
{{else}}
|
||||
style="display: none"{{end}}
|
||||
>
|
||||
<img src="{{.userBlog.Logo}}" style="height: 40px" /> <a
|
||||
href="#" id="deleteLogo">{{msg . "delete"}}</a>
|
||||
</div>
|
||||
</form>
|
||||
<iframe id="logoTarget" name="logoTarget" src="#"
|
||||
style="display: none"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="subTitle" class="col-sm-2 control-label">{{msg . "blogDesc"}}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="SubTitle"
|
||||
name="SubTitle" value="{{.userBlog.SubTitle}}"
|
||||
placeholder="eg: leanote, Not Just A Notebook">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="aboutMe" class="col-sm-2 control-label"></label>
|
||||
<div class="col-sm-10">
|
||||
<div id="popularToolbar"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="aboutMe" class="col-sm-2 control-label">{{msg . "aboutMe"}}</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea id="AboutMe" name="AboutMe">{{.userBlog.AboutMe}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<button class="btn btn-success">{{msg . "save"}}</button>
|
||||
<span class="msg"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{template "blog/footer.html" .}}
|
||||
|
||||
<script src="{{.siteUrl}}/js/common-min.js"></script>
|
||||
<script type="text/javascript" src="{{.siteUrl}}/tinymce/tinymce.min.js"></script>
|
||||
|
||||
<script>
|
||||
var urlPrefix = "{{.siteUrl}}";
|
||||
$(function() {
|
||||
tinymce.init({
|
||||
selector : "#AboutMe",
|
||||
content_css : [ "/css/bootstrap.css", "/css/editor/editor.css" ],
|
||||
skin : "custom",
|
||||
language : "{{.locale}}",
|
||||
height : 300,
|
||||
width : "100%",
|
||||
skin : "custom",
|
||||
plugins : [
|
||||
"advlist autolink link leanote_image lists charmap hr ",
|
||||
"searchreplace visualblocks visualchars leanote_code tabfocus",
|
||||
"table contextmenu directionality textcolor paste fullpage textcolor"],
|
||||
toolbar1 : "formatselect |fontselect fontsizeselect| forecolor backcolor | bold italic underline strikethrough | bullist numlist |",
|
||||
menubar : false,
|
||||
toolbar_items_size : 'small',
|
||||
statusbar : false,
|
||||
font_formats : "Arial=arial,helvetica,sans-serif;"
|
||||
+ "Arial Black=arial black,avant garde;"
|
||||
+ "Times New Roman=times new roman,times;"
|
||||
+ "Courier New=courier new,courier;"
|
||||
+ "Tahoma=tahoma,arial,helvetica,sans-serif;"
|
||||
+ "Verdana=verdana,geneva;" + "宋体=SimSun;"
|
||||
+ "新宋体=NSimSun;" + "黑体=SimHei;"
|
||||
+ "微软雅黑=Microsoft YaHei",
|
||||
block_formats : "Header 1=h1;Header 2=h2;Header 3=h3; Header 4=h4;Pre=pre;Paragraph=p"
|
||||
});
|
||||
$("#deleteLogo").click(function() {
|
||||
$("#Logo").val("");
|
||||
$("#logoImg").hide();
|
||||
});
|
||||
|
||||
$("#CanComment").click(function() {
|
||||
if ($(this).is(":checked")) {
|
||||
$("#commentSet").show();
|
||||
} else {
|
||||
$("#commentSet").hide();
|
||||
}
|
||||
});
|
||||
|
||||
$("input[name='commentType']").click(function() {
|
||||
if ($("input[name='commentType']:checked").val() == "disqus") {
|
||||
$("#disqusSet").show();
|
||||
} else {
|
||||
$("#disqusSet").hide();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// 基本设置
|
||||
$("#baseInfo .btn-success").click(function() {
|
||||
var data = {
|
||||
Title : $("#Title").val(),
|
||||
SubTitle : $("#SubTitle").val(),
|
||||
Logo : $("#Logo").val(),
|
||||
AboutMe : getEditorContent()
|
||||
}
|
||||
|
||||
post("/blog/setUserBlogBase", data, function(ret) {
|
||||
showMsg2($("#baseInfo .msg"), "{{msg . "saveSuccess"}}", 2000);
|
||||
$("#blogDesc").html(data.SubTitle);
|
||||
$("#logo").html(data.Title);
|
||||
if(data.Logo) {
|
||||
$("#logo").html(t('<img src="?" />', urlPrefix + "/" + data.Logo));
|
||||
}
|
||||
}, this);
|
||||
});
|
||||
// 评论
|
||||
$("#commentInfo .btn-success").click(function(e) {
|
||||
e.preventDefault();
|
||||
var data = {
|
||||
CanComment : $("#CanComment").is(":checked"),
|
||||
CommentType: $("input[name='commentType']:checked").val(),
|
||||
DisqusId : $("#DisqusId").val(),
|
||||
}
|
||||
post("/blog/setUserBlogComment", data, function(ret) {
|
||||
showMsg2($("#commentInfo .msg"), "{{msg . "saveSuccess"}}", 2000);
|
||||
}, this);
|
||||
});
|
||||
|
||||
// 主题
|
||||
$("#styleInfo .btn-success").click(function(e) {
|
||||
e.preventDefault();
|
||||
var data = {
|
||||
Style : $("input[name='Style']:checked").val()
|
||||
}
|
||||
post("/blog/setUserBlogStyle", data, function(ret) {
|
||||
showMsg2($("#styleInfo .msg"), "{{msg . "saveSuccess"}}", 2000);
|
||||
}, this);
|
||||
});
|
||||
$("input[name='Style']").click(function() {
|
||||
$("#styleLink").attr("href", "/css/blog/" + $(this).val() + ".css");
|
||||
});
|
||||
});
|
||||
|
||||
function inProgress() {
|
||||
}
|
||||
|
||||
// filename, result, resultCode
|
||||
function uploadFinish(ret) {
|
||||
if (ret) {
|
||||
if (ret.resultCode == '1') {
|
||||
$("#logoImg img").attr("src", urlPrefix + "/" + ret.filename).parent().show();
|
||||
$("#Logo").val(ret.filename);
|
||||
return;
|
||||
}
|
||||
alert(ret.result);
|
||||
return;
|
||||
}
|
||||
// 上传出错
|
||||
alert("上传出错");
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,125 +0,0 @@
|
||||
{{template "blog/header.html" .}}
|
||||
|
||||
<div id="postsContainer">
|
||||
<div id="posts">
|
||||
<div class="each-post">
|
||||
<div class="title">
|
||||
{{.blog.Title}}
|
||||
</div>
|
||||
<div class="created-time">
|
||||
<i class="fa fa-bookmark-o"></i>
|
||||
{{if .blog.Tags}}
|
||||
{{blogTags $ .blog.Tags}}
|
||||
{{else}}
|
||||
{{msg . "noTag"}}
|
||||
{{end}}
|
||||
|
|
||||
<i class="fa fa-calendar"></i> {{msg . "updatedTime"}} {{.blog.UpdatedTime | datetime}} |
|
||||
<i class="fa fa-calendar"></i> {{msg . "createdTime"}} {{.blog.CreatedTime | datetime}}
|
||||
</div>
|
||||
|
||||
<div class="mobile-created-time">
|
||||
{{ if .userInfo.Logo}}
|
||||
<img src="{{.userInfo.Logo}}" id="userLogo">
|
||||
{{else}}
|
||||
<img src="{{$.siteUrl}}/images/blog/default_avatar.png" id="userLogo">
|
||||
{{end}}
|
||||
{{.userInfo.Username}}
|
||||
|
||||
{{if .blog.Tags}}
|
||||
|
||||
<i class="fa fa-bookmark-o" style="color: #666"></i>
|
||||
{{blogTags $ .blog.Tags}}
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
<div class="desc" id="content">
|
||||
{{if .blog.IsMarkdown }}
|
||||
<div id="markdownContent" style="display: none">
|
||||
<!-- 用textarea装html, 防止得到的值失真 -->
|
||||
<textarea>
|
||||
{{.blog.Content | raw}}
|
||||
</textarea>
|
||||
</div>
|
||||
<div style="padding: 20px; text-align: center">
|
||||
<img src="/images/loading-32.gif" />
|
||||
</div>
|
||||
{{else}}
|
||||
{{.blog.Content | raw}}
|
||||
{{end}}
|
||||
|
||||
<div id="desc" class="hide">{{.blog.Desc}}</div>
|
||||
</div>
|
||||
|
||||
<!-- comment -->
|
||||
{{template "blog/comment.html" .}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{template "blog/footer.html" .}}
|
||||
{{template "blog/highlight.html"}}
|
||||
<div id="blogNav">
|
||||
<div id="blogNavNav">
|
||||
<i class="fa fa-align-justify" title="文档导航"></i>
|
||||
<span>{{msg . "blogNav"}}</span>
|
||||
</div>
|
||||
<div id="blogNavContent">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var visitUserInfo = eval("(" + {{.visitUserInfoJson}} + ")");
|
||||
var urlPrefix = "{{.siteUrl}}";
|
||||
var noteId = "{{.blog.NoteId.Hex}}";
|
||||
var preLikeNum = +"{{.blog.LikeNum}}";
|
||||
var commentNum = +"{{.blog.CommentNum}}";
|
||||
</script>
|
||||
<script src="/js/app/blog/common.js"></script>
|
||||
<script src="/js/jsrender.js"></script>
|
||||
<script src="/js/jquery-cookie-min.js"></script>
|
||||
<script src="/js/bootstrap-dialog.min.js"></script>
|
||||
<script src="/js/jquery.qrcode.min.js"></script>
|
||||
<script src="/js/app/blog/view.js"></script>
|
||||
|
||||
{{if .blog.IsMarkdown }}
|
||||
<script src="/public/mdeditor/editor/pagedown/Markdown.Converter.js"></script>
|
||||
<script src="/public/mdeditor/editor/pagedown/Markdown.Sanitizer.js"></script>
|
||||
<script src="/public/mdeditor/editor/pagedown/Markdown.Editor.js"></script>
|
||||
<script src="/public/mdeditor/editor/pagedown/local/Markdown.local.zh.js"></script>
|
||||
<script src="/public/mdeditor/editor/Markdown.Extra.js"></script>
|
||||
|
||||
<!--mathjax-->
|
||||
<script type="text/x-mathjax-config">
|
||||
MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ["\\(","\\)"]], processEscapes: true }, messageStyle: "none"});
|
||||
</script>
|
||||
<script src="/public/mdeditor/editor/mathJax.js"></script>
|
||||
<script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script>
|
||||
var content = $.trim($("#markdownContent textarea").val());
|
||||
|
||||
// $("#markdownContent").html("");
|
||||
var converter = Markdown.getSanitizingConverter();
|
||||
Markdown.Extra.init(converter, {extensions: ["tables", "fenced_code_gfm", "def_list"]});
|
||||
var html = converter.makeHtml(content);
|
||||
$("#content").html(html);
|
||||
$("pre").addClass("prettyprint linenums");
|
||||
prettyPrint();
|
||||
MathJax.Hub.Queue(["Typeset",MathJax.Hub,"wmd-preview"]);
|
||||
|
||||
initNav();
|
||||
weixin();
|
||||
</script>
|
||||
{{else}}
|
||||
<script>
|
||||
$(function() {
|
||||
initNav();
|
||||
weixin();
|
||||
});
|
||||
</script>
|
||||
{{end}}
|
||||
|
||||
<!--google+
|
||||
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"> {lang: 'zh-CN'} </script>
|
||||
-->
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,72 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh">
|
||||
<head>
|
||||
<title>404</title>
|
||||
</head>
|
||||
<body>
|
||||
<style type="text/css">
|
||||
html, body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: Helvetica, Arial, Sans;
|
||||
background: #EEEEEE;
|
||||
}
|
||||
.block {
|
||||
padding: 20px;
|
||||
border-bottom: 1px solid #aaa;
|
||||
}
|
||||
#header h1 {
|
||||
font-weight: normal;
|
||||
font-size: 28px;
|
||||
margin: 0;
|
||||
}
|
||||
#more {
|
||||
color: #666;
|
||||
font-size: 80%;
|
||||
border: none;
|
||||
}
|
||||
#header {
|
||||
background: #FFFFCC;
|
||||
}
|
||||
#header p {
|
||||
color: #333;
|
||||
}
|
||||
#routes {
|
||||
background: #f6f6f6;
|
||||
}
|
||||
#routes h2 {
|
||||
font-weight: normal;
|
||||
font-size: 18px;
|
||||
margin: 0 0 10px 0;
|
||||
}
|
||||
#routes ol {
|
||||
|
||||
}
|
||||
#routes li {
|
||||
font-size: 14px;
|
||||
font-family: monospace;
|
||||
color: #333;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="header" class="block">
|
||||
{{with .Error}}
|
||||
<h1>
|
||||
{{.Title}}
|
||||
</h1>
|
||||
<p>
|
||||
{{.Description}}
|
||||
</p>
|
||||
{{end}}
|
||||
</div>
|
||||
<div id="routes" class="block">
|
||||
<h2>These routes have been tried, in this order :</h2>
|
||||
<ol>
|
||||
{{range .Router.Routes}}
|
||||
<li>{{pad .Method 10}}{{pad .Path 50}}{{.Action}}</li>
|
||||
{{end}}
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,35 +0,0 @@
|
||||
{{if eq .RunMode "dev"}}
|
||||
{{template "errors/404-dev.html" .}}
|
||||
{{else}}
|
||||
{{template "home/header_box.html" .}}
|
||||
|
||||
<section id="box">
|
||||
<div>
|
||||
<div>
|
||||
<h1 class="h text-white animated fadeInDownBig">404</h1>
|
||||
</div>
|
||||
<div id="errorBox">
|
||||
<p class="error-info">
|
||||
This page cann't found.
|
||||
</p>
|
||||
|
||||
<div class="list-group m-b-sm bg-white m-b-lg">
|
||||
<a href="javascript:history.go(-1);" class="list-group-item"><!-- <i class="fa fa-chevron-right icon-muted"> --></i> <i class="fa fa-fw fa-arrow-left icon-muted"></i> Back </a>
|
||||
<a href="/index" class="list-group-item"><!-- <i class="fa fa-chevron-right icon-muted"> --></i> <i class="fa fa-fw fa-home icon-muted"></i> Goto homepage </a>
|
||||
<a href="/note" class="list-group-item"><!-- <i class="fa fa-chevron-right icon-muted"> --></i> <i class="fa fa-fw fa-file-o icon-muted"></i> My note</a>
|
||||
<a class="list-group-item" href="mailto:leanote@leanote.com">
|
||||
<span class="badge">leanote@leanote.com</span>
|
||||
<i class="fa fa-fw fa-envelope-o icon-muted"></i> Contact Us </a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<div id="boxFooter">
|
||||
<p>
|
||||
<a href="/index">leanote</a> © 2014
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
{{end}}
|
||||
@@ -1,118 +0,0 @@
|
||||
<style type="text/css">
|
||||
html, body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: Helvetica, Arial, Sans;
|
||||
background: #EEEEEE;
|
||||
}
|
||||
.block {
|
||||
padding: 20px;
|
||||
border-bottom: 1px solid #aaa;
|
||||
}
|
||||
#header h1 {
|
||||
font-weight: normal;
|
||||
font-size: 28px;
|
||||
margin: 0;
|
||||
}
|
||||
#more {
|
||||
color: #666;
|
||||
font-size: 80%;
|
||||
border: none;
|
||||
}
|
||||
#header {
|
||||
background: #fcd2da;
|
||||
}
|
||||
#header p {
|
||||
color: #333;
|
||||
}
|
||||
#source {
|
||||
background: #f6f6f6;
|
||||
}
|
||||
#source h2 {
|
||||
font-weight: normal;
|
||||
font-size: 18px;
|
||||
margin: 0 0 10px 0;
|
||||
}
|
||||
#source .lineNumber {
|
||||
float: left;
|
||||
display: block;
|
||||
width: 40px;
|
||||
text-align: right;
|
||||
margin-right: 10px;
|
||||
font-size: 14px;
|
||||
font-family: monospace;
|
||||
background: #333;
|
||||
color: #fff;
|
||||
}
|
||||
#source .line {
|
||||
clear: both;
|
||||
color: #333;
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
#source pre {
|
||||
font-size: 14px;
|
||||
margin: 0;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
#source .error {
|
||||
color: #c00 !important;
|
||||
}
|
||||
#source .error .lineNumber {
|
||||
background: #c00;
|
||||
}
|
||||
#source a {
|
||||
text-decoration: none;
|
||||
}
|
||||
#source a:hover * {
|
||||
cursor: pointer !important;
|
||||
}
|
||||
#source a:hover pre {
|
||||
background: #FAFFCF !important;
|
||||
}
|
||||
#source em {
|
||||
font-style: normal;
|
||||
text-decoration: underline;
|
||||
font-weight: bold;
|
||||
}
|
||||
#source strong {
|
||||
font-style: normal;
|
||||
font-weight: bold;
|
||||
}
|
||||
</style>
|
||||
{{with .Error}}
|
||||
<div id="header" class="block">
|
||||
<h1>
|
||||
{{.Title}}
|
||||
</h1>
|
||||
<p>
|
||||
{{if .SourceType}}
|
||||
The {{.SourceType}} <strong>{{.Path}}</strong> does not compile: <strong>{{.Description}}</strong>
|
||||
{{else}}
|
||||
{{.Description}}
|
||||
{{end}}
|
||||
</p>
|
||||
</div>
|
||||
{{if .Path}}
|
||||
<div id="source" class="block">
|
||||
<h2>In {{.Path}}
|
||||
{{if .Line}}
|
||||
(around {{if .Line}}line {{.Line}}{{end}}{{if .Column}} column {{.Column}}{{end}})
|
||||
{{end}}
|
||||
</h2>
|
||||
{{range .ContextSource}}
|
||||
<div class="line {{if .IsError}}error{{end}}">
|
||||
<span class="lineNumber">{{.Line}}:</span>
|
||||
<pre>{{.Source}}</pre>
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
{{end}}
|
||||
{{if .MetaError}}
|
||||
<div id="source" class="block">
|
||||
<h2>Additionally, an error occurred while handling this error.</h2>
|
||||
<div class="line error">
|
||||
{{.MetaError}}
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{end}}
|
||||
@@ -1,35 +0,0 @@
|
||||
{{if eq .RunMode "dev"}}
|
||||
{{template "errors/500-dev.html" .}}
|
||||
{{else}}
|
||||
{{template "home/header_box.html" .}}
|
||||
|
||||
<section id="box">
|
||||
<div>
|
||||
<div>
|
||||
<h1 class="h text-white animated fadeInDownBig">500</h1>
|
||||
</div>
|
||||
<div id="errorBox">
|
||||
<p class="error-info">
|
||||
Sorry, we got an error.
|
||||
</p>
|
||||
|
||||
<div class="list-group m-b-sm bg-white m-b-lg">
|
||||
<a href="javascript:history.go(-1);" class="list-group-item"><!-- <i class="fa fa-chevron-right icon-muted"> --></i> <i class="fa fa-fw fa-arrow-left icon-muted"></i> Back </a>
|
||||
<a href="/index" class="list-group-item"><!-- <i class="fa fa-chevron-right icon-muted"> --></i> <i class="fa fa-fw fa-home icon-muted"></i> Goto homepage </a>
|
||||
<a href="/note" class="list-group-item"><!-- <i class="fa fa-chevron-right icon-muted"> --></i> <i class="fa fa-fw fa-file-o icon-muted"></i> My note</a>
|
||||
<a class="list-group-item" href="mailto:leanote@leanote.com">
|
||||
<span class="badge">leanote@leanote.com</span>
|
||||
<i class="fa fa-fw fa-envelope-o icon-muted"></i> Contact Us </a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<div id="boxFooter">
|
||||
<p>
|
||||
<a href="/index">leanote</a> © 2014
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
{{end}}
|
||||
@@ -1,14 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>图片上传结果</title>
|
||||
<script language="javascript" type="text/javascript">
|
||||
window.parent.window.uploadFinish({
|
||||
filename:'{{.fileUrlPath}}',
|
||||
result: '{{.resultMsg}}',
|
||||
resultCode: '{{.resultCode}}'
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
</html>
|
||||
@@ -1,14 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<script type="text/javascript">
|
||||
window.parent.window.leanoteImagesDialog.uploadFinish({
|
||||
filename:'{{.fileUrlPath}}',
|
||||
result: '{{.resultMsg}}',
|
||||
resultCode: '{{.resultCode}}'
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
</html>
|
||||
@@ -1,87 +0,0 @@
|
||||
{{template "home/header_box.html" .}}
|
||||
|
||||
<section id="box" class="animated fadeInUp">
|
||||
<div>
|
||||
<h1 id="logo">leanote</h1>
|
||||
<div id="boxForm">
|
||||
<div id="boxHeader">{{msg . "findPassword"}}</div>
|
||||
<form>
|
||||
<div class="alert alert-danger" id="loginMsg"></div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="email">{{msg . "email"}}</label>
|
||||
<input type="text" class="form-control" id="email" name="email" value="{{.email}}">
|
||||
</div>
|
||||
|
||||
<button id="loginBtn" class="btn btn-success">{{msg . "findPassword"}}</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="boxFooter">
|
||||
<p>
|
||||
<a href="/login">{{msg . "login"}}</a>
|
||||
|
||||
<a href="/index">{{msg . "home"}}</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="/index">leanote</a> © 2014
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<script src="/js/jquery-1.9.0.min.js"></script>
|
||||
<script src="/js/bootstrap.js"></script>
|
||||
<script src="/js/common.js"></script>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$("#email").focus();
|
||||
if($("#email").val()) {
|
||||
$("#pwd").focus();
|
||||
}
|
||||
function showMsg(msg, id) {
|
||||
$("#loginMsg").html(msg).show();
|
||||
if(id) {
|
||||
$("#" + id).focus();
|
||||
}
|
||||
}
|
||||
function hideMsg() {
|
||||
$("#loginMsg").hide();
|
||||
}
|
||||
$("#loginBtn").click(function(e){
|
||||
e.preventDefault();
|
||||
var email = $("#email").val();
|
||||
if(!email) {
|
||||
showMsg("{{msg . "inputEmail"}}", "email");
|
||||
return;
|
||||
} else {
|
||||
var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
|
||||
if(!myreg.test(email)) {
|
||||
showMsg("{{msg . "wrongEmail"}}", "email");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$("#loginBtn").html("{{msg . "ing"}}...").addClass("disabled");
|
||||
// hideMsg();
|
||||
|
||||
$.post("/doFindPassword", {email: email}, function(e) {
|
||||
$("#loginBtn").html("{{msg . "findPassword"}}").removeClass("disabled");
|
||||
if(e.Ok) {
|
||||
var msg = "{{msg . "findPasswordSendEmailOver"}}";
|
||||
var loginAddress = getEmailLoginAddress(email);
|
||||
if(loginAddress) {
|
||||
msg += ' <a target="_blank" href="' + loginAddress + '">{{msg . "checkEmai"}}</a>';
|
||||
}
|
||||
$("#loginMsg").html(msg).show().removeClass("alert-danger").addClass("alert-success");
|
||||
} else {
|
||||
showMsg(e.Msg, "email");
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,100 +0,0 @@
|
||||
{{template "home/header_box.html" .}}
|
||||
|
||||
<section id="box" class="animated fadeInUp">
|
||||
<div>
|
||||
<h1 id="logo">leanote</h1>
|
||||
<div id="boxForm">
|
||||
<div id="boxHeader">{{msg . "updatePassword"}}</div>
|
||||
<form>
|
||||
<div class="alert alert-danger" id="loginMsg"> </div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="email">{{msg . "email"}}</label>
|
||||
<br />
|
||||
{{.findPwd.Email}}
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="pwd">{{msg . "password"}}</label>
|
||||
<input type="password" class="form-control" id="pwd" name="pwd">
|
||||
{{msg . "passwordTips"}}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="pwd2">{{msg . "password2"}}</label>
|
||||
<input type="password" class="form-control" id="pwd2" name="pwd2" >
|
||||
</div>
|
||||
<button id="loginBtn" class="btn btn-success">{{msg . "updatePassword"}}</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="boxFooter">
|
||||
<p>
|
||||
<a href="/login">{{msg . "login"}}</a>
|
||||
|
||||
<a href="/index">{{msg . "home"}}</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="/index">leanote</a> © 2014
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<script src="/js/jquery-1.9.0.min.js"></script>
|
||||
<script src="/js/bootstrap.js"></script>
|
||||
|
||||
<script>
|
||||
|
||||
$(function() {
|
||||
$("#pwd").focus();
|
||||
function showMsg(msg, id) {
|
||||
$("#loginMsg").html(msg).show();
|
||||
if(id) {
|
||||
$("#" + id).focus();
|
||||
}
|
||||
}
|
||||
function hideMsg() {
|
||||
$("#loginMsg").hide();
|
||||
}
|
||||
$("#loginBtn").click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
var pwd = $("#pwd").val();
|
||||
var pwd2 = $("#pwd2").val();
|
||||
|
||||
if(!pwd) {
|
||||
showMsg("{{msg . "inputPassword"}}", "pwd");
|
||||
return;
|
||||
} else {
|
||||
if(pwd.length < 6) {
|
||||
showMsg("{{msg . "notGoodPassword"}}", "pwd");
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(!pwd2) {
|
||||
showMsg("{{msg . "inputPassword2"}}", "pwd2");
|
||||
return;
|
||||
} else {
|
||||
if(pwd != pwd2) {
|
||||
showMsg("{{msg . "confirmPassword"}}", "pwd2");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$("#loginBtn").html("{{msg . "ing"}}...").addClass("disabled");
|
||||
// hideMsg();
|
||||
|
||||
$.post("/findPasswordUpdate", {pwd: pwd, token: "{{.findPwd.Token}}"}, function(e) {
|
||||
$("#loginBtn").html("{{msg . "updatePassword"}}").removeClass("disabled");
|
||||
if(e.Ok) {
|
||||
$("#loginBtn").html("{{msg . "updatePasswordSuccessRedirectToLogin"}}");
|
||||
location.href = "/login?email={{.findPwd.Email}}";
|
||||
} else {
|
||||
showMsg(e.Msg, "pwd");
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,31 +0,0 @@
|
||||
{{template "home/header_box.html" .}}
|
||||
|
||||
<section id="box" class="animated fadeInUp">
|
||||
<div>
|
||||
<h1 id="logo">leanote</h1>
|
||||
<div id="boxForm">
|
||||
<div id="boxHeader">{{msg . "findPasswordTimeout"}}</div>
|
||||
<form>
|
||||
<div class="alert alert-danger" id="loginMsg" style="display: block">
|
||||
{{msg . "findPasswordTimeout"}}, <a href="/findPassword">{{msg . "reFindPassword"}}</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="boxFooter">
|
||||
<p>
|
||||
<a href="/login">{{msg . "login"}}</a>
|
||||
|
||||
<a href="/index">{{msg . "home"}}</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="/index">leanote</a> © 2014
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<script src="/js/jquery-1.9.0.min.js"></script>
|
||||
<script src="/js/bootstrap.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,24 +0,0 @@
|
||||
<div id="footer">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<i class="fa fa-envelope-o fa-3x icon-muted"></i>
|
||||
<h2>Contact</h2>
|
||||
<a href="http://weibo.com/leanotecom" target="_blank"><i class="fa fa-weibo"></i></a>
|
||||
<br />
|
||||
leanote@leanote.com
|
||||
<div id="beian">
|
||||
<a href="http://www.miibeian.gov.cn" target="_blank">沪ICP备14006011号</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<i class="fa fa-globe fa-3x icon-muted"></i>
|
||||
<h2>Join Us</h2>
|
||||
<a href="https://github.com/leanote/leanote">github leanote</a>
|
||||
<br />
|
||||
QQ Group: 158716820
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -1,111 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="keywords" content="leanote,leanote.com">
|
||||
<meta name="description" content="leanote, {{msg $ "moto"}}">
|
||||
<meta name="author" content="leanote">
|
||||
<title>{{.title}}</title>
|
||||
|
||||
<link href="/css/bootstrap.css" rel="stylesheet">
|
||||
<link href="/css/font-awesome-4.2.0/css/font-awesome.css" rel="stylesheet">
|
||||
<link href="/css/index.css" rel="stylesheet">
|
||||
<style>
|
||||
</style>
|
||||
|
||||
<script>
|
||||
function log(o) {
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<nav id="headerContainer" style="background-color:#fff" class="navbar navbar-default navbar-fixed-top" role="navigation">
|
||||
<div class="container-fluid">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="/index">
|
||||
<img src="/images/logo/leanote_black.png" id="" title="leanote, {{msg $ "moto"}}"/>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="navbar-collapse collapse">
|
||||
<ul class="nav navbar-nav navbar-left">
|
||||
<li><a href="/index#" target="body" class="smooth-scroll">{{msg . "home"}}</a></li>
|
||||
<!--
|
||||
<li><a href="/index#aboutLeanote" target="#aboutLeanote" class="smooth-scroll">{{msg . "aboutLeanote"}}</a> </li>
|
||||
-->
|
||||
<li><a href="/index#download" target="#download" class="smooth-scroll">{{msg . "download"}}</a> </li>
|
||||
<li><a href="/index#donate" target="#donate" class="smooth-scroll">{{msg . "donate"}}</a> </li>
|
||||
<li><a id="leanoteBlog" href="{{.leaUrl}}/index" target="_blank" title="lea++, leanote博客平台" class="">lea++</a></li>
|
||||
<li style="position: relative; margin-right: 3px;">
|
||||
<a href="http://bbs.leanote.com" target="_blank" class="">{{msg . "discussion"}}</a>
|
||||
<div class="red-circle" style=""></div>
|
||||
</li>
|
||||
|
||||
<li id="loginBtns">
|
||||
{{if .userInfo.Email}}
|
||||
{{msg . "hi"}}, {{.userInfo.Username}}
|
||||
<a href="{{$.noteUrl}}">{{msg . "myNote"}}</a>
|
||||
<a href="/logout">{{msg . "logout"}}</a>
|
||||
{{else}}
|
||||
<a href="/login">{{msg . "login"}}</a>
|
||||
{{if .openRegister}}
|
||||
<a href="/register" class="btn-register">{{msg . "register"}}</a>
|
||||
{{end}}
|
||||
{{end}}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<!--
|
||||
<div id="headerContainer" style="background-color:#fff" class="navbar-fixed-top">
|
||||
<div class="container" style="clearfix" id="header">
|
||||
<div class="pull-left">
|
||||
<h1>
|
||||
<a href="/index">
|
||||
<img src="/images/logo/leanote_black.png" id="" style="height: 50px" title="leanote, {{msg $ "moto"}}"/>
|
||||
</a>
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="pull-right" id="loginBtns">
|
||||
{{if .userInfo.Email}}
|
||||
{{msg . "hi"}}, {{.userInfo.Username}}
|
||||
<a href="{{$.noteUrl}}">{{msg . "myNote"}}</a>
|
||||
<a href="/logout">{{msg . "logout"}}</a>
|
||||
{{else}}
|
||||
<a href="/login">{{msg . "login"}}</a>
|
||||
{{if .openRegister}}
|
||||
<a href="/register" class="btn-register">{{msg . "register"}}</a>
|
||||
{{end}}
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
<ul id="blogNav" class="pull-right">
|
||||
<li><a href="/index#" target="body" class="smooth-scroll">{{msg . "home"}}</a></li>
|
||||
<li><a href="/index#download" target="#download" class="smooth-scroll">{{msg . "download"}}</a> </li>
|
||||
<li><a href="/index#donate" target="#donate" class="smooth-scroll">{{msg . "donate"}}</a> </li>
|
||||
<li><a id="leanoteBlog" href="{{.leaUrl}}/index" target="_blank" title="lea++, leanote博客平台" class="">lea++</a></li>
|
||||
<li style="position: relative; margin-right: 3px;">
|
||||
<a href="http://bbs.leanote.com" target="_blank" class="">{{msg . "discussion"}}</a>
|
||||
<div style="position: absolute;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
background: red;
|
||||
top: 15px;
|
||||
right: 5px;
|
||||
border-radius: 9px;"></div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
@@ -1,21 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="keywords" content="leanote,leanote.com">
|
||||
<meta name="description" content="leanote, {{msg $ "moto"}}">
|
||||
<meta name="author" content="leanote">
|
||||
<title>{{.title}}</title>
|
||||
|
||||
<link href="/css/bootstrap.css" rel="stylesheet">
|
||||
<link href="/css/font-awesome-4.2.0/css/font-awesome.css" rel="stylesheet">
|
||||
<link href="/css/index.css" rel="stylesheet">
|
||||
<style>
|
||||
html, body {
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body id="boxBody">
|
||||
@@ -1,135 +0,0 @@
|
||||
{{template "home/header.html" .}}
|
||||
<style>
|
||||
|
||||
</style>
|
||||
<section>
|
||||
<div class="header">
|
||||
<h2>leanote, {{msg . "moto"}}</h2>
|
||||
<p>{{msg . "moto3"}}</p>
|
||||
<p>{{msg . "moto2"}}</p>
|
||||
|
||||
<div>
|
||||
<a class="btn btn-primary" href="https://github.com/leanote/leanote">{{msg . "fork github"}}</a>
|
||||
|
||||
|
||||
<a class="btn btn-default" href="/demo">{{msg . "try"}}</a>
|
||||
{{if .openRegister}}
|
||||
|
||||
|
||||
OR
|
||||
|
||||
|
||||
<a class="btn btn-default" href="/register">{{msg . "register"}}</a>
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="preview" style="position: relative;">
|
||||
<div>
|
||||
<div class="img-header">
|
||||
<img src="/images/home/mac-btns.png"/>
|
||||
</div>
|
||||
<img src="/images/home/preview2.png" style="width: 750px;" />
|
||||
</div>
|
||||
<div class="mobile">
|
||||
<div class="mobile-header">
|
||||
<img src="/images/home/mac-dot.png" />
|
||||
</div>
|
||||
<img class="mobile-image" src="/images/home/mobile.png" />
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="container" id="aboutLeanote">
|
||||
<h2>{{msg . "aboutLeanote"}}</h2>
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<h3>{{msg . "knowledge"}}</h3>
|
||||
<p>{{msg . "knowledgeInfo"}}</p>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h3>{{msg . "share"}}</h3>
|
||||
<p>{{msg . "shareInfo"}}</p>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h3>{{msg . "cooperation"}}</h3>
|
||||
<p>{{msg . "cooperationInfo"}}</p>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h3>{{msg . "blog"}}</h3>
|
||||
<p>{{msg . "blogInfo"}}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container" id="download">
|
||||
<h2 style="margin: 20px 0;text-align: center;">{{msg . "download"}}</h2>
|
||||
<div class="row">
|
||||
<div style="width:300px; margin:auto; padding: 10px;">
|
||||
Linux : <a href="https://github.com/leanote/leanote/releases/download/0.4/leanote-linux-v0.4.bin.tar.gz">leanote-linux-v0.4.bin.tar.gz</a> <br />
|
||||
MacOS X : <a href="https://github.com/leanote/leanote/releases/download/0.4/leanote-mac-v0.4.bin.tar.gz">leanote-mac-v0.4.bin.tar.gz</a> <br />
|
||||
<br />
|
||||
<a href="https://github.com/leanote/leanote#3-how-to-install-leanote">{{msg . "howToInstallLeanote"}}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container" id="donate">
|
||||
<h2 style="margin: 20px 0;text-align: center;">{{msg . "donate"}}</h2>
|
||||
<div class="row">
|
||||
<div style="width:500px; margin:auto; padding: 10px;">
|
||||
<p>
|
||||
您可以通过支付宝向leanote捐赠, 所捐赠的钱将用来leanote开发.
|
||||
</p>
|
||||
<p>
|
||||
支付宝账号: <b>pay@leanote.com</b>
|
||||
</p>
|
||||
<p>
|
||||
或使用支付宝扫以下二维码捐赠:
|
||||
</p>
|
||||
<p style="text-align: center">
|
||||
<img src="/images/leanote/leanote_alipay.jpg" style="padding: 10px;
|
||||
border: 2px solid #eee;
|
||||
border-radius: 10px;"/>
|
||||
</p>
|
||||
<p>
|
||||
我们会定期将捐赠名单发布在 <a href="http://leanote.com/blog/view/5417ecf81a910828fd000000">捐赠列表</a>
|
||||
</p>
|
||||
<p>
|
||||
感谢您对leanote的支持!
|
||||
</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<p>
|
||||
有任何疑问, 建议或需其它服务或支持, 欢迎联系 <code>leanote@leanote.com</code> 或加入官方QQ群: <code>158716820</code> 谢谢!
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{template "home/footer.html"}}
|
||||
|
||||
<script src="/js/jquery-1.9.0.min.js"></script>
|
||||
<script src="/js/bootstrap.js"></script>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
/*
|
||||
var u = navigator.userAgent;
|
||||
var isMobile = u.indexOf('Android')>-1 || u.indexOf('Linux')>-1;
|
||||
if(isMobile || $("body").width() < 600) {
|
||||
location.href = "/mobile/index";
|
||||
}
|
||||
*/
|
||||
// 平滑滚动
|
||||
$(".smooth-scroll").click(function(e) {
|
||||
e.preventDefault();
|
||||
var t = $(this).attr("target");
|
||||
var targetOffset = $(t).offset().top - 80;
|
||||
$('html,body').animate({scrollTop: targetOffset}, 300);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,140 +0,0 @@
|
||||
{{template "home/header.html" .}}
|
||||
<style>
|
||||
|
||||
</style>
|
||||
<section>
|
||||
<div class="header">
|
||||
<h2>leanote, {{msg . "moto"}}</h2>
|
||||
<p>{{msg . "moto3"}}</p>
|
||||
<p>
|
||||
Knowledge, Blog, Sharing, Cooperation... all in leanote
|
||||
</p>
|
||||
|
||||
<div>
|
||||
<a class="btn btn-primary" href="https://github.com/leanote/leanote">{{msg . "fork github"}}</a>
|
||||
|
||||
|
||||
<a class="btn btn-default" href="/demo">{{msg . "try"}}</a>
|
||||
{{if .openRegister}}
|
||||
|
||||
|
||||
OR
|
||||
|
||||
|
||||
<a class="btn btn-default" href="/register">{{msg . "register"}}</a>
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="preview" style="position: relative;">
|
||||
<div>
|
||||
<div class="img-header">
|
||||
<img src="/images/home/mac-btns.png"/>
|
||||
</div>
|
||||
<img src="/images/home/preview2.png" style="width: 750px;" />
|
||||
</div>
|
||||
<div class="mobile">
|
||||
<div class="mobile-header">
|
||||
<img src="/images/home/mac-dot.png" />
|
||||
</div>
|
||||
<img class="mobile-image" src="/images/home/mobile.png" />
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="container" id="aboutLeanote">
|
||||
<h2>{{msg . "aboutLeanote"}}</h2>
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<h3>{{msg . "knowledge"}}</h3>
|
||||
<p>{{msg . "knowledgeInfo"}}</p>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h3>{{msg . "share"}}</h3>
|
||||
<p>{{msg . "shareInfo"}}</p>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h3>{{msg . "cooperation"}}</h3>
|
||||
<p>{{msg . "cooperationInfo"}}</p>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h3>{{msg . "blog"}}</h3>
|
||||
<p>{{msg . "blogInfo"}}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="container" id="download">
|
||||
<h2 style="margin: 20px 0;text-align: center;">{{msg . "download"}}</h2>
|
||||
<div class="row">
|
||||
<div style="width:300px; margin:auto; padding: 10px;">
|
||||
Linux : <a href="https://github.com/leanote/leanote/releases/download/0.4/leanote-linux-v0.4.bin.tar.gz">leanote-linux-v0.4.bin.tar.gz</a> <br />
|
||||
MacOS X : <a href="https://github.com/leanote/leanote/releases/download/0.4/leanote-mac-v0.4.bin.tar.gz">leanote-mac-v0.4.bin.tar.gz</a> <br />
|
||||
<br />
|
||||
<a href="https://github.com/leanote/leanote#3-how-to-install-leanote">{{msg . "howToInstallLeanote"}}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="container" id="donate">
|
||||
<h2 style="margin: 20px 0;text-align: center;">{{msg . "donate"}}</h2>
|
||||
<div class="row">
|
||||
<div style="width:500px; margin:auto; padding: 10px;">
|
||||
<p>
|
||||
You can use <a href="http://alipay.com">alipay</a> to donate us, The donated money will be used to develop leanote.
|
||||
</p>
|
||||
<p>
|
||||
Alipay Account: <b>pay@leanote.com</b>
|
||||
</p>
|
||||
<p>
|
||||
Or you can use alipay app to scan the code to donate us:
|
||||
</p>
|
||||
<p style="text-align: center">
|
||||
<img src="/images/leanote/leanote_alipay.jpg" style="padding: 10px;
|
||||
border: 2px solid #eee;
|
||||
border-radius: 10px; width: 200px;"/>
|
||||
</p>
|
||||
<p>
|
||||
The donation list will be published at <a href="http://leanote.com/blog/view/5417ecf81a910828fd000000">Donation List</a>
|
||||
</p>
|
||||
<p>
|
||||
Thanks for your support!
|
||||
</p>
|
||||
|
||||
<hr />
|
||||
<p>
|
||||
Any questions, suggestions or need more supports, you are welcomed to contact us via <code>leanote@leanote.com</code> or the QQ Group <code>158716820</code> Thanks!
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{template "home/footer.html"}}
|
||||
|
||||
<script src="/js/jquery-1.9.0.min.js"></script>
|
||||
<script src="/js/bootstrap.js"></script>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
/*
|
||||
var u = navigator.userAgent;
|
||||
var isMobile = u.indexOf('Android')>-1 || u.indexOf('Linux')>-1;
|
||||
if(isMobile || $("body").width() < 600) {
|
||||
location.href = "/mobile/index";
|
||||
}
|
||||
*/
|
||||
// 平滑滚动
|
||||
$(".smooth-scroll").click(function(e) {
|
||||
e.preventDefault();
|
||||
var t = $(this).attr("target");
|
||||
var targetOffset = $(t).offset().top - 80;
|
||||
$('html,body').animate({scrollTop: targetOffset}, 300);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,139 +0,0 @@
|
||||
{{template "home/header.html" .}}
|
||||
<style>
|
||||
|
||||
</style>
|
||||
<section>
|
||||
<div class="header">
|
||||
<h2>leanote, {{msg . "moto"}}</h2>
|
||||
<p>{{msg . "moto3"}}</p>
|
||||
<p>{{msg . "moto2"}}</p>
|
||||
|
||||
<div>
|
||||
<a class="btn btn-primary" href="https://github.com/leanote/leanote">{{msg . "fork github"}}</a>
|
||||
|
||||
|
||||
<a class="btn btn-default" href="/demo">{{msg . "try"}}</a>
|
||||
{{if .openRegister}}
|
||||
|
||||
|
||||
OR
|
||||
|
||||
|
||||
<a class="btn btn-default" href="/register">{{msg . "register"}}</a>
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="preview" style="position: relative;">
|
||||
<div>
|
||||
<div class="img-header">
|
||||
<img src="/images/home/mac-btns.png"/>
|
||||
</div>
|
||||
<img src="/images/home/preview2.png" style="width: 750px;" />
|
||||
</div>
|
||||
<div class="mobile">
|
||||
<div class="mobile-header">
|
||||
<img src="/images/home/mac-dot.png" />
|
||||
</div>
|
||||
<img class="mobile-image" src="/images/home/mobile.png" />
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="container" id="aboutLeanote">
|
||||
<h2>{{msg . "aboutLeanote"}}</h2>
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<h3>{{msg . "knowledge"}}</h3>
|
||||
<p>{{msg . "knowledgeInfo"}}</p>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h3>{{msg . "share"}}</h3>
|
||||
<p>{{msg . "shareInfo"}}</p>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h3>{{msg . "cooperation"}}</h3>
|
||||
<p>{{msg . "cooperationInfo"}}</p>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h3>{{msg . "blog"}}</h3>
|
||||
<p>{{msg . "blogInfo"}}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="container" id="download">
|
||||
<h2 style="margin: 20px 0;text-align: center;">{{msg . "download"}}</h2>
|
||||
<div class="row">
|
||||
<div style="width:300px; margin:auto; padding: 10px;">
|
||||
Linux : <a href="https://github.com/leanote/leanote/releases/download/0.4/leanote-linux-v0.4.bin.tar.gz">leanote-linux-v0.4.bin.tar.gz</a> <br />
|
||||
MacOS X : <a href="https://github.com/leanote/leanote/releases/download/0.4/leanote-mac-v0.4.bin.tar.gz">leanote-mac-v0.4.bin.tar.gz</a> <br />
|
||||
<br />
|
||||
<a href="https://github.com/leanote/leanote#3-how-to-install-leanote">{{msg . "howToInstallLeanote"}}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="container" id="donate">
|
||||
<h2 style="margin: 20px 0;text-align: center;">{{msg . "donate"}}</h2>
|
||||
<div class="row">
|
||||
<div style="width:500px; margin:auto; padding: 10px;">
|
||||
<p>
|
||||
您可以通过<a href="http://alipay.com">支付宝</a>向leanote捐赠, 所捐赠的款项将用于开发leanote.
|
||||
</p>
|
||||
<p>
|
||||
支付宝账号: <b>pay@leanote.com</b>
|
||||
</p>
|
||||
<p>
|
||||
或使用支付宝扫以下二维码捐赠:
|
||||
</p>
|
||||
<p style="text-align: center">
|
||||
<img src="/images/leanote/leanote_alipay.jpg" style="padding: 10px;
|
||||
border: 2px solid #eee;
|
||||
border-radius: 10px; width: 200px;"/>
|
||||
</p>
|
||||
<p>
|
||||
我们会定期将捐赠名单发布在 <a href="http://leanote.com/blog/view/5417ecf81a910828fd000000">捐赠列表</a>
|
||||
</p>
|
||||
<p>
|
||||
感谢您对leanote的支持!
|
||||
</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<p>
|
||||
有任何疑问, 建议或需其它服务或支持, 欢迎联系 <code>leanote@leanote.com</code> 或加入官方QQ群: <code>158716820</code> 谢谢!
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{template "home/footer.html"}}
|
||||
|
||||
<script src="/js/jquery-1.9.0.min.js"></script>
|
||||
<script src="/js/bootstrap.js"></script>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
/*
|
||||
var u = navigator.userAgent;
|
||||
var isMobile = u.indexOf('Android')>-1 || u.indexOf('Linux')>-1;
|
||||
if(isMobile || $("body").width() < 600) {
|
||||
location.href = "/mobile/index";
|
||||
}
|
||||
*/
|
||||
// 平滑滚动
|
||||
$(".smooth-scroll").click(function(e) {
|
||||
e.preventDefault();
|
||||
var t = $(this).attr("target");
|
||||
var targetOffset = $(t).offset().top - 80;
|
||||
$('html,body').animate({scrollTop: targetOffset}, 300);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,146 +0,0 @@
|
||||
{{template "home/header_box.html" .}}
|
||||
|
||||
<!-- 验证码 -->
|
||||
<script type="text/x-jsrender" id="tCaptcha">
|
||||
<div class="form-group">
|
||||
<label class="control-label">{{rawMsg . "captcha"}}</label>
|
||||
<input type="text" class="form-control" id="captcha" name="captcha">
|
||||
<a id="reloadCaptcha" title="{{msg . "reloadCaptcha"}}" onclick="$('#captchaImage').attr('src', '/captcha/get?' + ((new Date()).getTime()))"><img src="/captcha/get" id="captchaImage"/></a>
|
||||
</div>
|
||||
</script>
|
||||
<section id="box" class="animated fadeInUp">
|
||||
<!--
|
||||
<div>
|
||||
<a class="back" href="javascript:history.go(-1);" tabindex="-1">←Back</a>
|
||||
</div>
|
||||
-->
|
||||
<div>
|
||||
<h1 id="logo">leanote</h1>
|
||||
<div id="boxForm">
|
||||
<div id="boxHeader">{{msg . "login"}}</div>
|
||||
<form>
|
||||
<div class="alert alert-danger" id="loginMsg"></div>
|
||||
<input id="from" type="hidden" value="{{.from}}" />
|
||||
<div class="form-group">
|
||||
<label class="control-label">{{msg . "usernameOrEmail"}}</label>
|
||||
<input type="text" class="form-control" id="email" name="email" value="{{.email}}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label">{{msg . "password"}}</label>
|
||||
<input type="password" class="form-control" id="pwd" name="pwd">
|
||||
</div>
|
||||
|
||||
<div id="captchaContainer">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="clearfix">
|
||||
<a href="/findPassword" class="pull-right m-t-xs"><small>{{msg . "forgetPassword"}}</small></a>
|
||||
<button id="loginBtn" class="btn btn-success">{{msg . "login"}}</button>
|
||||
</div>
|
||||
<!--
|
||||
<div class="line line-dashed"></div>
|
||||
|
||||
<a href="#" id="github" class="btn btn-github btn-block m-b-sm"><i class="fa fa-github pull-left"></i>{{msg . "use"}} Github</a>
|
||||
-->
|
||||
|
||||
<div class="line line-dashed"></div>
|
||||
|
||||
<p class="text-muted text-center"><small>{{msg . "hasAcount"}}</small></p>
|
||||
|
||||
{{if .openRegister}}
|
||||
<a href="/register" class="btn btn-default btn-block">{{msg . "register"}}</a>
|
||||
{{msg . "or"}}
|
||||
{{end}}
|
||||
|
||||
<a id="loginBtn" href="/demo" class="btn btn-default btn-block">{{msg . "try"}}</a>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="boxFooter">
|
||||
<p>
|
||||
<a href="/index">{{msg . "home"}}</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="/index">leanote</a> © 2014
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<script src="/js/jquery-1.9.0.min.js"></script>
|
||||
<script src="/js/bootstrap.js"></script>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
var needCaptcha = {{.needCaptcha}};
|
||||
|
||||
if(needCaptcha){
|
||||
$("#captchaContainer").html($("#tCaptcha").html());
|
||||
}
|
||||
|
||||
$("#email").focus();
|
||||
if($("#email").val()) {
|
||||
$("#pwd").focus();
|
||||
}
|
||||
function showMsg(msg, id) {
|
||||
$("#loginMsg").html(msg).show();
|
||||
if(id) {
|
||||
$("#" + id).focus();
|
||||
}
|
||||
}
|
||||
function hideMsg() {
|
||||
$("#loginMsg").hide();
|
||||
}
|
||||
$("#loginBtn").click(function(e){
|
||||
e.preventDefault();
|
||||
var email = $("#email").val();
|
||||
var pwd = $("#pwd").val();
|
||||
var captcha = $("#captcha").val()
|
||||
if(!email) {
|
||||
showMsg("{{msg . "inputUsername"}}", "email");
|
||||
return;
|
||||
}
|
||||
if(!pwd) {
|
||||
showMsg("{{msg . "inputPassword"}}", "pwd");
|
||||
return;
|
||||
} else {
|
||||
if(pwd.length < 6) {
|
||||
showMsg("{{msg . "wrongPassword"}}", "pwd");
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(needCaptcha && !captcha) {
|
||||
showMsg("{{msg . "inputCaptcha"}}", "captcha");
|
||||
return;
|
||||
}
|
||||
|
||||
$("#loginBtn").html("{{msg . "logining"}}...").addClass("disabled");
|
||||
// hideMsg();
|
||||
|
||||
$.post("/doLogin", {email: email, pwd: pwd, captcha: $("#captcha").val()}, function(e) {
|
||||
$("#loginBtn").html("{{msg . "login"}}").removeClass("disabled");
|
||||
if(e.Ok) {
|
||||
$("#loginBtn").html("{{msg . "loginSuccess"}}...");
|
||||
var from = $("#from").val() || "{{.noteUrl}}" || "/note";
|
||||
location.href = from;
|
||||
} else {
|
||||
if(e.Item && $.trim($("#captchaContainer").text()) == "") {
|
||||
$("#captchaContainer").html($("#tCaptcha").html());
|
||||
needCaptcha = true
|
||||
}
|
||||
|
||||
showMsg(e.Msg);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// github
|
||||
$("#github").click(function() {
|
||||
$(this).button("loading");
|
||||
location.href="https://github.com/login/oauth/authorize?access_type=&approval_prompt=&client_id=3790fbf1fc14bc6c5d85&redirect_uri=http%3A%2F%2Fleanote.com%2Foauth%2FgithubCallback&response_type=code&scope=user&state=";
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,22 +0,0 @@
|
||||
<div class="modal fade bs-modal-sm" id="leanoteDialog" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" id="modalTitle">操作</h4>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
..................
|
||||
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||
<button type="button" class="btn btn-primary">Save changes</button>
|
||||
</div>
|
||||
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
@@ -1,118 +0,0 @@
|
||||
{{template "home/header_box.html" .}}
|
||||
<section id="box" class="animated fadeInUp">
|
||||
<!--
|
||||
<div>
|
||||
<a class="back" href="javascript:history.go(-1);" tabindex="-1">←Back</a>
|
||||
</div>
|
||||
-->
|
||||
<div>
|
||||
<h1 id="logo">leanote</h1>
|
||||
<div id="boxForm">
|
||||
<div id="boxHeader">{{msg . "register"}}</div>
|
||||
<form>
|
||||
<div class="alert alert-danger" id="loginMsg"></div>
|
||||
<input id="from" type="hidden" value="{{.from}}" />
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="email">{{msg . "email"}}</label>
|
||||
<input type="text" class="form-control" id="email" name="email">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="pwd">{{msg . "password"}}</label>
|
||||
<input type="password" class="form-control" id="pwd" name="pwd">
|
||||
{{msg . "passwordTips"}}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="pwd2">{{msg . "password2"}}</label>
|
||||
<input type="password" class="form-control" id="pwd2" name="pwd2" >
|
||||
</div>
|
||||
|
||||
<button id="registerBtn" class="btn btn-success">{{msg . "register"}}</button>
|
||||
|
||||
<div class="line line-dashed"></div>
|
||||
|
||||
<p class="text-muted text-center"><small>{{msg . "hadAcount"}}</small></p>
|
||||
|
||||
<a id="loginBtn" href="/login" class="btn btn-default btn-block">{{msg . "login"}}</a>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="boxFooter">
|
||||
<p>
|
||||
<a href="/index">{{msg . "home"}}</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="/index">leanote</a> © 2014
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<script src="/js/jquery-1.9.0.min.js"></script>
|
||||
<script src="/js/bootstrap.js"></script>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$("#email").focus();
|
||||
|
||||
function showMsg(msg, id) {
|
||||
$("#loginMsg").html(msg).show();
|
||||
if(id) {
|
||||
$("#" + id).focus();
|
||||
}
|
||||
}
|
||||
function hideMsg() {
|
||||
$("#loginMsg").hide();
|
||||
}
|
||||
$("#registerBtn").click(function(e){
|
||||
e.preventDefault();
|
||||
var email = $("#email").val();
|
||||
var pwd = $("#pwd").val();
|
||||
var pwd2 = $("#pwd2").val();
|
||||
if(!email) {
|
||||
showMsg("{{msg . "inputEmail"}}", "email");
|
||||
return;
|
||||
} else {
|
||||
var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[0-9a-zA-Z]{2,3}$/;
|
||||
if(!myreg.test(email)) {
|
||||
showMsg("{{msg . "wrongEmail"}}", "email");
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(!pwd) {
|
||||
showMsg("{{msg . "inputPassword"}}", "pwd");
|
||||
return;
|
||||
} else {
|
||||
if(pwd.length < 6) {
|
||||
showMsg("{{msg . "notGoodPassword"}}", "pwd");
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(!pwd2) {
|
||||
showMsg("{{msg . "inputPassword2"}}", "pwd2");
|
||||
return;
|
||||
} else {
|
||||
if(pwd != pwd2) {
|
||||
showMsg("{{msg . "confirmPassword"}}", "pwd2");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$("#registerBtn").html("{{msg . "ing"}}...").addClass("disabled");
|
||||
// hideMsg();
|
||||
|
||||
$.post("/doRegister", {email: email, pwd: pwd}, function(e) {
|
||||
$("#registerBtn").html("{{msg . "register"}}").removeClass("disabled");
|
||||
if(e.Ok) {
|
||||
$("#registerBtn").html("{{msg . "registerSuccessAndRdirectToNote"}}");
|
||||
var from = $("#from").val() || "{{.noteUrl}}" || "/note";
|
||||
location.href = from;
|
||||
} else {
|
||||
showMsg(e.Msg, "email");
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,102 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="keywords" content="leanote,leanote.com">
|
||||
<meta name="description" content="leanote, {{msg $ "moto"}}">
|
||||
<meta name="author" content="leanote">
|
||||
|
||||
<title>{{.title}}</title>
|
||||
<link href="{{.siteUrl}}/css/bootstrap.css" rel="stylesheet">
|
||||
<link id="styleLink" href="{{.siteUrl}}/css/toImage.css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<div id="content">
|
||||
<h1 class="title">
|
||||
{{.blog.Title}}
|
||||
</h1>
|
||||
<div class="created-time">
|
||||
{{ if .userBlog.Logo}}
|
||||
<img src="{{.userBlog.Logo}}" id="logo">
|
||||
{{else}}
|
||||
<img src="{{$.siteUrl}}/images/blog/default_avatar.png" id="logo">
|
||||
{{end}}
|
||||
{{.userInfo.Username}}
|
||||
|
||||
{{if .blog.Tags}}
|
||||
<img src="{{$.siteUrl}}/images/blog/tag.png" id="tag">
|
||||
{{blogTags .blog.Tags}}
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
<div class="desc">
|
||||
{{if .blog.IsMarkdown }}
|
||||
<div id="markdownContent" style="display: none">
|
||||
<!-- 用textarea装html, 防止得到的值失真 -->
|
||||
<textarea>
|
||||
{{.content | raw}}
|
||||
</textarea>
|
||||
</div>
|
||||
<div id="parsedContent">
|
||||
</div>
|
||||
{{else}}
|
||||
{{.content | raw}}
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
<p>
|
||||
{{ if .userBlog.Logo}}
|
||||
<img src="{{.userBlog.Logo}}" id="logo">
|
||||
{{else}}
|
||||
<img src="{{$.siteUrl}}/images/blog/default_avatar.png" id="logo">
|
||||
{{end}}
|
||||
(<a href="#">http://blog.leanote.com/{{.userInfo.Username}}</a>)
|
||||
</p>
|
||||
|
||||
<img src="{{.siteUrl}}/images/logo/leanote_white.png" id="leanote_logo"/>
|
||||
<p>
|
||||
leanote, {{msg $ "moto"}}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<script src="{{.siteUrl}}/js/jquery-1.9.0.min.js"></script>
|
||||
<script src="{{.siteUrl}}/js/bootstrap-min.js"></script>
|
||||
|
||||
<link href="{{.siteUrl}}/public/mdeditor/editor/google-code-prettify/prettify.css" type="text/css" rel="stylesheet">
|
||||
<script src="{{.siteUrl}}/public/mdeditor/editor/google-code-prettify/prettify.js"></script>
|
||||
<script>
|
||||
$("pre").addClass("prettyprint linenums");
|
||||
prettyPrint();
|
||||
</script>
|
||||
|
||||
{{if .blog.IsMarkdown }}
|
||||
<script src="{{.siteUrl}}/public/mdeditor/editor/google-code-prettify/prettify.js"></script>
|
||||
<script src="{{.siteUrl}}/public/mdeditor/editor/pagedown/Markdown.Converter.js"></script>
|
||||
<script src="{{.siteUrl}}/public/mdeditor/editor/pagedown/Markdown.Sanitizer.js"></script>
|
||||
<script src="{{.siteUrl}}/public/mdeditor/editor/pagedown/Markdown.Editor.js"></script>
|
||||
<script src="{{.siteUrl}}/public/mdeditor/editor/pagedown/local/Markdown.local.zh.js"></script>
|
||||
<script src="{{.siteUrl}}/public/mdeditor/editor/Markdown.Extra.js"></script>
|
||||
|
||||
<!--mathjax-->
|
||||
<script type="text/x-mathjax-config">
|
||||
MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ["\\(","\\)"]], processEscapes: true }, messageStyle: "none"});
|
||||
</script>
|
||||
<script src="{{.siteUrl}}/public/mdeditor/editor/mathJax.js"></script>
|
||||
<script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||
<script>
|
||||
var content = $.trim($("#markdownContent textarea").val());
|
||||
var converter = Markdown.getSanitizingConverter();
|
||||
Markdown.Extra.init(converter, {extensions: ["tables", "fenced_code_gfm", "def_list"]});
|
||||
var html = converter.makeHtml(content);
|
||||
$("#parsedContent").html(html);
|
||||
$("pre").addClass("prettyprint linenums");
|
||||
prettyPrint();
|
||||
MathJax.Hub.Queue(["Typeset",MathJax.Hub,"wmd-preview"]);
|
||||
</script>
|
||||
{{end}}
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,4 +0,0 @@
|
||||
lif------------
|
||||
e
|
||||
|
||||
you can
|
||||
@@ -1,29 +0,0 @@
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" id="modalTitle">历史记录</h4>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<div id="shareMsg" class="alert alert-danger" style="display: none; margin: 5px 0 0 0;"></div>
|
||||
<table class="table table-hover" id="shareNotebookTable">
|
||||
<tbody>
|
||||
{{range $i, $v := .histories}}
|
||||
<tr>
|
||||
<td>
|
||||
{{raw $v.Content}}
|
||||
</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
|
||||
</div>
|
||||
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
@@ -1,889 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
|
||||
<meta name="apple-touch-fullscreen" content="yes">
|
||||
<meta name=”apple-mobile-web-app-capable” content=”yes” />
|
||||
<meta name="keywords" content="leanote,leanote.com">
|
||||
<meta name="description" content="leanote, Not Just A Notebook">
|
||||
<title>leanote, Not Just A Notebook</title>
|
||||
|
||||
<link href="/css/bootstrap.css" rel="stylesheet" />
|
||||
<!-- 先加载, 没有样式, 宽度不定 -->
|
||||
<link rel="stylesheet" href="tinymce/skins/custom/skin.min.css" rel="stylesheet"/>
|
||||
|
||||
<!-- leanote css -->
|
||||
<link href="css/font-awesome-4.2.0/css/font-awesome.css" rel="stylesheet" />
|
||||
<link href="css/zTreeStyle/zTreeStyle.css" rel="stylesheet" />
|
||||
<script>
|
||||
var hash = location.hash;
|
||||
if(hash == "#writing") {
|
||||
var files = '<link rel="stylesheet" href="css/theme/writting-overwrite.css" type="text/css" id="themeLink" />';
|
||||
} else {
|
||||
var files ='<link rel="stylesheet" href="css/theme/{{if .userInfo.Theme}}{{.userInfo.Theme}}{{else}}default{{end}}.css" type="text/css" id="themeLink" />';
|
||||
}
|
||||
document.write(files);
|
||||
</script>
|
||||
|
||||
|
||||
<!-- For Develop writting mod -->
|
||||
<script>
|
||||
function log(o) {
|
||||
console.log(o);
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="page">
|
||||
<div id="pageInner">
|
||||
|
||||
<!-- 头部 -->
|
||||
<!-- <div id="headerContainer"> -->
|
||||
<div id="header">
|
||||
|
||||
<!--
|
||||
<div id="headerLeft" class="pull-left">
|
||||
</div>
|
||||
-->
|
||||
<div id="logo" class="pull-left">
|
||||
<!--<span>lea</span>note -->
|
||||
<!--<img style="height: 45px;" src="/images/logo/leanote_white.png" title="leanote, 不一样的笔记" alt="leanote">-->
|
||||
</div>
|
||||
<div id="switcher" class="pull-left">
|
||||
<i class="fa fa-align-justify" id="leftSwitcher" title="{{msg . "leftHidden"}}"></i>
|
||||
<span id="leftSwitcher2" title="{{msg . "leftShow"}}"></span>
|
||||
</div>
|
||||
<!-- search -->
|
||||
<div class="pull-left" id="searchWrap">
|
||||
<form class="navbar-form form-inline col-lg-2" id="searchNote">
|
||||
<input class="form-control" placeholder="Search" type="text" id="searchNoteInput">
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- 全局按钮 -->
|
||||
<div class="pull-left" style="" id="newNoteWrap">
|
||||
<!-- 新建笔记 -->
|
||||
<div id="newMyNote">
|
||||
<a id="newNoteBtn" title="{{msg . "newNote"}}">
|
||||
<i class="fa fa-file-o"></i>
|
||||
<span class="new-note-text">{{msg . "newNote"}}</span>
|
||||
<span class="new-note-text-abbr">{{msg . "new"}}</span>
|
||||
</a>
|
||||
<span class="new-split">|</span>
|
||||
<a id="newNoteMarkdownBtn" title="{{msg . "newMarkdown"}}">
|
||||
<span class="new-markdown-text">Markdown</span>
|
||||
<span class="new-markdown-text-abbr">Md</span>
|
||||
</a>
|
||||
<span class="for-split"> - </span>
|
||||
<span id="curNotebookForNewNote" notebookId=""></span>
|
||||
<div class="dropdown" style="display: inline-block">
|
||||
<a class="ios7-a dropdown-toggle"
|
||||
id="listNotebookDropdownMenu" data-toggle="dropdown">
|
||||
<i class="fa fa-angle-down"></i>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-list" id="searchNotebookForAddDropdownList">
|
||||
<input type="text" placeholder="Search notebook" class="form-control" id="searchNotebookForAdd"/>
|
||||
<ul class="clearfix" role="menu" aria-labelledby="listNotebookDropdownMenu" id="notebookNavForNewNote">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 只为新建别人的笔记 -->
|
||||
<div id="newSharedNote" style="display: none">
|
||||
<a id="newSharedNoteBtn">
|
||||
<i class="fa fa-file-o"></i>
|
||||
<span class="new-note-text">{{msg . "newNote"}}</span>
|
||||
<span class="new-note-text-abbr">{{msg . "new"}}</span>
|
||||
</a>
|
||||
<span class="new-split">|</span>
|
||||
<a id="newShareNoteMarkdownBtn" title="{{msg . "newMarkdown"}}">
|
||||
<span class="new-markdown-text">Markdown</span>
|
||||
<span class="new-markdown-text-abbr">Md</span>
|
||||
</a>
|
||||
<span class="for-split"> - </span>
|
||||
<span id="curNotebookForNewSharedNote" notebookId="" userId=""></span>
|
||||
<div class="dropdown" style="display: inline-block">
|
||||
<a id="listShareNotebookDropdownMenu" class="ios7-a dropdown-toggle" data-toggle="dropdown">
|
||||
<i class="fa fa-angle-down"></i>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-list" id="searchNotebookForAddShareDropdownList" >
|
||||
<ul id="notebookNavForNewSharedNote"></ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pull-left" id="leanoteMsg">
|
||||
<span id="msg" style="display: inline-block;"></span>
|
||||
<span id="loading">
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="pull-right" style="margin: 0 10px" id="myProfile">
|
||||
<div class="dropdown">
|
||||
<a class="dropdown-toggle" title="{{.userInfo.Username}}" data-toggle="dropdown" style="line-height: 60px;">
|
||||
<img alt="{{.userInfo.Username}}" title="{{.userInfo.Username}}" src="{{if .userInfo.Logo}}{{.userInfo.Logo}}{{else}}/images/blog/default_avatar.png{{end}}" id="myAvatar"/>
|
||||
<span class="username">
|
||||
{{if .userInfo.UsernameRaw}}
|
||||
{{.userInfo.UsernameRaw}}
|
||||
{{else}}
|
||||
{{.userInfo.Username}}
|
||||
{{end}}
|
||||
</span>
|
||||
<i class="fa fa-angle-down"></i>
|
||||
</a>
|
||||
<ul class="dropdown-menu li-a" role="menu">
|
||||
<li role="presentation" id="setInfo">
|
||||
<a>
|
||||
<i class="fa fa-info"></i>
|
||||
{{msg . "accountSetting"}}
|
||||
</a>
|
||||
</li>
|
||||
<li role="presentation" id="setAvatarMenu">
|
||||
<a>
|
||||
<i class="fa fa-smile-o"></i>
|
||||
{{msg . "setAvatar"}}
|
||||
</a>
|
||||
</li>
|
||||
<li role="presentation" id="setTheme">
|
||||
<a>
|
||||
<i class="fa fa-sun-o"></i>
|
||||
{{msg . "themeSetting"}}
|
||||
</a>
|
||||
</li>
|
||||
<!--
|
||||
<li role="presentation" id="yourSuggestions">
|
||||
<i class="fa fa-comment-o"></i>
|
||||
{{msg . "yourSuggestions"}}
|
||||
</li>
|
||||
-->
|
||||
<li role="presentation" class="my-link" >
|
||||
<a target="_blank" href="{{$.blogUrl}}/{{.userInfo.Username}}">
|
||||
<i class="fa fa-bold"></i>
|
||||
{{msg . "myBlog"}}</a>
|
||||
</li>
|
||||
|
||||
{{if .isAdmin}}
|
||||
<li role="presentation" class="divider"></li>
|
||||
<li role="presentation">
|
||||
<a target="_blank" title="{{msg . "amdin"}}" href="/admin/index">
|
||||
<i class="fa fa-dashboard"></i>
|
||||
{{msg . "admin"}}
|
||||
</a>
|
||||
</li>
|
||||
{{end}}
|
||||
<li role="presentation" class="divider"></li>
|
||||
<li role="presentation" onclick="logout()">
|
||||
<i class="fa fa-sign-out"></i>
|
||||
{{msg . "logout"}}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pull-right top-nav" id="myBlog">
|
||||
<a target="_blank" href="{{$.blogUrl}}/{{.userInfo.Username}}">
|
||||
{{msg . "myBlog"}}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="pull-right" style="line-height: 60px; margin-right:10px" id="toggleEditorMode">
|
||||
<a href="#writing">{{msg . "writingMode"}}</a>
|
||||
</div>
|
||||
|
||||
{{if eq .userInfo.Email "demo@leanote.com"}}
|
||||
{{if .openRegister}}
|
||||
<div class="pull-right" style="line-height: 60px; margin-right:10px" id="demoRegister">
|
||||
<span>
|
||||
{{msg . "demoRegister"}}
|
||||
</span>
|
||||
</div>
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
<!--
|
||||
<ul id="setting" class="pull-right">
|
||||
<li class="dropdown messages">
|
||||
<a class="dropdown-toggle" data-toggle="dropdown">
|
||||
<span aria-hidden="true" class="icon se7en-flag"></span>
|
||||
<div class="sr-only">Messages</div>
|
||||
<p class="counter">3</p>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#"> c@c.com 共享了笔记给你 是否接受? </a></li>
|
||||
<li><a href="#"> d@c.com 共享了笔记给你 是否接受? </a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="dropdown settings">
|
||||
<a class="dropdown-toggle" data-toggle="dropdown">
|
||||
<span aria-hidden="true" class="icon se7en-gear"></span>
|
||||
<div class="sr-only">Settings</div>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="settings-link blue"><span></span>Blue</a></li>
|
||||
<li><a class="settings-link green"><span></span>Green</a></li>
|
||||
<li><a class="settings-link orange"><span></span>Orange</a>
|
||||
</li>
|
||||
<li><a class="settings-link magenta"><span></span>Magenta</a>
|
||||
</li>
|
||||
<li><a class="settings-link gray"><span></span>Gray</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
-->
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
|
||||
<div id="mainContainer" class="clearfix">
|
||||
<div id="mainMask">
|
||||
<img src="/images/loading-30.gif" />
|
||||
<br />
|
||||
<br />
|
||||
loading...
|
||||
</div>
|
||||
<div id="leftNotebook">
|
||||
<div id="notebook">
|
||||
<div class="folderNote opened" id="myNotebooks">
|
||||
<div class="folderHeader clearfix">
|
||||
<i class="fa fa-book pull-left fa-left"></i>
|
||||
<span class="pull-left">
|
||||
{{msg . "notebook"}}
|
||||
</span>
|
||||
<div class="pull-right" id="addNotebookPlus" title="{{msg . "addNotebook"}}">
|
||||
<i class="fa fa-plus" title="{{msg . "addNotebook"}}"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="folderBody">
|
||||
<input type="text" class="form-control" id="searchNotebookForList" placeholder="Search notebook"/>
|
||||
<ul class="ztree" id="notebookList"></ul>
|
||||
<ul class="ztree" id="notebookListForSearch"></ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="folderNote closed" id="myTag">
|
||||
<div class="folderHeader">
|
||||
<i class="fa fa-bookmark fa-left"></i>
|
||||
<span>
|
||||
{{msg . "tag"}}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<ul class="folderBody clearfix" id="tagNav">
|
||||
<li data-tag="red"><a> <span class="label label-red">{{msg . "red"}}</span></a></li>
|
||||
<li data-tag="blue"><a> <span class="label label-blue">{{msg . "blue"}}</span></a></li>
|
||||
<li data-tag="yellow"><a> <span class="label label-yellow">{{msg . "yellow"}}</span></a></li>
|
||||
<li data-tag="green"><a> <span class="label label-green">{{msg . "green"}}</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="folderNote closed" id="myShareNotebooks">
|
||||
<div class="folderHeader">
|
||||
<i class="fa fa-user fa-left"></i>
|
||||
<span>
|
||||
{{msg . "share"}}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<ul class="folderBody" id="shareNotebooks">
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- 缩小版 todo 不要展示, 点击展开即可 -->
|
||||
<div id="notebookMin">
|
||||
<!-- 这里隐藏, 不要 -->
|
||||
<div target="#notebookList" title="{{msg . "notebook"}}" class="minContainer">
|
||||
<i class="fa fa-book"></i>
|
||||
<ul class="dropdown-menu" id="minNotebookList">
|
||||
</ul>
|
||||
</div>
|
||||
<div target="#tagNav" title="{{msg . "myTag"}}" class="minContainer">
|
||||
<i class="fa fa-bookmark"></i>
|
||||
<ul class="dropdown-menu" id="minTagNav">
|
||||
</ul>
|
||||
</div>
|
||||
<div id="minShareNotebooks">
|
||||
<div class="minContainer" target="#friendContainer0" title="{{msg . "share"}}">
|
||||
<i class="fa fa-user"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
底下隐藏/展开
|
||||
<div id="notebookBottom">
|
||||
<i class="fa fa-angle-left" id="leftSwitcher"></i>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
|
||||
<div class="noteSplit" id="notebookSplitter"></div>
|
||||
|
||||
<div id="noteAndEditor">
|
||||
<div id="noteList">
|
||||
<div class="clearfix" id="notesAndSort" style="position: relative">
|
||||
<div class="pull-left">
|
||||
<!-- 我的笔记本 -->
|
||||
<div class="dropdown" id="myNotebookNavForListNav">
|
||||
<a class="ios7-a dropdown-toggle" id="dropdownMenu1" data-toggle="dropdown">
|
||||
<span id="curNotebookForListNote">{{msg . "all"}}</span>
|
||||
<!--
|
||||
<i class="fa fa-angle-down"></i>
|
||||
-->
|
||||
</a>
|
||||
<!-- 如果notebook过多, 则会产生滚动 弃用
|
||||
<div class="dropdown-menu dropdown-list" style="left: 5px;">
|
||||
<ul role="menu" aria-labelledby="dropdownMenu1" id="notebookNavForListNote"></ul>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
|
||||
<!-- 共享的笔记本 -->
|
||||
<div class="dropdown" id="sharedNotebookNavForListNav" style="display: none">
|
||||
<a class="ios7-a dropdown-toggle" id="dropdownMenu2" data-toggle="dropdown">
|
||||
<span id="curSharedNotebookForListNote">{{msg . "all"}}</span>
|
||||
<!--
|
||||
<i class="fa fa-angle-down"></i>
|
||||
-->
|
||||
</a>
|
||||
<ul class="dropdown-menu" role="menu"
|
||||
aria-labelledby="dropdownMenu2" style="left: 5px;" id="sharedNotebookNavForListNote">
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="pull-left" id="tagSearch" style="line-height: 38px">
|
||||
</div>
|
||||
<div id="sortType">
|
||||
<div class="dropdown">
|
||||
<a class="ios7-a dropdown-toggle" id="dropdownMenu1"
|
||||
data-toggle="dropdown">
|
||||
<!--
|
||||
<i class="fa fa-sort-alpha-asc">
|
||||
</i>Sort <i class="fa fa-angle-down"></i>
|
||||
-->
|
||||
</a>
|
||||
<!--
|
||||
<ul class="dropdown-menu" role="menu"
|
||||
aria-labelledby="dropdownMenu1"
|
||||
style="right: 3px; ! important; left: -100px; min-width: 100px;">
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1"
|
||||
href="#">创建日期</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1"
|
||||
href="#">修改日期</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1"
|
||||
href="#">标题</a></li>
|
||||
<li role="presentation" class="divider"></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1"
|
||||
href="#">Separated </a></li>
|
||||
</ul>
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 笔记列表 -->
|
||||
<!-- wrap 为了slimScroll -->
|
||||
<div id="noteItemListWrap">
|
||||
<ul id="noteItemList">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="noteSplit" id="noteSplitter"></div>
|
||||
|
||||
<div id="note">
|
||||
<!-- 只读模式 -->
|
||||
<div id="noteRead">
|
||||
<div id="noteReadContainer">
|
||||
<div id="noteReadTop">
|
||||
<h2 id="noteReadTitle"></h2>
|
||||
<div class="clearfix" id="noteReadInfo">
|
||||
<i class="fa fa-bookmark-o"></i>
|
||||
<span id="noteReadTags"></span>
|
||||
|
||||
<!-- 修改时间 -->
|
||||
<i class="fa fa-calendar"></i>{{msg . "update"}}
|
||||
<span id="noteReadUpdatedTime"></span>
|
||||
|
||||
<!-- 修改时间 -->
|
||||
<i class="fa fa-calendar"></i>{{msg . "create"}}
|
||||
<span id="noteReadCreatedTime"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="noteReadContent">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 遮罩, 为了resize3Columns用 -->
|
||||
<div id="noteMask" class="note-mask"></div>
|
||||
<div id="noteMaskForLoading" class="note-mask">
|
||||
<img src="/images/loading-24.gif"/>
|
||||
<br />
|
||||
loading...
|
||||
</div>
|
||||
<div id="editorMask">
|
||||
{{msg . "noNoteNewNoteTips"}}
|
||||
<br />
|
||||
<br />
|
||||
<div id="editorMaskBtns">
|
||||
<a class="note">{{msg . "newNote"}}</a>
|
||||
<a class="markdown">{{msg . "newMarkdownNote"}}</a>
|
||||
</div>
|
||||
<div id="editorMaskBtnsEmpty">
|
||||
{{msg . "canntNewNoteTips"}}
|
||||
</div>
|
||||
</div>
|
||||
<div id="noteTop">
|
||||
<!-- 左侧放tag, 右侧放按钮, 比如save, info, move, delete -->
|
||||
<div id="tool" class="clearfix">
|
||||
<!-- tag可以参考 mac的文件tag, 预定义一些颜色, 用户也可以自己输入-->
|
||||
|
||||
<!--
|
||||
<div class="pull-left" id="noteTitleDiv">
|
||||
<input name="noteTitle" id="noteTitle" value="" placeholder="无标题">
|
||||
</div>
|
||||
-->
|
||||
|
||||
<div class="pull-left" id="tag">
|
||||
<div id="tags" style="display: inline-block; line-height: 25px;">
|
||||
</div>
|
||||
|
||||
<div class="dropdown" style="display: inline-block"
|
||||
id="tagDropdown">
|
||||
<i class="fa fa-bookmark-o"></i>
|
||||
<a
|
||||
class="metro-a dropdown-toggle" data-toggle="dropdown"
|
||||
id="addTagTrigger" style="cursor: text; padding-left: 0">
|
||||
<span class="add-tag-text">
|
||||
{{msg . "clickAddTag"}}
|
||||
</span>
|
||||
</a>
|
||||
<input type="text" id="addTagInput" />
|
||||
<ul class="dropdown-menu" role="menu" id="tagColor">
|
||||
<li role="presentation"><span class="label label-red">{{msg . "red"}}</span>
|
||||
</li>
|
||||
<li role="presentation"><span class="label label-blue">{{msg . "blue"}}</span>
|
||||
</li>
|
||||
<li role="presentation"><span class="label label-yellow">{{msg . "yellow"}}</span></li>
|
||||
<li role="presentation"><span class="label label-green">{{msg . "green"}}</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul class="pull-right" id="editorTool">
|
||||
<li><a class="ios7-a " id="saveBtn" title="ctrl+s"
|
||||
data-toggle="dropdown">
|
||||
<span class="fa fa-save"></span>
|
||||
{{msg . "save"}}</a></li>
|
||||
|
||||
<li class="dropdown" id="attachDropdown">
|
||||
<a class="ios7-a dropdown-toggle" data-toggle="dropdown" id="showAttach">
|
||||
<span class="fa fa-paperclip"></span>
|
||||
{{msg . "attachments"}}<span id="attachNum"></span>
|
||||
</a>
|
||||
<div class="dropdown-menu" id="attachMenu">
|
||||
<ul id="attachList">
|
||||
|
||||
</ul>
|
||||
<form id="uploadAttach" method="post" action="/attach/UploadAttach" enctype="multipart/form-data">
|
||||
<div id="dropAttach" class="dropzone">
|
||||
<a class="btn btn-success btn-choose-file">
|
||||
<i class="fa fa-upload"></i>
|
||||
<span>Choose File</span>
|
||||
</a>
|
||||
<a class="btn btn-default" id="downloadAllBtn">
|
||||
<i class="fa fa-download"></i>
|
||||
<span>Download All</span>
|
||||
</a>
|
||||
<a class="btn btn-default" id="linkAllBtn">
|
||||
<i class="fa fa-link"></i>
|
||||
<span>Link All</span>
|
||||
</a>
|
||||
<input type="file" name="file" multiple/>
|
||||
</div>
|
||||
<div id="attachUploadMsg">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li><a class="ios7-a " id="tipsBtn"
|
||||
data-toggle="dropdown">
|
||||
<span class="fa fa-question"></span>
|
||||
{{msg . "editorTips"}}</a></li>
|
||||
<li><a class="ios7-a " id="contentHistory"
|
||||
data-toggle="dropdown">
|
||||
<span class="fa fa-history"></span>
|
||||
{{msg . "history"}}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="noteTitleDiv">
|
||||
<input name="noteTitle" id="noteTitle" value="" placeholder="{{msg . "unTitled"}}" tabindex="1" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="editor">
|
||||
<!-- 编辑器 -->
|
||||
<div id="mceToolbar">
|
||||
<div id="popularToolbar"
|
||||
style="position: absolute; right: 30px; left: 0"></div>
|
||||
<a
|
||||
style="dispaly: block; position: absolute; cursor: pointer; right: 10px; padding: 3px 10px"
|
||||
id="moreBtn"> <i class="fa fa-angle-down"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="editorBg"></div>
|
||||
<div id="leanoteNav">
|
||||
<h1>
|
||||
<i class="fa fa-align-justify" title="文档导航"></i>
|
||||
<span>{{msg . "nav"}}</span>
|
||||
</h1>
|
||||
<div id="leanoteNavContent">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- leaui image drop image to editor-->
|
||||
<form id="upload" method="post" action="/file/uploadImageLeaui" enctype="multipart/form-data" style="margin-top: 5px;">
|
||||
<div id="drop">
|
||||
Drop images to here
|
||||
<input type="file" name="file" multiple style="display: none"/>
|
||||
</div>
|
||||
<ul id="uploadMsg">
|
||||
</ul>
|
||||
</form>
|
||||
|
||||
<!-- 由此可以算高度 -->
|
||||
<div id="editorContent" name="editorContent" tabindex="2" />
|
||||
{{.noteContent}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="mdEditor">
|
||||
<div id="wmd-button-bar" id="mdBar"></div>
|
||||
<div class="editorBg"></div>
|
||||
<!-- 为了scroll -->
|
||||
|
||||
<div class="clearfix" id="mdEditorPreview">
|
||||
<div id="left-column">
|
||||
<div id="wmd-panel-editor" class="wmd-panel-editor">
|
||||
<textarea class="wmd-input theme" id="wmd-input" spellcheck="false" tabindex="3"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div id="mdSplitter"></div>
|
||||
<div id="right-column">
|
||||
<div id="wmd-panel-preview" class="wmd-panel-preview preview-container">
|
||||
<div id="wmd-preview" class="wmd-preview"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<textarea id="md-section-helper"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- mdEditor -->
|
||||
<!-- Hidden Popup Modal -->
|
||||
<div class="modal fade bs-modal-sm" id="editorDialog" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" id="editorDialog-title"></h4>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<p></p>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon">
|
||||
<i></i>
|
||||
</span>
|
||||
<input type="text" class="form-control" placeholder="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{msg . "cancel"}}</button>
|
||||
<button type="button" class="btn btn-primary" id="editorDialog-confirm">{{msg . "confirm"}}</button>
|
||||
</div>
|
||||
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
<!-- 弹出框 模板 -->
|
||||
<div class="modal fade bs-modal-sm" id="leanoteDialogRemote" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
|
||||
</div>
|
||||
|
||||
<div class="modal fade bs-modal-sm" id="leanoteDialog" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" id="modalTitle">操作</h4>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
内容区
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||
<button type="button" class="btn btn-primary">Save changes</button>
|
||||
</div>
|
||||
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
<div class="modal fade bs-modal-sm" id="sendRegisterEmailDialog" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" class="modalTitle">邀请好友</h4>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<form role="form">
|
||||
<div class="form-group">
|
||||
<div id="registerEmailMsg" class="alert alert-warning" style="display: none">
|
||||
</div>
|
||||
<input type="hidden" id="toEmail"/>
|
||||
<label for="emailContent">邮件内容</label>
|
||||
<textarea class="form-control" id="emailContent">Hi, 我是life, leanote非常好用, 快来注册吧.</textarea>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
|
||||
<button type="button" class="btn btn-success" id="registerEmailBtn">发送</button>
|
||||
</div>
|
||||
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
<!-- theme -->
|
||||
<div class="modal fade bs-modal-sm" id="setThemeDialog" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" class="modalTitle">{{msg . "theme"}}</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<table id="themeForm">
|
||||
<tr>
|
||||
<td>
|
||||
<label>
|
||||
<img src="/images/slider/all.gif" height="100px">
|
||||
<br />
|
||||
<input type="radio" name="theme" value="default"> {{msg . "default"}}
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<label>
|
||||
<img src="/images/slider/all-simple.gif" height="100px">
|
||||
<br />
|
||||
<input type="radio" name="theme" value="simple"> {{msg . "simple"}}
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{msg . "close"}}</button>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
<!-- 编辑器提示 -->
|
||||
<div class="modal fade bs-modal-sm" id="tipsDialog" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" class="modalTitle">{{msg . "editorTips"}}</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
{{msg . "editorTipsInfo"}}
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{msg . "close"}}</button>
|
||||
</div>
|
||||
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
<!-- avatar -->
|
||||
<div class="modal fade bs-modal-sm" id="avatarDialog" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" class="modalTitle">{{msg . "setAvatar"}}</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form id="uploadAvatar" method="post" action="/file/uploadAvatar" enctype="multipart/form-data">
|
||||
<div id="dropAvatar" class="dropzone">
|
||||
<div>
|
||||
<img src="{{if .userInfo.Logo}}{{.userInfo.Logo}}{{else}}/images/blog/default_avatar.png{{end}}" id="avatar"/>
|
||||
</div>
|
||||
<a class="btn btn-success btn-choose-file">
|
||||
<span class="fa fa-upload"></span> Choose Image
|
||||
</a>
|
||||
<input type="file" name="file" multiple/>
|
||||
</div>
|
||||
<div id="avatarUploadMsg">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{msg . "close"}}</button>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
<!-- 您的建议
|
||||
<div class="modal fade bs-modal-sm" id="suggestionsDialog" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" class="modalTitle">{{msg . "yourSuggestions"}}</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div style="margin-bottom:20px;">
|
||||
{{msg . "suggestionsInfo"}}<br />
|
||||
</div>
|
||||
|
||||
<div class="alert alert-warning" id="suggestionMsg" style="display: none"> </div>
|
||||
<textarea style="width: 100%; height: 100px" id="suggestionTextarea" placeholder="{{msg . "suggestions"}}"></textarea>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button id="suggestionBtn" class="btn btn-success" >{{msg . "submit"}}</button>
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{msg . "close"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
|
||||
<!-- modal 静态区域 -->
|
||||
<div class="display: hidden">
|
||||
|
||||
<!-- 长微博 -->
|
||||
<div id="html2ImageDialog">
|
||||
<div class="modal-body">
|
||||
<div style="max-height: 300px; padding: 5px 0; text-align: center; overflow: scroll;" class="weibo">
|
||||
<span class="text">
|
||||
leanote正在努力为你生成长微博...
|
||||
</span>
|
||||
<br />
|
||||
<img src="/images/loading-24.gif"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{msg . "cancel"}}</button>
|
||||
|
||||
<button type="button" class="btn btn-share btn-default sendRRBtn disabled"><i class="fa fa-renren"></i> 人人</button>
|
||||
<button type="button" class="btn btn-share btn-default sendQQBtn disabled"><i class="fa fa-qq"></i> QQ空间</button>
|
||||
<button type="button" class="btn btn-share btn-primary sendTxWeiboBtn disabled"><i class="fa fa-tencent-weibo"></i> 腾讯微博</button>
|
||||
<button type="button" class="btn btn-share btn-success sendWeiboBtn disabled"><i class="fa fa-weibo"></i> 新浪微博</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 激活邮件 -->
|
||||
<div id="reSendActiveEmailDialog">
|
||||
<div class="modal-body">
|
||||
<div style="max-height: 300px; padding: 5px 0; text-align: center; overflow-y: auto; overflow-x: hidden" class="weibo">
|
||||
<span class="text">
|
||||
<img src="/images/loading-24.gif"/>
|
||||
{{msg . "emailInSending"}} {{.userInfo.Email}}...
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{msg . "close"}}</button>
|
||||
<button type="button" class="btn btn-success viewEmailBtn disabled">{{msg . "checkEmail"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hide" id="copyDiv"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="js/jquery-1.9.0.min.js"></script>
|
||||
<script src="js/jquery.ztree.all-3.5.js"></script>
|
||||
<script src="js/i18n/msg.{{.locale}}.js"></script>
|
||||
<script src="js/common.js"></script>
|
||||
<script>
|
||||
var UrlPrefix = "{{.siteUrl}}"; // 为了发weibo
|
||||
var UserInfo = json({{.userInfoJson}});
|
||||
var notebooks = json({{.notebooks}});
|
||||
var shareNotebooks = json({{.shareNotebooks}});
|
||||
var sharedUserInfos = json({{.sharedUserInfos}});
|
||||
var notes = json({{.notes}});
|
||||
var noteContentJson = json({{.noteContentJson}});
|
||||
var tagsJson = json({{.tagsJson}});
|
||||
LEA.locale = "{{.locale}}";
|
||||
</script>
|
||||
|
||||
<!-- 渲染view -->
|
||||
<script src="tinymce/tinymce.js"></script>
|
||||
<script src="js/app/page.js"></script>
|
||||
<script src="/js/jQuery-slimScroll-1.3.0/jquery.slimscroll.js"></script>
|
||||
<script src="/js/contextmenu/jquery.contextmenu.js"></script>
|
||||
<script src="js/jquery-cookie.js"></script>
|
||||
<script src="js/bootstrap-min.js"></script>
|
||||
<script src="js/app/note.js"></script>
|
||||
<script src="js/app/tag.js"></script>
|
||||
<script src="js/app/notebook.js"></script>
|
||||
<script src="js/app/share.js"></script>
|
||||
<script src="js/object_id-min.js"></script>
|
||||
<script src="js/ZeroClipboard/ZeroClipboard-min.js"></script>
|
||||
<script>
|
||||
Notebook.renderNotebooks(notebooks);
|
||||
Share.renderShareNotebooks(sharedUserInfos, shareNotebooks);
|
||||
|
||||
Note.setNoteCache(noteContentJson);
|
||||
Note.renderNotes(notes);
|
||||
if(!isEmpty(notes)) {
|
||||
Note.changeNote(notes[0].NoteId);
|
||||
}
|
||||
|
||||
// Note.chanteNote设置content
|
||||
// Note.renderNoteContent(noteContentJson)
|
||||
|
||||
Tag.renderTagNav(tagsJson);
|
||||
|
||||
// init notebook后才调用
|
||||
initSlimScroll();
|
||||
</script>
|
||||
|
||||
<!-- context-menu -->
|
||||
<link rel="stylesheet" href="/js/contextmenu/css/contextmenu.css" type="text/css" />
|
||||
<!-- code -->
|
||||
<link href="/public/mdeditor/editor/google-code-prettify/prettify.css" rel="stylesheet" />
|
||||
<!-- js version 2.0 use require.js -->
|
||||
<script src="/js/require.js"></script>
|
||||
<script src="/js/main.js"></script>
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,889 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
|
||||
<meta name="apple-touch-fullscreen" content="yes">
|
||||
<meta name=”apple-mobile-web-app-capable” content=”yes” />
|
||||
<meta name="keywords" content="leanote,leanote.com">
|
||||
<meta name="description" content="leanote, Not Just A Notebook">
|
||||
<title>leanote, Not Just A Notebook</title>
|
||||
|
||||
<link href="/css/bootstrap.css" rel="stylesheet" />
|
||||
<!-- 先加载, 没有样式, 宽度不定 -->
|
||||
<link rel="stylesheet" href="tinymce/skins/custom/skin.min.css" rel="stylesheet"/>
|
||||
|
||||
<!-- leanote css -->
|
||||
<link href="css/font-awesome-4.2.0/css/font-awesome.css" rel="stylesheet" />
|
||||
<link href="css/zTreeStyle/zTreeStyle.css" rel="stylesheet" />
|
||||
<script>
|
||||
var hash = location.hash;
|
||||
if(hash == "#writing") {
|
||||
var files = '<link rel="stylesheet" href="css/theme/writting-overwrite.css" type="text/css" id="themeLink" />';
|
||||
} else {
|
||||
var files ='<link rel="stylesheet" href="css/theme/{{if .userInfo.Theme}}{{.userInfo.Theme}}{{else}}default{{end}}.css" type="text/css" id="themeLink" />';
|
||||
}
|
||||
document.write(files);
|
||||
</script>
|
||||
|
||||
|
||||
<!-- For Develop writting mod -->
|
||||
<script>
|
||||
function log(o) {
|
||||
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="page">
|
||||
<div id="pageInner">
|
||||
|
||||
<!-- 头部 -->
|
||||
<!-- <div id="headerContainer"> -->
|
||||
<div id="header">
|
||||
|
||||
<!--
|
||||
<div id="headerLeft" class="pull-left">
|
||||
</div>
|
||||
-->
|
||||
<div id="logo" class="pull-left">
|
||||
<!--<span>lea</span>note -->
|
||||
<!--<img style="height: 45px;" src="/images/logo/leanote_white.png" title="leanote, 不一样的笔记" alt="leanote">-->
|
||||
</div>
|
||||
<div id="switcher" class="pull-left">
|
||||
<i class="fa fa-align-justify" id="leftSwitcher" title="{{msg . "leftHidden"}}"></i>
|
||||
<span id="leftSwitcher2" title="{{msg . "leftShow"}}"></span>
|
||||
</div>
|
||||
<!-- search -->
|
||||
<div class="pull-left" id="searchWrap">
|
||||
<form class="navbar-form form-inline col-lg-2" id="searchNote">
|
||||
<input class="form-control" placeholder="Search" type="text" id="searchNoteInput">
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- 全局按钮 -->
|
||||
<div class="pull-left" style="" id="newNoteWrap">
|
||||
<!-- 新建笔记 -->
|
||||
<div id="newMyNote">
|
||||
<a id="newNoteBtn" title="{{msg . "newNote"}}">
|
||||
<i class="fa fa-file-o"></i>
|
||||
<span class="new-note-text">{{msg . "newNote"}}</span>
|
||||
<span class="new-note-text-abbr">{{msg . "new"}}</span>
|
||||
</a>
|
||||
<span class="new-split">|</span>
|
||||
<a id="newNoteMarkdownBtn" title="{{msg . "newMarkdown"}}">
|
||||
<span class="new-markdown-text">Markdown</span>
|
||||
<span class="new-markdown-text-abbr">Md</span>
|
||||
</a>
|
||||
<span class="for-split"> - </span>
|
||||
<span id="curNotebookForNewNote" notebookId=""></span>
|
||||
<div class="dropdown" style="display: inline-block">
|
||||
<a class="ios7-a dropdown-toggle"
|
||||
id="listNotebookDropdownMenu" data-toggle="dropdown">
|
||||
<i class="fa fa-angle-down"></i>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-list" id="searchNotebookForAddDropdownList">
|
||||
<input type="text" placeholder="Search notebook" class="form-control" id="searchNotebookForAdd"/>
|
||||
<ul class="clearfix" role="menu" aria-labelledby="listNotebookDropdownMenu" id="notebookNavForNewNote">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 只为新建别人的笔记 -->
|
||||
<div id="newSharedNote" style="display: none">
|
||||
<a id="newSharedNoteBtn">
|
||||
<i class="fa fa-file-o"></i>
|
||||
<span class="new-note-text">{{msg . "newNote"}}</span>
|
||||
<span class="new-note-text-abbr">{{msg . "new"}}</span>
|
||||
</a>
|
||||
<span class="new-split">|</span>
|
||||
<a id="newShareNoteMarkdownBtn" title="{{msg . "newMarkdown"}}">
|
||||
<span class="new-markdown-text">Markdown</span>
|
||||
<span class="new-markdown-text-abbr">Md</span>
|
||||
</a>
|
||||
<span class="for-split"> - </span>
|
||||
<span id="curNotebookForNewSharedNote" notebookId="" userId=""></span>
|
||||
<div class="dropdown" style="display: inline-block">
|
||||
<a id="listShareNotebookDropdownMenu" class="ios7-a dropdown-toggle" data-toggle="dropdown">
|
||||
<i class="fa fa-angle-down"></i>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-list" id="searchNotebookForAddShareDropdownList" >
|
||||
<ul id="notebookNavForNewSharedNote"></ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pull-left" id="leanoteMsg">
|
||||
<span id="msg" style="display: inline-block;"></span>
|
||||
<span id="loading">
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="pull-right" style="margin: 0 10px" id="myProfile">
|
||||
<div class="dropdown">
|
||||
<a class="dropdown-toggle" title="{{.userInfo.Username}}" data-toggle="dropdown" style="line-height: 60px;">
|
||||
<img alt="{{.userInfo.Username}}" title="{{.userInfo.Username}}" src="{{if .userInfo.Logo}}{{.userInfo.Logo}}{{else}}/images/blog/default_avatar.png{{end}}" id="myAvatar"/>
|
||||
<span class="username">
|
||||
{{if .userInfo.UsernameRaw}}
|
||||
{{.userInfo.UsernameRaw}}
|
||||
{{else}}
|
||||
{{.userInfo.Username}}
|
||||
{{end}}
|
||||
</span>
|
||||
<i class="fa fa-angle-down"></i>
|
||||
</a>
|
||||
<ul class="dropdown-menu li-a" role="menu">
|
||||
<li role="presentation" id="setInfo">
|
||||
<a>
|
||||
<i class="fa fa-info"></i>
|
||||
{{msg . "accountSetting"}}
|
||||
</a>
|
||||
</li>
|
||||
<li role="presentation" id="setAvatarMenu">
|
||||
<a>
|
||||
<i class="fa fa-smile-o"></i>
|
||||
{{msg . "setAvatar"}}
|
||||
</a>
|
||||
</li>
|
||||
<li role="presentation" id="setTheme">
|
||||
<a>
|
||||
<i class="fa fa-sun-o"></i>
|
||||
{{msg . "themeSetting"}}
|
||||
</a>
|
||||
</li>
|
||||
<!--
|
||||
<li role="presentation" id="yourSuggestions">
|
||||
<i class="fa fa-comment-o"></i>
|
||||
{{msg . "yourSuggestions"}}
|
||||
</li>
|
||||
-->
|
||||
<li role="presentation" class="my-link" >
|
||||
<a target="_blank" href="{{$.blogUrl}}/{{.userInfo.Username}}">
|
||||
<i class="fa fa-bold"></i>
|
||||
{{msg . "myBlog"}}</a>
|
||||
</li>
|
||||
|
||||
{{if .isAdmin}}
|
||||
<li role="presentation" class="divider"></li>
|
||||
<li role="presentation">
|
||||
<a target="_blank" title="{{msg . "amdin"}}" href="/admin/index">
|
||||
<i class="fa fa-dashboard"></i>
|
||||
{{msg . "admin"}}
|
||||
</a>
|
||||
</li>
|
||||
{{end}}
|
||||
<li role="presentation" class="divider"></li>
|
||||
<li role="presentation" onclick="logout()">
|
||||
<i class="fa fa-sign-out"></i>
|
||||
{{msg . "logout"}}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pull-right top-nav" id="myBlog">
|
||||
<a target="_blank" href="{{$.blogUrl}}/{{.userInfo.Username}}">
|
||||
{{msg . "myBlog"}}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="pull-right" style="line-height: 60px; margin-right:10px" id="toggleEditorMode">
|
||||
<a href="#writing">{{msg . "writingMode"}}</a>
|
||||
</div>
|
||||
|
||||
{{if eq .userInfo.Email "demo@leanote.com"}}
|
||||
{{if .openRegister}}
|
||||
<div class="pull-right" style="line-height: 60px; margin-right:10px" id="demoRegister">
|
||||
<span>
|
||||
{{msg . "demoRegister"}}
|
||||
</span>
|
||||
</div>
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
<!--
|
||||
<ul id="setting" class="pull-right">
|
||||
<li class="dropdown messages">
|
||||
<a class="dropdown-toggle" data-toggle="dropdown">
|
||||
<span aria-hidden="true" class="icon se7en-flag"></span>
|
||||
<div class="sr-only">Messages</div>
|
||||
<p class="counter">3</p>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#"> c@c.com 共享了笔记给你 是否接受? </a></li>
|
||||
<li><a href="#"> d@c.com 共享了笔记给你 是否接受? </a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="dropdown settings">
|
||||
<a class="dropdown-toggle" data-toggle="dropdown">
|
||||
<span aria-hidden="true" class="icon se7en-gear"></span>
|
||||
<div class="sr-only">Settings</div>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="settings-link blue"><span></span>Blue</a></li>
|
||||
<li><a class="settings-link green"><span></span>Green</a></li>
|
||||
<li><a class="settings-link orange"><span></span>Orange</a>
|
||||
</li>
|
||||
<li><a class="settings-link magenta"><span></span>Magenta</a>
|
||||
</li>
|
||||
<li><a class="settings-link gray"><span></span>Gray</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
-->
|
||||
<div style="clear: both"></div>
|
||||
</div>
|
||||
|
||||
<div id="mainContainer" class="clearfix">
|
||||
<div id="mainMask">
|
||||
<img src="/images/loading-30.gif" />
|
||||
<br />
|
||||
<br />
|
||||
loading...
|
||||
</div>
|
||||
<div id="leftNotebook">
|
||||
<div id="notebook">
|
||||
<div class="folderNote opened" id="myNotebooks">
|
||||
<div class="folderHeader clearfix">
|
||||
<i class="fa fa-book pull-left fa-left"></i>
|
||||
<span class="pull-left">
|
||||
{{msg . "notebook"}}
|
||||
</span>
|
||||
<div class="pull-right" id="addNotebookPlus" title="{{msg . "addNotebook"}}">
|
||||
<i class="fa fa-plus" title="{{msg . "addNotebook"}}"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="folderBody">
|
||||
<input type="text" class="form-control" id="searchNotebookForList" placeholder="Search notebook"/>
|
||||
<ul class="ztree" id="notebookList"></ul>
|
||||
<ul class="ztree" id="notebookListForSearch"></ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="folderNote closed" id="myTag">
|
||||
<div class="folderHeader">
|
||||
<i class="fa fa-bookmark fa-left"></i>
|
||||
<span>
|
||||
{{msg . "tag"}}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<ul class="folderBody clearfix" id="tagNav">
|
||||
<li data-tag="red"><a> <span class="label label-red">{{msg . "red"}}</span></a></li>
|
||||
<li data-tag="blue"><a> <span class="label label-blue">{{msg . "blue"}}</span></a></li>
|
||||
<li data-tag="yellow"><a> <span class="label label-yellow">{{msg . "yellow"}}</span></a></li>
|
||||
<li data-tag="green"><a> <span class="label label-green">{{msg . "green"}}</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="folderNote closed" id="myShareNotebooks">
|
||||
<div class="folderHeader">
|
||||
<i class="fa fa-user fa-left"></i>
|
||||
<span>
|
||||
{{msg . "share"}}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<ul class="folderBody" id="shareNotebooks">
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- 缩小版 todo 不要展示, 点击展开即可 -->
|
||||
<div id="notebookMin">
|
||||
<!-- 这里隐藏, 不要 -->
|
||||
<div target="#notebookList" title="{{msg . "notebook"}}" class="minContainer">
|
||||
<i class="fa fa-book"></i>
|
||||
<ul class="dropdown-menu" id="minNotebookList">
|
||||
</ul>
|
||||
</div>
|
||||
<div target="#tagNav" title="{{msg . "myTag"}}" class="minContainer">
|
||||
<i class="fa fa-bookmark"></i>
|
||||
<ul class="dropdown-menu" id="minTagNav">
|
||||
</ul>
|
||||
</div>
|
||||
<div id="minShareNotebooks">
|
||||
<div class="minContainer" target="#friendContainer0" title="{{msg . "share"}}">
|
||||
<i class="fa fa-user"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
底下隐藏/展开
|
||||
<div id="notebookBottom">
|
||||
<i class="fa fa-angle-left" id="leftSwitcher"></i>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
|
||||
<div class="noteSplit" id="notebookSplitter"></div>
|
||||
|
||||
<div id="noteAndEditor">
|
||||
<div id="noteList">
|
||||
<div class="clearfix" id="notesAndSort" style="position: relative">
|
||||
<div class="pull-left">
|
||||
<!-- 我的笔记本 -->
|
||||
<div class="dropdown" id="myNotebookNavForListNav">
|
||||
<a class="ios7-a dropdown-toggle" id="dropdownMenu1" data-toggle="dropdown">
|
||||
<span id="curNotebookForListNote">{{msg . "all"}}</span>
|
||||
<!--
|
||||
<i class="fa fa-angle-down"></i>
|
||||
-->
|
||||
</a>
|
||||
<!-- 如果notebook过多, 则会产生滚动 弃用
|
||||
<div class="dropdown-menu dropdown-list" style="left: 5px;">
|
||||
<ul role="menu" aria-labelledby="dropdownMenu1" id="notebookNavForListNote"></ul>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
|
||||
<!-- 共享的笔记本 -->
|
||||
<div class="dropdown" id="sharedNotebookNavForListNav" style="display: none">
|
||||
<a class="ios7-a dropdown-toggle" id="dropdownMenu2" data-toggle="dropdown">
|
||||
<span id="curSharedNotebookForListNote">{{msg . "all"}}</span>
|
||||
<!--
|
||||
<i class="fa fa-angle-down"></i>
|
||||
-->
|
||||
</a>
|
||||
<ul class="dropdown-menu" role="menu"
|
||||
aria-labelledby="dropdownMenu2" style="left: 5px;" id="sharedNotebookNavForListNote">
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="pull-left" id="tagSearch" style="line-height: 38px">
|
||||
</div>
|
||||
<div id="sortType">
|
||||
<div class="dropdown">
|
||||
<a class="ios7-a dropdown-toggle" id="dropdownMenu1"
|
||||
data-toggle="dropdown">
|
||||
<!--
|
||||
<i class="fa fa-sort-alpha-asc">
|
||||
</i>Sort <i class="fa fa-angle-down"></i>
|
||||
-->
|
||||
</a>
|
||||
<!--
|
||||
<ul class="dropdown-menu" role="menu"
|
||||
aria-labelledby="dropdownMenu1"
|
||||
style="right: 3px; ! important; left: -100px; min-width: 100px;">
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1"
|
||||
href="#">创建日期</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1"
|
||||
href="#">修改日期</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1"
|
||||
href="#">标题</a></li>
|
||||
<li role="presentation" class="divider"></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1"
|
||||
href="#">Separated </a></li>
|
||||
</ul>
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 笔记列表 -->
|
||||
<!-- wrap 为了slimScroll -->
|
||||
<div id="noteItemListWrap">
|
||||
<ul id="noteItemList">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="noteSplit" id="noteSplitter"></div>
|
||||
|
||||
<div id="note">
|
||||
<!-- 只读模式 -->
|
||||
<div id="noteRead">
|
||||
<div id="noteReadContainer">
|
||||
<div id="noteReadTop">
|
||||
<h2 id="noteReadTitle"></h2>
|
||||
<div class="clearfix" id="noteReadInfo">
|
||||
<i class="fa fa-bookmark-o"></i>
|
||||
<span id="noteReadTags"></span>
|
||||
|
||||
<!-- 修改时间 -->
|
||||
<i class="fa fa-calendar"></i>{{msg . "update"}}
|
||||
<span id="noteReadUpdatedTime"></span>
|
||||
|
||||
<!-- 修改时间 -->
|
||||
<i class="fa fa-calendar"></i>{{msg . "create"}}
|
||||
<span id="noteReadCreatedTime"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="noteReadContent">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 遮罩, 为了resize3Columns用 -->
|
||||
<div id="noteMask" class="note-mask"></div>
|
||||
<div id="noteMaskForLoading" class="note-mask">
|
||||
<img src="/images/loading-24.gif"/>
|
||||
<br />
|
||||
loading...
|
||||
</div>
|
||||
<div id="editorMask">
|
||||
{{msg . "noNoteNewNoteTips"}}
|
||||
<br />
|
||||
<br />
|
||||
<div id="editorMaskBtns">
|
||||
<a class="note">{{msg . "newNote"}}</a>
|
||||
<a class="markdown">{{msg . "newMarkdownNote"}}</a>
|
||||
</div>
|
||||
<div id="editorMaskBtnsEmpty">
|
||||
{{msg . "canntNewNoteTips"}}
|
||||
</div>
|
||||
</div>
|
||||
<div id="noteTop">
|
||||
<!-- 左侧放tag, 右侧放按钮, 比如save, info, move, delete -->
|
||||
<div id="tool" class="clearfix">
|
||||
<!-- tag可以参考 mac的文件tag, 预定义一些颜色, 用户也可以自己输入-->
|
||||
|
||||
<!--
|
||||
<div class="pull-left" id="noteTitleDiv">
|
||||
<input name="noteTitle" id="noteTitle" value="" placeholder="无标题">
|
||||
</div>
|
||||
-->
|
||||
|
||||
<div class="pull-left" id="tag">
|
||||
<div id="tags" style="display: inline-block; line-height: 25px;">
|
||||
</div>
|
||||
|
||||
<div class="dropdown" style="display: inline-block"
|
||||
id="tagDropdown">
|
||||
<i class="fa fa-bookmark-o"></i>
|
||||
<a
|
||||
class="metro-a dropdown-toggle" data-toggle="dropdown"
|
||||
id="addTagTrigger" style="cursor: text; padding-left: 0">
|
||||
<span class="add-tag-text">
|
||||
{{msg . "clickAddTag"}}
|
||||
</span>
|
||||
</a>
|
||||
<input type="text" id="addTagInput" />
|
||||
<ul class="dropdown-menu" role="menu" id="tagColor">
|
||||
<li role="presentation"><span class="label label-red">{{msg . "red"}}</span>
|
||||
</li>
|
||||
<li role="presentation"><span class="label label-blue">{{msg . "blue"}}</span>
|
||||
</li>
|
||||
<li role="presentation"><span class="label label-yellow">{{msg . "yellow"}}</span></li>
|
||||
<li role="presentation"><span class="label label-green">{{msg . "green"}}</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul class="pull-right" id="editorTool">
|
||||
<li><a class="ios7-a " id="saveBtn" title="ctrl+s"
|
||||
data-toggle="dropdown">
|
||||
<span class="fa fa-save"></span>
|
||||
{{msg . "save"}}</a></li>
|
||||
|
||||
<li class="dropdown" id="attachDropdown">
|
||||
<a class="ios7-a dropdown-toggle" data-toggle="dropdown" id="showAttach">
|
||||
<span class="fa fa-paperclip"></span>
|
||||
{{msg . "attachments"}}<span id="attachNum"></span>
|
||||
</a>
|
||||
<div class="dropdown-menu" id="attachMenu">
|
||||
<ul id="attachList">
|
||||
|
||||
</ul>
|
||||
<form id="uploadAttach" method="post" action="/attach/UploadAttach" enctype="multipart/form-data">
|
||||
<div id="dropAttach" class="dropzone">
|
||||
<a class="btn btn-success btn-choose-file">
|
||||
<i class="fa fa-upload"></i>
|
||||
<span>Choose File</span>
|
||||
</a>
|
||||
<a class="btn btn-default" id="downloadAllBtn">
|
||||
<i class="fa fa-download"></i>
|
||||
<span>Download All</span>
|
||||
</a>
|
||||
<a class="btn btn-default" id="linkAllBtn">
|
||||
<i class="fa fa-link"></i>
|
||||
<span>Link All</span>
|
||||
</a>
|
||||
<input type="file" name="file" multiple/>
|
||||
</div>
|
||||
<div id="attachUploadMsg">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li><a class="ios7-a " id="tipsBtn"
|
||||
data-toggle="dropdown">
|
||||
<span class="fa fa-question"></span>
|
||||
{{msg . "editorTips"}}</a></li>
|
||||
<li><a class="ios7-a " id="contentHistory"
|
||||
data-toggle="dropdown">
|
||||
<span class="fa fa-history"></span>
|
||||
{{msg . "history"}}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="noteTitleDiv">
|
||||
<input name="noteTitle" id="noteTitle" value="" placeholder="{{msg . "unTitled"}}" tabindex="1" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="editor">
|
||||
<!-- 编辑器 -->
|
||||
<div id="mceToolbar">
|
||||
<div id="popularToolbar"
|
||||
style="position: absolute; right: 30px; left: 0"></div>
|
||||
<a
|
||||
style="dispaly: block; position: absolute; cursor: pointer; right: 10px; padding: 3px 10px"
|
||||
id="moreBtn"> <i class="fa fa-angle-down"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="editorBg"></div>
|
||||
<div id="leanoteNav">
|
||||
<h1>
|
||||
<i class="fa fa-align-justify" title="文档导航"></i>
|
||||
<span>{{msg . "nav"}}</span>
|
||||
</h1>
|
||||
<div id="leanoteNavContent">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- leaui image drop image to editor-->
|
||||
<form id="upload" method="post" action="/file/uploadImageLeaui" enctype="multipart/form-data" style="margin-top: 5px;">
|
||||
<div id="drop">
|
||||
Drop images to here
|
||||
<input type="file" name="file" multiple style="display: none"/>
|
||||
</div>
|
||||
<ul id="uploadMsg">
|
||||
</ul>
|
||||
</form>
|
||||
|
||||
<!-- 由此可以算高度 -->
|
||||
<div id="editorContent" name="editorContent" tabindex="2" />
|
||||
{{.noteContent}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="mdEditor">
|
||||
<div id="wmd-button-bar" id="mdBar"></div>
|
||||
<div class="editorBg"></div>
|
||||
<!-- 为了scroll -->
|
||||
|
||||
<div class="clearfix" id="mdEditorPreview">
|
||||
<div id="left-column">
|
||||
<div id="wmd-panel-editor" class="wmd-panel-editor">
|
||||
<textarea class="wmd-input theme" id="wmd-input" spellcheck="false" tabindex="3"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div id="mdSplitter"></div>
|
||||
<div id="right-column">
|
||||
<div id="wmd-panel-preview" class="wmd-panel-preview preview-container">
|
||||
<div id="wmd-preview" class="wmd-preview"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<textarea id="md-section-helper"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- mdEditor -->
|
||||
<!-- Hidden Popup Modal -->
|
||||
<div class="modal fade bs-modal-sm" id="editorDialog" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" id="editorDialog-title"></h4>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<p></p>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon">
|
||||
<i></i>
|
||||
</span>
|
||||
<input type="text" class="form-control" placeholder="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{msg . "cancel"}}</button>
|
||||
<button type="button" class="btn btn-primary" id="editorDialog-confirm">{{msg . "confirm"}}</button>
|
||||
</div>
|
||||
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
<!-- 弹出框 模板 -->
|
||||
<div class="modal fade bs-modal-sm" id="leanoteDialogRemote" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
|
||||
</div>
|
||||
|
||||
<div class="modal fade bs-modal-sm" id="leanoteDialog" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" id="modalTitle">操作</h4>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
内容区
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||
<button type="button" class="btn btn-primary">Save changes</button>
|
||||
</div>
|
||||
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
<div class="modal fade bs-modal-sm" id="sendRegisterEmailDialog" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" class="modalTitle">邀请好友</h4>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<form role="form">
|
||||
<div class="form-group">
|
||||
<div id="registerEmailMsg" class="alert alert-warning" style="display: none">
|
||||
</div>
|
||||
<input type="hidden" id="toEmail"/>
|
||||
<label for="emailContent">邮件内容</label>
|
||||
<textarea class="form-control" id="emailContent">Hi, 我是life, leanote非常好用, 快来注册吧.</textarea>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
|
||||
<button type="button" class="btn btn-success" id="registerEmailBtn">发送</button>
|
||||
</div>
|
||||
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
<!-- theme -->
|
||||
<div class="modal fade bs-modal-sm" id="setThemeDialog" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" class="modalTitle">{{msg . "theme"}}</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<table id="themeForm">
|
||||
<tr>
|
||||
<td>
|
||||
<label>
|
||||
<img src="/images/slider/all.gif" height="100px">
|
||||
<br />
|
||||
<input type="radio" name="theme" value="default"> {{msg . "default"}}
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<label>
|
||||
<img src="/images/slider/all-simple.gif" height="100px">
|
||||
<br />
|
||||
<input type="radio" name="theme" value="simple"> {{msg . "simple"}}
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{msg . "close"}}</button>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
<!-- 编辑器提示 -->
|
||||
<div class="modal fade bs-modal-sm" id="tipsDialog" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" class="modalTitle">{{msg . "editorTips"}}</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
{{msg . "editorTipsInfo"}}
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{msg . "close"}}</button>
|
||||
</div>
|
||||
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
<!-- avatar -->
|
||||
<div class="modal fade bs-modal-sm" id="avatarDialog" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" class="modalTitle">{{msg . "setAvatar"}}</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form id="uploadAvatar" method="post" action="/file/uploadAvatar" enctype="multipart/form-data">
|
||||
<div id="dropAvatar" class="dropzone">
|
||||
<div>
|
||||
<img src="{{if .userInfo.Logo}}{{.userInfo.Logo}}{{else}}/images/blog/default_avatar.png{{end}}" id="avatar"/>
|
||||
</div>
|
||||
<a class="btn btn-success btn-choose-file">
|
||||
<span class="fa fa-upload"></span> Choose Image
|
||||
</a>
|
||||
<input type="file" name="file" multiple/>
|
||||
</div>
|
||||
<div id="avatarUploadMsg">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{msg . "close"}}</button>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
<!-- 您的建议
|
||||
<div class="modal fade bs-modal-sm" id="suggestionsDialog" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" class="modalTitle">{{msg . "yourSuggestions"}}</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div style="margin-bottom:20px;">
|
||||
{{msg . "suggestionsInfo"}}<br />
|
||||
</div>
|
||||
|
||||
<div class="alert alert-warning" id="suggestionMsg" style="display: none"> </div>
|
||||
<textarea style="width: 100%; height: 100px" id="suggestionTextarea" placeholder="{{msg . "suggestions"}}"></textarea>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button id="suggestionBtn" class="btn btn-success" >{{msg . "submit"}}</button>
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{msg . "close"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
|
||||
<!-- modal 静态区域 -->
|
||||
<div class="display: hidden">
|
||||
|
||||
<!-- 长微博 -->
|
||||
<div id="html2ImageDialog">
|
||||
<div class="modal-body">
|
||||
<div style="max-height: 300px; padding: 5px 0; text-align: center; overflow: scroll;" class="weibo">
|
||||
<span class="text">
|
||||
leanote正在努力为你生成长微博...
|
||||
</span>
|
||||
<br />
|
||||
<img src="/images/loading-24.gif"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{msg . "cancel"}}</button>
|
||||
|
||||
<button type="button" class="btn btn-share btn-default sendRRBtn disabled"><i class="fa fa-renren"></i> 人人</button>
|
||||
<button type="button" class="btn btn-share btn-default sendQQBtn disabled"><i class="fa fa-qq"></i> QQ空间</button>
|
||||
<button type="button" class="btn btn-share btn-primary sendTxWeiboBtn disabled"><i class="fa fa-tencent-weibo"></i> 腾讯微博</button>
|
||||
<button type="button" class="btn btn-share btn-success sendWeiboBtn disabled"><i class="fa fa-weibo"></i> 新浪微博</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 激活邮件 -->
|
||||
<div id="reSendActiveEmailDialog">
|
||||
<div class="modal-body">
|
||||
<div style="max-height: 300px; padding: 5px 0; text-align: center; overflow-y: auto; overflow-x: hidden" class="weibo">
|
||||
<span class="text">
|
||||
<img src="/images/loading-24.gif"/>
|
||||
{{msg . "emailInSending"}} {{.userInfo.Email}}...
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{msg . "close"}}</button>
|
||||
<button type="button" class="btn btn-success viewEmailBtn disabled">{{msg . "checkEmail"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hide" id="copyDiv"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="js/jquery-1.9.0.min.js"></script>
|
||||
<script src="js/jquery.ztree.all-3.5.js"></script>
|
||||
<script src="js/i18n/msg.{{.locale}}.js"></script>
|
||||
<script src="js/common-min.js"></script>
|
||||
<script>
|
||||
var UrlPrefix = "{{.siteUrl}}"; // 为了发weibo
|
||||
var UserInfo = json({{.userInfoJson}});
|
||||
var notebooks = json({{.notebooks}});
|
||||
var shareNotebooks = json({{.shareNotebooks}});
|
||||
var sharedUserInfos = json({{.sharedUserInfos}});
|
||||
var notes = json({{.notes}});
|
||||
var noteContentJson = json({{.noteContentJson}});
|
||||
var tagsJson = json({{.tagsJson}});
|
||||
LEA.locale = "{{.locale}}";
|
||||
</script>
|
||||
|
||||
<!-- 渲染view -->
|
||||
<script src="tinymce/tinymce.js"></script>
|
||||
<script src="js/app/page-min.js"></script>
|
||||
<script src="/js/jQuery-slimScroll-1.3.0/jquery.slimscroll.js"></script>
|
||||
<script src="/js/contextmenu/jquery.contextmenu-min.js"></script>
|
||||
<script src="js/jquery-cookie.js"></script>
|
||||
<script src="js/bootstrap-min.js"></script>
|
||||
<script src="js/app/note-min.js"></script>
|
||||
<script src="js/app/tag-min.js"></script>
|
||||
<script src="js/app/notebook-min.js"></script>
|
||||
<script src="js/app/share-min.js"></script>
|
||||
<script src="js/object_id-min.js"></script>
|
||||
<script src="js/ZeroClipboard/ZeroClipboard-min.js"></script>
|
||||
<script>
|
||||
Notebook.renderNotebooks(notebooks);
|
||||
Share.renderShareNotebooks(sharedUserInfos, shareNotebooks);
|
||||
|
||||
Note.setNoteCache(noteContentJson);
|
||||
Note.renderNotes(notes);
|
||||
if(!isEmpty(notes)) {
|
||||
Note.changeNote(notes[0].NoteId);
|
||||
}
|
||||
|
||||
// Note.chanteNote设置content
|
||||
// Note.renderNoteContent(noteContentJson)
|
||||
|
||||
Tag.renderTagNav(tagsJson);
|
||||
|
||||
// init notebook后才调用
|
||||
initSlimScroll();
|
||||
</script>
|
||||
|
||||
<!-- context-menu -->
|
||||
<link rel="stylesheet" href="/js/contextmenu/css/contextmenu.css" type="text/css" />
|
||||
<!-- code -->
|
||||
<link href="/public/mdeditor/editor/google-code-prettify/prettify.css" rel="stylesheet" />
|
||||
<!-- js version 2.0 use require.js -->
|
||||
<script src="/js/require.js"></script>
|
||||
<script src="/js/main-min.js"></script>
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,23 +0,0 @@
|
||||
{{set . "title" "Home"}}
|
||||
{{template "header.html" .}}
|
||||
|
||||
<header class="hero-unit" style="background-color:red">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="hero-text">
|
||||
<h1>Hello, life</h1>
|
||||
<p></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="span6">
|
||||
{{template "flash.html" .}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{template "footer.html" .}}
|
||||
@@ -1,32 +0,0 @@
|
||||
{{template "home/header_box.html" .}}
|
||||
|
||||
<section id="box" class="animated fadeInUp">
|
||||
<div>
|
||||
<h1 id="logo">leanote</h1>
|
||||
<div id="boxForm">
|
||||
<div id="boxHeader">We got a error</div>
|
||||
<form>
|
||||
<div class="alert alert-danger" id="loginMsg" style="display: block">
|
||||
Sorry, we can't get your infomation.
|
||||
|
||||
<br />
|
||||
Please <a href="/login">{{msg . "login"}}</a> Or <a href="/register?email={{.email}}">{{msg . "register"}}</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="boxFooter">
|
||||
<p>
|
||||
<a href="/login">{{msg . "login"}}</a>
|
||||
|
||||
<a href="/index">{{msg . "home"}}</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="/index">leanote</a> © 2014
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,71 +0,0 @@
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" id="modalTitle">{{msg . "share"}} <b>{{.title}}</b></h4>
|
||||
</div>
|
||||
{{$noteOrNotebookId := .noteOrNotebookId}}
|
||||
|
||||
<div class="modal-body">
|
||||
<button class="btn btn-default" id="addShareNotebookBtn">{{msg . "addShare"}}</button>
|
||||
<div id="shareMsg" class="alert alert-danger" style="display: none; margin: 5px 0 0 0;"></div>
|
||||
<table class="table table-hover" id="shareNotebookTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>{{msg . "friendEmail"}}</th>
|
||||
<th>{{msg . "permission"}}</th>
|
||||
<th width="150px">{{msg . "delete"}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr id="tr1">
|
||||
<td>#</td>
|
||||
<td>
|
||||
<input id="friendsEmail" type="text" class="form-control" placeholder="{{msg . "friendEmail"}}">
|
||||
</td>
|
||||
<td>
|
||||
<label for="readPerm1"><input type="radio" name="perm1" checked="checked" value="0" id="readPerm1"> {{msg . "readOnly"}}</label>
|
||||
<label for="writePerm1"><input type="radio" name="perm1" value="1" id="writePerm1"> {{msg . "writable"}}</label>
|
||||
</td>
|
||||
<td>
|
||||
<button class="btn btn-success" onclick="addShareNoteOrNotebook(1)">{{msg . "share"}}</button>
|
||||
<button class="btn btn-warning" onclick="deleteShareNoteOrNotebook(1)">{{msg . "delete"}}</button>
|
||||
</td>
|
||||
</tr>
|
||||
{{range $i, $v := .noteOrNotebookShareUserInfos}}
|
||||
{{$toUserId := $v.ToUserId.Hex}}
|
||||
<tr>
|
||||
<td>{{add $i}}</td>
|
||||
<td>{{$v.Email}}</td>
|
||||
<td>
|
||||
{{if eq $v.Perm 0}}
|
||||
<a href="#" noteOrNotebookId="{{$noteOrNotebookId}}" perm="{{$v.Perm}}" toUserId="{{$toUserId}}" title="点击改变权限" class="btn btn-default change-perm">{{msg . "readOnly"}}</a>
|
||||
{{else}}
|
||||
<a href="#" noteOrNotebookId="{{$noteOrNotebookId}}" perm="{{$v.Perm}}" toUserId="{{$toUserId}}" title="点击改变权限" class="btn btn-default change-perm">{{msg . "writable"}}</a>
|
||||
{{end}}
|
||||
</td>
|
||||
<td>
|
||||
<a href="#" noteOrNotebookId="{{$noteOrNotebookId}}" toUserId="{{$toUserId}}" class="btn btn-warning delete-share">{{msg . "delete"}}</a>
|
||||
</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{msg . "close"}}</button>
|
||||
</div>
|
||||
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
<script>
|
||||
Share.dialogIsNote = {{.isNote}};
|
||||
Share.dialogNoteOrNotebookId = '{{.noteOrNotebookId}}';
|
||||
$(function() {
|
||||
setTimeout(function() {
|
||||
$("#tr1 #friendsEmail").focus();
|
||||
}, 500);
|
||||
});
|
||||
</script>
|
||||
@@ -1,84 +0,0 @@
|
||||
<div class="modal-dialog modal-sm">
|
||||
<div class="modal-content">
|
||||
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" id="modalTitle">{{.note.Title}} 的分享状态</h4>
|
||||
</div>
|
||||
{{$noteId := .note.NoteId.Hex}}
|
||||
|
||||
<div class="modal-body">
|
||||
{{if .noteShareUserInfos }}
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Email</th>
|
||||
<th>权限</th>
|
||||
<th>删除分享</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{range $i, $v := .noteShareUserInfos}}
|
||||
{{$toUserId := $v.ToUserId.Hex}}
|
||||
<tr>
|
||||
<td>{{add $i}}</td>
|
||||
<td>{{$v.Email}}</td>
|
||||
<td>
|
||||
{{if eq $v.Perm 0}}
|
||||
<a href="#" noteId="{{$noteId}}" perm="{{$v.Perm}}" toUserId="{{$toUserId}}" title="点击改变权限" class="btn btn-default change-perm">只读</a>
|
||||
{{else}}
|
||||
<a href="#" noteId="{{$noteId}}" perm="{{$v.Perm}}" toUserId="{{$toUserId}}" title="点击改变权限" class="btn btn-default change-perm">可编辑</a>
|
||||
{{end}}
|
||||
</td>
|
||||
<td>
|
||||
<a href="#" noteId="{{$noteId}}" toUserId="{{$toUserId}}" class="btn btn-warning delete-share">删除</a>
|
||||
</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
{{else}}
|
||||
无分享信息
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||
</div>
|
||||
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
<script>
|
||||
$(function() {
|
||||
$(".change-perm").click(function() {
|
||||
var self = this;
|
||||
var perm = $(this).attr("perm");
|
||||
var noteId = $(this).attr("noteId");
|
||||
var toUserId = $(this).attr("toUserId");
|
||||
var toHtml = "可编辑";
|
||||
var toPerm = "1";
|
||||
if(perm == "1") {
|
||||
toHtml = "只读";
|
||||
toPerm = "0";
|
||||
}
|
||||
ajaxGet("/share/UpdateShareNotePerm", {noteId: noteId, perm: toPerm, toUserId: toUserId}, function(ret) {
|
||||
if(ret) {
|
||||
$(self).html(toHtml);
|
||||
$(self).attr("perm", toPerm);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$(".delete-share").click(function() {
|
||||
var self = this;
|
||||
var noteId = $(this).attr("noteId");
|
||||
var toUserId = $(this).attr("toUserId");
|
||||
ajaxGet("/share/DeleteShareNote", {noteId: noteId, toUserId: toUserId}, function(ret) {
|
||||
if(ret) {
|
||||
$(self).parent().parent().remove();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -1,272 +0,0 @@
|
||||
<div class="modal-dialog modal-sm" id="accountInfoDialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" id="modalTitle">{{msg . "accountSetting"}}</h4>
|
||||
</div>
|
||||
|
||||
{{if .userInfo.Email}}
|
||||
<div class="modal-body">
|
||||
<ul class="nav nav-tabs" id="infoTabs">
|
||||
<li class="active"><a href="#baseInfo" data-toggle="tab">{{msg . "basicInfo"}}</a></li>
|
||||
<li><a href="#emailInfo" data-toggle="tab">{{msg . "updateEmail"}}</a></li>
|
||||
<li><a href="#updatePwd" data-toggle="tab">{{msg . "updatePassword"}}</a></li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
|
||||
<div class="tab-pane active" id="baseInfo">
|
||||
<form>
|
||||
<div class="alert alert-danger" id="usernameMsg" style="display: none"></div>
|
||||
<label for="username">{{msg . "setUsername"}}</label>
|
||||
<input type="text" class="form-control" id="username"
|
||||
value="{{.userInfo.Username}}"
|
||||
data-rules='[
|
||||
{rule: "required", msg: "inputUsername"},
|
||||
{rule: "noSpecialChars", msg: "noSpecialChars"},
|
||||
{rule: "minLength", data: 4, msg: "minLength", msgData: 4}
|
||||
]'
|
||||
data-msg_target="#usernameMsg"
|
||||
/>
|
||||
{{msg . "setUsernameTips" .userInfo.Email}}
|
||||
|
||||
<div>
|
||||
<button id="usernameBtn" class="btn btn-success">{{msg . "submit"}}</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane" id="emailInfo">
|
||||
<form>
|
||||
|
||||
{{msg . "currentEmail" .userInfo.Email}}
|
||||
{{if .userInfo.Verified}}
|
||||
<span class="label label-green">{{msg . "verified"}}</span>
|
||||
{{else}}
|
||||
<span class="label label-red">{{msg . "unVerified"}}</span>
|
||||
<a class="raw nowToActive">{{msg . "verifiedNow"}}</a>
|
||||
{{msg . "or"}}
|
||||
<a class="raw reSendActiveEmail">{{msg . "resendVerifiedEmail"}}</a>
|
||||
{{end}}
|
||||
<br />
|
||||
<label for="email">{{msg . "updateEmail"}}</label>
|
||||
<div class="alert alert-danger" id="emailMsg" style="display: none" placeholder="New Email"></div>
|
||||
<input type="text" class="form-control"
|
||||
id="email"
|
||||
data-rules='[
|
||||
{rule: "required", msg: "inputEmail"},
|
||||
{rule: "email", msg: "errorEmail"}
|
||||
]'
|
||||
data-msg_target="#emailMsg"
|
||||
/>
|
||||
{{msg . "updateEmailTips"}}
|
||||
|
||||
<div>
|
||||
<button id="emailBtn" class="btn btn-success">{{msg . "sendVerifiedEmail"}}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="tab-pane" id="updatePwd">
|
||||
<form>
|
||||
<div class="alert alert-danger" id="pwdMsg" style="display: none"></div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="oldPwd">{{msg . "oldPassword"}}</label>
|
||||
<input type="password" class="form-control" id="oldPwd" name="oldPwd"
|
||||
data-rules='[
|
||||
{rule: "required", msg: "inputPassword"}
|
||||
]'
|
||||
data-msg_target="#pwdMsg"
|
||||
/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="pwd">{{msg . "newPassword"}}</label>
|
||||
<input type="password" class="form-control" id="pwd" name="pwd"
|
||||
data-rules='[
|
||||
{rule: "required", msg: "inputNewPassword"},
|
||||
{rule: "password", msg: "errorPassword"}
|
||||
]'
|
||||
data-msg_target="#pwdMsg"
|
||||
>
|
||||
{{msg . "passwordTips"}}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="pwd2">{{msg . "password2"}}</label>
|
||||
<input type="password" class="form-control" id="pwd2" name="pwd2"
|
||||
data-rules='[
|
||||
{rule: "required", msg: "inputPassword2"},
|
||||
{rule: "equalTo", data:"#pwd", msg: "confirmPassword"}
|
||||
]'
|
||||
data-msg_target="#pwdMsg"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<button id="pwdBtn" class="btn btn-success">{{msg . "submit"}}</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="modal-body">
|
||||
<ul class="nav nav-tabs" id="thirdMyTabs">
|
||||
<li class="active"><a href="#accountInfo" data-toggle="tab">{{msg . "createAccount"}}</a></li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active" id="accountInfo">
|
||||
{{msg . "thirdCreateAcountTips"}}
|
||||
<form>
|
||||
<div class="alert alert-danger" id="thirdAccountMsg" style="display: none"></div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="thirdEmail">{{msg . "email"}}</label>
|
||||
<input type="text" class="form-control" id="thirdEmail" name="email"
|
||||
data-rules='[
|
||||
{rule: "required", msg: "inputEmail"},
|
||||
{rule: "email", msg: "errorEmail"}
|
||||
]'
|
||||
data-msg_target="#thirdAccountMsg"
|
||||
>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="thirdPwd">{{msg . "password"}}</label>
|
||||
<input type="password" class="form-control" id="thirdPwd" name="pwd"
|
||||
data-rules='[
|
||||
{rule: "required", msg: "inputPassword"},
|
||||
{rule: "password", msg: "errorPassword"}
|
||||
]'
|
||||
data-msg_target="#thirdAccountMsg"
|
||||
/>
|
||||
{{msg . "passwordTips"}}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="thirdPwd2">{{msg . "password2"}}</label>
|
||||
<input type="password" class="form-control" id="thirdPwd2" name="pwd2"
|
||||
data-rules='[
|
||||
{rule: "required", msg: "inputPassword2"},
|
||||
{rule: "equalTo", data:"#thirdPwd", msg: "confirmPassword"}
|
||||
]'
|
||||
data-msg_target="#thirdAccountMsg"
|
||||
>
|
||||
</div>
|
||||
|
||||
<button id="accountBtn" class="btn btn-success">{{msg . "submit"}}</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{msg . "close"}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$('#infoTabs a').eq({{.tab}}).tab('show');
|
||||
|
||||
//--------------
|
||||
// 第三方账号设置
|
||||
var acountVd = new vd.init("#accountInfo");
|
||||
$("#accountInfoDialog").on("click", "#accountBtn", function(e) {
|
||||
e.preventDefault();
|
||||
if(!acountVd.valid()) {
|
||||
return;
|
||||
}
|
||||
var email = $("#thirdEmail").val();
|
||||
var pwd = $("#thirdPwd").val();
|
||||
var pwd2 = $("#thirdPwd2").val();
|
||||
post("/user/addAccount", {email: email, pwd: pwd}, function(ret) {
|
||||
if(ret.Ok) {
|
||||
showAlert("#thirdAccountMsg", getMsg("createAccountSuccess"), "success");
|
||||
UserInfo.Email = email;
|
||||
$("#curEmail").html(email);
|
||||
hideDialogRemote(1000);
|
||||
} else {
|
||||
showAlert("#thirdAccountMsg", ret.Msg || getMsg("createAccountFailed"), "danger");
|
||||
}
|
||||
}, this);
|
||||
});
|
||||
|
||||
//-------------
|
||||
var usernameVd = new vd.init("#baseInfo");
|
||||
$("#usernameBtn").click(function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
if(!usernameVd.valid()) {
|
||||
return;
|
||||
}
|
||||
var username = $("#username").val();
|
||||
post("/user/updateUsername", {username: username}, function(ret) {
|
||||
if(ret.Ok) {
|
||||
UserInfo.UsernameRaw = username;
|
||||
UserInfo.Username = username.toLowerCase();
|
||||
$(".username").html(username);
|
||||
showAlert('#usernameMsg', getMsg("updateUsernameSuccess"), "success");
|
||||
} else {
|
||||
showAlert('#usernameMsg', ret.Msg || getMsg("usernameIsExisted"), "danger");
|
||||
}
|
||||
}, "#usernameBtn");
|
||||
|
||||
});
|
||||
|
||||
// 修改邮箱
|
||||
var emailVd = new vd.init("#emailInfo");
|
||||
$("#emailBtn").click(function(e) {
|
||||
e.preventDefault();
|
||||
if(!emailVd.valid()) {
|
||||
return;
|
||||
}
|
||||
var email = $("#email").val();
|
||||
post("/user/updateEmailSendActiveEmail", {email: email}, function(e) {
|
||||
if(e.Ok) {
|
||||
var url = getEmailLoginAddress(email);
|
||||
showAlert("#emailMsg", getMsg("verifiedEmaiHasSent") +" <a href='" + url + "' target='_blank'>" + getMsg("checkEmail") + "</a>", "success");
|
||||
} else {
|
||||
showAlert("#emailMsg", e.Msg || getMsg("emailSendFailed"), "danger");
|
||||
}
|
||||
}, "#emailBtn");
|
||||
});
|
||||
|
||||
// 修改密码
|
||||
var updatePwdVd = new vd.init("#updatePwd");
|
||||
$("#pwdBtn").click(function(e) {
|
||||
e.preventDefault();
|
||||
if(!updatePwdVd.valid()) {
|
||||
return;
|
||||
}
|
||||
var oldPwd = $("#oldPwd").val();
|
||||
var pwd = $("#pwd").val();
|
||||
post("/user/updatePwd", {oldPwd: oldPwd, pwd: pwd}, function(e) {
|
||||
if(e.Ok) {
|
||||
showAlert("#pwdMsg", getMsg("updatePasswordSuccess"), "success");
|
||||
} else {
|
||||
showAlert("#pwdMsg", e.Msg, "danger");
|
||||
}
|
||||
}, "#pwdBtn");
|
||||
});
|
||||
|
||||
// 重新发送
|
||||
$(".reSendActiveEmail").click(function() {
|
||||
// 弹框出来
|
||||
showDialog("reSendActiveEmailDialog", {title: getMsg("sendVerifiedEmail"), postShow: function() {
|
||||
ajaxGet("/user/reSendActiveEmail", {}, function(ret) {
|
||||
if (typeof ret == "object" && ret.Ok) {
|
||||
$("#leanoteDialog .text").html(getMsg("sendSuccess"))
|
||||
$("#leanoteDialog .viewEmailBtn").removeClass("disabled");
|
||||
$("#leanoteDialog .viewEmailBtn").click(function() {
|
||||
hideDialog();
|
||||
var url = getEmailLoginAddress(UserInfo.Email);
|
||||
window.open(url, "_blank");
|
||||
});
|
||||
} else {
|
||||
$("#leanoteDialog .text").html(getMsg("sendFailed"))
|
||||
}
|
||||
});
|
||||
}});
|
||||
});
|
||||
// 现在去验证
|
||||
$(".nowToActive").click(function() {
|
||||
var url = getEmailLoginAddress(UserInfo.Email);
|
||||
window.open(url, "_blank");
|
||||
});
|
||||
</script>
|
||||
@@ -1,32 +0,0 @@
|
||||
{{template "home/header_box.html" .}}
|
||||
|
||||
<section id="box" class="animated fadeInUp">
|
||||
<div>
|
||||
<h1 id="logo">leanote</h1>
|
||||
<div id="boxForm">
|
||||
<div id="boxHeader">验证邮箱 - {{if .ok}}成功{{else}}失败{{end}}</div>
|
||||
<form>
|
||||
<div class="alert alert-danger" id="loginMsg"> </div>
|
||||
您的邮箱 {{.email}} 验证
|
||||
{{if .ok}}成功{{else}}失败{{end}}
|
||||
|
||||
{{if .msg}}<br />
|
||||
{{.msg}}{{end}}
|
||||
|
||||
<br />
|
||||
<a href="/note">回到我的笔记</a>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="boxFooter">
|
||||
<p>
|
||||
<a href="/index">{{msg . "home"}}</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="/index">leanote</a> © 2014
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,35 +0,0 @@
|
||||
{{template "home/header_box.html" .}}
|
||||
|
||||
<section id="box" class="animated fadeInUp">
|
||||
<div>
|
||||
<h1 id="logo">leanote</h1>
|
||||
<div id="boxForm">
|
||||
<div id="boxHeader">验证邮箱 - {{if .ok}}成功{{else}}失败{{end}}</div>
|
||||
<form>
|
||||
<div class="alert alert-danger" id="loginMsg"> </div>
|
||||
您的邮箱 {{.email}} 验证
|
||||
{{if .ok}}成功{{else}}失败{{end}}
|
||||
{{if .ok}}
|
||||
<br />
|
||||
您的新登录邮箱为 {{.email}}
|
||||
{{end}}
|
||||
|
||||
{{if .msg}}<br />{{.msg}}{{end}}
|
||||
|
||||
<br />
|
||||
<a href="/note">回到我的笔记</a>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div id="boxFooter">
|
||||
<p>
|
||||
<a href="/index">{{msg . "home"}}</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="/index">leanote</a> © 2014
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user