@ -0,0 +1,129 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
class FreshRSS_update_Controller extends Minz_ActionController { |
||||||
|
public function firstAction() { |
||||||
|
$current_user = Minz_Session::param('currentUser', ''); |
||||||
|
if (!$this->view->loginOk && Minz_Configuration::isAdmin($current_user)) { |
||||||
|
Minz_Error::error( |
||||||
|
403, |
||||||
|
array('error' => array(_t('access_denied'))) |
||||||
|
); |
||||||
|
} |
||||||
|
|
||||||
|
invalidateHttpCache(); |
||||||
|
|
||||||
|
Minz_View::prependTitle(_t('update_system') . ' · '); |
||||||
|
$this->view->update_to_apply = false; |
||||||
|
$this->view->last_update_time = 'unknown'; |
||||||
|
$this->view->check_last_hour = false; |
||||||
|
$timestamp = (int)@file_get_contents(DATA_PATH . '/last_update.txt'); |
||||||
|
if (is_numeric($timestamp) && $timestamp > 0) { |
||||||
|
$this->view->last_update_time = timestamptodate($timestamp); |
||||||
|
$this->view->check_last_hour = (time() - 3600) <= $timestamp; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public function indexAction() { |
||||||
|
if (file_exists(UPDATE_FILENAME) && !is_writable(FRESHRSS_PATH)) { |
||||||
|
$this->view->message = array( |
||||||
|
'status' => 'bad', |
||||||
|
'title' => _t('damn'), |
||||||
|
'body' => _t('file_is_nok', FRESHRSS_PATH) |
||||||
|
); |
||||||
|
} elseif (file_exists(UPDATE_FILENAME)) { |
||||||
|
// There is an update file to apply! |
||||||
|
$this->view->update_to_apply = true; |
||||||
|
$this->view->message = array( |
||||||
|
'status' => 'good', |
||||||
|
'title' => _t('ok'), |
||||||
|
'body' => _t('update_can_apply') |
||||||
|
); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public function checkAction() { |
||||||
|
$this->view->change_view('update', 'index'); |
||||||
|
|
||||||
|
if (file_exists(UPDATE_FILENAME) || $this->view->check_last_hour) { |
||||||
|
// There is already an update file to apply: we don't need to check |
||||||
|
// the webserver! |
||||||
|
// Or if already check during the last hour, do nothing. |
||||||
|
Minz_Request::forward(array('c' => 'update')); |
||||||
|
|
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
$c = curl_init(FRESHRSS_UPDATE_WEBSITE); |
||||||
|
curl_setopt($c, CURLOPT_RETURNTRANSFER, true); |
||||||
|
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, true); |
||||||
|
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 2); |
||||||
|
$result = curl_exec($c); |
||||||
|
$c_status = curl_getinfo($c, CURLINFO_HTTP_CODE); |
||||||
|
$c_error = curl_error($c); |
||||||
|
curl_close($c); |
||||||
|
|
||||||
|
if ($c_status !== 200) { |
||||||
|
Minz_Log::error( |
||||||
|
'Error during update (HTTP code ' . $c_status . '): ' . $c_error |
||||||
|
); |
||||||
|
|
||||||
|
$this->view->message = array( |
||||||
|
'status' => 'bad', |
||||||
|
'title' => _t('damn'), |
||||||
|
'body' => _t('update_server_not_found', FRESHRSS_UPDATE_WEBSITE) |
||||||
|
); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
$res_array = explode("\n", $result, 2); |
||||||
|
$status = $res_array[0]; |
||||||
|
if (strpos($status, 'UPDATE') !== 0) { |
||||||
|
$this->view->message = array( |
||||||
|
'status' => 'bad', |
||||||
|
'title' => _t('damn'), |
||||||
|
'body' => _t('no_update') |
||||||
|
); |
||||||
|
|
||||||
|
@file_put_contents(DATA_PATH . '/last_update.txt', time()); |
||||||
|
|
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
$script = $res_array[1]; |
||||||
|
if (file_put_contents(UPDATE_FILENAME, $script) !== false) { |
||||||
|
Minz_Request::forward(array('c' => 'update')); |
||||||
|
} else { |
||||||
|
$this->view->message = array( |
||||||
|
'status' => 'bad', |
||||||
|
'title' => _t('damn'), |
||||||
|
'body' => _t('update_problem', 'Cannot save the update script') |
||||||
|
); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public function applyAction() { |
||||||
|
if (!file_exists(UPDATE_FILENAME) || !is_writable(FRESHRSS_PATH)) { |
||||||
|
Minz_Request::forward(array('c' => 'update'), true); |
||||||
|
} |
||||||
|
|
||||||
|
require(UPDATE_FILENAME); |
||||||
|
|
||||||
|
if (Minz_Request::isPost()) { |
||||||
|
save_info_update(); |
||||||
|
} |
||||||
|
|
||||||
|
if (!need_info_update()) { |
||||||
|
$res = apply_update(); |
||||||
|
|
||||||
|
if ($res === true) { |
||||||
|
@unlink(UPDATE_FILENAME); |
||||||
|
@file_put_contents(DATA_PATH . '/last_update.txt', time()); |
||||||
|
|
||||||
|
Minz_Request::good(_t('update_finished')); |
||||||
|
} else { |
||||||
|
Minz_Request::bad(_t('update_problem', $res), |
||||||
|
array('c' => 'update', 'a' => 'index')); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -1,25 +1,33 @@ |
|||||||
<ul class="nav nav-list aside"> |
<ul class="nav nav-list aside"> |
||||||
<li class="nav-header"><?php echo Minz_Translate::t ('configuration'); ?></li>
|
<li class="nav-header"><?php echo _t('configuration'); ?></li>
|
||||||
<li class="item<?php echo Minz_Request::actionName () == 'display' ? ' active' : ''; ?>">
|
<li class="item<?php echo Minz_Request::actionName() === 'display' ? ' active' : ''; ?>">
|
||||||
<a href="<?php echo _url ('configure', 'display'); ?>"><?php echo Minz_Translate::t ('display_configuration'); ?></a>
|
<a href="<?php echo _url('configure', 'display'); ?>"><?php echo _t('display_configuration'); ?></a>
|
||||||
</li> |
</li> |
||||||
<li class="item<?php echo Minz_Request::actionName () == 'reading' ? ' active' : ''; ?>">
|
<li class="item<?php echo Minz_Request::actionName() === 'reading' ? ' active' : ''; ?>">
|
||||||
<a href="<?php echo _url ('configure', 'reading'); ?>"><?php echo Minz_Translate::t ('reading_configuration'); ?></a>
|
<a href="<?php echo _url('configure', 'reading'); ?>"><?php echo _t('reading_configuration'); ?></a>
|
||||||
</li> |
</li> |
||||||
<li class="item<?php echo Minz_Request::actionName () == 'archiving' ? ' active' : ''; ?>">
|
<li class="item<?php echo Minz_Request::actionName() === 'archiving' ? ' active' : ''; ?>">
|
||||||
<a href="<?php echo _url ('configure', 'archiving'); ?>"><?php echo Minz_Translate::t ('archiving_configuration'); ?></a>
|
<a href="<?php echo _url('configure', 'archiving'); ?>"><?php echo _t('archiving_configuration'); ?></a>
|
||||||
</li> |
</li> |
||||||
<li class="item<?php echo Minz_Request::actionName () == 'sharing' ? ' active' : ''; ?>">
|
<li class="item<?php echo Minz_Request::actionName() === 'sharing' ? ' active' : ''; ?>">
|
||||||
<a href="<?php echo _url ('configure', 'sharing'); ?>"><?php echo Minz_Translate::t ('sharing'); ?></a>
|
<a href="<?php echo _url('configure', 'sharing'); ?>"><?php echo _t('sharing'); ?></a>
|
||||||
</li> |
</li> |
||||||
<li class="item<?php echo Minz_Request::actionName () == 'shortcut' ? ' active' : ''; ?>">
|
<li class="item<?php echo Minz_Request::actionName() === 'shortcut' ? ' active' : ''; ?>">
|
||||||
<a href="<?php echo _url ('configure', 'shortcut'); ?>"><?php echo Minz_Translate::t ('shortcuts'); ?></a>
|
<a href="<?php echo _url('configure', 'shortcut'); ?>"><?php echo _t('shortcuts'); ?></a>
|
||||||
</li> |
</li> |
||||||
<li class="item<?php echo Minz_Request::actionName () == 'queries' ? ' active' : ''; ?>">
|
<li class="item<?php echo Minz_Request::actionName() === 'queries' ? ' active' : ''; ?>">
|
||||||
<a href="<?php echo _url ('configure', 'queries'); ?>"><?php echo Minz_Translate::t ('queries'); ?></a>
|
<a href="<?php echo _url('configure', 'queries'); ?>"><?php echo _t('queries'); ?></a>
|
||||||
</li> |
</li> |
||||||
<li class="separator"></li> |
<li class="separator"></li> |
||||||
<li class="item<?php echo Minz_Request::actionName () == 'users' ? ' active' : ''; ?>">
|
<li class="item<?php echo Minz_Request::actionName() === 'users' ? ' active' : ''; ?>">
|
||||||
<a href="<?php echo _url ('configure', 'users'); ?>"><?php echo Minz_Translate::t ('users'); ?></a>
|
<a href="<?php echo _url('configure', 'users'); ?>"><?php echo _t('users'); ?></a>
|
||||||
</li> |
</li> |
||||||
|
<?php |
||||||
|
$current_user = Minz_Session::param('currentUser', ''); |
||||||
|
if (Minz_Configuration::isAdmin($current_user)) { |
||||||
|
?> |
||||||
|
<li class="item<?php echo Minz_Request::controllerName() === 'update' ? ' active' : ''; ?>">
|
||||||
|
<a href="<?php echo _url('update', 'index'); ?>"><?php echo _t('update'); ?></a>
|
||||||
|
</li> |
||||||
|
<?php } ?> |
||||||
</ul> |
</ul> |
||||||
|
@ -1,26 +1,37 @@ |
|||||||
<?php |
<?php |
||||||
$c = Minz_Request::controllerName (); |
$c = Minz_Request::controllerName(); |
||||||
$a = Minz_Request::actionName (); |
$a = Minz_Request::actionName(); |
||||||
$params = Minz_Request::params (); |
$params = Minz_Request::params(); |
||||||
$markReadUrl = Minz_Session::param ('markReadUrl'); |
$markReadUrl = Minz_Session::param('markReadUrl'); |
||||||
Minz_Session::_param ('markReadUrl', false); |
Minz_Session::_param('markReadUrl', false); |
||||||
?> |
?> |
||||||
|
|
||||||
|
<form id="mark-read-pagination" method="post" style="display: none"></form> |
||||||
|
|
||||||
<ul class="pagination"> |
<ul class="pagination"> |
||||||
<li class="item pager-next"> |
<li class="item pager-next"> |
||||||
<?php if (!empty($this->nextId)) { ?> |
<?php if (!empty($this->nextId)) { ?> |
||||||
<?php $params['next'] = $this->nextId; ?> |
<?php |
||||||
<a id="load_more" href="<?php echo Minz_Url::display (array ('c' => $c, 'a' => $a, 'params' => $params)); ?>"><?php echo Minz_Translate::t ('load_more'); ?></a>
|
$params['next'] = $this->nextId; |
||||||
|
$params['ajax'] = 1; |
||||||
|
?> |
||||||
|
<a id="load_more" href="<?php echo Minz_Url::display(array('c' => $c, 'a' => $a, 'params' => $params)); ?>">
|
||||||
|
<?php echo _t('load_more'); ?> |
||||||
|
</a> |
||||||
<?php } elseif ($markReadUrl) { ?> |
<?php } elseif ($markReadUrl) { ?> |
||||||
<a id="bigMarkAsRead" href="<?php echo $markReadUrl; ?>"<?php if ($this->conf->reading_confirm) { echo ' class="confirm"';} ?>>
|
<button id="bigMarkAsRead" |
||||||
<?php echo Minz_Translate::t ('nothing_to_load'); ?><br />
|
class="as-link <?php echo $this->conf->reading_confirm ? 'confirm' : ''; ?>"
|
||||||
<span class="bigTick">✓</span><br /> |
form="mark-read-pagination" |
||||||
<?php echo Minz_Translate::t ('mark_all_read'); ?> |
formaction="<?php echo $markReadUrl; ?>"
|
||||||
</a> |
type="submit"> |
||||||
|
<?php echo _t('nothing_to_load'); ?><br />
|
||||||
|
<span class="bigTick">✓</span><br /> |
||||||
|
<?php echo _t('mark_all_read'); ?> |
||||||
|
</button> |
||||||
<?php } else { ?> |
<?php } else { ?> |
||||||
<a id="bigMarkAsRead" href="."> |
<a id="bigMarkAsRead" href="."> |
||||||
<?php echo Minz_Translate::t ('nothing_to_load'); ?><br />
|
<?php echo _t('nothing_to_load'); ?><br />
|
||||||
</a> |
</a> |
||||||
<?php } ?> |
<?php } ?> |
||||||
</li> |
</li> |
||||||
</ul> |
</ul> |
||||||
|
@ -0,0 +1,33 @@ |
|||||||
|
<div class="prompt"> |
||||||
|
<h1><?php echo _t('auth_reset'); ?></h1>
|
||||||
|
|
||||||
|
<?php if (!empty($this->message)) { ?> |
||||||
|
<p class="alert <?php echo $this->message['status'] === 'bad' ? 'alert-error' : 'alert-warn'; ?>">
|
||||||
|
<span class="alert-head"><?php echo $this->message['title']; ?></span><br />
|
||||||
|
<?php echo $this->message['body']; ?> |
||||||
|
</p> |
||||||
|
<?php } ?> |
||||||
|
|
||||||
|
<?php if (!$this->no_form) { ?> |
||||||
|
<form id="crypto-form" method="post" action="<?php echo _url('index', 'resetAuth'); ?>">
|
||||||
|
<p class="alert alert-warn"> |
||||||
|
<span class="alert-head"><?php echo _t('attention'); ?></span><br />
|
||||||
|
<?php echo _t('auth_will_reset'); ?> |
||||||
|
</p> |
||||||
|
|
||||||
|
<div> |
||||||
|
<label for="username"><?php echo _t('username_admin'); ?></label>
|
||||||
|
<input type="text" id="username" name="username" size="16" required="required" maxlength="16" pattern="[0-9a-zA-Z]{1,16}" autofocus="autofocus" /> |
||||||
|
</div> |
||||||
|
<div> |
||||||
|
<label for="passwordPlain"><?php echo _t('password'); ?></label>
|
||||||
|
<input type="password" id="passwordPlain" required="required" /> |
||||||
|
<input type="hidden" id="challenge" name="challenge" /><br /> |
||||||
|
<noscript><strong><?php echo _t('javascript_should_be_activated'); ?></strong></noscript>
|
||||||
|
</div> |
||||||
|
<div> |
||||||
|
<button id="loginButton" type="submit" class="btn btn-important"><?php echo _t('submit'); ?></button>
|
||||||
|
</div> |
||||||
|
</form> |
||||||
|
<?php } ?> |
||||||
|
</div> |
@ -1,25 +1,48 @@ |
|||||||
<?php $this->partial('aside_stats'); ?> |
<?php $this->partial('aside_stats'); ?> |
||||||
|
|
||||||
<div class="post content"> |
<div class="post"> |
||||||
<a href="<?php echo _url('index', 'index'); ?>"><?php echo _t('back_to_rss_feeds'); ?></a>
|
<a href="<?php echo _url('index', 'index'); ?>"><?php echo _t('back_to_rss_feeds'); ?></a>
|
||||||
|
|
||||||
<h1><?php echo _t('stats_idle'); ?></h1>
|
<h1><?php echo _t('stats_idle'); ?></h1>
|
||||||
|
|
||||||
<?php |
<?php |
||||||
|
$current_url = urlencode(Minz_Url::display( |
||||||
|
array('c' => 'stats', 'a' => 'idle'), |
||||||
|
'php', true |
||||||
|
)); |
||||||
|
$nothing = true; |
||||||
foreach ($this->idleFeeds as $period => $feeds) { |
foreach ($this->idleFeeds as $period => $feeds) { |
||||||
if (!empty($feeds)) { |
if (!empty($feeds)) { |
||||||
|
$nothing = false; |
||||||
?> |
?> |
||||||
<div class="stat"> |
<div class="stat"> |
||||||
<h2><?php echo _t($period); ?></h2>
|
<h2><?php echo _t($period); ?></h2>
|
||||||
|
|
||||||
<ul> |
<form id="form-delete" method="post" style="display: none"></form> |
||||||
<?php foreach ($feeds as $feed) { ?> |
|
||||||
<li><a href="<?php echo _url('configure', 'feed', 'id', $feed['id']); ?>" title="<?php echo date('Y-m-d', $feed['last_date']); ?>"><?php echo $feed['name']; ?></a></li>
|
<?php foreach ($feeds as $feed) { ?> |
||||||
<?php } ?> |
<ul class="horizontal-list"> |
||||||
|
<li class="item"> |
||||||
|
<div class="stick"> |
||||||
|
<a class="btn" href="<?php echo _url('index', 'index', 'get', 'f_' . $feed['id']); ?>"><?php echo _i('link'); ?> <?php echo _t('filter'); ?></a>
|
||||||
|
<a class="btn" href="<?php echo _url('configure', 'feed', 'id', $feed['id']); ?>"><?php echo _i('configure'); ?> <?php echo _t('administration'); ?></a>
|
||||||
|
<button class="btn btn-attention confirm" form="form-delete" formaction="<?php echo _url('feed', 'delete', 'id', $feed['id'], 'r', $current_url); ?>"><?php echo _t('delete'); ?></button>
|
||||||
|
</div> |
||||||
|
</li> |
||||||
|
<li class="item"> |
||||||
|
<span title="<?php echo timestamptodate($feed['last_date'], false); ?>"><?php echo $feed['name']; ?> (<?php echo _t('number_articles', $feed['nb_articles']); ?>)</span>
|
||||||
|
</li> |
||||||
</ul> |
</ul> |
||||||
|
<?php } ?> |
||||||
</div> |
</div> |
||||||
<?php |
<?php |
||||||
} |
} |
||||||
} |
} |
||||||
|
|
||||||
|
if ($nothing) { |
||||||
?> |
?> |
||||||
|
<p class="alert alert-warn"> |
||||||
|
<span class="alert-head"><?php echo _t('stats_no_idle'); ?></span>
|
||||||
|
</p> |
||||||
|
<?php } ?> |
||||||
</div> |
</div> |
||||||
|
@ -0,0 +1,9 @@ |
|||||||
|
<?php $this->partial('aside_configure'); ?> |
||||||
|
|
||||||
|
<div class="post"> |
||||||
|
<a href="<?php echo _url('index', 'index'); ?>"><?php echo _t('back_to_rss_feeds'); ?></a>
|
||||||
|
|
||||||
|
<h1><?php echo _t('update_system'); ?></h1>
|
||||||
|
|
||||||
|
<?php ask_info_update(); ?> |
||||||
|
</div> |
@ -0,0 +1,36 @@ |
|||||||
|
<?php $this->partial('aside_configure'); ?> |
||||||
|
|
||||||
|
<div class="post"> |
||||||
|
<a href="<?php echo _url('index', 'index'); ?>"><?php echo _t('back_to_rss_feeds'); ?></a>
|
||||||
|
|
||||||
|
<h1><?php echo _t('update_system'); ?></h1>
|
||||||
|
|
||||||
|
<p> |
||||||
|
<?php echo _i('help'); ?> <?php echo _t('update_last', $this->last_update_time); ?> |
||||||
|
</p> |
||||||
|
|
||||||
|
<?php if (!empty($this->message)) { ?> |
||||||
|
<p class="alert <?php echo $this->message['status'] === 'bad' ? 'alert-error' : 'alert-warn'; ?>">
|
||||||
|
<span class="alert-head"><?php echo $this->message['title']; ?></span>
|
||||||
|
<?php echo $this->message['body']; ?> |
||||||
|
</p> |
||||||
|
<?php } elseif ($this->check_last_hour) { ?> |
||||||
|
<p class="alert alert-warn"> |
||||||
|
<span class="alert-head"><?php echo _t('damn'); ?></span>
|
||||||
|
<?php echo _t('no_update'); ?> |
||||||
|
</p> |
||||||
|
<?php } ?> |
||||||
|
|
||||||
|
<?php |
||||||
|
if (!$this->check_last_hour && |
||||||
|
(empty($this->message) || $this->message['status'] !== 'good')) { |
||||||
|
?> |
||||||
|
<p> |
||||||
|
<a href="<?php echo _url('update', 'check'); ?>" class="btn"><?php echo _t('update_check'); ?></a>
|
||||||
|
</p> |
||||||
|
<?php } ?> |
||||||
|
|
||||||
|
<?php if ($this->update_to_apply) { ?> |
||||||
|
<a class="btn btn-important" href="<?php echo _url('update', 'apply'); ?>"><?php echo _t('update_apply'); ?></a>
|
||||||
|
<?php } ?> |
||||||
|
</div> |
@ -1,698 +0,0 @@ |
|||||||
@charset "UTF-8"; |
|
||||||
|
|
||||||
/*=== GENERAL */ |
|
||||||
/*============*/ |
|
||||||
html, body { |
|
||||||
margin: 0; |
|
||||||
padding: 0; |
|
||||||
font-size: 100%; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Links */ |
|
||||||
a { |
|
||||||
text-decoration: none; |
|
||||||
} |
|
||||||
a:hover { |
|
||||||
text-decoration: underline; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Lists */ |
|
||||||
ul, ol, dd { |
|
||||||
margin: 0; |
|
||||||
padding: 0; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Titles */ |
|
||||||
h1 { |
|
||||||
margin: 0.6em 0 0.3em; |
|
||||||
font-size: 1.5em; |
|
||||||
line-height: 1.6em; |
|
||||||
} |
|
||||||
h2 { |
|
||||||
margin: 0.5em 0 0.25em; |
|
||||||
font-size: 1.3em; |
|
||||||
line-height: 2em; |
|
||||||
} |
|
||||||
h3 { |
|
||||||
margin: 0.5em 0 0.25em; |
|
||||||
font-size: 1.1em; |
|
||||||
line-height: 2em; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Paragraphs */ |
|
||||||
p { |
|
||||||
margin: 1em 0 0.5em; |
|
||||||
font-size: 1em; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Images */ |
|
||||||
img { |
|
||||||
height: auto; |
|
||||||
max-width: 100%; |
|
||||||
} |
|
||||||
img.favicon { |
|
||||||
height: 16px; |
|
||||||
width: 16px; |
|
||||||
vertical-align: middle; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Videos */ |
|
||||||
iframe, embed, object, video { |
|
||||||
max-width: 100%; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Forms */ |
|
||||||
legend { |
|
||||||
display: block; |
|
||||||
width: 100%; |
|
||||||
clear: both; |
|
||||||
} |
|
||||||
label { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
input { |
|
||||||
width: 180px; |
|
||||||
} |
|
||||||
textarea { |
|
||||||
width: 300px; |
|
||||||
} |
|
||||||
input, select, textarea { |
|
||||||
display: inline-block; |
|
||||||
max-width: 100%; |
|
||||||
} |
|
||||||
input[type="radio"], |
|
||||||
input[type="checkbox"] { |
|
||||||
width: 15px !important; |
|
||||||
min-height: 15px !important; |
|
||||||
} |
|
||||||
input.extend:focus { |
|
||||||
width: 300px; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== COMPONENTS */ |
|
||||||
/*===============*/ |
|
||||||
/*=== Forms */ |
|
||||||
.form-group:after { |
|
||||||
content: ""; |
|
||||||
display: block; |
|
||||||
clear: both; |
|
||||||
} |
|
||||||
.form-group.form-actions { |
|
||||||
min-width: 250px; |
|
||||||
} |
|
||||||
.form-group .group-name { |
|
||||||
display: block; |
|
||||||
float: left; |
|
||||||
width: 200px; |
|
||||||
} |
|
||||||
.form-group .group-controls { |
|
||||||
min-width: 250px; |
|
||||||
margin: 0 0 0 220px; |
|
||||||
} |
|
||||||
.form-group .group-controls .control { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Buttons */ |
|
||||||
.stick { |
|
||||||
display: inline-block; |
|
||||||
white-space: nowrap; |
|
||||||
} |
|
||||||
.btn, |
|
||||||
a.btn { |
|
||||||
display: inline-block; |
|
||||||
cursor: pointer; |
|
||||||
overflow: hidden; |
|
||||||
} |
|
||||||
.btn-important { |
|
||||||
font-weight: bold; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Navigation */ |
|
||||||
.nav-list .nav-header, |
|
||||||
.nav-list .item { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.nav-list .item, |
|
||||||
.nav-list .item > a { |
|
||||||
display: block; |
|
||||||
overflow: hidden; |
|
||||||
white-space: nowrap; |
|
||||||
text-overflow: ellipsis; |
|
||||||
} |
|
||||||
.nav-head { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.nav-head .item { |
|
||||||
display: inline-block; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Horizontal-list */ |
|
||||||
.horizontal-list { |
|
||||||
display: table; |
|
||||||
table-layout: fixed; |
|
||||||
width: 100%; |
|
||||||
} |
|
||||||
.horizontal-list .item { |
|
||||||
display: table-cell; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Dropdown */ |
|
||||||
.dropdown { |
|
||||||
position: relative; |
|
||||||
display: inline-block; |
|
||||||
} |
|
||||||
.dropdown-target { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
.dropdown-menu { |
|
||||||
display: none; |
|
||||||
min-width: 200px; |
|
||||||
margin: 0; |
|
||||||
position: absolute; |
|
||||||
right: 0; |
|
||||||
background: #fff; |
|
||||||
border: 1px solid #aaa; |
|
||||||
} |
|
||||||
.dropdown-header { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.dropdown-menu > .item { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.dropdown-menu > .item > a, |
|
||||||
.dropdown-menu > .item > span { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.dropdown-menu > .item[aria-checked="true"] > a:before { |
|
||||||
content: '✓'; |
|
||||||
} |
|
||||||
.dropdown-menu .input { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.dropdown-menu .input select, |
|
||||||
.dropdown-menu .input input { |
|
||||||
display: block; |
|
||||||
max-width: 95%; |
|
||||||
} |
|
||||||
.dropdown-target:target ~ .dropdown-menu { |
|
||||||
display: block; |
|
||||||
z-index: 10; |
|
||||||
} |
|
||||||
.dropdown-close { |
|
||||||
display: inline; |
|
||||||
} |
|
||||||
.dropdown-close a { |
|
||||||
font-size: 0; |
|
||||||
position: fixed; |
|
||||||
top: 0; bottom: 0; |
|
||||||
left: 0; right: 0; |
|
||||||
display: block; |
|
||||||
z-index: -10; |
|
||||||
} |
|
||||||
.separator { |
|
||||||
display: block; |
|
||||||
height: 0; |
|
||||||
border-bottom: 1px solid #aaa; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Alerts */ |
|
||||||
.alert { |
|
||||||
display: block; |
|
||||||
width: 90%; |
|
||||||
} |
|
||||||
.group-controls .alert { |
|
||||||
width: 100% |
|
||||||
} |
|
||||||
.alert-head { |
|
||||||
margin: 0; |
|
||||||
font-weight: bold; |
|
||||||
} |
|
||||||
.alert ul { |
|
||||||
margin: 5px 20px; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Icons */ |
|
||||||
.icon { |
|
||||||
display: inline-block; |
|
||||||
width: 16px; |
|
||||||
height: 16px; |
|
||||||
vertical-align: middle; |
|
||||||
line-height: 16px; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Pagination */ |
|
||||||
.pagination { |
|
||||||
display: table; |
|
||||||
width: 100%; |
|
||||||
margin: 0; |
|
||||||
padding: 0; |
|
||||||
table-layout: fixed; |
|
||||||
} |
|
||||||
.pagination .item { |
|
||||||
display: table-cell; |
|
||||||
} |
|
||||||
.pagination .pager-first, |
|
||||||
.pagination .pager-previous, |
|
||||||
.pagination .pager-next, |
|
||||||
.pagination .pager-last { |
|
||||||
width: 100px; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== STRUCTURE */ |
|
||||||
/*===============*/ |
|
||||||
/*=== Header */ |
|
||||||
.header { |
|
||||||
display: table; |
|
||||||
width: 100%; |
|
||||||
table-layout: fixed; |
|
||||||
} |
|
||||||
.header > .item { |
|
||||||
display: table-cell; |
|
||||||
} |
|
||||||
.header > .item.title { |
|
||||||
width: 250px; |
|
||||||
white-space: nowrap; |
|
||||||
} |
|
||||||
.header > .item.title h1 { |
|
||||||
display: inline-block; |
|
||||||
} |
|
||||||
.header > .item.title .logo { |
|
||||||
display: inline-block; |
|
||||||
height: 32px; |
|
||||||
width: 32px; |
|
||||||
vertical-align: middle; |
|
||||||
} |
|
||||||
.header > .item.configure { |
|
||||||
width: 100px; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Body */ |
|
||||||
#global { |
|
||||||
display: table; |
|
||||||
width: 100%; |
|
||||||
height: 100%; |
|
||||||
table-layout: fixed; |
|
||||||
} |
|
||||||
.aside { |
|
||||||
display: table-cell; |
|
||||||
height: 100%; |
|
||||||
width: 250px; |
|
||||||
vertical-align: top; |
|
||||||
} |
|
||||||
.aside.aside_flux { |
|
||||||
background: #fff; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Aside main page (categories) */ |
|
||||||
.categories { |
|
||||||
list-style: none; |
|
||||||
margin: 0; |
|
||||||
} |
|
||||||
.state_unread li:not(.active)[data-unread="0"] { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
.category { |
|
||||||
display: block; |
|
||||||
overflow: hidden; |
|
||||||
white-space: nowrap; |
|
||||||
text-overflow: ellipsis; |
|
||||||
} |
|
||||||
.category .btn:not([data-unread="0"]):after { |
|
||||||
content: attr(data-unread); |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Aside main page (feeds) */ |
|
||||||
.categories .feeds { |
|
||||||
width: 100%; |
|
||||||
list-style: none; |
|
||||||
} |
|
||||||
.categories .feeds:not(.active) { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
.categories .feeds .feed { |
|
||||||
display: inline-block; |
|
||||||
overflow: hidden; |
|
||||||
white-space: nowrap; |
|
||||||
text-overflow: ellipsis; |
|
||||||
vertical-align: middle; |
|
||||||
} |
|
||||||
.categories .feeds .feed:not([data-unread="0"]):before { |
|
||||||
content: "(" attr(data-unread) ") "; |
|
||||||
} |
|
||||||
.categories .feeds .dropdown-menu { |
|
||||||
left: 0; |
|
||||||
} |
|
||||||
.categories .feeds .item .dropdown-toggle > .icon { |
|
||||||
visibility: hidden; |
|
||||||
cursor: pointer; |
|
||||||
vertical-align: top; |
|
||||||
} |
|
||||||
.categories .feeds .item .dropdown-target:target ~ .dropdown-toggle > .icon, |
|
||||||
.categories .feeds .item:hover .dropdown-toggle > .icon, |
|
||||||
.categories .feeds .item.active .dropdown-toggle > .icon { |
|
||||||
visibility: visible; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== New article notification */ |
|
||||||
#new-article { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
#new-article > a { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Day indication */ |
|
||||||
.day .name { |
|
||||||
position: absolute; |
|
||||||
right: 0; |
|
||||||
width: 50%; |
|
||||||
overflow: hidden; |
|
||||||
white-space: nowrap; |
|
||||||
text-overflow: ellipsis; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Feed article header and footer */ |
|
||||||
.flux_header { |
|
||||||
position: relative; |
|
||||||
} |
|
||||||
.flux .item { |
|
||||||
line-height: 40px; |
|
||||||
white-space: nowrap; |
|
||||||
} |
|
||||||
.flux .item.manage, |
|
||||||
.flux .item.link { |
|
||||||
width: 40px; |
|
||||||
text-align: center; |
|
||||||
} |
|
||||||
.flux .item.website { |
|
||||||
width: 200px; |
|
||||||
} |
|
||||||
.flux.not_read .item.title, |
|
||||||
.flux.current .item.title { |
|
||||||
font-weight: bold; |
|
||||||
} |
|
||||||
.flux:not(.current):hover .item.title { |
|
||||||
position: absolute; |
|
||||||
max-width: calc(100% - 320px); |
|
||||||
background: #fff; |
|
||||||
} |
|
||||||
.flux .item.title a { |
|
||||||
color: #000; |
|
||||||
text-decoration: none; |
|
||||||
} |
|
||||||
.flux .item.date { |
|
||||||
width: 145px; |
|
||||||
text-align: right; |
|
||||||
} |
|
||||||
.flux .item > a { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.flux .item > a { |
|
||||||
display: block; |
|
||||||
text-decoration: none; |
|
||||||
white-space: nowrap; |
|
||||||
text-overflow: ellipsis; |
|
||||||
overflow: hidden; |
|
||||||
} |
|
||||||
.flux .item.share > a { |
|
||||||
display: list-item; |
|
||||||
list-style-position: inside; |
|
||||||
list-style-type: decimal; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Feed article content */ |
|
||||||
.hide_posts > .flux:not(.active) > .flux_content { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
.content { |
|
||||||
min-height: 20em; |
|
||||||
margin: auto; |
|
||||||
line-height: 1.7em; |
|
||||||
word-wrap: break-word; |
|
||||||
} |
|
||||||
.content.large { |
|
||||||
max-width: 1000px; |
|
||||||
} |
|
||||||
.content.medium { |
|
||||||
max-width: 800px; |
|
||||||
} |
|
||||||
.content.thin { |
|
||||||
max-width: 550px; |
|
||||||
} |
|
||||||
.content ul, |
|
||||||
.content ol, |
|
||||||
.content dd { |
|
||||||
margin: 0 0 0 15px; |
|
||||||
padding: 0 0 5px 15px; |
|
||||||
} |
|
||||||
.content pre { |
|
||||||
overflow: auto; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Notification and actualize notification */ |
|
||||||
.notification { |
|
||||||
position: absolute; |
|
||||||
top: 1em; |
|
||||||
left: 25%; right: 25%; |
|
||||||
z-index: 10; |
|
||||||
background: #fff; |
|
||||||
border: 1px solid #aaa; |
|
||||||
} |
|
||||||
.notification.closed { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
.notification a.close { |
|
||||||
position: absolute; |
|
||||||
top: 0; bottom: 0; |
|
||||||
right: 0; |
|
||||||
display: inline-block; |
|
||||||
} |
|
||||||
|
|
||||||
#actualizeProgress { |
|
||||||
position: fixed; |
|
||||||
} |
|
||||||
#actualizeProgress progress { |
|
||||||
max-width: 100%; |
|
||||||
vertical-align: middle; |
|
||||||
} |
|
||||||
#actualizeProgress .progress { |
|
||||||
vertical-align: middle; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Navigation menu (for articles) */ |
|
||||||
#nav_entries { |
|
||||||
position: fixed; |
|
||||||
bottom: 0; left: 0; |
|
||||||
display: table; |
|
||||||
width: 250px; |
|
||||||
background: #fff; |
|
||||||
table-layout: fixed; |
|
||||||
} |
|
||||||
#nav_entries .item { |
|
||||||
display: table-cell; |
|
||||||
width: 30%; |
|
||||||
} |
|
||||||
#nav_entries a { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== "Load more" part */ |
|
||||||
#load_more { |
|
||||||
min-height: 40px; |
|
||||||
} |
|
||||||
.loading { |
|
||||||
background: url("loader.gif") center center no-repeat; |
|
||||||
font-size: 0; |
|
||||||
} |
|
||||||
#bigMarkAsRead { |
|
||||||
display: block; |
|
||||||
padding: 3em 0; |
|
||||||
text-align: center; |
|
||||||
} |
|
||||||
.bigTick { |
|
||||||
font-size: 7em; |
|
||||||
line-height: 1.6em; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Statistiques */ |
|
||||||
.stat > table { |
|
||||||
width: 100%; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== GLOBAL VIEW */ |
|
||||||
/*================*/ |
|
||||||
/*=== Category boxes */ |
|
||||||
#stream.global .box-category { |
|
||||||
display: inline-block; |
|
||||||
width: 19em; |
|
||||||
max-width: 95%; |
|
||||||
margin: 20px 10px; |
|
||||||
border: 1px solid #ccc; |
|
||||||
vertical-align: top; |
|
||||||
} |
|
||||||
#stream.global .category { |
|
||||||
width: 100%; |
|
||||||
} |
|
||||||
#stream.global .btn { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
#stream.global .box-category .feeds { |
|
||||||
display: block; |
|
||||||
overflow: auto; |
|
||||||
} |
|
||||||
#stream.global .box-category .feed { |
|
||||||
width: 19em; |
|
||||||
max-width: 90%; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Panel */ |
|
||||||
#overlay { |
|
||||||
display: none; |
|
||||||
position: fixed; |
|
||||||
top: 0; bottom: 0; |
|
||||||
left: 0; right: 0; |
|
||||||
background: rgba(0, 0, 0, 0.9); |
|
||||||
} |
|
||||||
#panel { |
|
||||||
display: none; |
|
||||||
position: fixed; |
|
||||||
top: 1em; bottom: 1em; |
|
||||||
left: 2em; right: 2em; |
|
||||||
overflow: auto; |
|
||||||
background: #fff; |
|
||||||
} |
|
||||||
#panel .close { |
|
||||||
position: fixed; |
|
||||||
top: 0; bottom: 0; |
|
||||||
left: 0; right: 0; |
|
||||||
display: block; |
|
||||||
} |
|
||||||
#panel .close img { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== DIVERS */ |
|
||||||
/*===========*/ |
|
||||||
.nav-login, |
|
||||||
.nav_menu .search, |
|
||||||
.nav_menu .toggle_aside { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
|
|
||||||
.aside .toggle_aside { |
|
||||||
position: absolute; |
|
||||||
right: 0; |
|
||||||
display: none; |
|
||||||
width: 30px; |
|
||||||
height: 30px; |
|
||||||
line-height: 30px; |
|
||||||
text-align: center; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== MOBILE */ |
|
||||||
/*===========*/ |
|
||||||
@media(max-width: 840px) { |
|
||||||
.header, |
|
||||||
.aside .btn-important, |
|
||||||
.aside .feeds .dropdown, |
|
||||||
.flux_header .item.website span, |
|
||||||
.item.date, .day .date, |
|
||||||
.dropdown-menu > .no-mobile, |
|
||||||
.no-mobile { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
.nav-login { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.nav_menu .toggle_aside, |
|
||||||
.aside .toggle_aside, |
|
||||||
.nav_menu .search, |
|
||||||
#panel .close img { |
|
||||||
display: inline-block; |
|
||||||
} |
|
||||||
|
|
||||||
.aside { |
|
||||||
position: fixed; |
|
||||||
top: 0; bottom: 0; |
|
||||||
left: 0; |
|
||||||
width: 0; |
|
||||||
overflow: hidden; |
|
||||||
z-index: 100; |
|
||||||
} |
|
||||||
.aside:target { |
|
||||||
width: 90%; |
|
||||||
overflow: auto; |
|
||||||
} |
|
||||||
.aside .categories { |
|
||||||
margin: 10px 0 75px; |
|
||||||
} |
|
||||||
|
|
||||||
.flux_header .item.website { |
|
||||||
width: 40px; |
|
||||||
} |
|
||||||
|
|
||||||
.flux:not(.current):hover .item.title { |
|
||||||
position: relative; |
|
||||||
width: auto; |
|
||||||
white-space: nowrap; |
|
||||||
} |
|
||||||
|
|
||||||
.notification { |
|
||||||
top: 0; |
|
||||||
left: 0; |
|
||||||
right: 0; |
|
||||||
} |
|
||||||
|
|
||||||
#nav_entries { |
|
||||||
width: 100%; |
|
||||||
} |
|
||||||
|
|
||||||
#stream.global .box-category { |
|
||||||
margin: 10px 0; |
|
||||||
} |
|
||||||
|
|
||||||
#panel { |
|
||||||
top: 0; bottom: 0; |
|
||||||
left: 0; right: 0; |
|
||||||
} |
|
||||||
#panel .close { |
|
||||||
top: 0; right: 0; |
|
||||||
left: auto; bottom: auto; |
|
||||||
display: inline-block; |
|
||||||
width: 30px; |
|
||||||
height: 30px; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
/*=== PRINTER */ |
|
||||||
/*============*/ |
|
||||||
@media print { |
|
||||||
.header, .aside, |
|
||||||
.nav_menu, .day, |
|
||||||
.flux_header, |
|
||||||
.flux_content .bottom, |
|
||||||
.pagination, |
|
||||||
#nav_entries { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
html, body { |
|
||||||
background: #fff; |
|
||||||
color: #000; |
|
||||||
font-family: Serif; |
|
||||||
} |
|
||||||
#global, |
|
||||||
.flux_content { |
|
||||||
display: block !important; |
|
||||||
} |
|
||||||
.flux_content .content { |
|
||||||
width: 100% !important; |
|
||||||
} |
|
||||||
.flux_content .content a { |
|
||||||
color: #000; |
|
||||||
} |
|
||||||
.flux_content .content a:after { |
|
||||||
content: " [" attr(href) "] "; |
|
||||||
font-style: italic; |
|
||||||
} |
|
||||||
} |
|
@ -1,698 +0,0 @@ |
|||||||
@charset "UTF-8"; |
|
||||||
|
|
||||||
/*=== GENERAL */ |
|
||||||
/*============*/ |
|
||||||
html, body { |
|
||||||
margin: 0; |
|
||||||
padding: 0; |
|
||||||
font-size: 100%; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Links */ |
|
||||||
a { |
|
||||||
text-decoration: none; |
|
||||||
} |
|
||||||
a:hover { |
|
||||||
text-decoration: underline; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Lists */ |
|
||||||
ul, ol, dd { |
|
||||||
margin: 0; |
|
||||||
padding: 0; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Titles */ |
|
||||||
h1 { |
|
||||||
margin: 0.6em 0 0.3em; |
|
||||||
font-size: 1.5em; |
|
||||||
line-height: 1.6em; |
|
||||||
} |
|
||||||
h2 { |
|
||||||
margin: 0.5em 0 0.25em; |
|
||||||
font-size: 1.3em; |
|
||||||
line-height: 2em; |
|
||||||
} |
|
||||||
h3 { |
|
||||||
margin: 0.5em 0 0.25em; |
|
||||||
font-size: 1.1em; |
|
||||||
line-height: 2em; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Paragraphs */ |
|
||||||
p { |
|
||||||
margin: 1em 0 0.5em; |
|
||||||
font-size: 1em; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Images */ |
|
||||||
img { |
|
||||||
height: auto; |
|
||||||
max-width: 100%; |
|
||||||
} |
|
||||||
img.favicon { |
|
||||||
height: 16px; |
|
||||||
width: 16px; |
|
||||||
vertical-align: middle; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Videos */ |
|
||||||
iframe, embed, object, video { |
|
||||||
max-width: 100%; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Forms */ |
|
||||||
legend { |
|
||||||
display: block; |
|
||||||
width: 100%; |
|
||||||
clear: both; |
|
||||||
} |
|
||||||
label { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
input { |
|
||||||
width: 180px; |
|
||||||
} |
|
||||||
textarea { |
|
||||||
width: 300px; |
|
||||||
} |
|
||||||
input, select, textarea { |
|
||||||
display: inline-block; |
|
||||||
max-width: 100%; |
|
||||||
} |
|
||||||
input[type="radio"], |
|
||||||
input[type="checkbox"] { |
|
||||||
width: 15px !important; |
|
||||||
min-height: 15px !important; |
|
||||||
} |
|
||||||
input.extend:focus { |
|
||||||
width: 300px; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== COMPONENTS */ |
|
||||||
/*===============*/ |
|
||||||
/*=== Forms */ |
|
||||||
.form-group:after { |
|
||||||
content: ""; |
|
||||||
display: block; |
|
||||||
clear: both; |
|
||||||
} |
|
||||||
.form-group.form-actions { |
|
||||||
min-width: 250px; |
|
||||||
} |
|
||||||
.form-group .group-name { |
|
||||||
display: block; |
|
||||||
float: left; |
|
||||||
width: 200px; |
|
||||||
} |
|
||||||
.form-group .group-controls { |
|
||||||
min-width: 250px; |
|
||||||
margin: 0 0 0 220px; |
|
||||||
} |
|
||||||
.form-group .group-controls .control { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Buttons */ |
|
||||||
.stick { |
|
||||||
display: inline-block; |
|
||||||
white-space: nowrap; |
|
||||||
} |
|
||||||
.btn, |
|
||||||
a.btn { |
|
||||||
display: inline-block; |
|
||||||
cursor: pointer; |
|
||||||
overflow: hidden; |
|
||||||
} |
|
||||||
.btn-important { |
|
||||||
font-weight: bold; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Navigation */ |
|
||||||
.nav-list .nav-header, |
|
||||||
.nav-list .item { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.nav-list .item, |
|
||||||
.nav-list .item > a { |
|
||||||
display: block; |
|
||||||
overflow: hidden; |
|
||||||
white-space: nowrap; |
|
||||||
text-overflow: ellipsis; |
|
||||||
} |
|
||||||
.nav-head { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.nav-head .item { |
|
||||||
display: inline-block; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Horizontal-list */ |
|
||||||
.horizontal-list { |
|
||||||
display: table; |
|
||||||
table-layout: fixed; |
|
||||||
width: 100%; |
|
||||||
} |
|
||||||
.horizontal-list .item { |
|
||||||
display: table-cell; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Dropdown */ |
|
||||||
.dropdown { |
|
||||||
position: relative; |
|
||||||
display: inline-block; |
|
||||||
} |
|
||||||
.dropdown-target { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
.dropdown-menu { |
|
||||||
display: none; |
|
||||||
min-width: 200px; |
|
||||||
margin: 0; |
|
||||||
position: absolute; |
|
||||||
right: 0; |
|
||||||
background: #fff; |
|
||||||
border: 1px solid #aaa; |
|
||||||
} |
|
||||||
.dropdown-header { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.dropdown-menu > .item { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.dropdown-menu > .item > a, |
|
||||||
.dropdown-menu > .item > span { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.dropdown-menu > .item[aria-checked="true"] > a:before { |
|
||||||
content: '✓'; |
|
||||||
} |
|
||||||
.dropdown-menu .input { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.dropdown-menu .input select, |
|
||||||
.dropdown-menu .input input { |
|
||||||
display: block; |
|
||||||
max-width: 95%; |
|
||||||
} |
|
||||||
.dropdown-target:target ~ .dropdown-menu { |
|
||||||
display: block; |
|
||||||
z-index: 10; |
|
||||||
} |
|
||||||
.dropdown-close { |
|
||||||
display: inline; |
|
||||||
} |
|
||||||
.dropdown-close a { |
|
||||||
font-size: 0; |
|
||||||
position: fixed; |
|
||||||
top: 0; bottom: 0; |
|
||||||
left: 0; right: 0; |
|
||||||
display: block; |
|
||||||
z-index: -10; |
|
||||||
} |
|
||||||
.separator { |
|
||||||
display: block; |
|
||||||
height: 0; |
|
||||||
border-bottom: 1px solid #aaa; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Alerts */ |
|
||||||
.alert { |
|
||||||
display: block; |
|
||||||
width: 90%; |
|
||||||
} |
|
||||||
.group-controls .alert { |
|
||||||
width: 100% |
|
||||||
} |
|
||||||
.alert-head { |
|
||||||
margin: 0; |
|
||||||
font-weight: bold; |
|
||||||
} |
|
||||||
.alert ul { |
|
||||||
margin: 5px 20px; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Icons */ |
|
||||||
.icon { |
|
||||||
display: inline-block; |
|
||||||
width: 16px; |
|
||||||
height: 16px; |
|
||||||
vertical-align: middle; |
|
||||||
line-height: 16px; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Pagination */ |
|
||||||
.pagination { |
|
||||||
display: table; |
|
||||||
width: 100%; |
|
||||||
margin: 0; |
|
||||||
padding: 0; |
|
||||||
table-layout: fixed; |
|
||||||
} |
|
||||||
.pagination .item { |
|
||||||
display: table-cell; |
|
||||||
} |
|
||||||
.pagination .pager-first, |
|
||||||
.pagination .pager-previous, |
|
||||||
.pagination .pager-next, |
|
||||||
.pagination .pager-last { |
|
||||||
width: 100px; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== STRUCTURE */ |
|
||||||
/*===============*/ |
|
||||||
/*=== Header */ |
|
||||||
.header { |
|
||||||
display: table; |
|
||||||
width: 100%; |
|
||||||
table-layout: fixed; |
|
||||||
} |
|
||||||
.header > .item { |
|
||||||
display: table-cell; |
|
||||||
} |
|
||||||
.header > .item.title { |
|
||||||
width: 250px; |
|
||||||
white-space: nowrap; |
|
||||||
} |
|
||||||
.header > .item.title h1 { |
|
||||||
display: inline-block; |
|
||||||
} |
|
||||||
.header > .item.title .logo { |
|
||||||
display: inline-block; |
|
||||||
height: 32px; |
|
||||||
width: 32px; |
|
||||||
vertical-align: middle; |
|
||||||
} |
|
||||||
.header > .item.configure { |
|
||||||
width: 100px; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Body */ |
|
||||||
#global { |
|
||||||
display: table; |
|
||||||
width: 100%; |
|
||||||
height: 100%; |
|
||||||
table-layout: fixed; |
|
||||||
} |
|
||||||
.aside { |
|
||||||
display: table-cell; |
|
||||||
height: 100%; |
|
||||||
width: 250px; |
|
||||||
vertical-align: top; |
|
||||||
} |
|
||||||
.aside.aside_flux { |
|
||||||
background: #fff; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Aside main page (categories) */ |
|
||||||
.categories { |
|
||||||
list-style: none; |
|
||||||
margin: 0; |
|
||||||
} |
|
||||||
.state_unread li:not(.active)[data-unread="0"] { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
.category { |
|
||||||
display: block; |
|
||||||
overflow: hidden; |
|
||||||
white-space: nowrap; |
|
||||||
text-overflow: ellipsis; |
|
||||||
} |
|
||||||
.category .btn:not([data-unread="0"]):after { |
|
||||||
content: attr(data-unread); |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Aside main page (feeds) */ |
|
||||||
.categories .feeds { |
|
||||||
width: 100%; |
|
||||||
list-style: none; |
|
||||||
} |
|
||||||
.categories .feeds:not(.active) { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
.categories .feeds .feed { |
|
||||||
display: inline-block; |
|
||||||
overflow: hidden; |
|
||||||
white-space: nowrap; |
|
||||||
text-overflow: ellipsis; |
|
||||||
vertical-align: middle; |
|
||||||
} |
|
||||||
.categories .feeds .feed:not([data-unread="0"]):before { |
|
||||||
content: "(" attr(data-unread) ") "; |
|
||||||
} |
|
||||||
.categories .feeds .dropdown-menu { |
|
||||||
left: 0; |
|
||||||
} |
|
||||||
.categories .feeds .item .dropdown-toggle > .icon { |
|
||||||
visibility: hidden; |
|
||||||
cursor: pointer; |
|
||||||
vertical-align: top; |
|
||||||
} |
|
||||||
.categories .feeds .item .dropdown-target:target ~ .dropdown-toggle > .icon, |
|
||||||
.categories .feeds .item:hover .dropdown-toggle > .icon, |
|
||||||
.categories .feeds .item.active .dropdown-toggle > .icon { |
|
||||||
visibility: visible; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== New article notification */ |
|
||||||
#new-article { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
#new-article > a { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Day indication */ |
|
||||||
.day .name { |
|
||||||
position: absolute; |
|
||||||
right: 0; |
|
||||||
width: 50%; |
|
||||||
overflow: hidden; |
|
||||||
white-space: nowrap; |
|
||||||
text-overflow: ellipsis; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Feed article header and footer */ |
|
||||||
.flux_header { |
|
||||||
position: relative; |
|
||||||
} |
|
||||||
.flux .item { |
|
||||||
line-height: 40px; |
|
||||||
white-space: nowrap; |
|
||||||
} |
|
||||||
.flux .item.manage, |
|
||||||
.flux .item.link { |
|
||||||
width: 40px; |
|
||||||
text-align: center; |
|
||||||
} |
|
||||||
.flux .item.website { |
|
||||||
width: 200px; |
|
||||||
} |
|
||||||
.flux.not_read .item.title, |
|
||||||
.flux.current .item.title { |
|
||||||
font-weight: bold; |
|
||||||
} |
|
||||||
.flux:not(.current):hover .item.title { |
|
||||||
position: absolute; |
|
||||||
max-width: calc(100% - 320px); |
|
||||||
background: #fff; |
|
||||||
} |
|
||||||
.flux .item.title a { |
|
||||||
color: #000; |
|
||||||
text-decoration: none; |
|
||||||
} |
|
||||||
.flux .item.date { |
|
||||||
width: 145px; |
|
||||||
text-align: right; |
|
||||||
} |
|
||||||
.flux .item > a { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.flux .item > a { |
|
||||||
display: block; |
|
||||||
text-decoration: none; |
|
||||||
white-space: nowrap; |
|
||||||
text-overflow: ellipsis; |
|
||||||
overflow: hidden; |
|
||||||
} |
|
||||||
.flux .item.share > a { |
|
||||||
display: list-item; |
|
||||||
list-style-position: inside; |
|
||||||
list-style-type: decimal; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Feed article content */ |
|
||||||
.hide_posts > .flux:not(.active) > .flux_content { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
.content { |
|
||||||
min-height: 20em; |
|
||||||
margin: auto; |
|
||||||
line-height: 1.7em; |
|
||||||
word-wrap: break-word; |
|
||||||
} |
|
||||||
.content.large { |
|
||||||
max-width: 1000px; |
|
||||||
} |
|
||||||
.content.medium { |
|
||||||
max-width: 800px; |
|
||||||
} |
|
||||||
.content.thin { |
|
||||||
max-width: 550px; |
|
||||||
} |
|
||||||
.content ul, |
|
||||||
.content ol, |
|
||||||
.content dd { |
|
||||||
margin: 0 0 0 15px; |
|
||||||
padding: 0 0 5px 15px; |
|
||||||
} |
|
||||||
.content pre { |
|
||||||
overflow: auto; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Notification and actualize notification */ |
|
||||||
.notification { |
|
||||||
position: absolute; |
|
||||||
top: 1em; |
|
||||||
left: 25%; right: 25%; |
|
||||||
z-index: 10; |
|
||||||
background: #fff; |
|
||||||
border: 1px solid #aaa; |
|
||||||
} |
|
||||||
.notification.closed { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
.notification a.close { |
|
||||||
position: absolute; |
|
||||||
top: 0; bottom: 0; |
|
||||||
right: 0; |
|
||||||
display: inline-block; |
|
||||||
} |
|
||||||
|
|
||||||
#actualizeProgress { |
|
||||||
position: fixed; |
|
||||||
} |
|
||||||
#actualizeProgress progress { |
|
||||||
max-width: 100%; |
|
||||||
vertical-align: middle; |
|
||||||
} |
|
||||||
#actualizeProgress .progress { |
|
||||||
vertical-align: middle; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Navigation menu (for articles) */ |
|
||||||
#nav_entries { |
|
||||||
position: fixed; |
|
||||||
bottom: 0; left: 0; |
|
||||||
display: table; |
|
||||||
width: 250px; |
|
||||||
background: #fff; |
|
||||||
table-layout: fixed; |
|
||||||
} |
|
||||||
#nav_entries .item { |
|
||||||
display: table-cell; |
|
||||||
width: 30%; |
|
||||||
} |
|
||||||
#nav_entries a { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== "Load more" part */ |
|
||||||
#load_more { |
|
||||||
min-height: 40px; |
|
||||||
} |
|
||||||
.loading { |
|
||||||
background: url("loader.gif") center center no-repeat; |
|
||||||
font-size: 0; |
|
||||||
} |
|
||||||
#bigMarkAsRead { |
|
||||||
display: block; |
|
||||||
padding: 3em 0; |
|
||||||
text-align: center; |
|
||||||
} |
|
||||||
.bigTick { |
|
||||||
font-size: 7em; |
|
||||||
line-height: 1.6em; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Statistiques */ |
|
||||||
.stat > table { |
|
||||||
width: 100%; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== GLOBAL VIEW */ |
|
||||||
/*================*/ |
|
||||||
/*=== Category boxes */ |
|
||||||
#stream.global .box-category { |
|
||||||
display: inline-block; |
|
||||||
width: 19em; |
|
||||||
max-width: 95%; |
|
||||||
margin: 20px 10px; |
|
||||||
border: 1px solid #ccc; |
|
||||||
vertical-align: top; |
|
||||||
} |
|
||||||
#stream.global .category { |
|
||||||
width: 100%; |
|
||||||
} |
|
||||||
#stream.global .btn { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
#stream.global .box-category .feeds { |
|
||||||
display: block; |
|
||||||
overflow: auto; |
|
||||||
} |
|
||||||
#stream.global .box-category .feed { |
|
||||||
width: 19em; |
|
||||||
max-width: 90%; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Panel */ |
|
||||||
#overlay { |
|
||||||
display: none; |
|
||||||
position: fixed; |
|
||||||
top: 0; bottom: 0; |
|
||||||
left: 0; right: 0; |
|
||||||
background: rgba(0, 0, 0, 0.9); |
|
||||||
} |
|
||||||
#panel { |
|
||||||
display: none; |
|
||||||
position: fixed; |
|
||||||
top: 1em; bottom: 1em; |
|
||||||
left: 2em; right: 2em; |
|
||||||
overflow: auto; |
|
||||||
background: #fff; |
|
||||||
} |
|
||||||
#panel .close { |
|
||||||
position: fixed; |
|
||||||
top: 0; bottom: 0; |
|
||||||
left: 0; right: 0; |
|
||||||
display: block; |
|
||||||
} |
|
||||||
#panel .close img { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== DIVERS */ |
|
||||||
/*===========*/ |
|
||||||
.nav-login, |
|
||||||
.nav_menu .search, |
|
||||||
.nav_menu .toggle_aside { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
|
|
||||||
.aside .toggle_aside { |
|
||||||
position: absolute; |
|
||||||
right: 0; |
|
||||||
display: none; |
|
||||||
width: 30px; |
|
||||||
height: 30px; |
|
||||||
line-height: 30px; |
|
||||||
text-align: center; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== MOBILE */ |
|
||||||
/*===========*/ |
|
||||||
@media(max-width: 840px) { |
|
||||||
.header, |
|
||||||
.aside .btn-important, |
|
||||||
.aside .feeds .dropdown, |
|
||||||
.flux_header .item.website span, |
|
||||||
.item.date, .day .date, |
|
||||||
.dropdown-menu > .no-mobile, |
|
||||||
.no-mobile { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
.nav-login { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.nav_menu .toggle_aside, |
|
||||||
.aside .toggle_aside, |
|
||||||
.nav_menu .search, |
|
||||||
#panel .close img { |
|
||||||
display: inline-block; |
|
||||||
} |
|
||||||
|
|
||||||
.aside { |
|
||||||
position: fixed; |
|
||||||
top: 0; bottom: 0; |
|
||||||
left: 0; |
|
||||||
width: 0; |
|
||||||
overflow: hidden; |
|
||||||
z-index: 100; |
|
||||||
} |
|
||||||
.aside:target { |
|
||||||
width: 90%; |
|
||||||
overflow: auto; |
|
||||||
} |
|
||||||
.aside .categories { |
|
||||||
margin: 10px 0 75px; |
|
||||||
} |
|
||||||
|
|
||||||
.flux_header .item.website { |
|
||||||
width: 40px; |
|
||||||
} |
|
||||||
|
|
||||||
.flux:not(.current):hover .item.title { |
|
||||||
position: relative; |
|
||||||
width: auto; |
|
||||||
white-space: nowrap; |
|
||||||
} |
|
||||||
|
|
||||||
.notification { |
|
||||||
top: 0; |
|
||||||
left: 0; |
|
||||||
right: 0; |
|
||||||
} |
|
||||||
|
|
||||||
#nav_entries { |
|
||||||
width: 100%; |
|
||||||
} |
|
||||||
|
|
||||||
#stream.global .box-category { |
|
||||||
margin: 10px 0; |
|
||||||
} |
|
||||||
|
|
||||||
#panel { |
|
||||||
top: 0; bottom: 0; |
|
||||||
left: 0; right: 0; |
|
||||||
} |
|
||||||
#panel .close { |
|
||||||
top: 0; right: 0; |
|
||||||
left: auto; bottom: auto; |
|
||||||
display: inline-block; |
|
||||||
width: 30px; |
|
||||||
height: 30px; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
/*=== PRINTER */ |
|
||||||
/*============*/ |
|
||||||
@media print { |
|
||||||
.header, .aside, |
|
||||||
.nav_menu, .day, |
|
||||||
.flux_header, |
|
||||||
.flux_content .bottom, |
|
||||||
.pagination, |
|
||||||
#nav_entries { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
html, body { |
|
||||||
background: #fff; |
|
||||||
color: #000; |
|
||||||
font-family: Serif; |
|
||||||
} |
|
||||||
#global, |
|
||||||
.flux_content { |
|
||||||
display: block !important; |
|
||||||
} |
|
||||||
.flux_content .content { |
|
||||||
width: 100% !important; |
|
||||||
} |
|
||||||
.flux_content .content a { |
|
||||||
color: #000; |
|
||||||
} |
|
||||||
.flux_content .content a:after { |
|
||||||
content: " [" attr(href) "] "; |
|
||||||
font-style: italic; |
|
||||||
} |
|
||||||
} |
|
@ -1,698 +0,0 @@ |
|||||||
@charset "UTF-8"; |
|
||||||
|
|
||||||
/*=== GENERAL */ |
|
||||||
/*============*/ |
|
||||||
html, body { |
|
||||||
margin: 0; |
|
||||||
padding: 0; |
|
||||||
font-size: 100%; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Links */ |
|
||||||
a { |
|
||||||
text-decoration: none; |
|
||||||
} |
|
||||||
a:hover { |
|
||||||
text-decoration: underline; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Lists */ |
|
||||||
ul, ol, dd { |
|
||||||
margin: 0; |
|
||||||
padding: 0; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Titles */ |
|
||||||
h1 { |
|
||||||
margin: 0.6em 0 0.3em; |
|
||||||
font-size: 1.5em; |
|
||||||
line-height: 1.6em; |
|
||||||
} |
|
||||||
h2 { |
|
||||||
margin: 0.5em 0 0.25em; |
|
||||||
font-size: 1.3em; |
|
||||||
line-height: 2em; |
|
||||||
} |
|
||||||
h3 { |
|
||||||
margin: 0.5em 0 0.25em; |
|
||||||
font-size: 1.1em; |
|
||||||
line-height: 2em; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Paragraphs */ |
|
||||||
p { |
|
||||||
margin: 1em 0 0.5em; |
|
||||||
font-size: 1em; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Images */ |
|
||||||
img { |
|
||||||
height: auto; |
|
||||||
max-width: 100%; |
|
||||||
} |
|
||||||
img.favicon { |
|
||||||
height: 16px; |
|
||||||
width: 16px; |
|
||||||
vertical-align: middle; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Videos */ |
|
||||||
iframe, embed, object, video { |
|
||||||
max-width: 100%; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Forms */ |
|
||||||
legend { |
|
||||||
display: block; |
|
||||||
width: 100%; |
|
||||||
clear: both; |
|
||||||
} |
|
||||||
label { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
input { |
|
||||||
width: 180px; |
|
||||||
} |
|
||||||
textarea { |
|
||||||
width: 300px; |
|
||||||
} |
|
||||||
input, select, textarea { |
|
||||||
display: inline-block; |
|
||||||
max-width: 100%; |
|
||||||
} |
|
||||||
input[type="radio"], |
|
||||||
input[type="checkbox"] { |
|
||||||
width: 15px !important; |
|
||||||
min-height: 15px !important; |
|
||||||
} |
|
||||||
input.extend:focus { |
|
||||||
width: 300px; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== COMPONENTS */ |
|
||||||
/*===============*/ |
|
||||||
/*=== Forms */ |
|
||||||
.form-group:after { |
|
||||||
content: ""; |
|
||||||
display: block; |
|
||||||
clear: both; |
|
||||||
} |
|
||||||
.form-group.form-actions { |
|
||||||
min-width: 250px; |
|
||||||
} |
|
||||||
.form-group .group-name { |
|
||||||
display: block; |
|
||||||
float: left; |
|
||||||
width: 200px; |
|
||||||
} |
|
||||||
.form-group .group-controls { |
|
||||||
min-width: 250px; |
|
||||||
margin: 0 0 0 220px; |
|
||||||
} |
|
||||||
.form-group .group-controls .control { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Buttons */ |
|
||||||
.stick { |
|
||||||
display: inline-block; |
|
||||||
white-space: nowrap; |
|
||||||
} |
|
||||||
.btn, |
|
||||||
a.btn { |
|
||||||
display: inline-block; |
|
||||||
cursor: pointer; |
|
||||||
overflow: hidden; |
|
||||||
} |
|
||||||
.btn-important { |
|
||||||
font-weight: bold; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Navigation */ |
|
||||||
.nav-list .nav-header, |
|
||||||
.nav-list .item { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.nav-list .item, |
|
||||||
.nav-list .item > a { |
|
||||||
display: block; |
|
||||||
overflow: hidden; |
|
||||||
white-space: nowrap; |
|
||||||
text-overflow: ellipsis; |
|
||||||
} |
|
||||||
.nav-head { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.nav-head .item { |
|
||||||
display: inline-block; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Horizontal-list */ |
|
||||||
.horizontal-list { |
|
||||||
display: table; |
|
||||||
table-layout: fixed; |
|
||||||
width: 100%; |
|
||||||
} |
|
||||||
.horizontal-list .item { |
|
||||||
display: table-cell; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Dropdown */ |
|
||||||
.dropdown { |
|
||||||
position: relative; |
|
||||||
display: inline-block; |
|
||||||
} |
|
||||||
.dropdown-target { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
.dropdown-menu { |
|
||||||
display: none; |
|
||||||
min-width: 200px; |
|
||||||
margin: 0; |
|
||||||
position: absolute; |
|
||||||
right: 0; |
|
||||||
background: #fff; |
|
||||||
border: 1px solid #aaa; |
|
||||||
} |
|
||||||
.dropdown-header { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.dropdown-menu > .item { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.dropdown-menu > .item > a, |
|
||||||
.dropdown-menu > .item > span { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.dropdown-menu > .item[aria-checked="true"] > a:before { |
|
||||||
content: '✓'; |
|
||||||
} |
|
||||||
.dropdown-menu .input { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.dropdown-menu .input select, |
|
||||||
.dropdown-menu .input input { |
|
||||||
display: block; |
|
||||||
max-width: 95%; |
|
||||||
} |
|
||||||
.dropdown-target:target ~ .dropdown-menu { |
|
||||||
display: block; |
|
||||||
z-index: 10; |
|
||||||
} |
|
||||||
.dropdown-close { |
|
||||||
display: inline; |
|
||||||
} |
|
||||||
.dropdown-close a { |
|
||||||
font-size: 0; |
|
||||||
position: fixed; |
|
||||||
top: 0; bottom: 0; |
|
||||||
left: 0; right: 0; |
|
||||||
display: block; |
|
||||||
z-index: -10; |
|
||||||
} |
|
||||||
.separator { |
|
||||||
display: block; |
|
||||||
height: 0; |
|
||||||
border-bottom: 1px solid #aaa; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Alerts */ |
|
||||||
.alert { |
|
||||||
display: block; |
|
||||||
width: 90%; |
|
||||||
} |
|
||||||
.group-controls .alert { |
|
||||||
width: 100% |
|
||||||
} |
|
||||||
.alert-head { |
|
||||||
margin: 0; |
|
||||||
font-weight: bold; |
|
||||||
} |
|
||||||
.alert ul { |
|
||||||
margin: 5px 20px; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Icons */ |
|
||||||
.icon { |
|
||||||
display: inline-block; |
|
||||||
width: 16px; |
|
||||||
height: 16px; |
|
||||||
vertical-align: middle; |
|
||||||
line-height: 16px; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Pagination */ |
|
||||||
.pagination { |
|
||||||
display: table; |
|
||||||
width: 100%; |
|
||||||
margin: 0; |
|
||||||
padding: 0; |
|
||||||
table-layout: fixed; |
|
||||||
} |
|
||||||
.pagination .item { |
|
||||||
display: table-cell; |
|
||||||
} |
|
||||||
.pagination .pager-first, |
|
||||||
.pagination .pager-previous, |
|
||||||
.pagination .pager-next, |
|
||||||
.pagination .pager-last { |
|
||||||
width: 100px; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== STRUCTURE */ |
|
||||||
/*===============*/ |
|
||||||
/*=== Header */ |
|
||||||
.header { |
|
||||||
display: table; |
|
||||||
width: 100%; |
|
||||||
table-layout: fixed; |
|
||||||
} |
|
||||||
.header > .item { |
|
||||||
display: table-cell; |
|
||||||
} |
|
||||||
.header > .item.title { |
|
||||||
width: 250px; |
|
||||||
white-space: nowrap; |
|
||||||
} |
|
||||||
.header > .item.title h1 { |
|
||||||
display: inline-block; |
|
||||||
} |
|
||||||
.header > .item.title .logo { |
|
||||||
display: inline-block; |
|
||||||
height: 32px; |
|
||||||
width: 32px; |
|
||||||
vertical-align: middle; |
|
||||||
} |
|
||||||
.header > .item.configure { |
|
||||||
width: 100px; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Body */ |
|
||||||
#global { |
|
||||||
display: table; |
|
||||||
width: 100%; |
|
||||||
height: 100%; |
|
||||||
table-layout: fixed; |
|
||||||
} |
|
||||||
.aside { |
|
||||||
display: table-cell; |
|
||||||
height: 100%; |
|
||||||
width: 250px; |
|
||||||
vertical-align: top; |
|
||||||
} |
|
||||||
.aside.aside_flux { |
|
||||||
background: #fff; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Aside main page (categories) */ |
|
||||||
.categories { |
|
||||||
list-style: none; |
|
||||||
margin: 0; |
|
||||||
} |
|
||||||
.state_unread li:not(.active)[data-unread="0"] { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
.category { |
|
||||||
display: block; |
|
||||||
overflow: hidden; |
|
||||||
white-space: nowrap; |
|
||||||
text-overflow: ellipsis; |
|
||||||
} |
|
||||||
.category .btn:not([data-unread="0"]):after { |
|
||||||
content: attr(data-unread); |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Aside main page (feeds) */ |
|
||||||
.categories .feeds { |
|
||||||
width: 100%; |
|
||||||
list-style: none; |
|
||||||
} |
|
||||||
.categories .feeds:not(.active) { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
.categories .feeds .feed { |
|
||||||
display: inline-block; |
|
||||||
overflow: hidden; |
|
||||||
white-space: nowrap; |
|
||||||
text-overflow: ellipsis; |
|
||||||
vertical-align: middle; |
|
||||||
} |
|
||||||
.categories .feeds .feed:not([data-unread="0"]):before { |
|
||||||
content: "(" attr(data-unread) ") "; |
|
||||||
} |
|
||||||
.categories .feeds .dropdown-menu { |
|
||||||
left: 0; |
|
||||||
} |
|
||||||
.categories .feeds .item .dropdown-toggle > .icon { |
|
||||||
visibility: hidden; |
|
||||||
cursor: pointer; |
|
||||||
vertical-align: top; |
|
||||||
} |
|
||||||
.categories .feeds .item .dropdown-target:target ~ .dropdown-toggle > .icon, |
|
||||||
.categories .feeds .item:hover .dropdown-toggle > .icon, |
|
||||||
.categories .feeds .item.active .dropdown-toggle > .icon { |
|
||||||
visibility: visible; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== New article notification */ |
|
||||||
#new-article { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
#new-article > a { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Day indication */ |
|
||||||
.day .name { |
|
||||||
position: absolute; |
|
||||||
right: 0; |
|
||||||
width: 50%; |
|
||||||
overflow: hidden; |
|
||||||
white-space: nowrap; |
|
||||||
text-overflow: ellipsis; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Feed article header and footer */ |
|
||||||
.flux_header { |
|
||||||
position: relative; |
|
||||||
} |
|
||||||
.flux .item { |
|
||||||
line-height: 40px; |
|
||||||
white-space: nowrap; |
|
||||||
} |
|
||||||
.flux .item.manage, |
|
||||||
.flux .item.link { |
|
||||||
width: 40px; |
|
||||||
text-align: center; |
|
||||||
} |
|
||||||
.flux .item.website { |
|
||||||
width: 200px; |
|
||||||
} |
|
||||||
.flux.not_read .item.title, |
|
||||||
.flux.current .item.title { |
|
||||||
font-weight: bold; |
|
||||||
} |
|
||||||
.flux:not(.current):hover .item.title { |
|
||||||
position: absolute; |
|
||||||
max-width: calc(100% - 320px); |
|
||||||
background: #fff; |
|
||||||
} |
|
||||||
.flux .item.title a { |
|
||||||
color: #000; |
|
||||||
text-decoration: none; |
|
||||||
} |
|
||||||
.flux .item.date { |
|
||||||
width: 145px; |
|
||||||
text-align: right; |
|
||||||
} |
|
||||||
.flux .item > a { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.flux .item > a { |
|
||||||
display: block; |
|
||||||
text-decoration: none; |
|
||||||
white-space: nowrap; |
|
||||||
text-overflow: ellipsis; |
|
||||||
overflow: hidden; |
|
||||||
} |
|
||||||
.flux .item.share > a { |
|
||||||
display: list-item; |
|
||||||
list-style-position: inside; |
|
||||||
list-style-type: decimal; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Feed article content */ |
|
||||||
.hide_posts > .flux:not(.active) > .flux_content { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
.content { |
|
||||||
min-height: 20em; |
|
||||||
margin: auto; |
|
||||||
line-height: 1.7em; |
|
||||||
word-wrap: break-word; |
|
||||||
} |
|
||||||
.content.large { |
|
||||||
max-width: 1000px; |
|
||||||
} |
|
||||||
.content.medium { |
|
||||||
max-width: 800px; |
|
||||||
} |
|
||||||
.content.thin { |
|
||||||
max-width: 550px; |
|
||||||
} |
|
||||||
.content ul, |
|
||||||
.content ol, |
|
||||||
.content dd { |
|
||||||
margin: 0 0 0 15px; |
|
||||||
padding: 0 0 5px 15px; |
|
||||||
} |
|
||||||
.content pre { |
|
||||||
overflow: auto; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Notification and actualize notification */ |
|
||||||
.notification { |
|
||||||
position: absolute; |
|
||||||
top: 1em; |
|
||||||
left: 25%; right: 25%; |
|
||||||
z-index: 10; |
|
||||||
background: #fff; |
|
||||||
border: 1px solid #aaa; |
|
||||||
} |
|
||||||
.notification.closed { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
.notification a.close { |
|
||||||
position: absolute; |
|
||||||
top: 0; bottom: 0; |
|
||||||
right: 0; |
|
||||||
display: inline-block; |
|
||||||
} |
|
||||||
|
|
||||||
#actualizeProgress { |
|
||||||
position: fixed; |
|
||||||
} |
|
||||||
#actualizeProgress progress { |
|
||||||
max-width: 100%; |
|
||||||
vertical-align: middle; |
|
||||||
} |
|
||||||
#actualizeProgress .progress { |
|
||||||
vertical-align: middle; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Navigation menu (for articles) */ |
|
||||||
#nav_entries { |
|
||||||
position: fixed; |
|
||||||
bottom: 0; left: 0; |
|
||||||
display: table; |
|
||||||
width: 250px; |
|
||||||
background: #fff; |
|
||||||
table-layout: fixed; |
|
||||||
} |
|
||||||
#nav_entries .item { |
|
||||||
display: table-cell; |
|
||||||
width: 30%; |
|
||||||
} |
|
||||||
#nav_entries a { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== "Load more" part */ |
|
||||||
#load_more { |
|
||||||
min-height: 40px; |
|
||||||
} |
|
||||||
.loading { |
|
||||||
background: url("loader.gif") center center no-repeat; |
|
||||||
font-size: 0; |
|
||||||
} |
|
||||||
#bigMarkAsRead { |
|
||||||
display: block; |
|
||||||
padding: 3em 0; |
|
||||||
text-align: center; |
|
||||||
} |
|
||||||
.bigTick { |
|
||||||
font-size: 7em; |
|
||||||
line-height: 1.6em; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Statistiques */ |
|
||||||
.stat > table { |
|
||||||
width: 100%; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== GLOBAL VIEW */ |
|
||||||
/*================*/ |
|
||||||
/*=== Category boxes */ |
|
||||||
#stream.global .box-category { |
|
||||||
display: inline-block; |
|
||||||
width: 19em; |
|
||||||
max-width: 95%; |
|
||||||
margin: 20px 10px; |
|
||||||
border: 1px solid #ccc; |
|
||||||
vertical-align: top; |
|
||||||
} |
|
||||||
#stream.global .category { |
|
||||||
width: 100%; |
|
||||||
} |
|
||||||
#stream.global .btn { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
#stream.global .box-category .feeds { |
|
||||||
display: block; |
|
||||||
overflow: auto; |
|
||||||
} |
|
||||||
#stream.global .box-category .feed { |
|
||||||
width: 19em; |
|
||||||
max-width: 90%; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== Panel */ |
|
||||||
#overlay { |
|
||||||
display: none; |
|
||||||
position: fixed; |
|
||||||
top: 0; bottom: 0; |
|
||||||
left: 0; right: 0; |
|
||||||
background: rgba(0, 0, 0, 0.9); |
|
||||||
} |
|
||||||
#panel { |
|
||||||
display: none; |
|
||||||
position: fixed; |
|
||||||
top: 1em; bottom: 1em; |
|
||||||
left: 2em; right: 2em; |
|
||||||
overflow: auto; |
|
||||||
background: #fff; |
|
||||||
} |
|
||||||
#panel .close { |
|
||||||
position: fixed; |
|
||||||
top: 0; bottom: 0; |
|
||||||
left: 0; right: 0; |
|
||||||
display: block; |
|
||||||
} |
|
||||||
#panel .close img { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== DIVERS */ |
|
||||||
/*===========*/ |
|
||||||
.nav-login, |
|
||||||
.nav_menu .search, |
|
||||||
.nav_menu .toggle_aside { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
|
|
||||||
.aside .toggle_aside { |
|
||||||
position: absolute; |
|
||||||
right: 0; |
|
||||||
display: none; |
|
||||||
width: 30px; |
|
||||||
height: 30px; |
|
||||||
line-height: 30px; |
|
||||||
text-align: center; |
|
||||||
} |
|
||||||
|
|
||||||
/*=== MOBILE */ |
|
||||||
/*===========*/ |
|
||||||
@media(max-width: 840px) { |
|
||||||
.header, |
|
||||||
.aside .btn-important, |
|
||||||
.aside .feeds .dropdown, |
|
||||||
.flux_header .item.website span, |
|
||||||
.item.date, .day .date, |
|
||||||
.dropdown-menu > .no-mobile, |
|
||||||
.no-mobile { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
.nav-login { |
|
||||||
display: block; |
|
||||||
} |
|
||||||
.nav_menu .toggle_aside, |
|
||||||
.aside .toggle_aside, |
|
||||||
.nav_menu .search, |
|
||||||
#panel .close img { |
|
||||||
display: inline-block; |
|
||||||
} |
|
||||||
|
|
||||||
.aside { |
|
||||||
position: fixed; |
|
||||||
top: 0; bottom: 0; |
|
||||||
left: 0; |
|
||||||
width: 0; |
|
||||||
overflow: hidden; |
|
||||||
z-index: 100; |
|
||||||
} |
|
||||||
.aside:target { |
|
||||||
width: 90%; |
|
||||||
overflow: auto; |
|
||||||
} |
|
||||||
.aside .categories { |
|
||||||
margin: 10px 0 75px; |
|
||||||
} |
|
||||||
|
|
||||||
.flux_header .item.website { |
|
||||||
width: 40px; |
|
||||||
} |
|
||||||
|
|
||||||
.flux:not(.current):hover .item.title { |
|
||||||
position: relative; |
|
||||||
width: auto; |
|
||||||
white-space: nowrap; |
|
||||||
} |
|
||||||
|
|
||||||
.notification { |
|
||||||
top: 0; |
|
||||||
left: 0; |
|
||||||
right: 0; |
|
||||||
} |
|
||||||
|
|
||||||
#nav_entries { |
|
||||||
width: 100%; |
|
||||||
} |
|
||||||
|
|
||||||
#stream.global .box-category { |
|
||||||
margin: 10px 0; |
|
||||||
} |
|
||||||
|
|
||||||
#panel { |
|
||||||
top: 0; bottom: 0; |
|
||||||
left: 0; right: 0; |
|
||||||
} |
|
||||||
#panel .close { |
|
||||||
top: 0; right: 0; |
|
||||||
left: auto; bottom: auto; |
|
||||||
display: inline-block; |
|
||||||
width: 30px; |
|
||||||
height: 30px; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
/*=== PRINTER */ |
|
||||||
/*============*/ |
|
||||||
@media print { |
|
||||||
.header, .aside, |
|
||||||
.nav_menu, .day, |
|
||||||
.flux_header, |
|
||||||
.flux_content .bottom, |
|
||||||
.pagination, |
|
||||||
#nav_entries { |
|
||||||
display: none; |
|
||||||
} |
|
||||||
html, body { |
|
||||||
background: #fff; |
|
||||||
color: #000; |
|
||||||
font-family: Serif; |
|
||||||
} |
|
||||||
#global, |
|
||||||
.flux_content { |
|
||||||
display: block !important; |
|
||||||
} |
|
||||||
.flux_content .content { |
|
||||||
width: 100% !important; |
|
||||||
} |
|
||||||
.flux_content .content a { |
|
||||||
color: #000; |
|
||||||
} |
|
||||||
.flux_content .content a:after { |
|
||||||
content: " [" attr(href) "] "; |
|
||||||
font-style: italic; |
|
||||||
} |
|
||||||
} |
|
@ -0,0 +1,4 @@ |
|||||||
|
Pafat |
||||||
|
===== |
||||||
|
|
||||||
|
Thème Pafat pour FreshRSS |
After Width: | Height: | Size: 350 B |
After Width: | Height: | Size: 747 B |
Before Width: | Height: | Size: 605 B After Width: | Height: | Size: 602 B |
Before Width: | Height: | Size: 421 B After Width: | Height: | Size: 421 B |
After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 662 B After Width: | Height: | Size: 656 B |
Before Width: | Height: | Size: 569 B After Width: | Height: | Size: 563 B |
Before Width: | Height: | Size: 589 B After Width: | Height: | Size: 586 B |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 586 B |
After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 747 B |
Before Width: | Height: | Size: 200 B After Width: | Height: | Size: 197 B |
After Width: | Height: | Size: 775 B |
After Width: | Height: | Size: 598 B |
After Width: | Height: | Size: 2.5 KiB |
@ -0,0 +1,7 @@ |
|||||||
|
{ |
||||||
|
"name": "Pafat", |
||||||
|
"author": "Plopoyop", |
||||||
|
"description": "Un thème pour FreshRSS", |
||||||
|
"version": 0.2, |
||||||
|
"files": ["_template.css", "pafat.css"] |
||||||
|
} |
Before Width: | Height: | Size: 220 B |
Before Width: | Height: | Size: 362 B |
Before Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 261 B |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 750 B |
Before Width: | Height: | Size: 567 B |
Before Width: | Height: | Size: 567 B |
Before Width: | Height: | Size: 805 B |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 470 B |
Before Width: | Height: | Size: 56 B |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 910 B |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 592 B |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 949 B |