Multiple minor improvements and bugfixes regarding the new templates:
* Add API settings in `configure.html` * Fix textarea autoresize * Load user.css from data folder * Move fold/expand all button to the right and fix an issue with already folded items * Reset datetime display to international datetime * Temporarilly remove JS login panel (need improvement and integration with the plugin system) * Body background is slightly lighter * Fix an issue where thumbnails were hidden by description * Fix an issue where private orange bar wasn't displayed with thumbnails * Remove the gradient bar behind titles * Fix empty bookmarklet name in Firefox
This commit is contained in:
parent
430ff07102
commit
7040169069
8 changed files with 116 additions and 42 deletions
|
@ -183,6 +183,36 @@ <h2 class="window-title">{'Configure'|t}</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="pure-g">
|
||||||
|
<div class="pure-u-lg-{$ratioLabel} pure-u-{$ratioLabelMobile}">
|
||||||
|
<div class="form-label">
|
||||||
|
<label for="apiEnabled">
|
||||||
|
<span class="label-name">{'Enable REST API'|t}</span><br>
|
||||||
|
<span class="label-desc">{'Allow third party software to use Shaarli such as mobile application'|t}</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="pure-u-lg-{$ratioInput} pure-u-{$ratioInputMobile}">
|
||||||
|
<div class="form-input">
|
||||||
|
<input type="checkbox" name="apiEnabled" id="apiEnabled"
|
||||||
|
{if="$api_enabled"}checked{/if}/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="pure-g">
|
||||||
|
<div class="pure-u-lg-{$ratioLabel} pure-u-1">
|
||||||
|
<div class="form-label">
|
||||||
|
<label for="apiSecret">
|
||||||
|
<span class="label-name">{'API secret'|t}</span><br>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="pure-u-lg-{$ratioLabel} pure-u-1">
|
||||||
|
<div class="form-input">
|
||||||
|
<input type="text" name="apiSecret" id="apiSecret" size="50" value="{$api_secret}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="center">
|
<div class="center">
|
||||||
<input type="submit" value="{'Save'|t}" name="save">
|
<input type="submit" value="{'Save'|t}" name="save">
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* General
|
* General
|
||||||
*/
|
*/
|
||||||
body {
|
body {
|
||||||
background: #c5c5c5;
|
background: #d0d0d0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.strong {
|
.strong {
|
||||||
|
@ -268,6 +268,12 @@ pre {
|
||||||
width: 200px;
|
width: 200px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* because chrome */
|
||||||
|
#header-login-form input[type="text"]::-webkit-input-placeholder,
|
||||||
|
#header-login-form input[type="password"]::-webkit-input-placeholder {
|
||||||
|
color: #777777;
|
||||||
|
}
|
||||||
|
|
||||||
.subheader-form {
|
.subheader-form {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
|
@ -384,6 +390,10 @@ pre {
|
||||||
color: #252525;
|
color: #252525;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.toolbar-plugin input[type="submit"]:hover {
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 64em) {
|
@media screen and (max-width: 64em) {
|
||||||
.toolbar-plugin input[type="text"] {
|
.toolbar-plugin input[type="text"] {
|
||||||
width: 70%;
|
width: 70%;
|
||||||
|
@ -484,19 +494,6 @@ pre {
|
||||||
background: #f5f5f5;
|
background: #f5f5f5;
|
||||||
}
|
}
|
||||||
|
|
||||||
.linklist-item.private .linklist-item-title::before {
|
|
||||||
position: absolute;
|
|
||||||
left: 3px;
|
|
||||||
top: 0;
|
|
||||||
display: block;
|
|
||||||
content:"";
|
|
||||||
background: #F89406;
|
|
||||||
height: 95%;
|
|
||||||
width: 2px;
|
|
||||||
margin-top: 3px;
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.linklist-item-title h2 {
|
.linklist-item-title h2 {
|
||||||
padding: 3px 10px 0 10px;
|
padding: 3px 10px 0 10px;
|
||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
|
@ -563,14 +560,13 @@ pre {
|
||||||
.linklist-item-description {
|
.linklist-item-description {
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
background: #f5f5f5;
|
|
||||||
font-family: Roboto Slab, Arial, sans-serif;
|
font-family: Roboto Slab, Arial, sans-serif;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
color: #252525;
|
color: #252525;
|
||||||
line-height: 1.3em;
|
line-height: 1.3em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.linklist-item.private .linklist-item-description::before {
|
{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 3px;
|
left: 3px;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
@ -596,9 +592,29 @@ pre {
|
||||||
}
|
}
|
||||||
|
|
||||||
.linklist-item-thumbnail {
|
.linklist-item-thumbnail {
|
||||||
|
position: relative;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
float: left;
|
float: left;
|
||||||
|
z-index: 50;
|
||||||
|
}
|
||||||
|
|
||||||
|
.linklist-item.private .linklist-item-title::before,
|
||||||
|
.linklist-item.private .linklist-item-description::before,
|
||||||
|
.linklist-item.private .linklist-item-thumbnail::before {
|
||||||
|
position: absolute;
|
||||||
|
left: 3px;
|
||||||
|
top: 0;
|
||||||
|
display: block;
|
||||||
|
content:"";
|
||||||
|
background: #F89406;
|
||||||
|
height: 95%;
|
||||||
|
width: 2px;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.linklist-item.private .linklist-item-title::before {
|
||||||
|
margin-top: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.linklist-item-infos {
|
.linklist-item-infos {
|
||||||
|
@ -702,15 +718,6 @@ pre {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.page-form .window-title:after {
|
|
||||||
display: block;
|
|
||||||
content:"";
|
|
||||||
background: linear-gradient(to right, #f5f5f5, #1b926c, #f5f5f5);
|
|
||||||
height: 1px;
|
|
||||||
width: 80%;
|
|
||||||
margin: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-form .window-subtitle {
|
.page-form .window-subtitle {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
@ -740,7 +747,7 @@ pre {
|
||||||
}
|
}
|
||||||
|
|
||||||
.page-form textarea {
|
.page-form textarea {
|
||||||
height: 240px;
|
min-height: 240px;
|
||||||
padding: 15px 5px 3px 15px;
|
padding: 15px 5px 3px 15px;
|
||||||
resize: vertical;
|
resize: vertical;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
@ -1163,7 +1170,7 @@ div.awesomplete > ul {
|
||||||
|
|
||||||
.daily-entry-thumbnail {
|
.daily-entry-thumbnail {
|
||||||
float: left;
|
float: left;
|
||||||
margin: 15px 5px 5px 5px;
|
margin: 15px 5px 5px 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.daily-entry-description a {
|
.daily-entry-description a {
|
||||||
|
@ -1178,3 +1185,10 @@ div.awesomplete > ul {
|
||||||
.daily-entry-description a:visited {
|
.daily-entry-description a:visited {
|
||||||
color: #20b988;
|
color: #20b988;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Fix empty bookmarklet name in Firefox
|
||||||
|
*/
|
||||||
|
.pure-button {
|
||||||
|
-moz-user-select: auto;
|
||||||
|
}
|
||||||
|
|
|
@ -33,8 +33,7 @@ <h2 class="window-title">{'Shaare'|t}</h2>
|
||||||
<label for="lf_description">{'Description'|t}</label>
|
<label for="lf_description">{'Description'|t}</label>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<textarea name="lf_description" id="lf_description" onkeyup="textAreaAdjust(this)"
|
<textarea name="lf_description" id="lf_description">{$link.description}</textarea>
|
||||||
>{$link.description}</textarea>
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<label for="lf_tags">{'Tags'|t}</label>
|
<label for="lf_tags">{'Tags'|t}</label>
|
||||||
|
@ -46,7 +45,7 @@ <h2 class="window-title">{'Shaare'|t}</h2>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<input type="checkbox" name="lf_private" id="lf_private"
|
<input type="checkbox" name="lf_private" id="lf_private"
|
||||||
{if="($link_is_new && $default_private_links) || $link.private == true"}
|
{if="($link_is_new && $default_private_links || $link.private == true)"}
|
||||||
checked="checked"
|
checked="checked"
|
||||||
{/if}>
|
{/if}>
|
||||||
<label for="lf_private">{'Private'|t}</label>
|
<label for="lf_private">{'Private'|t}</label>
|
||||||
|
@ -62,7 +61,7 @@ <h2 class="window-title">{'Shaare'|t}</h2>
|
||||||
<div class="submit-buttons center">
|
<div class="submit-buttons center">
|
||||||
<input type="submit" value="{'Save'|t}" name="save_edit" class="">
|
<input type="submit" value="{'Save'|t}" name="save_edit" class="">
|
||||||
{if="!$link_is_new"}
|
{if="!$link_is_new"}
|
||||||
<a href="?delete_link&lf_linkdate={$value.id}&token={$token}"
|
<a href="?delete_link&lf_linkdate={$link.id}&token={$token}"
|
||||||
title="" name="delete_link" class="button button-red confirm-delete">
|
title="" name="delete_link" class="button button-red confirm-delete">
|
||||||
{'Delete'|t}
|
{'Delete'|t}
|
||||||
</a>
|
</a>
|
||||||
|
@ -75,7 +74,7 @@ <h2 class="window-title">{'Shaare'|t}</h2>
|
||||||
{/if}
|
{/if}
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
{if="$source !== 'firefoxsocialapi'"}
|
{if="$source !== 'firefoxsocialapi' && $source !== 'bookmarklet'"}
|
||||||
{include="page.footer"}
|
{include="page.footer"}
|
||||||
{/if}
|
{/if}
|
||||||
<script>
|
<script>
|
||||||
|
@ -87,12 +86,6 @@ <h2 class="window-title">{'Shaare'|t}</h2>
|
||||||
} else {
|
} else {
|
||||||
document.linkform.lf_tags.focus();
|
document.linkform.lf_tags.focus();
|
||||||
}
|
}
|
||||||
function textAreaAdjust(el) {
|
|
||||||
el.style.height = (el.scrollHeight > el.clientHeight) ? (el.scrollHeight) + "px" : (el.clientHeight - 18) + "px";
|
|
||||||
}
|
|
||||||
(function (window, document) {
|
|
||||||
textAreaAdjust(document.linkform.lf_description)
|
|
||||||
})(this, this.document);
|
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<link type="text/css" rel="stylesheet" href="inc/awesomplete.css#" />
|
<link type="text/css" rel="stylesheet" href="inc/awesomplete.css#" />
|
||||||
<link type="text/css" rel="stylesheet" href="css/shaarli.css" />
|
<link type="text/css" rel="stylesheet" href="css/shaarli.css" />
|
||||||
{if="is_file('inc/user.css')"}
|
{if="is_file('inc/user.css')"}
|
||||||
<link type="text/css" rel="stylesheet" href="inc/user.css#" />
|
<link type="text/css" rel="stylesheet" href="data/user.css#" />
|
||||||
{/if}
|
{/if}
|
||||||
{loop="$plugins_includes.css_files"}
|
{loop="$plugins_includes.css_files"}
|
||||||
<link type="text/css" rel="stylesheet" href="{$value}#"/>
|
<link type="text/css" rel="stylesheet" href="{$value}#"/>
|
||||||
|
|
|
@ -84,7 +84,13 @@ window.onload = function () {
|
||||||
[].forEach.call(foldAllButtons, function (foldAllButton) {
|
[].forEach.call(foldAllButtons, function (foldAllButton) {
|
||||||
foldAllButton.addEventListener('click', function (event) {
|
foldAllButton.addEventListener('click', function (event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
var state = foldAllButton.firstElementChild.getAttribute('class').indexOf('down') != -1 ? 'down' : 'up';
|
||||||
[].forEach.call(foldButtons, function (foldButton) {
|
[].forEach.call(foldButtons, function (foldButton) {
|
||||||
|
if (foldButton.firstElementChild.classList.contains('fa-chevron-up') && state == 'down'
|
||||||
|
|| foldButton.firstElementChild.classList.contains('fa-chevron-down') && state == 'up'
|
||||||
|
) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// Retrieve description
|
// Retrieve description
|
||||||
var description = null;
|
var description = null;
|
||||||
var thumbnail = null;
|
var thumbnail = null;
|
||||||
|
@ -225,4 +231,32 @@ window.onload = function () {
|
||||||
anchor.style.paddingTop = 0;
|
anchor.style.paddingTop = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Text area resizer
|
||||||
|
*/
|
||||||
|
var description = document.getElementById('lf_description');
|
||||||
|
var observe = function (element, event, handler) {
|
||||||
|
element.addEventListener(event, handler, false);
|
||||||
|
};
|
||||||
|
function init () {
|
||||||
|
function resize () {
|
||||||
|
description.style.height = 'auto';
|
||||||
|
description.style.height = description.scrollHeight+10+'px';
|
||||||
|
}
|
||||||
|
/* 0-timeout to get the already changed text */
|
||||||
|
function delayedResize () {
|
||||||
|
window.setTimeout(resize, 0);
|
||||||
|
}
|
||||||
|
observe(description, 'change', resize);
|
||||||
|
observe(description, 'cut', delayedResize);
|
||||||
|
observe(description, 'paste', delayedResize);
|
||||||
|
observe(description, 'drop', delayedResize);
|
||||||
|
observe(description, 'keydown', delayedResize);
|
||||||
|
|
||||||
|
resize();
|
||||||
|
}
|
||||||
|
if (description != null) {
|
||||||
|
init();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -174,7 +174,7 @@ <h2>
|
||||||
{$updated=$value.updated_timestamp ? 'Edited: '. strftime('%c', $value.updated_timestamp) : 'Permalink'}
|
{$updated=$value.updated_timestamp ? 'Edited: '. strftime('%c', $value.updated_timestamp) : 'Permalink'}
|
||||||
<span class="linkdate" title="{$updated}">
|
<span class="linkdate" title="{$updated}">
|
||||||
<i class="fa fa-clock-o"></i>
|
<i class="fa fa-clock-o"></i>
|
||||||
{function="strftime('%d %B %Y %H:%M', $value.timestamp)"}{if="$value.updated_timestamp"}*{/if}
|
{function="strftime('%c', $value.timestamp)"}{if="$value.updated_timestamp"}*{/if}
|
||||||
·
|
·
|
||||||
</span>
|
</span>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
class={if="$privateonly"}"filter-on"{else}"filter-off"{/if}
|
class={if="$privateonly"}"filter-on"{else}"filter-off"{/if}
|
||||||
><i class="fa fa-key"></i></a>
|
><i class="fa fa-key"></i></a>
|
||||||
{/if}
|
{/if}
|
||||||
<a href="#" class="filter-off fold-all" title="Fold all">
|
<a href="#" class="filter-off fold-all pure-u-lg-0" title="Fold all">
|
||||||
<i class="fa fa-chevron-up"></i>
|
<i class="fa fa-chevron-up"></i>
|
||||||
</a>
|
</a>
|
||||||
{loop="$action_plugin"}
|
{loop="$action_plugin"}
|
||||||
|
@ -50,6 +50,9 @@
|
||||||
<form method="GET" class="pure-u-0 pure-u-lg-visible">
|
<form method="GET" class="pure-u-0 pure-u-lg-visible">
|
||||||
<input type="text" name="linksperpage" placeholder="133">
|
<input type="text" name="linksperpage" placeholder="133">
|
||||||
</form>
|
</form>
|
||||||
|
<a href="#" class="filter-off fold-all pure-u-0 pure-u-lg-visible" title="Fold all">
|
||||||
|
<i class="fa fa-chevron-up"></i>
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -76,7 +76,7 @@
|
||||||
</li>
|
</li>
|
||||||
{if="!isLoggedIn()"}
|
{if="!isLoggedIn()"}
|
||||||
<li class="pure-menu-item">
|
<li class="pure-menu-item">
|
||||||
<a href="?do=login" class="pure-menu-link subheader-opener"
|
<a href="?do=login" class="pure-menu-link"
|
||||||
data-open-id="header-login-form"
|
data-open-id="header-login-form"
|
||||||
id="login-button" title="{'Login'|t}">
|
id="login-button" title="{'Login'|t}">
|
||||||
<i class="fa fa-user"></i>
|
<i class="fa fa-user"></i>
|
||||||
|
|
Loading…
Reference in a new issue