diff options
-rw-r--r-- | CHANGELOG.md | 1 | ||||
-rw-r--r-- | README.md | 6 | ||||
-rw-r--r-- | appinfo/application.php | 6 | ||||
-rw-r--r-- | controller/pagecontroller.php | 21 | ||||
-rw-r--r-- | css/app.css | 2 | ||||
-rw-r--r-- | css/content.css | 25 | ||||
-rw-r--r-- | css/news-owncloud7.min.css | 2 | ||||
-rw-r--r-- | css/news.min.css | 2 | ||||
-rw-r--r-- | templates/index.php | 3 | ||||
-rw-r--r-- | templates/part.content.cronwarning.php | 29 | ||||
-rw-r--r-- | templates/part.content.php | 1 | ||||
-rw-r--r-- | tests/unit/controller/PageControllerTest.php | 63 |
12 files changed, 150 insertions, 11 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cba0ab40..3fca28c8f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ owncloud-news (4.1.0) * **Backwards incompatible change**: Time used for updating using the Python updater is now subtracted from the given interval meaning: if you specify 30 seconds as interval and the update takes 25 seconds, it will sleep for 5 seconds before running the next update +* **Enhancement**: Show a message if ajax cron is used to inform people of improperly configured cron * **Enhancement**: Allow to specify configuration file for Python updater * **Enhancement**: Add short command line options for the Python updater * -u, --user @@ -108,7 +108,7 @@ To update the News app use change into the **owncloud/apps/news/** directory usi ## Performance Notices * Use MySQL or PostgreSQL for better database performance -* Use the [updater script to thread and speed up the update](https://github.com/owncloud/news/wiki/Cron-1.2) +* Use the [updater script to thread and speed up the update](https://github.com/owncloud/news/wiki/Custom-Updater) * Feed updates on plattforms using **php-fpm are significantly slower** due to workarounds which are needed to deal with [libxml not being threadsafe](https://bugs.php.net/bug.php?id=64938) ## Updating Notices @@ -148,7 +148,7 @@ Check the **owncloud/data/owncloud.log** for hints why it failed. After the issu ### All feeds are not updated anymore [This is a bug in the core backgroundjob system](https://github.com/owncloud/core/issues/3221) deleting the **owncloud/data/cron.lock** file gets the cron back up running -Another way to fix this is to run a custom [updater script](https://github.com/owncloud/news/wiki/Cron-1.2) +Another way to fix this is to run a custom [updater script](https://github.com/owncloud/news/wiki/Custom-Updater) ### All feeds are not updated and theres no cron.lock * Check if the cronjob exists with **crontab -u www-data -e** (replace www-data with your httpd user) @@ -156,7 +156,7 @@ Another way to fix this is to run a custom [updater script](https://github.com/o * Check if the cronjob is ever executed by placing an **error_log('updating')** in the [background job file](https://github.com/owncloud/news/blob/master/backgroundjob/task.php#L37). If the cronjob runs, there should be an updating log statement in your httpd log. * If there is no **updating** statement in your logs check if your cronjob is executed by executing a different script * If your cron works fine but owncloud's cronjobs are never executed, file a bug in [core](https://github.com/owncloud/core/) -* Try the [updater script](https://github.com/owncloud/news/wiki/Cron-1.2) +* Try the [updater script](https://github.com/owncloud/news/wiki/Custom-Updater) Configuration diff --git a/appinfo/application.php b/appinfo/application.php index 3820603b0..6e84cde64 100644 --- a/appinfo/application.php +++ b/appinfo/application.php @@ -82,6 +82,8 @@ class Application extends App { $c->query('CoreConfig'), $c->query('URLGenerator'), $c->query('AppConfig'), + $c->query('AdminConfig'), + $c->query('Config'), $c->query('L10N'), $c->query('UserId') ); @@ -316,6 +318,10 @@ class Application extends App { return $c->query('ServerContainer')->getConfig(); }); + $container->registerService('AdminConfig', function($c) { + return $c->query('ServerContainer')->getAppConfig(); + }); + $container->registerService('DatabaseType', function($c) { return $c->query('ServerContainer') ->getConfig()->getSystemValue('dbtype'); diff --git a/controller/pagecontroller.php b/controller/pagecontroller.php index ac0384db2..4bbf287f9 100644 --- a/controller/pagecontroller.php +++ b/controller/pagecontroller.php @@ -20,8 +20,10 @@ use \OCP\IConfig; use \OCP\IL10N; use \OCP\IURLGenerator; use \OCP\AppFramework\Controller; +use \OCP\IAppConfig as AdminConfig; use \OCA\News\Config\AppConfig; +use \OCA\News\Config\Config; class PageController extends Controller { @@ -30,12 +32,16 @@ class PageController extends Controller { private $userId; private $appConfig; private $urlGenerator; + private $adminConfig; + private $config; public function __construct($appName, IRequest $request, IConfig $settings, IURLGenerator $urlGenerator, AppConfig $appConfig, + AdminConfig $adminConfig, + Config $config, IL10N $l10n, $userId){ parent::__construct($appName, $request); @@ -44,6 +50,8 @@ class PageController extends Controller { $this->appConfig = $appConfig; $this->l10n = $l10n; $this->userId = $userId; + $this->adminConfig = $adminConfig; + $this->config = $config; } @@ -52,7 +60,18 @@ class PageController extends Controller { * @NoCSRFRequired */ public function index() { - return new TemplateResponse($this->appName, 'index'); + $cronWarning = ''; + $cronMode = $this->adminConfig->getValue('core', 'backgroundjobs_mode'); + $cronOn = $this->config->getUseCronUpdates(); + + // check for cron modes which may lead to problems + if ($cronMode === 'ajax' && $cronOn) { + $cronWarning = 'ajaxCron'; + } + + return new TemplateResponse($this->appName, 'index', [ + 'cronWarning' => $cronWarning + ]); } diff --git a/css/app.css b/css/app.css index 4224ad3fc..8ed2a734f 100644 --- a/css/app.css +++ b/css/app.css @@ -40,5 +40,3 @@ #undo a:hover { text-decoration: underline; } - - diff --git a/css/content.css b/css/content.css index f04063722..97d23dd70 100644 --- a/css/content.css +++ b/css/content.css @@ -8,6 +8,31 @@ * @copyright Bernhard Posselt 2014 */ + +/** + * cron warning styles + */ +#cron-warning { + background-color: #ffcc00; + text-align: center; + width: 100%; + padding: 10px; + font-size: 13pt; +} + + #cron-warning p, + #cron-warning li { + line-height: 1.5; + } + + #cron-warning a { + color: #0000ff; + } + + #cron-warning a:hover { + text-decoration: underline; + } + /** * First run styles */ diff --git a/css/news-owncloud7.min.css b/css/news-owncloud7.min.css index b200c637d..38714b467 100644 --- a/css/news-owncloud7.min.css +++ b/css/news-owncloud7.min.css @@ -1 +1 @@ -#app-navigation .active.with-menu>a,#app-navigation .with-counter>a{padding-right:50px}#app-navigation .active.with-menu.with-counter>a{padding-right:90px}#app-navigation>.with-icon ul li.app-navigation-entry-loading>a,#app-navigation>.with-icon ul li>a{padding-left:68px;background-position:44px center}#app-navigation .selected,#app-navigation .selected a,#app-navigation li:hover>a{background-color:#ddd}#app-navigation .app-navigation-entry-loading a,#app-navigation .with-icon a{padding-left:44px;background-size:16px 16px;background-position:14px center;background-repeat:no-repeat}#app-navigation .collapsible.open{background-image:linear-gradient(top,#eee 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#eee 0,#f5f5f5 100%);background-image:-moz-linear-gradient(top,#eee 0,#f5f5f5 100%);background-image:-webkit-linear-gradient(top,#eee 0,#f5f5f5 100%);background-image:-ms-linear-gradient(top,#eee 0,#f5f5f5 100%)}#app-navigation>ul .collapsible.open:hover{box-shadow:inset 0 0 3px #ddd}#app-navigation>ul .collapsible.open ul{display:block}#app-navigation .app-navigation-entry-deleted{display:inline-block;height:44px;width:100%}#app-navigation .app-navigation-entry-deleted-description{padding-left:12px;position:relative;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:inline-block;width:201px;width:calc(100% - 49px);line-height:44px;float:left}#app-navigation .app-navigation-entry-deleted-button{margin:0;height:44px;width:44px;line-height:44px;border:0;display:inline-block;background-color:transparent;opacity:.5}#app-navigation .app-navigation-entry-deleted-button:hover{opacity:1}#app-navigation .app-navigation-entry-utils{position:absolute;top:0;right:0;z-index:10}#app-navigation .app-navigation-entry-utils ul{display:block!important}#app-navigation .app-navigation-entry-utils li{float:left;width:44px!important;height:44px;line-height:44px}#app-navigation .active>.app-navigation-entry-utils li{display:inline-block}#app-navigation .app-navigation-entry-utils button{height:38px;width:38px;line-height:38px;float:left}#app-navigation .app-navigation-entry-utils-menu-button{display:none}#app-navigation .app-navigation-entry-utils-menu-button button{border:0;opacity:.5;background-color:transparent;background-repeat:no-repeat;background-position:center;background-image:url(../img/7/more.svg)}#app-navigation .app-navigation-entry-utils-menu-button:focus button,#app-navigation .app-navigation-entry-utils-menu-button:hover button{background-color:transparent;opacity:1}#app-navigation .app-navigation-entry-utils-counter{overflow:hidden;text-overflow:hidden;text-align:right;font-size:9pt;width:38px;line-height:44px;padding:0 10px}#app-navigation .app-navigation-entry-menu ul,#app-navigation .app-navigation-entry-utils ul{list-style-type:none}#app-navigation .app-navigation-entry-menu{display:none;position:absolute;background-color:#eee;color:#333;border-radius:3px 0 3px 3px;z-index:110;margin:-5px 14px 5px 10px;right:0;border:1px solid #bbb;-webkit-filter:drop-shadow(0 0 5px rgba(150,150,150,.75));-moz-filter:drop-shadow(0 0 5px rgba(150,150,150,.75));-ms-filter:drop-shadow(0 0 5px rgba(150,150,150,.75));-o-filter:drop-shadow(0 0 5px rgba(150,150,150,.75));filter:drop-shadow(0 0 5px rgba(150,150,150,.75))}#app-navigation .app-navigation-entry-menu.open{display:block}#app-navigation .app-navigation-entry-menu:after,#app-navigation .app-navigation-entry-menu:before{bottom:100%;right:0;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}#app-navigation .app-navigation-entry-menu:after{border-color:rgba(238,238,238,0);border-bottom-color:#eee;border-width:10px;margin-left:-10px}#app-navigation .app-navigation-entry-menu:before{border-color:rgba(187,187,187,0);border-bottom-color:#bbb;border-width:11px;margin-left:-11px}#app-navigation .app-navigation-entry-menu ul{display:block!important}#app-navigation .app-navigation-entry-menu li{float:left;width:38px!important}#app-navigation .app-navigation-entry-menu li button{float:right;width:36px!important;height:36px;line-height:36px;border:0;opacity:.5;background-color:transparent}#app-navigation .app-navigation-entry-menu li button:focus,#app-navigation .app-navigation-entry-menu li button:hover{opacity:1;background-color:transparent}#app-navigation .app-navigation-entry-edit{padding-left:5px;padding-right:5px;display:inline-block;height:39px;width:100%}#app-navigation .app-navigation-entry-edit input{border-bottom-right-radius:0;border-top-right-radius:0;width:204px;width:calc(100% - 36px);padding:5px;margin-right:0;height:38px;float:left;border:1px solid rgba(190,190,190,.9)}#app-navigation .app-navigation-entry-edit button,#app-navigation .app-navigation-entry-edit input[type=submit]{width:36px;height:38px;float:left}#app-navigation .app-navigation-entry-edit .icon-checkmark{border-bottom-left-radius:0;border-top-left-radius:0;border-left:0;margin-right:0}#app-content{z-index:25}#app-settings,#expanddiv{z-index:15}#global-loading{width:100%;height:100%}#undo-container{position:fixed;top:0;width:100%;text-align:center;z-index:101;line-height:1.2}#undo{z-index:101;background-color:#fc4;border:0;padding:0 .7em .3em;display:none;position:relative;top:0;border-bottom-left-radius:1em;border-bottom-right-radius:1em}#undo a{font-weight:700}#undo a:hover{text-decoration:underline}#first-run{display:none;height:100%;width:100%}.first-run #first-run{display:block}#first-run>div{width:100%;height:100%;display:table}#first-run>div>div{display:table-row}#first-run>div>div>*{display:table-cell;vertical-align:middle}#first-run .title h1{color:#222;font-size:18px;text-align:center}#first-run .helper h1{color:#222;font-size:18px;height:44px;padding-left:45px;background-position:15px center;background-image:url(../img/arrow.svg);background-repeat:no-repeat}.first-run #app-content-wrapper{height:100%}#app-content.loading-content{background:url(../img/loading.gif) calc(50% - 16px) calc(50% - 16px) no-repeat}#app-content.loading-content>*{display:none}#app-content:not(.first-run):after{content:'';display:block;height:100%}#app-content-wrapper.autopaging:after{content:'';background-image:url(../img/loading.gif) no-repeat;background-position:calc(50% - 16px) calc(50% - 16px)}.pull-to-refresh{height:0;overflow:hidden;text-align:center;background-image:-moz-linear-gradient(top,#eee 0,#fefefe 100%);background-image:-webkit-linear-gradient(top,#eee 0,#fefefe 100%);background-image:-ms-linear-gradient(top,#eee 0,#fefefe 100%);background-image:linear-gradient(top,#eee 0,#fefefe 100%)}.pull-to-refresh.show-pull-to-refresh{transition:all .5s ease;padding-top:10px;height:44px}#app-content .only-in-expanded{display:block}#app-content .compact .only-in-expanded,#app-content .only-in-compact{display:none}#app-content .compact .only-in-compact{display:block}#app-content .item{cursor:default;border-bottom:1px solid #eee;background-image:linear-gradient(top,#f8f8f8 0,#fff 84px)}#app-content .item:last-child{border-bottom:0}#app-content .utils{width:100%;line-height:52px;box-sizing:border-box;padding:15px 50px 0 15px}#app-content .compact .utils{cursor:pointer;padding-top:0}#app-content .utils ul{height:40px;list-style-type:none;display:flex;margin:0;padding:0}#app-content .open .utils ul{height:auto}#app-content .util-spacer{width:20px}#app-content .compact .util-spacer{width:19px}#app-content .utils li{line-height:40px;vertical-align:middle}#app-content .utils li:last-child{padding-right:0}#app-content .utils li:first-child{padding-left:0}#app-content .utils .util{padding:0 6px}#app-content .utils .external,#app-content .utils button{padding:0;margin:0;height:40px;width:40px;border:0;float:left;background-color:transparent;background-repeat:no-repeat;background-size:25px;background-position:center}#app-content .utils .external,#app-content .utils .icon-toggle,#app-content .utils .menu button{display:inline-block;opacity:.3}#app-content .utils .external:hover,#app-content .utils .icon-toggle.keep-unread,#app-content .utils .icon-toggle:hover,#app-content .utils .menu button:hover{opacity:1}#app-content .utils .star{background-image:url(../img/inactive_star.svg)}#app-content .utils .star:hover,#app-content .utils .starred{background-image:url(../img/active_star.svg)}#app-content .utils .title{width:100%;padding-left:45px;background-position:10px 10px;background-size:20px 20px;background-repeat:no-repeat}#app-content .feed-view .utils .title{background:none!important;padding-left:10px}#app-content .utils .title h1 a{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%;line-height:40px;display:inline-block;color:#222;font-weight:700;font-size:16px}#app-content .open .utils .title h1 a{overflow:auto;white-space:normal}#app-content .read .utils .title h1 a{font-weight:400;color:#888}#app-content .utils .date{padding:0 15px;margin-right:25px}#app-content .heading{padding:25px 0 10px}#app-content .heading h1{font-size:19px;margin-right:182px;word-wrap:break-word}#app-content .heading a{font-weight:700;color:#000}#app-content .heading a:hover{text-decoration:underline}#app-content .heading .date{float:right;display:inline-block;font-size:15px}#app-content .read .heading a{font-weight:400!important;color:#888}#app-content .feed-view .source{display:none}#app-content .article{min-height:69px;padding:0 50px 50px}#app-content .compact .article{display:none}#app-content .open .article{display:block}#app-content .subtitle{color:#aaa;font-size:15px;width:100%;padding-bottom:25px}#app-content .subtitle a{color:#aaa}#app-content .subtitle a:hover{text-decoration:underline}#app-content .date{color:#aaa;white-space:nowrap}#app-content .author{color:#aaa;font-size:15px}#app-content .author a{color:inherit}#app-content .author a:hover{text-decoration:underline}#app-content .enclosure{padding:20px 0;text-align:center;max-width:770px;margin-bottom:15px}#app-content .enclosure audio,#app-content .enclosure img,#app-content .enclosure video{width:100%}#app-content .enclosure video{background-color:#000}#app-content .enclosure-error{line-height:1.5;height:40px}#app-content .body{max-width:770px;font-size:14px;clear:both;overflow-x:auto}#app-content .body p{line-height:1.5;margin:7px 0 14px}#app-content .body img,#app-content .body table{max-width:100%;height:auto;overflow:auto;word-wrap:break-word;white-space:normal}#app-content .body>div :first-child>img:first-child,#app-content .body>div>img:first-child{padding:0 14px 0 0;float:left}#app-content .body h1,#app-content .body h2{font-size:17px;font-weight:700;color:#222;margin:21px 0 0}#app-content .body h3{font-size:15px;font-weight:700;color:#222;margin:21px 0 0;text-decoration:underline}#app-content .body h4,#app-content .body h5,#app-content .body h6{font-weight:700}#app-content .body>div{margin:7px 0}#app-content .body a{color:#00f;text-decoration:underline}#app-content .body ul{margin:7px 0;padding-left:14px;list-style-type:disc}#app-content .body ol{margin:7px 0;padding-left:21px}#app-content .body ul li{cursor:default;line-height:21px}#app-content .body pre{padding:7px 7px 7px 14px;background-color:#dadada;border:1px solid #ccc;margin:7px 0 14px;overflow-y:auto}#app-content .body pre::-webkit-scrollbar{height:10px}#app-content .body pre::-webkit-scrollbar-thumb{background:#333}#app-content .body pre::-webkit-scrollbar-track-piece{background:#ddd}#app-content .body code,#app-content .body pre{font-family:monospace;font-size:16px}#app-content .body blockquote{border-left:1px solid #d2d2d2;margin:25px 0;padding:0 0 0 15px;font-style:italic}#app-content .body em{font-style:italic;opacity:1}#app-content .custom-heise-de .body p>span:first-child{display:inline-block;float:left;margin-right:10px;padding:6px 0}#app-content .custom-slashdot-org .body div>i{display:block;border-left:1px solid #d2d2d2;margin:25px 0;padding:0 0 0 15px}@media (max-width:770px){#app-content .utils .date{display:none}#app-shortcuts th:first-child{padding-left:44px}}@media (max-width:600px){#app-content .heading .date{display:none}#app-content .heading h1{margin-right:0}#app-content .utils{padding-right:15px}#app-content .article{padding-right:15px;padding-left:44px}}#app-shortcuts table{border-collapse:collapse;width:100%;white-space:normal}#app-shortcuts tr:first-child{background-color:#f5f5f5}#app-shortcuts td,#app-shortcuts th{padding:10px}#app-shortcuts td{padding-right:15px}#app-shortcuts th{font-weight:700}#app-shortcuts td:first-child,#app-shortcuts th:first-child{text-align:right;font-weight:700;width:140px;-moz-box-sizing:content-box;box-sizing:content-box}#app-navigation .add-new .heading{height:44px;width:100%;padding:0 0 0 44px;background-position:14px center}#app-navigation .add-new .heading:hover{background-color:#ccc}#app-navigation .add-new .heading button{padding:0;line-height:44px;width:100%;border:0;margin:0;background:0 0;text-align:left;font-weight:400}#app-navigation .add-new-popup{display:none;padding:10px;box-shadow:inset 0 0 10px #dedede;border-top:1px solid #dedede;border-bottom:1px solid #dedede}#app-navigation input.ng-invalid{border:1px solid #d14}#app-navigation .add-new-popup input,#app-navigation .add-new-popup select{width:100%;height:36px;padding:5px;margin-right:0}#app-navigation #new-feed [name=folderName],#app-navigation .add-new-popup select{width:calc(100% - 36px);border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;float:left}#app-navigation .add-new-popup .add-new-folder-primary{float:right;border-bottom-left-radius:0;border-top-left-radius:0;width:36px;height:36px;margin-left:0;margin-right:0}#app-navigation .add-new-popup .error{padding:0 0 10px}#app-navigation .icon-starred{background-image:url(../img/starred.png)}.icon-rss{background-image:url(../img/rss.svg)!important}#app-navigation .unread>a{font-weight:700}#app-navigation .entry-loading{background-image:url(../img/loading.gif)!important}#app-navigation input.entry-loading{background-size:20px}#app-navigation p.error{line-height:25px}#app-navigation .folder-rename-error{height:auto}#app-navigation .error-message{padding:15px;background-color:#DE1212;color:#fff;position:relative}#app-navigation .ui-state-disabled{opacity:1}#app-navigation .error-message .title{font-weight:700;padding-right:30px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#app-navigation .error-message button{top:0;right:0;position:absolute;margin:0;height:44px;width:44px;padding:15px;border:0;background-size:25px;background-color:transparent;background-image:url(../img/close.svg);background-repeat:no-repeat;background-position:right 5px top 5px;opacity:.9}#app-navigation .error-message button:hover{opacity:1}#app-settings input[type=file]{position:absolute;left:-30000px}#app-settings .opened:hover{background-color:transparent!important}#app-settings-content{padding-bottom:25px}#app-settings-content h3{padding:5px 0;font-weight:700}#app-settings-content a{color:#00F;text-decoration:underline}#app-settings-content p{padding:2px 2px 2px 10px}.button-icon-label{background-position:10px center;background-size:16px;padding-left:25px}#app-settings .import-export h3{padding-top:15px;padding-bottom:5px}#app-settings .import-export a,#app-settings .import-export button{width:113px;height:30px;margin:0;vertical-align:middle;background-position:center}#app-settings .import-export a{display:inline-block}
\ No newline at end of file +#app-navigation .active.with-menu>a,#app-navigation .with-counter>a{padding-right:50px}#app-navigation .active.with-menu.with-counter>a{padding-right:90px}#app-navigation>.with-icon ul li.app-navigation-entry-loading>a,#app-navigation>.with-icon ul li>a{padding-left:68px;background-position:44px center}#app-navigation .selected,#app-navigation .selected a,#app-navigation li:hover>a{background-color:#ddd}#app-navigation .app-navigation-entry-loading a,#app-navigation .with-icon a{padding-left:44px;background-size:16px 16px;background-position:14px center;background-repeat:no-repeat}#app-navigation .collapsible.open{background-image:linear-gradient(top,#eee 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#eee 0,#f5f5f5 100%);background-image:-moz-linear-gradient(top,#eee 0,#f5f5f5 100%);background-image:-webkit-linear-gradient(top,#eee 0,#f5f5f5 100%);background-image:-ms-linear-gradient(top,#eee 0,#f5f5f5 100%)}#app-navigation>ul .collapsible.open:hover{box-shadow:inset 0 0 3px #ddd}#app-navigation>ul .collapsible.open ul{display:block}#app-navigation .app-navigation-entry-deleted{display:inline-block;height:44px;width:100%}#app-navigation .app-navigation-entry-deleted-description{padding-left:12px;position:relative;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:inline-block;width:201px;width:calc(100% - 49px);line-height:44px;float:left}#app-navigation .app-navigation-entry-deleted-button{margin:0;height:44px;width:44px;line-height:44px;border:0;display:inline-block;background-color:transparent;opacity:.5}#app-navigation .app-navigation-entry-deleted-button:hover{opacity:1}#app-navigation .app-navigation-entry-utils{position:absolute;top:0;right:0;z-index:10}#app-navigation .app-navigation-entry-utils ul{display:block!important}#app-navigation .app-navigation-entry-utils li{float:left;width:44px!important;height:44px;line-height:44px}#app-navigation .active>.app-navigation-entry-utils li{display:inline-block}#app-navigation .app-navigation-entry-utils button{height:38px;width:38px;line-height:38px;float:left}#app-navigation .app-navigation-entry-utils-menu-button{display:none}#app-navigation .app-navigation-entry-utils-menu-button button{border:0;opacity:.5;background-color:transparent;background-repeat:no-repeat;background-position:center;background-image:url(../img/7/more.svg)}#app-navigation .app-navigation-entry-utils-menu-button:focus button,#app-navigation .app-navigation-entry-utils-menu-button:hover button{background-color:transparent;opacity:1}#app-navigation .app-navigation-entry-utils-counter{overflow:hidden;text-overflow:hidden;text-align:right;font-size:9pt;width:38px;line-height:44px;padding:0 10px}#app-navigation .app-navigation-entry-menu ul,#app-navigation .app-navigation-entry-utils ul{list-style-type:none}#app-navigation .app-navigation-entry-menu{display:none;position:absolute;background-color:#eee;color:#333;border-radius:3px 0 3px 3px;z-index:110;margin:-5px 14px 5px 10px;right:0;border:1px solid #bbb;-webkit-filter:drop-shadow(0 0 5px rgba(150,150,150,.75));-moz-filter:drop-shadow(0 0 5px rgba(150,150,150,.75));-ms-filter:drop-shadow(0 0 5px rgba(150,150,150,.75));-o-filter:drop-shadow(0 0 5px rgba(150,150,150,.75));filter:drop-shadow(0 0 5px rgba(150,150,150,.75))}#app-navigation .app-navigation-entry-menu.open{display:block}#app-navigation .app-navigation-entry-menu:after,#app-navigation .app-navigation-entry-menu:before{bottom:100%;right:0;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}#app-navigation .app-navigation-entry-menu:after{border-color:rgba(238,238,238,0);border-bottom-color:#eee;border-width:10px;margin-left:-10px}#app-navigation .app-navigation-entry-menu:before{border-color:rgba(187,187,187,0);border-bottom-color:#bbb;border-width:11px;margin-left:-11px}#app-navigation .app-navigation-entry-menu ul{display:block!important}#app-navigation .app-navigation-entry-menu li{float:left;width:38px!important}#app-navigation .app-navigation-entry-menu li button{float:right;width:36px!important;height:36px;line-height:36px;border:0;opacity:.5;background-color:transparent}#app-navigation .app-navigation-entry-menu li button:focus,#app-navigation .app-navigation-entry-menu li button:hover{opacity:1;background-color:transparent}#app-navigation .app-navigation-entry-edit{padding-left:5px;padding-right:5px;display:inline-block;height:39px;width:100%}#app-navigation .app-navigation-entry-edit input{border-bottom-right-radius:0;border-top-right-radius:0;width:204px;width:calc(100% - 36px);padding:5px;margin-right:0;height:38px;float:left;border:1px solid rgba(190,190,190,.9)}#app-navigation .app-navigation-entry-edit button,#app-navigation .app-navigation-entry-edit input[type=submit]{width:36px;height:38px;float:left}#app-navigation .app-navigation-entry-edit .icon-checkmark{border-bottom-left-radius:0;border-top-left-radius:0;border-left:0;margin-right:0}#app-content{z-index:25}#app-settings,#expanddiv{z-index:15}#global-loading{width:100%;height:100%}#undo-container{position:fixed;top:0;width:100%;text-align:center;z-index:101;line-height:1.2}#undo{z-index:101;background-color:#fc4;border:0;padding:0 .7em .3em;display:none;position:relative;top:0;border-bottom-left-radius:1em;border-bottom-right-radius:1em}#undo a{font-weight:700}#undo a:hover{text-decoration:underline}#cron-warning{background-color:#fc0;text-align:center;width:100%;padding:10px;font-size:13pt}#cron-warning li,#cron-warning p{line-height:1.5}#cron-warning a{color:#00f}#cron-warning a:hover{text-decoration:underline}#first-run{display:none;height:100%;width:100%}.first-run #first-run{display:block}#first-run>div{width:100%;height:100%;display:table}#first-run>div>div{display:table-row}#first-run>div>div>*{display:table-cell;vertical-align:middle}#first-run .title h1{color:#222;font-size:18px;text-align:center}#first-run .helper h1{color:#222;font-size:18px;height:44px;padding-left:45px;background-position:15px center;background-image:url(../img/arrow.svg);background-repeat:no-repeat}.first-run #app-content-wrapper{height:100%}#app-content.loading-content{background:url(../img/loading.gif) calc(50% - 16px) calc(50% - 16px) no-repeat}#app-content.loading-content>*{display:none}#app-content:not(.first-run):after{content:'';display:block;height:100%}#app-content-wrapper.autopaging:after{content:'';background-image:url(../img/loading.gif) no-repeat;background-position:calc(50% - 16px) calc(50% - 16px)}.pull-to-refresh{height:0;overflow:hidden;text-align:center;background-image:-moz-linear-gradient(top,#eee 0,#fefefe 100%);background-image:-webkit-linear-gradient(top,#eee 0,#fefefe 100%);background-image:-ms-linear-gradient(top,#eee 0,#fefefe 100%);background-image:linear-gradient(top,#eee 0,#fefefe 100%)}.pull-to-refresh.show-pull-to-refresh{transition:all .5s ease;padding-top:10px;height:44px}#app-content .only-in-expanded{display:block}#app-content .compact .only-in-expanded,#app-content .only-in-compact{display:none}#app-content .compact .only-in-compact{display:block}#app-content .item{cursor:default;border-bottom:1px solid #eee;background-image:linear-gradient(top,#f8f8f8 0,#fff 84px)}#app-content .item:last-child{border-bottom:0}#app-content .utils{width:100%;line-height:52px;box-sizing:border-box;padding:15px 50px 0 15px}#app-content .compact .utils{cursor:pointer;padding-top:0}#app-content .utils ul{height:40px;list-style-type:none;display:flex;margin:0;padding:0}#app-content .open .utils ul{height:auto}#app-content .util-spacer{width:20px}#app-content .compact .util-spacer{width:19px}#app-content .utils li{line-height:40px;vertical-align:middle}#app-content .utils li:last-child{padding-right:0}#app-content .utils li:first-child{padding-left:0}#app-content .utils .util{padding:0 6px}#app-content .utils .external,#app-content .utils button{padding:0;margin:0;height:40px;width:40px;border:0;float:left;background-color:transparent;background-repeat:no-repeat;background-size:25px;background-position:center}#app-content .utils .external,#app-content .utils .icon-toggle,#app-content .utils .menu button{display:inline-block;opacity:.3}#app-content .utils .external:hover,#app-content .utils .icon-toggle.keep-unread,#app-content .utils .icon-toggle:hover,#app-content .utils .menu button:hover{opacity:1}#app-content .utils .star{background-image:url(../img/inactive_star.svg)}#app-content .utils .star:hover,#app-content .utils .starred{background-image:url(../img/active_star.svg)}#app-content .utils .title{width:100%;padding-left:45px;background-position:10px 10px;background-size:20px 20px;background-repeat:no-repeat}#app-content .feed-view .utils .title{background:none!important;padding-left:10px}#app-content .utils .title h1 a{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%;line-height:40px;display:inline-block;color:#222;font-weight:700;font-size:16px}#app-content .open .utils .title h1 a{overflow:auto;white-space:normal}#app-content .read .utils .title h1 a{font-weight:400;color:#888}#app-content .utils .date{padding:0 15px;margin-right:25px}#app-content .heading{padding:25px 0 10px}#app-content .heading h1{font-size:19px;margin-right:182px;word-wrap:break-word}#app-content .heading a{font-weight:700;color:#000}#app-content .heading a:hover{text-decoration:underline}#app-content .heading .date{float:right;display:inline-block;font-size:15px}#app-content .read .heading a{font-weight:400!important;color:#888}#app-content .feed-view .source{display:none}#app-content .article{min-height:69px;padding:0 50px 50px}#app-content .compact .article{display:none}#app-content .open .article{display:block}#app-content .subtitle{color:#aaa;font-size:15px;width:100%;padding-bottom:25px}#app-content .subtitle a{color:#aaa}#app-content .subtitle a:hover{text-decoration:underline}#app-content .date{color:#aaa;white-space:nowrap}#app-content .author{color:#aaa;font-size:15px}#app-content .author a{color:inherit}#app-content .author a:hover{text-decoration:underline}#app-content .enclosure{padding:20px 0;text-align:center;max-width:770px;margin-bottom:15px}#app-content .enclosure audio,#app-content .enclosure img,#app-content .enclosure video{width:100%}#app-content .enclosure video{background-color:#000}#app-content .enclosure-error{line-height:1.5;height:40px}#app-content .body{max-width:770px;font-size:14px;clear:both;overflow-x:auto}#app-content .body p{line-height:1.5;margin:7px 0 14px}#app-content .body img,#app-content .body table{max-width:100%;height:auto;overflow:auto;word-wrap:break-word;white-space:normal}#app-content .body>div :first-child>img:first-child,#app-content .body>div>img:first-child{padding:0 14px 0 0;float:left}#app-content .body h1,#app-content .body h2{font-size:17px;font-weight:700;color:#222;margin:21px 0 0}#app-content .body h3{font-size:15px;font-weight:700;color:#222;margin:21px 0 0;text-decoration:underline}#app-content .body h4,#app-content .body h5,#app-content .body h6{font-weight:700}#app-content .body>div{margin:7px 0}#app-content .body a{color:#00f;text-decoration:underline}#app-content .body ul{margin:7px 0;padding-left:14px;list-style-type:disc}#app-content .body ol{margin:7px 0;padding-left:21px}#app-content .body ul li{cursor:default;line-height:21px}#app-content .body pre{padding:7px 7px 7px 14px;background-color:#dadada;border:1px solid #ccc;margin:7px 0 14px;overflow-y:auto}#app-content .body pre::-webkit-scrollbar{height:10px}#app-content .body pre::-webkit-scrollbar-thumb{background:#333}#app-content .body pre::-webkit-scrollbar-track-piece{background:#ddd}#app-content .body code,#app-content .body pre{font-family:monospace;font-size:16px}#app-content .body blockquote{border-left:1px solid #d2d2d2;margin:25px 0;padding:0 0 0 15px;font-style:italic}#app-content .body em{font-style:italic;opacity:1}#app-content .custom-heise-de .body p>span:first-child{display:inline-block;float:left;margin-right:10px;padding:6px 0}#app-content .custom-slashdot-org .body div>i{display:block;border-left:1px solid #d2d2d2;margin:25px 0;padding:0 0 0 15px}@media (max-width:770px){#app-content .utils .date{display:none}#app-shortcuts th:first-child{padding-left:44px}}@media (max-width:600px){#app-content .heading .date{display:none}#app-content .heading h1{margin-right:0}#app-content .utils{padding-right:15px}#app-content .article{padding-right:15px;padding-left:44px}}#app-shortcuts table{border-collapse:collapse;width:100%;white-space:normal}#app-shortcuts tr:first-child{background-color:#f5f5f5}#app-shortcuts td,#app-shortcuts th{padding:10px}#app-shortcuts td{padding-right:15px}#app-shortcuts th{font-weight:700}#app-shortcuts td:first-child,#app-shortcuts th:first-child{text-align:right;font-weight:700;width:140px;-moz-box-sizing:content-box;box-sizing:content-box}#app-navigation .add-new .heading{height:44px;width:100%;padding:0 0 0 44px;background-position:14px center}#app-navigation .add-new .heading:hover{background-color:#ccc}#app-navigation .add-new .heading button{padding:0;line-height:44px;width:100%;border:0;margin:0;background:0 0;text-align:left;font-weight:400}#app-navigation .add-new-popup{display:none;padding:10px;box-shadow:inset 0 0 10px #dedede;border-top:1px solid #dedede;border-bottom:1px solid #dedede}#app-navigation input.ng-invalid{border:1px solid #d14}#app-navigation .add-new-popup input,#app-navigation .add-new-popup select{width:100%;height:36px;padding:5px;margin-right:0}#app-navigation #new-feed [name=folderName],#app-navigation .add-new-popup select{width:calc(100% - 36px);border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;float:left}#app-navigation .add-new-popup .add-new-folder-primary{float:right;border-bottom-left-radius:0;border-top-left-radius:0;width:36px;height:36px;margin-left:0;margin-right:0}#app-navigation .add-new-popup .error{padding:0 0 10px}#app-navigation .icon-starred{background-image:url(../img/starred.png)}.icon-rss{background-image:url(../img/rss.svg)!important}#app-navigation .unread>a{font-weight:700}#app-navigation .entry-loading{background-image:url(../img/loading.gif)!important}#app-navigation input.entry-loading{background-size:20px}#app-navigation p.error{line-height:25px}#app-navigation .folder-rename-error{height:auto}#app-navigation .error-message{padding:15px;background-color:#DE1212;color:#fff;position:relative}#app-navigation .ui-state-disabled{opacity:1}#app-navigation .error-message .title{font-weight:700;padding-right:30px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#app-navigation .error-message button{top:0;right:0;position:absolute;margin:0;height:44px;width:44px;padding:15px;border:0;background-size:25px;background-color:transparent;background-image:url(../img/close.svg);background-repeat:no-repeat;background-position:right 5px top 5px;opacity:.9}#app-navigation .error-message button:hover{opacity:1}#app-settings input[type=file]{position:absolute;left:-30000px}#app-settings .opened:hover{background-color:transparent!important}#app-settings-content{padding-bottom:25px}#app-settings-content h3{padding:5px 0;font-weight:700}#app-settings-content a{color:#00F;text-decoration:underline}#app-settings-content p{padding:2px 2px 2px 10px}.button-icon-label{background-position:10px center;background-size:16px;padding-left:25px}#app-settings .import-export h3{padding-top:15px;padding-bottom:5px}#app-settings .import-export a,#app-settings .import-export button{width:113px;height:30px;margin:0;vertical-align:middle;background-position:center}#app-settings .import-export a{display:inline-block}
\ No newline at end of file diff --git a/css/news.min.css b/css/news.min.css index 0e2e14b88..71c35477d 100644 --- a/css/news.min.css +++ b/css/news.min.css @@ -1 +1 @@ -#global-loading{width:100%;height:100%}#undo-container{position:fixed;top:0;width:100%;text-align:center;z-index:101;line-height:1.2}#undo{z-index:101;background-color:#fc4;border:0;padding:0 .7em .3em;display:none;position:relative;top:0;border-bottom-left-radius:1em;border-bottom-right-radius:1em}#undo a{font-weight:700}#undo a:hover{text-decoration:underline}#first-run{display:none;height:100%;width:100%}.first-run #first-run{display:block}#first-run>div{width:100%;height:100%;display:table}#first-run>div>div{display:table-row}#first-run>div>div>*{display:table-cell;vertical-align:middle}#first-run .title h1{color:#222;font-size:18px;text-align:center}#first-run .helper h1{color:#222;font-size:18px;height:44px;padding-left:45px;background-position:15px center;background-image:url(../img/arrow.svg);background-repeat:no-repeat}.first-run #app-content-wrapper{height:100%}#app-content.loading-content{background:url(../img/loading.gif) calc(50% - 16px) calc(50% - 16px) no-repeat}#app-content.loading-content>*{display:none}#app-content:not(.first-run):after{content:'';display:block;height:100%}#app-content-wrapper.autopaging:after{content:'';background-image:url(../img/loading.gif) no-repeat;background-position:calc(50% - 16px) calc(50% - 16px)}.pull-to-refresh{height:0;overflow:hidden;text-align:center;background-image:-moz-linear-gradient(top,#eee 0,#fefefe 100%);background-image:-webkit-linear-gradient(top,#eee 0,#fefefe 100%);background-image:-ms-linear-gradient(top,#eee 0,#fefefe 100%);background-image:linear-gradient(top,#eee 0,#fefefe 100%)}.pull-to-refresh.show-pull-to-refresh{transition:all .5s ease;padding-top:10px;height:44px}#app-content .only-in-expanded{display:block}#app-content .compact .only-in-expanded,#app-content .only-in-compact{display:none}#app-content .compact .only-in-compact{display:block}#app-content .item{cursor:default;border-bottom:1px solid #eee;background-image:linear-gradient(top,#f8f8f8 0,#fff 84px)}#app-content .item:last-child{border-bottom:0}#app-content .utils{width:100%;line-height:52px;box-sizing:border-box;padding:15px 50px 0 15px}#app-content .compact .utils{cursor:pointer;padding-top:0}#app-content .utils ul{height:40px;list-style-type:none;display:flex;margin:0;padding:0}#app-content .open .utils ul{height:auto}#app-content .util-spacer{width:20px}#app-content .compact .util-spacer{width:19px}#app-content .utils li{line-height:40px;vertical-align:middle}#app-content .utils li:last-child{padding-right:0}#app-content .utils li:first-child{padding-left:0}#app-content .utils .util{padding:0 6px}#app-content .utils .external,#app-content .utils button{padding:0;margin:0;height:40px;width:40px;border:0;float:left;background-color:transparent;background-repeat:no-repeat;background-size:25px;background-position:center}#app-content .utils .external,#app-content .utils .icon-toggle,#app-content .utils .menu button{display:inline-block;opacity:.3}#app-content .utils .external:hover,#app-content .utils .icon-toggle.keep-unread,#app-content .utils .icon-toggle:hover,#app-content .utils .menu button:hover{opacity:1}#app-content .utils .star{background-image:url(../img/inactive_star.svg)}#app-content .utils .star:hover,#app-content .utils .starred{background-image:url(../img/active_star.svg)}#app-content .utils .title{width:100%;padding-left:45px;background-position:10px 10px;background-size:20px 20px;background-repeat:no-repeat}#app-content .feed-view .utils .title{background:none!important;padding-left:10px}#app-content .utils .title h1 a{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%;line-height:40px;display:inline-block;color:#222;font-weight:700;font-size:16px}#app-content .open .utils .title h1 a{overflow:auto;white-space:normal}#app-content .read .utils .title h1 a{font-weight:400;color:#888}#app-content .utils .date{padding:0 15px;margin-right:25px}#app-content .heading{padding:25px 0 10px}#app-content .heading h1{font-size:19px;margin-right:182px;word-wrap:break-word}#app-content .heading a{font-weight:700;color:#000}#app-content .heading a:hover{text-decoration:underline}#app-content .heading .date{float:right;display:inline-block;font-size:15px}#app-content .read .heading a{font-weight:400!important;color:#888}#app-content .feed-view .source{display:none}#app-content .article{min-height:69px;padding:0 50px 50px}#app-content .compact .article{display:none}#app-content .open .article{display:block}#app-content .subtitle{color:#aaa;font-size:15px;width:100%;padding-bottom:25px}#app-content .subtitle a{color:#aaa}#app-content .subtitle a:hover{text-decoration:underline}#app-content .date{color:#aaa;white-space:nowrap}#app-content .author{color:#aaa;font-size:15px}#app-content .author a{color:inherit}#app-content .author a:hover{text-decoration:underline}#app-content .enclosure{padding:20px 0;text-align:center;max-width:770px;margin-bottom:15px}#app-content .enclosure audio,#app-content .enclosure img,#app-content .enclosure video{width:100%}#app-content .enclosure video{background-color:#000}#app-content .enclosure-error{line-height:1.5;height:40px}#app-content .body{max-width:770px;font-size:14px;clear:both;overflow-x:auto}#app-content .body p{line-height:1.5;margin:7px 0 14px}#app-content .body img,#app-content .body table{max-width:100%;height:auto;overflow:auto;word-wrap:break-word;white-space:normal}#app-content .body>div :first-child>img:first-child,#app-content .body>div>img:first-child{padding:0 14px 0 0;float:left}#app-content .body h1,#app-content .body h2{font-size:17px;font-weight:700;color:#222;margin:21px 0 0}#app-content .body h3{font-size:15px;font-weight:700;color:#222;margin:21px 0 0;text-decoration:underline}#app-content .body h4,#app-content .body h5,#app-content |