Parcourir la source

个人笔记改造完成

layui
mail_yanpeng@163.com il y a 5 ans
Parent
révision
c65add6dae
  1. 4
      controllers/NoteController.go
  2. 4
      static/css/menunav.css
  3. 373
      static/css/notemenu.css
  4. 46
      static/js/jslide/demo-only.js
  5. 107
      static/js/jslide/jquery.jside.menu.js
  6. 46
      static/js/menu.js
  7. 5166
      static/material-design/css/material-design-iconic-font.css
  8. 2
      views/iframe/note.html
  9. 2
      views/newblog.html
  10. 338
      views/note.html
  11. 2
      views/uinfo.html
  12. 13
      views/ulike.html

4
controllers/NoteController.go

@ -77,7 +77,7 @@ func (this *NoteController) SaveNoteColl() {
note := &models.NoteColl{Title: title, UserId: uid.(int64)}
err := noteService.SaveNoteColl(note)
if err == nil {
this.Data["json"] = models.ReurnSuccess("")
this.Data["json"] = models.ReurnData("",note)
} else {
this.Data["json"] = models.ReurnError(500, "保存失败")
}
@ -200,6 +200,8 @@ func (this *NoteController) Note() {
} else {
noteColls = make([]*models.NoteColl, 0)
}
this.Data["HeadImg"] = this.GetSession("headimg")
this.Data["NickName"] = this.GetSession("nickname")
this.Data["NoteColls"] = noteColls
this.TplName = "note.html"
}

4
static/css/menunav.css

@ -2,7 +2,7 @@
position: fixed;
left: 0;
top: 0;
z-index: 99999;
z-index: 6;
}
@ -14,7 +14,6 @@ input[id*="joacims-menu"] + label {
display:block;
width:40px;
height:40px;
background:#64807d;
cursor:pointer;
font-size:30px;
color:#fff;
@ -24,7 +23,6 @@ input[id*="joacims-menu"] + label {
input[id*="joacims-menu"] + label span {
display:block;
position:absolute;
top: 8px;
left: 5px;
transition:.2s;
}

373
static/css/notemenu.css

@ -1,373 +0,0 @@
/* --------------------------------
Primary style
-------------------------------- */
html * {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
*, *:after, *:before {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
html, body {
/* you need to set this to assign to the main element a min height of 100% */
height: 100%;
}
body {
font-size: 100%;
font-family: "Titillium Web", sans-serif;
color: #4e6361;
background-color: #f5f4e9;
}
a {
color: #6cac70;
text-decoration: none;
}
/* --------------------------------
Modules - reusable parts of our design
-------------------------------- */
.cd-img-replace {
/* replace text with a background-image */
display: inline-block;
overflow: hidden;
text-indent: 100%;
white-space: nowrap;
}
.overflow-hidden {
overflow: hidden;
}
/* --------------------------------
Main components
-------------------------------- */
.cd-main-content {
/* set a min-height and a z-index to be sure that the main element completely covers the lateral menu */
min-height: 100%;
position: relative;
background-color: #f5f4e9;
z-index: 2;
padding-top: 0px;
/* Force Hardware Acceleration in WebKit */
-webkit-transform: translateZ(0);
-webkit-backface-visibility: hidden;
-webkit-transition-property: -webkit-transform;
-moz-transition-property: -moz-transform;
transition-property: transform;
-webkit-transition-duration: 0.4s;
-moz-transition-duration: 0.4s;
transition-duration: 0.4s;
}
.cd-main-content.lateral-menu-is-open {
/* translate to show the lateral menu - all content needs to be put in the .cd-main-content to translate*/
-webkit-transform: translateX(-260px);
-moz-transform: translateX(-260px);
-ms-transform: translateX(-260px);
-o-transform: translateX(-260px);
transform: translateX(-260px);
}
@media only screen and (min-width: 768px) {
.cd-main-content {
padding-top: 0px;
}
}
header {
position: absolute;
top: 0;
right: 0;
height: 39px;
width: 40px;
z-index: 3;
/* Force Hardware Acceleration in WebKit */
-webkit-transform: translateZ(0);
-webkit-backface-visibility: hidden;
-webkit-transition-property: -webkit-transform;
-moz-transition-property: -moz-transform;
transition-property: transform;
-webkit-transition-duration: 0.4s;
-moz-transition-duration: 0.4s;
transition-duration: 0.4s;
}
header.lateral-menu-is-open {
/* translate to show the lateral menu */
-webkit-transform: translateX(-260px);
-moz-transform: translateX(-260px);
-ms-transform: translateX(-260px);
-o-transform: translateX(-260px);
transform: translateX(-260px);
}
header.is-fixed {
position: fixed;
}
@media only screen and (min-width: 768px) {
header {
height: 39px;
}
}
#cd-logo {
display: block;
float: left;
margin: 12px 0 0 20px;
}
#cd-logo img {
display: block;
}
@media only screen and (min-width: 768px) {
#cd-logo {
margin: 22px 0 0 30px;
}
}
#cd-menu-trigger {
position: absolute;
right: 0;
top: 0;
height: 100%;
width: 40px;
background-color: #64807d;
}
#cd-menu-trigger .cd-menu-text {
height: 100%;
text-transform: uppercase;
color: #FFF;
font-weight: 600;
display: none;
}
#cd-menu-trigger .cd-menu-icon {
/* this span is the central line in the menu menu */
display: inline-block;
position: absolute;
left: 50%;
top: 50%;
bottom: auto;
right: auto;
-webkit-transform: translateX(-50%) translateY(-50%);
-moz-transform: translateX(-50%) translateY(-50%);
-ms-transform: translateX(-50%) translateY(-50%);
-o-transform: translateX(-50%) translateY(-50%);
transform: translateX(-50%) translateY(-50%);
width: 18px;
height: 2px;
background-color: #FFF;
/* these are the upper and lower lines in the menu menu */
}
#cd-menu-trigger .cd-menu-icon::before, #cd-menu-trigger .cd-menu-icon:after {
content: '';
width: 100%;
height: 100%;
position: absolute;
background-color: inherit;
left: 0;
/* Force Hardware Acceleration in WebKit */
-webkit-transform: translateZ(0);
-webkit-backface-visibility: hidden;
}
#cd-menu-trigger .cd-menu-icon::before {
bottom: 5px;
}
#cd-menu-trigger .cd-menu-icon::after {
top: 5px;
}
#cd-menu-trigger.is-clicked .cd-menu-icon {
background-color: rgba(255, 255, 255, 0);
}
#cd-menu-trigger.is-clicked .cd-menu-icon::before, #cd-menu-trigger.is-clicked .cd-menu-icon::after {
background-color: white;
}
#cd-menu-trigger.is-clicked .cd-menu-icon::before {
bottom: 0;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
}
#cd-menu-trigger.is-clicked .cd-menu-icon::after {
top: 0;
-webkit-transform: rotate(-45deg);
-moz-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
-o-transform: rotate(-45deg);
transform: rotate(-45deg);
}
@media only screen and (min-width: 768px) {
#cd-menu-trigger {
width: 40px;
padding-left: 1.25em;
}
#cd-menu-trigger .cd-menu-text {
display: inline-block;
line-height: 70px;
}
#cd-menu-trigger .cd-menu-icon {
left: 30%;
right: 1.25em;
-webkit-transform: translateX(0);
-moz-transform: translateX(0);
-ms-transform: translateX(0);
-o-transform: translateX(0);
transform: translateX(0);
}
}
#cd-lateral-nav {
position: fixed;
height: 100%;
right: 0;
top: 0;
/* the secondary navigation is covered by the main element */
z-index: 1;
width: 260px;
background-color: #242e30;
overflow-y: auto;
/* Force Hardware Acceleration in WebKit */
-webkit-transform: translateZ(0);
-webkit-backface-visibility: hidden;
-webkit-transition-property: -webkit-transform;
-moz-transition-property: -moz-transform;
transition-property: transform;
-webkit-transition-duration: 0.4s;
-moz-transition-duration: 0.4s;
transition-duration: 0.4s;
/* this creates the subtle slide in animation of the navigation */
-webkit-transform: translateX(80px);
-moz-transform: translateX(80px);
-ms-transform: translateX(80px);
-o-transform: translateX(80px);
transform: translateX(80px);
}
#cd-lateral-nav .cd-navigation {
margin: 10px 0 16px;
}
#cd-lateral-nav .sub-menu {
padding: 0 10px 20px 15px;
display: none;
}
#cd-lateral-nav a {
display: block;
line-height: 2em;
padding: 0 16px 0 32px;
color: #aab5b7;
text-decoration:none;
}
#cd-lateral-nav a.current {
background-color: #3a4a4d;
color: #FFF;
}
.no-touch #cd-lateral-nav a:hover {
color: #FFF;
}
@media only screen and (min-width: 768px) {
#cd-lateral-nav .cd-navigation {
margin: 20px 0;
}
}
#cd-lateral-nav.lateral-menu-is-open {
-webkit-transform: translateX(0);
-moz-transform: translateX(0);
-ms-transform: translateX(0);
-o-transform: translateX(0);
transform: translateX(0);
/* smooth the scrolling on touch devices - webkit browsers */
-webkit-overflow-scrolling: touch;
}
/* style menu items which have a submenu */
#cd-lateral-nav .item-has-children > a {
position: relative;
text-transform: uppercase;
font-weight: 600;
/* this is the right arrow to show that the item has a submenu */
}
#cd-lateral-nav .item-has-children > a::after {
content: '';
display: block;
height: 11px;
width: 8px;
position: absolute;
top: 50%;
bottom: auto;
-webkit-transform: translateY(-50%);
-moz-transform: translateY(-50%);
-ms-transform: translateY(-50%);
-o-transform: translateY(-50%);
transform: translateY(-50%);
right: 1em;
background: url("../img/cd-arrow.svg") no-repeat center center;
background-size: 8px 11px;
-webkit-transition-property: -webkit-transform;
-moz-transition-property: -moz-transform;
transition-property: transform;
-webkit-transition-duration: 0.2s;
-moz-transition-duration: 0.2s;
transition-duration: 0.2s;
}
#cd-lateral-nav .item-has-children > a.submenu-open::after {
-webkit-transform: translateY(-50%) rotate(90deg);
-moz-transform: translateY(-50%) rotate(90deg);
-ms-transform: translateY(-50%) rotate(90deg);
-o-transform: translateY(-50%) rotate(90deg);
transform: translateY(-50%) rotate(90deg);
}
#cd-lateral-nav .socials {
padding: 0 32px;
}
#cd-lateral-nav .socials:after {
content: "";
display: table;
clear: both;
}
#cd-lateral-nav .socials a {
height: 32px;
width: 32px;
float: left;
padding: 0;
background-image: url("../img/cd-socials.svg");
background-repeat: no-repeat;
background-size: 128px 64px;
background-color: #FFF;
margin-right: .5em;
border-radius: 0.25em;
}
#cd-lateral-nav .socials a.cd-twitter {
background-position: 0 0;
}
#cd-lateral-nav .socials a.cd-github {
background-position: -32px 0;
}
#cd-lateral-nav .socials a.cd-facebook {
background-position: -64px 0;
}
#cd-lateral-nav .socials a.cd-google {
background-position: -96px 0;
}
.no-touch #cd-lateral-nav .socials a:hover {
background-color: #4e6361;
}
.no-touch #cd-lateral-nav .socials a:hover.cd-twitter {
background-position: 0 -32px;
}
.no-touch #cd-lateral-nav .socials a:hover.cd-github {
background-position: -32px -32px;
}
.no-touch #cd-lateral-nav .socials a:hover.cd-facebook {
background-position: -64px -32px;
}
.no-touch #cd-lateral-nav .socials a:hover.cd-google {
background-position: -96px -32px;
}

46
static/js/jslide/demo-only.js

@ -0,0 +1,46 @@
/* Author: Asif Mughal
* URL: https://www.codehim.com
* License: MIT License
* Copyright (c) 2018 - Asif Mughal
*/
/* File: demo-only.js */
$(function () {
/* Demo only */
var jSide = $(".menu-container, .menu-head, .menubar");
$(".menu-position").on('change', function () {
$(jSide).not(".menubar").addClass($(this).val());
$(".j-pos").html('jSidePosition: "position-right",');
if ($(this).val() == 'position-left') {
$(jSide).removeClass("position-right");
$(".j-pos").html('jSidePosition: "position-left",');
$(".menu-trigger").removeClass("right").addClass("left");
} else {
$(jSide).removeClass("position-left");
$(".menu-trigger").removeClass("left").addClass("right");
}
});
$(".bg-color").on('change', function () {
var color = $(this).val();
$(jSide).css({'background': color,});
$(".bg-color-input").val(color);
});
$(".bg-color-input").on('input', function () {
$(jSide).css({'background': $(this).val(),});
});
$("#set-top").change(function () {
$(".menubar").addClass("sticky");
$(".j-sticky").html("jSideSticky: true,");
});
$("#set-st").change(function () {
$(".menubar").removeClass("sticky");
$(".j-sticky").html("jSideSticky: false,");
});
$(".theme-tray span").click(function () {
var skin = $(this).attr("class");
$(".menubar").attr('class', skin).addClass("menubar sticky");
$(".menu-container").attr('class', skin).addClass("menu-container position-left");
$(".menu-head").attr('class', skin).addClass("menu-head position-left");
var newcode = 'jSideSkin:' + '\"' + skin + '\",';
$(".j-skin").html(newcode);
});
});

107
static/js/jslide/jquery.jside.menu.js

@ -0,0 +1,107 @@
/* Plugin: jSide Menu (Responsive Side Menu)
* Frameworks: jQuery 3.3.1 & Material Design Iconic Font 2.0
* Author: Asif Mughal
* GitHub: https://github.com/CodeHimBlog
* URL: https://www.codehim.com
* License: MIT License
* Copyright (c) 2018 - Asif Mughal
*/
/* File: jquery.jside.menu.js */
(function ($) {
$.fn.jSideMenu = function (options) {
var setting = $.extend({
jSidePosition: "position-left", //possible options position-left or position-right
jSideSticky: true, // menubar will be fixed on top, false to set static
jSideSkin: "default-skin", // to apply custom skin, just put its name in this string
}, options);
return this.each(function () {
var target, $headHeight,
$devHeight,
jSide,
arrow,
dimBackground;
target = $(this);
/* Accessing DOM */
jSide = $(".menu-container, .menu-head");
$devHeight = $(window).height();
$headHeight = $(".menu-head").height();
arrow = document.createElement("i");
dimBackground = $(".dim-overlay");
// Set the height of side menu according to the available height of device
$(target).css({
'height': $devHeight - $headHeight,
});
if (setting.jSideSticky == true) {
$(".menubar").addClass("sticky");
} else {
$(".menubar").removeClass("sticky");
}
$(".menubar").addClass(setting.jSideSkin);
$(jSide).addClass(setting.jSideSkin).addClass(setting.jSidePosition);
if ($(jSide).hasClass("position-left")) {
$(".menu-trigger").addClass("left").removeClass("right");
} else {
$(".menu-trigger").removeClass("left").addClass("right");
}
//Dropdown Arrow
$(arrow).addClass("zmdi zmdi-chevron-down arrow").appendTo(".dropdown-heading");
//Dropdowns
$(".dropdown-heading").click(function () {
var n = $(".has-sub").find("span:hover + ul li").length;
var h = $(".has-sub").find("span:hover + ul li").outerHeight();
var dropdown = h * n;
var todrop = $(".has-sub").find("span:hover + ul");
var nodrop = $(".has-sub ul");
$(todrop).animate({"height": dropdown}, 100);
$(this).find("i").toggleClass("arrowdown");
if ($(todrop).height() == dropdown) {
$(todrop).animate({"height": 0}, 100);
}
if ($(nodrop).height(dropdown)) {
$(nodrop).not(todrop).height(0);
$(".dropdown-heading").not(this).find("i").removeClass("arrowdown");
}
});
$(".menu-trigger").click(function () {
$(jSide).toggleClass("open");
$(dimBackground).show(500);
});
//close menu if user click outside of it
$(window).click(function (e) {
if ($(e.target).closest('.menu-trigger').length) {
return;
}
if ($(e.target).closest(jSide).length) {
return;
}
$(jSide).removeClass("open");
if (!$(jSide).hasClass("open")) {
$(dimBackground).hide(500);
}
});
});
};
})(jQuery);
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */

46
static/js/menu.js

@ -1,46 +0,0 @@
jQuery(document).ready(function($){
var $lateral_menu_trigger = $('#cd-menu-trigger'),
$content_wrapper = $('.cd-main-content'),
$navigation = $('header');
//open-close lateral menu clicking on the menu icon
$lateral_menu_trigger.on('click', function(event){
event.preventDefault();
$lateral_menu_trigger.toggleClass('is-clicked');
$navigation.toggleClass('lateral-menu-is-open');
$content_wrapper.toggleClass('lateral-menu-is-open').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(){
// firefox transitions break when parent overflow is changed, so we need to wait for the end of the trasition to give the body an overflow hidden
$('body').toggleClass('overflow-hidden');
});
$('#cd-lateral-nav').toggleClass('lateral-menu-is-open');
//check if transitions are not supported - i.e. in IE9
if($('html').hasClass('no-csstransitions')) {
$('body').toggleClass('overflow-hidden');
}
});
//close lateral menu clicking outside the menu itself
$content_wrapper.on('click', function(event){
if( !$(event.target).is('#cd-menu-trigger, #cd-menu-trigger span') ) {
$lateral_menu_trigger.removeClass('is-clicked');
$navigation.removeClass('lateral-menu-is-open');
$content_wrapper.removeClass('lateral-menu-is-open').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(){
$('body').removeClass('overflow-hidden');
});
$('#cd-lateral-nav').removeClass('lateral-menu-is-open');
//check if transitions are not supported
if($('html').hasClass('no-csstransitions')) {
$('body').removeClass('overflow-hidden');
}
}
});
//open (or close) submenu items in the lateral menu. Close all the other open submenu items.
$('.item-has-children').children('a').on('click', function(event){
event.preventDefault();
$(this).toggleClass('submenu-open').next('.sub-menu').slideToggle(200).end().parent('.item-has-children').siblings('.item-has-children').children('a').removeClass('submenu-open').next('.sub-menu').slideUp(200);
});
});

5166
static/material-design/css/material-design-iconic-font.css

Fichier diff supprimé car celui-ci est trop grand

2
views/iframe/note.html

@ -44,7 +44,7 @@
</body>
<script>
$(function () {
debugger
if (!{{.IsLogin}}) {
parent.location.href = "/login"
return

2
views/newblog.html

@ -39,7 +39,7 @@
editor.customConfig.uploadImgHooks = {
customInsert: function (insertImg, result, editor) {
insertImg(result.Data);
debugger
}
}
editor.create()

338
views/note.html

@ -4,26 +4,75 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="description" content="云悦,个人随笔是一个面向IT技术人员,提供个人平时工作总结和在线记录学习笔记,个人技术博客,在线云笔记,码农笔录,最新的技术博客,www.aiprose.com">
<meta name="keywords"
content="云悦,个人随笔,博客,个人博客,个人笔记,技术博客,免费云笔记,云笔记,随笔,IT博客,谷歌地图,码农笔录,aiprose">
<meta name="keywords" content="云悦,个人随笔,博客,个人博客,个人笔记,技术博客,免费云笔记,云笔记,随笔,IT博客,谷歌地图,码农笔录,aiprose">
<title>我的笔记 - 云悦</title>
<!--Material Design Iconic Font-->
<link rel="stylesheet" href="/static/material-design/css/material-design-iconic-font.css"/>
<!--jSide Menu CSS-->
<link rel="stylesheet" href="/static/css/jslide/jside-menu.css"/>
<!--jSide Skins-->
<link rel="stylesheet" href="/static/css/jslide/jside-skins.css"/>
<link rel="stylesheet" href="/static/css/jslide/demo-only.css"/>
<script type="text/javascript" src="/static/js/checkm.js"></script>
<link type="text/css" rel="styleSheet" href="/static/css/menu-reset.css"/>
<link type="text/css" rel="styleSheet" href="/static/css/notemenu.css"/>
<link type="text/css" rel="styleSheet" href="/static/css/menunav.css"/>
<script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.4.0/jquery.min.js"></script>
<script type="text/javascript" src="/static/js/layer.js"></script>
<link rel="stylesheet" href="/static/layui/css/layui.css">
<script type="text/javascript" src="/static/layui/layui.js"></script>
<script src="/static/js/menu.js"></script> <!-- Modernizr -->
<script src="/static/js/wangEditor.min.js"></script>
<!--<link href="https://cdn.bootcss.com/highlight.js/9.15.6/styles/school-book.min.css" rel="stylesheet">-->
<link href="https://cdn.bootcss.com/highlight.js/9.15.6/styles/atelier-dune-light.min.css" rel="stylesheet">
<style>
html, body {
height: 100%;
min-height: 100%;
}
main {
margin-top: 0 !important;
margin-bottom: 0 !important;
background-color: #f5f4e9;
}
.current-title {
color: #ddd;
z-index: 5;
padding: 4px 30px;
}
.skin-container {
position: absolute;
right: 5px;
top: 0;
}
.skin-container select {
height: 40px;
color: #fff;
border: none;
background-color: rgba(0, 0, 0, 0);
}
.skin-container select option{
color: #222;
}
.w-e-toolbar {
height: 40px;
line-height: 30px;
padding-left: 45px;
}
.w-e-text-container {
z-index: 5 !important;
}
.w-e-menu {
z-index: 6 !important;
}
.w-e-menu i {
color: #ddd !important;
}
::-webkit-scrollbar {
@ -38,55 +87,121 @@
</style>
</head>
<body>
<header id="slide-container">
<a id="cd-menu-trigger" href="javascript:void(0)"><span class="cd-menu-icon"></span></a>
</header>
<menu class="menubar">
<menuitem>
<button class="menu-trigger"></button>
</menuitem>
</menu>
<div class="cd-main-content">
<div id="editor" class="editor">
</div>
<div class="menu-head">
<span class="layer">
<div class="col">
<div class="row for-pic">
<div class="profile-pic"> <img src="{{.HeadImg}}" alt="Asif Mughal"/></div>
</div>
<div class="row for-name">
<h3 title="User Name"> {{.NickName}}</h3>
<span class="tagline"> 私密笔记,别人无法看到 </span>
</div>
</div> <!--//col-->
</span>
</div> <!--//menu-head-->
<nav class="menu-container">
<ul class="menu-items">
{{if eq 0 (.NoteColls|len)}}
<li><a href="/me/note">新增文件夹</a></li>
{{end}}
<!--<li><span class="item-icon"><i class="zmdi zmdi-android"></i></span> <a href="#1">-->
<!--Main item one </a></li>-->
<!--<li><span class="item-icon"> <i class="zmdi zmdi-apple"></i> </span> <a href="#1">Main item two </a></li>-->
{{range .NoteColls}}
<li class="has-sub"><span class="item-icon"> <i class="zmdi zmdi-windows"></i> </span>
<span class="dropdown-heading">{{.Title}}</span>
<ul value="{{.Id}}" class="sub-menu">
{{range .Notes}}
<li>
<a href="javascript:void(0)" onclick="noteClick({{.Id}})" value="{{.Id}}">{{.Title}}</a>
</li>
{{end}}
</ul>
</li>
{{end}}
</ul>
</nav>
<div class="dim-overlay"></div>
<main>
<div id="editor" class="editor"></div>
<nav class="note-nav">
<input type="checkbox" id="joacims-menu"/>
<label for="joacims-menu"><span><img src="/static/img/menu.png"
style="width: 25px;height: 25px;"> </span></label>
style="width: 23px;height: 23px;"> </span></label>
<nav>
<a href="javascript:void(0)" id="saveNote">保存笔记</a>
<a href="/" target="_blank">首页</a>
<a href="javascript:void(0)" id="newNote">新增笔记</a>
<a href="/me/note" id="newNoteColl">管理文件夹</a>
<a href="javascript:void(0)" id="newNoteColl">新增文件夹</a>
<a href="javascript:void(0)" id="delNote">删除笔记</a>
<a href="/me/blog" target="_blank">个人中心</a>
<a href="/me/info" target="_blank">个人中心</a>
</nav>
</nav>
</div> <!-- cd-main-content -->
<nav id="cd-lateral-nav">
{{if eq 0 (.NoteColls|len)}}
<ul class="cd-navigation cd-single-item-wrapper">
<li><a href="/me/note">新增文件夹</a></li>
</ul>
{{end}}
<ul class="cd-navigation">
{{range .NoteColls}}
<li class="item-has-children">
<a href="javascript:void(0)">{{.Title}}</a>
<ul class="sub-menu" value="{{.Id}}">
{{range .Notes}}
<li>
<a href="javascript:void(0)" onclick="noteClick({{.Id}})" value="{{.Id}}">{{.Title}}</a>
</li>
{{end}}
</ul>
</li>
{{end}}
</ul>
</nav>
<div class="skin-container">
<select name="skin-select" class="skin-select">
<option value="between-clouds">默认皮肤</option>
<option value="red">红色</option>
<option value="green">绿色</option>
<option value="blue">天空蓝</option>
<option value="bnp">紫色</option>
<option value="orange">橘色</option>
<option value="greenish">墨绿</option>
<option value="greenish">木材色</option>
<option value="flickr">渐变红</option>
<option value="fb-messenger">渐变蓝</option>
<option value="moonlit">渐变墨绿</option>
<option value="park-life">渐变绿</option>
<option value="d2f">橙红渐变</option>
<option value="steel-man">蓝红渐变</option>
<option value="crazy-orange">紫橙渐变</option>
<option value="endless-river">水蓝渐变</option>
</select>
</div>
</main>
<script src="/static/js/menu.js"></script> <!-- Resource jQuery -->
<script type="text/javascript" src="/static/js/layer.js"></script>
</body>
<script src="/static/js/jslide/jquery.jside.menu.js"></script>
<!--<script src="/static/js/jslide/demo-only.js"></script>-->
<script src="https://cdn.bootcss.com/highlight.js/9.15.6/highlight.min.js"></script>
<script>
var storage=window.localStorage
$(document).ready(function () {
var skin = storage.getItem("skin");
$(".skin-select").val(skin);
$.mjSideMenu = $(".menu-container").jSideMenu({
jSidePosition: "position-left", //possible options position-left or position-right
jSideSticky: true, // menubar will be fixed on top, false to set static
jSideSkin: skin ? skin : "between-clouds", // to apply custom skin, just put its name in this string
});
$(".skin-select").on('change', function () {
var skin = $(".skin-select").val();
storage.setItem("skin",skin);
$(".menubar").attr('class', skin).addClass("menubar sticky");
$(".menu-container").attr('class', skin).addClass("menu-container position-left");
$(".menu-head").attr('class', skin).addClass("menu-head position-left");
});
});
</script>
<script>
hljs.initHighlightingOnLoad();
var E = window.wangEditor
var editor = new E('#editor')
var note = null
@ -95,12 +210,12 @@
editor.customConfig.uploadImgHooks = {
customInsert: function (insertImg, result, editor) {
insertImg(result.Data);
debugger
}
}
editor.create()
editor.txt.html("<p>点击右上角菜单新建或者选择笔记</p><p>点击左上角菜单进行新建笔记或者导航</p><span>一定要记得先新建笔记然后在编辑,ctrl+s 快捷键可以快速保存哦</span>");
$(".w-e-toolbar").append("<span class='current-title'>新增笔记</span>")
document.onkeydown = keyDown;
function keyDown(e) {
@ -117,7 +232,7 @@
function saveNote() {
if (!note || !note.Id) {
layer.msg('请在边菜单中选择笔记', function () {
layer.msg('请在边菜单中选择笔记', function () {
});
return
}
@ -128,37 +243,39 @@
return
}
$.post('/api/note/edit/' + note.Id, {
noteHtml: noteHtml
},
function (data) {
if (data.Status == 0) {
layer.msg("保存成功", {icon: 6});
} else if (data.Status == 401) {
window.location.href = "/login"
} else {
layer.msg("服务器异常", {icon: 5});
}
}, 'json')
noteHtml: noteHtml
},
function (data) {
if (data.Status == 0) {
layer.msg("保存成功", {icon: 6});
} else if (data.Status == 401) {
window.location.href = "/login"
} else {
layer.msg("服务器异常", {icon: 5});
}
}, 'json')
}
function noteClick(id) {
$.get('/api/note/' + id,
function (data) {
if (!data.Status) {
if (data.NoteHtml && data.NoteHtml.trim().length != 0) {
editor.txt.html(data.NoteHtml);
} else if (note) {
editor.txt.html("");
}
note = data
} else if (data.Status == 401) {
window.location.href = "/login"
} else if (data.Status == 403) {
layer.msg("暂无权限", {icon: 5});
} else {
layer.msg("服务器异常", {icon: 5});
function (data) {
if (!data.Status) {
if (data.NoteHtml && data.NoteHtml.trim().length != 0) {
editor.txt.html(data.NoteHtml);
$(".current-title").text(data.Title)
} else if (note) {
editor.txt.html("");
}
}, 'json')
note = data
} else if (data.Status == 401) {
window.location.href = "/login"
} else if (data.Status == 403) {
layer.msg("暂无权限", {icon: 5});
} else {
layer.msg("服务器异常", {icon: 5});
}
}, 'json')
}
@ -170,6 +287,7 @@
$(el).append(child)
if (!note || !note.Id) {
note = obj
$(".current-title").text(obj.Title)
}
return
}
@ -197,6 +315,52 @@
content: '/iframe/note.html' //iframe的url
});
})
$("#newNoteColl").click(function () {
layer.prompt({title: '请输入文件夹名称'}, function (val, index) {
if (val.trim().length < 3) {
layer.msg('文件夹名称最低三个字哦', function () {
});
layer.close(index);
return
}
$.post('/api/notecoll/save', {
title: val.trim()
},
function (data) {
if (data.Status == 0) {
layer.close(index);
parent.layer.msg("保存成功", {icon: 6});
var thtml = '<li class="has-sub"><span class="item-icon"> <i class="zmdi zmdi-windows"></i> </span>\n' +
' <span class="dropdown-heading dropdown-heading' + data.Data.Id + '">' + data.Data.Title + '' +
' <i class="zmdi zmdi-chevron-down arrow"></i></span>\n' +
' <ul value="' + data.Data.Id + '" class="sub-menu">\n' +
' </ul>\n' +
' </li>'
$(".menu-items").append(thtml)
$(".dropdown-heading" + data.Data.Id).click(function () {
var n = $(".has-sub").find("span:hover + ul li").length;
var h = $(".has-sub").find("span:hover + ul li").outerHeight();
var dropdown = h * n;
var todrop = $(".has-sub").find("span:hover + ul");
var nodrop = $(".has-sub ul");
$(todrop).animate({"height": dropdown}, 100);
$(this).find("i").toggleClass("arrowdown");
if ($(todrop).height() == dropdown) {
$(todrop).animate({"height": 0}, 100);
}
if ($(nodrop).height(dropdown)) {
$(nodrop).not(todrop).height(0);
$(".dropdown-heading").not(this).find("i").removeClass("arrowdown");
}
});
}
}, 'json')
});
})
$("#delNote").click(function () {
if (!note || !note.Id) {
@ -208,25 +372,25 @@
btn: ['确认', '手滑了'] //按钮
}, function () {
$.post('/api/note/del/' + note.Id,
function (data) {
if (data.Status == 0) {
var subMenu = $(".sub-menu li a")
$.each(subMenu, function (index, el) {
if ($(el).attr("value") == note.Id) {
$(el).remove()
return
}
})
note = null
layer.msg("删除成功", {icon: 6});
} else if (data.Status == 401) {
window.location.href = "/login"
} else if (data.Status == 403) {
layer.msg("暂无权限", {icon: 5});
} else {
layer.msg("服务器异常", {icon: 5});
}
}, 'json')
function (data) {
if (data.Status == 0) {
var subMenu = $(".sub-menu li a")
$.each(subMenu, function (index, el) {
if ($(el).attr("value") == note.Id) {
$(el).remove()
return
}
})
note = null
layer.msg("删除成功", {icon: 6});
} else if (data.Status == 401) {
window.location.href = "/login"
} else if (data.Status == 403) {
layer.msg("暂无权限", {icon: 5});
} else {
layer.msg("服务器异常", {icon: 5});
}
}, 'json')
}, function () {
});

2
views/uinfo.html

@ -63,7 +63,7 @@
//回调函数,可以传递给后台等等
var file = files[0];
console.log(file.name);
debugger
var formData = new FormData();
formData.append("imgfile",file );
if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(file.name))

13
views/ulike.html

@ -9,11 +9,14 @@
<div class="me-blog-root">
<div class="me-blog-list">
<ol class="breadcrumb">
<li>个人中心</li>
<li>我的收藏</li>
<li class="active">收藏列表</li>
</ol>
<div class="breadcrumb-container">
<span class="layui-breadcrumb">
<a href="/">首页</a>
<a href="">个人中心</a>
<a href="/me/like">我的收藏</a>
<a><cite>收藏列表</cite></a>
</span>
</div>
{{range .Page.List}}
<div>
<p><a href="/blog/{{.BlogId}}">{{.Blog.Title}}</a></p>

Chargement…
Annuler
Enregistrer