mirror of
https://github.com/filebrowser/filebrowser.git
synced 2025-05-25 03:22:59 +00:00
fix #9
This commit is contained in:
parent
49baf4fcf1
commit
963708855c
@ -82,6 +82,7 @@ module.exports = function(grunt) {
|
||||
'node_modules/codemirror/mode/sass/sass.js',
|
||||
'node_modules/codemirror/mode/htmlmixed/htmlmixed.js',
|
||||
'assets/src/js/highlight/highlight.pack.js',
|
||||
'node_modules/js-cookie/src/js.cookie.js'
|
||||
]
|
||||
}
|
||||
},
|
||||
|
4
assets/css/main.min.css
vendored
4
assets/css/main.min.css
vendored
File diff suppressed because one or more lines are too long
10
assets/js/app.min.js
vendored
10
assets/js/app.min.js
vendored
File diff suppressed because one or more lines are too long
2
assets/js/plugins.min.js
vendored
2
assets/js/plugins.min.js
vendored
File diff suppressed because one or more lines are too long
@ -25,7 +25,7 @@ $(document).on('ready pjax:success', function() {
|
||||
});
|
||||
|
||||
// Delete a file or a field in editor
|
||||
$(".delete").click(function(event) {
|
||||
$("body").on('click', '.delete', function(event) {
|
||||
event.preventDefault();
|
||||
button = $(this);
|
||||
|
||||
@ -49,11 +49,15 @@ $(document).on('ready pjax:success', function() {
|
||||
});
|
||||
} else {
|
||||
name = button.parent().parent().attr("for") || button.parent().parent().parent().attr("id");
|
||||
name = name.replace(/\[/, '\\[');
|
||||
name = name.replace(/\]/, '\\]');
|
||||
console.log(name)
|
||||
|
||||
$('#' + name).fadeOut().remove();
|
||||
$('label[for="' + name + '"]').fadeOut().remove();
|
||||
$('#' + name).fadeOut().remove();
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
// If it's editor page
|
||||
@ -62,6 +66,14 @@ $(document).on('ready pjax:success', function() {
|
||||
preview = $("#preview-area");
|
||||
textarea = $("#content-area");
|
||||
|
||||
$('body').on('keypress', 'input', function(event) {
|
||||
if (event.keyCode == 13) {
|
||||
event.preventDefault();
|
||||
$('input[value="Save"]').focus().click();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
// If it has a textarea
|
||||
if (textarea[0]) {
|
||||
options = {
|
||||
@ -154,10 +166,11 @@ $(document).on('ready pjax:success', function() {
|
||||
console.log(data);
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
// Adds one more field to the current group
|
||||
$(".add").click(function(event) {
|
||||
$("body").on('click', '.add', function(event) {
|
||||
event.preventDefault();
|
||||
|
||||
if ($("#new").length) {
|
||||
@ -167,10 +180,10 @@ $(document).on('ready pjax:success', function() {
|
||||
title = $(this).parent().parent();
|
||||
fieldset = title.parent();
|
||||
type = fieldset.data("type");
|
||||
name = fieldset.data("name");
|
||||
name = fieldset.attr("id");
|
||||
|
||||
if (title.is('h1')) {
|
||||
fieldset = $('.sidebar .content');
|
||||
fieldset = $('.frontmatter .container');
|
||||
fieldset.prepend('<div id="ghost"></div>');
|
||||
title = $('#ghost');
|
||||
type = "object";
|
||||
@ -180,24 +193,61 @@ $(document).on('ready pjax:success', function() {
|
||||
title.after('<input id="new" placeholder="Write the field name and press enter..."></input>');
|
||||
element = $("#new");
|
||||
|
||||
if (!Cookies.get('placeholdertip')) {
|
||||
Cookies.set('placeholdertip', 'true', {
|
||||
expires: 365
|
||||
});
|
||||
|
||||
notification({
|
||||
text: 'Write the field name and then press enter. If you want to create an array or an object, end the name with ":array" or ":object".',
|
||||
type: 'information'
|
||||
});
|
||||
}
|
||||
|
||||
$(element).keypress(function(event) {
|
||||
if (event.which == 13) {
|
||||
event.preventDefault();
|
||||
value = element.val();
|
||||
element.remove();
|
||||
|
||||
if (value == "") {
|
||||
element.remove();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (name == "undefined") {
|
||||
name = value
|
||||
} else {
|
||||
name = name + '[' + value + ']';
|
||||
elements = value.split(":")
|
||||
|
||||
if (elements.length > 2) {
|
||||
notification({
|
||||
text: "Invalid syntax. It must be 'name[:type]'.",
|
||||
type: 'error'
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
title.after('<input name="' + name + ':auto" id="' + name + '"></input><br>');
|
||||
title.after('<label for="' + name + '">' + value + ' <span class="actions"><button class="delete"><i class="fa fa-minus"></i></button></span></label>');
|
||||
element.remove();
|
||||
|
||||
if (name == "undefined") {
|
||||
name = elements[0]
|
||||
} else {
|
||||
name = name + '[' + elements[0] + ']';
|
||||
}
|
||||
|
||||
if (elements.length == 1) {
|
||||
title.after('<input name="' + name + ':auto" id="' + name + '"></input><br>');
|
||||
title.after('<label for="' + name + '">' + value + ' <span class="actions"><button class="delete"><i class="fa fa-minus"></i></button></span></label>');
|
||||
} else {
|
||||
var fieldset = "<fieldset id=\"{{ $value.Name }}\" data-type=\"{{ $value.Type }}\">\r\n<h3>{{ $value.Title }}\r\n<span class=\"actions\">\r\n<button class=\"add\"><i class=\"fa fa-plus\"><\/i><\/button>\r\n<button class=\"delete\"><i class=\"fa fa-minus\"><\/i><\/button>\r\n<\/span>\r\n<\/h3>\r\n<\/fieldset>";
|
||||
|
||||
if (elements[1] == "array") {
|
||||
fieldset = fieldset.replace("{{ $value.Type }}", "array");
|
||||
} else {
|
||||
fieldset = fieldset.replace("{{ $value.Type }}", "object");
|
||||
}
|
||||
|
||||
fieldset = fieldset.replace("{{ $value.Title }}", elements[0]);
|
||||
fieldset = fieldset.replace("{{ $value.Name }}", name);
|
||||
title.after(fieldset);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
@ -211,13 +261,5 @@ $(document).on('ready pjax:success', function() {
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$('body').on('keypress', 'input', function(event) {
|
||||
if (event.keyCode == 13) {
|
||||
event.preventDefault();
|
||||
$('input[value="Save"]').focus().click();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
@ -68,4 +68,15 @@ notification = function(options) {
|
||||
|
||||
options = $.extend({}, defaults, options);
|
||||
noty(options);
|
||||
|
||||
if (!Cookies.get('stickynoties') && !options.timeout) {
|
||||
Cookies.set('stickynoties', 'true', {
|
||||
expires: 365
|
||||
});
|
||||
|
||||
notification({
|
||||
text: "Some notifications are sticky. If it doesn't go away, click to dismiss it.",
|
||||
type: 'information'
|
||||
});
|
||||
}
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
#loading {
|
||||
position: fixed;
|
||||
height: calc(100% - 3em);
|
||||
width: 100%;
|
||||
top: 3em;
|
||||
background-color: rgba(0, 0, 0, 0.6);
|
||||
z-index: 99999999;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.double-bounce {
|
||||
width: 5em;
|
||||
height: 5em;
|
||||
margin: 0 auto;
|
||||
position: relative;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
|
||||
.double-bounce .child {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 50%;
|
||||
background-color: #fff;
|
||||
opacity: .6;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
-webkit-animation: doubleBounce 2s infinite ease-in-out;
|
||||
animation: doubleBounce 2s infinite ease-in-out;
|
||||
}
|
||||
|
||||
.double-bounce .double-bounce2 {
|
||||
-webkit-animation-delay: -1.0s;
|
||||
animation-delay: -1.0s;
|
||||
}
|
||||
|
||||
@-webkit-keyframes doubleBounce {
|
||||
0%,
|
||||
100% {
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0);
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes doubleBounce {
|
||||
0%,
|
||||
100% {
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0);
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
@ -97,6 +97,10 @@
|
||||
border-top: 1px solid rgba(0,0,0,.1);
|
||||
}
|
||||
|
||||
.frontmatter-only fieldset:first-child {
|
||||
border-bottom: 1px solid rgba(0,0,0,.1);
|
||||
}
|
||||
|
||||
.frontmatter-only h3 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
@ -24,13 +24,17 @@ form label {
|
||||
margin : .1em 0 0;
|
||||
}
|
||||
|
||||
form fieldset {
|
||||
fieldset {
|
||||
border : 0;
|
||||
margin : 1em 0 0;
|
||||
padding : 1em 0 0;
|
||||
border-top: 1px solid rgba(255, 255, 255, 0.25);
|
||||
}
|
||||
|
||||
fieldset:first-child {
|
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.25);
|
||||
}
|
||||
|
||||
input[type="file"] {
|
||||
display: none;
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
#noty_topRight_layout_container {
|
||||
font-family : sans-serif;
|
||||
top : 3.5em !important;
|
||||
right : .5em !important;
|
||||
top : 4em !important;
|
||||
right : 1em !important;
|
||||
position : fixed !important;
|
||||
width : 310px;
|
||||
height : auto;
|
||||
@ -32,11 +32,21 @@
|
||||
position : relative;
|
||||
}
|
||||
|
||||
.noty_text {
|
||||
display : block;
|
||||
box-sizing : border-box;
|
||||
margin-left: 3em;
|
||||
top : 1em;
|
||||
}
|
||||
|
||||
.noty_icon {
|
||||
position : absolute;
|
||||
left : 0;
|
||||
top : 0;
|
||||
box-sizing : border-box;
|
||||
height : 100%;
|
||||
padding : 1em;
|
||||
margin-left : -1em;
|
||||
margin-right : .9em;
|
||||
background-color : rgba(0,0,0,0.1);
|
||||
background-color : rgba(0,0,0,.1);
|
||||
border-top-left-radius : .3em;
|
||||
border-bottom-left-radius: .3em;
|
||||
text-align : center;
|
||||
|
@ -1,7 +1,6 @@
|
||||
@import "navigation";
|
||||
@import "scrollbar";
|
||||
@import "notifications";
|
||||
@import "animations";
|
||||
@import 'editor';
|
||||
@import 'forms';
|
||||
@import "browse";
|
||||
|
@ -106,10 +106,10 @@ func handleArrays(content interface{}, parent *frontmatter, name string) *frontm
|
||||
c.Type = "array"
|
||||
c.Title = name
|
||||
|
||||
if parent.Type == "object" && parent.Name == mainName {
|
||||
if parent.Name == mainName {
|
||||
c.Name = name
|
||||
} else {
|
||||
c.Name = parent.Name + "[" + c.Name + "]"
|
||||
c.Name = parent.Name + "[" + name + "]"
|
||||
}
|
||||
|
||||
c.Content = rawToPretty(content, c)
|
||||
|
@ -22,6 +22,7 @@
|
||||
"font-awesome": "^4.4.0",
|
||||
"jquery": "^2.1.4",
|
||||
"jquery-serializejson": "^2.5.0",
|
||||
"js-cookie": "^2.0.3",
|
||||
"normalize.css": "^3.0.3",
|
||||
"noty": "^2.3.6",
|
||||
"perfect-scrollbar": "^0.6.4",
|
||||
@ -37,4 +38,4 @@
|
||||
"grunt-contrib-watch": "^0.6.1",
|
||||
"napa": "^1.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -29,13 +29,6 @@
|
||||
<div id="content">
|
||||
{{ template "content" . }}
|
||||
</div>
|
||||
|
||||
<div id="loading">
|
||||
<div class="double-bounce">
|
||||
<div class="child double-bounce1"></div>
|
||||
<div class="child double-bounce2"></div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
@ -1,9 +1,9 @@
|
||||
{{ define "frontmatter" }} {{ range $key, $value := . }} {{ if or (eq $value.Type "object") (eq $value.Type "array") }}
|
||||
<fieldset id="{{ $value.Name }}" data-name="{{ $value.Name }}" data-type="{{ $value.Type }}">
|
||||
<fieldset id="{{ $value.Name }}" data-type="{{ $value.Type }}">
|
||||
<h3>{{ SplitCapitalize $value.Title }}
|
||||
<span class="actions">
|
||||
<button class="delete"><i class="fa fa-minus"></i></button>
|
||||
<button class="add"><i class="fa fa-plus"></i></button>
|
||||
<button class="delete"><i class="fa fa-minus"></i></button>
|
||||
</span>
|
||||
</h3>
|
||||
{{ template "frontmatter" $value.Content }}
|
||||
|
Loading…
x
Reference in New Issue
Block a user