summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-05-23 17:55:30 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-05-23 17:55:30 +0200
commit6208debf043fc8af28de13515dec4d10ace99bc3 (patch)
tree3d1cfc3a94b622f5fc7c65fac0a8f9fb8aadfb37
parent4fa9c6d6cfc24b848bc8bb1526ef8ef50f046cb3 (diff)
use firefox for ci and e2e
-rw-r--r--.travis.yml4
-rw-r--r--css/app.css22
-rw-r--r--css/settings.css20
-rw-r--r--js/Gruntfile.js13
-rw-r--r--js/build/app.js16
-rw-r--r--js/gui/app.js36
-rw-r--r--js/protractor.chrome.conf.js41
-rw-r--r--js/protractor.conf.js (renamed from js/protractor.phantomjs.conf.js)2
-rw-r--r--templates/main.php37
-rw-r--r--templates/part.settings.php20
-rw-r--r--templates/part.undo.php7
11 files changed, 87 insertions, 131 deletions
diff --git a/.travis.yml b/.travis.yml
index 4b3a1f121..0bd1a92af 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -21,10 +21,6 @@ install:
- export CHROME_BIN=/usr/bin/chromium-browser
- sudo easy_install3 pip # ubuntu 12.04 only
- sudo pip3 install ocdev
- # get a newer phantomjs version
- - wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-linux-x86_64.tar.bz2 # ubuntu 12.04 only
- - tar xjf phantomjs-1.9.7-linux-x86_64.tar.bz2 # ubuntu 12.04 only
- - sudo ln -s $(pwd)/phantomjs-1.9.7-linux-x86_64/bin/phantomjs /usr/bin/phantomjs # ubuntu 12.04 only
# clone core
- ocdev setup core --dir owncloud
- mv news owncloud/apps/
diff --git a/css/app.css b/css/app.css
index b8ca4ec64..4224ad3fc 100644
--- a/css/app.css
+++ b/css/app.css
@@ -7,12 +7,6 @@
* @author Bernhard Posselt <dev@bernhard-posselt.com>
* @copyright Bernhard Posselt 2014
*/
-.loading-icon {
- background-image: url('../img/loading.gif');
- background-position: center;
- background-repeat: no-repeat;
-}
-
#global-loading {
width: 100%;
height: 100%;
@@ -35,20 +29,16 @@
display:none;
position: relative;
top:0;
- -moz-border-radius-bottomleft:1em;
- -webkit-border-bottom-left-radius:1em;
border-bottom-left-radius:1em;
- -moz-border-radius-bottomright:1em;
- -webkit-border-bottom-right-radius:1em;
border-bottom-right-radius:1em;
}
-#undo a {
- font-weight: bold;
-}
+ #undo a {
+ font-weight: bold;
+ }
-#undo a:hover {
- text-decoration: underline;
-}
+ #undo a:hover {
+ text-decoration: underline;
+ }
diff --git a/css/settings.css b/css/settings.css
index 04d0d4e18..f0f63f796 100644
--- a/css/settings.css
+++ b/css/settings.css
@@ -31,24 +31,8 @@
padding-left: 10px;
}
-.upload-icon,
-.download-icon {
- padding-left: 25px;
- background-repeat: no-repeat;
- background-position: 5px center;
-}
-
-.upload-icon {
- background-image: url('../img/upload.svg');
-}
-
-.download-icon {
- background-image: url('../img/download.svg');
-}
-
-#app-settings .importing {
- background-image: url('../img/loading.gif');
- background-repeat: no-repeat;
+.button-icon-label {
background-position: 5px center;
background-size: 16px;
+ padding-left: 25px;
} \ No newline at end of file
diff --git a/js/Gruntfile.js b/js/Gruntfile.js
index 58764d823..03a0c607c 100644
--- a/js/Gruntfile.js
+++ b/js/Gruntfile.js
@@ -150,16 +150,11 @@ module.exports = function (grunt) {
}
},
protractor: {
- phantomjs: {
+ firefox: {
options: {
- configFile: 'protractor.phantomjs.conf.js'
+ configFile: 'protractor.conf.js'
}
},
- chrome: {
- options: {
- configFile: 'protractor.chrome.conf.js'
- }
- }
},
connect: {
server: {
@@ -175,7 +170,7 @@ module.exports = function (grunt) {
grunt.registerTask('dev', ['watch:concat']);
grunt.registerTask('test', ['karma:unit']);
grunt.registerTask('php', ['watch:phpunit']);
- grunt.registerTask('e2e', ['protractor_webdriver', 'connect', 'protractor:chrome']);
+ grunt.registerTask('e2e', ['protractor_webdriver', 'connect', 'protractor']);
grunt.registerTask('ci-unit', ['default', 'karma:continuous']);
- grunt.registerTask('ci-e2e', ['protractor_webdriver', 'connect', 'protractor:phantomjs']);
+ grunt.registerTask('ci-e2e', ['protractor_webdriver', 'connect', 'protractor']);
}; \ No newline at end of file
diff --git a/js/build/app.js b/js/build/app.js
index 2725a18a1..180bde700 100644
--- a/js/build/app.js
+++ b/js/build/app.js
@@ -882,6 +882,22 @@ var $__build_47_app__ = function () {
}
});
}(window, document, jQuery));
+ (function (window, document, $) {
+ 'use strict';
+ $(document).ready(function () {
+ var buttons = $(':not([data-app-slide-toggle-area=""])');
+ $(document).click(function (event) {
+ buttons.each(function (index, button) {
+ console.log(button);
+ var area = $(button).data('app-slide-toggle-area');
+ if (button === event.target) {
+ console.log(area);
+ event.stopPropagation();
+ }
+ });
+ });
+ });
+ }(window, document, jQuery));
var call = Function.prototype.call.bind(Function.prototype.call);
var hasOwn = Object.prototype.hasOwnProperty;
window.items = function (obj) {
diff --git a/js/gui/app.js b/js/gui/app.js
new file mode 100644
index 000000000..171911cec
--- /dev/null
+++ b/js/gui/app.js
@@ -0,0 +1,36 @@
+/**
+ * ownCloud - core
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Bernhard Posselt <dev@bernhard-posselt.com>
+ * @copyright Bernhard Posselt 2014
+ */
+
+(function (window, document, $) {
+
+ 'use strict';
+
+ $(document).ready(function () {
+
+ var buttons = $('[data-app-slide-toggle-area]:not([data-app-slide-toggle-area=""])');
+
+ $(document).click(function (event) {
+
+ buttons.each(function (index, button) {
+ console.log(button);
+
+ var area = $(button).data('app-slide-toggle-area');
+
+ // if the
+ if (button === event.target) {
+ console.log(area);
+ event.stopPropagation();
+ }
+ });
+
+ });
+ });
+
+}(window, document, jQuery)); \ No newline at end of file
diff --git a/js/protractor.chrome.conf.js b/js/protractor.chrome.conf.js
deleted file mode 100644
index 09b597c08..000000000
--- a/js/protractor.chrome.conf.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * ownCloud - News
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Bernhard Posselt <dev@bernhard-posselt.com>
- * @copyright Bernhard Posselt 2014
- */
-
-var baseUrl = 'http://localhost';
-
-exports.config = {
- seleniumAddress: 'http://localhost:4444/wd/hub',
- specs: ['tests/e2e/**/*.js'],
- onPrepare: function () {
- 'use strict';
-
- browser.ignoreSynchronization = true;
- browser.get(baseUrl + '/owncloud/index.php');
- browser.findElement(By.id('user')).sendKeys('admin');
- browser.findElement(By.id('password')).sendKeys('admin');
- browser.findElement(By.id('submit')).click();
-
- browser.driver.wait(function () {
- return browser.driver.getCurrentUrl().then(function (url) {
- var regex = /apps/;
- return regex.test(url);
- });
- });
-
- browser.get(baseUrl + '/owncloud/index.php/apps/news/');
- browser.driver.wait(function () {
- return browser.driver.getCurrentUrl().then(function (url) {
- var regex = /apps\/news/;
- return regex.test(url);
- });
- });
- },
- baseUrl: baseUrl
-}; \ No newline at end of file
diff --git a/js/protractor.phantomjs.conf.js b/js/protractor.conf.js
index 73ed555cf..2651c89ab 100644
--- a/js/protractor.phantomjs.conf.js
+++ b/js/protractor.conf.js
@@ -38,7 +38,7 @@ exports.config = {
});
},
capabilities: {
- browserName: 'phantomjs',
+ browserName: 'firefox',
version: '',
platform: 'ANY'
},
diff --git a/templates/main.php b/templates/main.php
index 4c576754b..ad0d0a6ed 100644
--- a/templates/main.php
+++ b/templates/main.php
@@ -10,28 +10,21 @@
\OCP\Util::addScript('news', 'build/app');
\OCP\Util::addStyle('news', 'bootstrap/tooltip');
-\OCP\Util::addStyle('news', 'navigation');
\OCP\Util::addStyle('news', 'app');
-\OCP\Util::addStyle('news', 'content');
+//\OCP\Util::addStyle('news', 'navigation');
+//\OCP\Util::addStyle('news', 'content');
\OCP\Util::addStyle('news', 'settings');
?>
<div id="app" ng-app="News" ng-cloak ng-controller="AppController as App">
- <div id="global-loading" class="loading-icon" ng-show="App.loading.isLoading('global')"></div>
- <!--
- <div id="undo-container">
- <div undo-notification id="undo">
- <a href="#"><?php p($l->t('Undo deletion of %s', '{{ getCaption() }}')); ?></a>
- </div>
- </div>
- <news-translate key="appName"><?php p($l->t('News')); ?></news-translate>
- -->
+ <div id="global-loading" class="icon-loading" ng-show="App.loading.isLoading('global')"></div>
+ <!-- navigation -->
<div id="app-navigation" ng-controller="NavigationController" ng-hide="App.loading.isLoading('global')">
- <ul class="with-icon" data-id="0" droppable>
+ <ul class="with-icon" data-folder-id="0" news-droppable>
<?php //print_unescaped($this->inc('part.addnew')) ?>
<?php //print_unescaped($this->inc('part.feed.unread')) ?>
<?php //print_unescaped($this->inc('part.feed.starred')) ?>
@@ -45,25 +38,9 @@
</div>
+ <!-- content -->
<script type="text/ng-template" id="content.html"><?php print_unescaped($this->inc('part.content')) ?></script>
- <div id="app-content" ng-hide="App.loading.isLoading('global')" ng-view></div>
-
- <!--
- <div id="app-content" ng-class="{
- loading: isLoading(),
- autopaging: isAutoPaging()
- }"
- ng-controller="ItemController"
- ng-show="initialized && !feedBusinessLayer.noFeeds()"
- news-item-scroll="true"
- item-shortcuts
- news-pull-to-refresh="loadNew()"
- tabindex="-1"
- news-auto-focus>
- <?php print_unescaped($this->inc("part.items")); ?>
- </div>
-
- -->
+ <div id="app-content" ng-class="{'icon-loading': App.loading.isLoading('content')}" ng-hide="App.loading.isLoading('global')" ng-view></div>
</div>
diff --git a/templates/part.settings.php b/templates/part.settings.php
index 81c3550d5..4ad4874f3 100644
--- a/templates/part.settings.php
+++ b/templates/part.settings.php
@@ -1,11 +1,7 @@
<div id="app-settings-header">
<button name="app settings"
class="settings-button"
- news-slide-up="{
- selector: '#app-settings-content',
- hideOnFocusLost: true,
- cssClass: 'opened'
- }"></button>
+ data-apps-slide-up-area="#app-settings-content"></button>
</div>
<div id="app-settings-content">
@@ -41,14 +37,14 @@
news-read-file="Settings.importOpml($fileContent)"/>
<button title="<?php p($l->t('Import')); ?>"
- class="upload-icon svg"
+ class="icon-upload svg button-icon-label"
news-trigger-click="#opml-upload">
<?php p($l->t('Import')); ?>
</button>
<a title="<?php p($l->t('Export')); ?>"
- class="button download-icon svg"
+ class="button icon-download svg button-icon-label"
href="<?php p(\OCP\Util::linkToRoute('news.export.opml')); ?>"
target="_blank"
ng-show="feedSize() > 0">
@@ -56,7 +52,7 @@
</a>
<button
- class="download-icon svg"
+ class="icon-download svg button-icon-label"
title="<?php p($l->t('Export')); ?>"
ng-hide="feedSize() > 0"
disabled>
@@ -78,21 +74,21 @@
news-read-file="Settings.importArticles($fileContent)"/>
<button title="<?php p($l->t('Import')); ?>"
- class="upload-icon svg"
- ng-class="{loading: Settings.importing}"
+ class="icon-upload svg button-icon-label"
+ ng-class="{'icon-loading-small': Settings.importing}"
ng-disabled="importing"
news-trigger-click="#article-upload">
<?php p($l->t('Import')); ?>
</button>
- <a title="<?php p($l->t('Export')); ?>" class="button download-icon svg"
+ <a title="<?php p($l->t('Export')); ?>" class="button icon-download svg button-icon-label"
href="<?php p(\OCP\Util::linkToRoute('news.export.articles')); ?>"
target="_blank"
ng-show="feedSize() > 0">
<?php p($l->t('Export')); ?>
</a>
<button
- class="download-icon svg"
+ class="icon-download svg button-icon-label"
title="<?php p($l->t('Export')); ?>"
ng-hide="feedSize() > 0"
disabled>
diff --git a/templates/part.undo.php b/templates/part.undo.php
new file mode 100644
index 000000000..15f4b0cea
--- /dev/null
+++ b/templates/part.undo.php
@@ -0,0 +1,7 @@
+<div id="undo-container">
+ <div undo-notification id="undo">
+ <a href="#"><?php p($l->t('Undo deletion of %s', '{{ getCaption() }}')); ?></a>
+ </div>
+</div>
+<news-translate key="appName"><?php p($l->t('News')); ?></news-translate>
+