aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files/css/files.css11
-rw-r--r--apps/files_external/appinfo/app.php12
-rw-r--r--apps/files_external/appinfo/routes.php27
-rw-r--r--apps/files_external/js/app.js71
-rw-r--r--apps/files_external/js/mountsfilelist.js122
-rw-r--r--apps/files_external/lib/api.php83
-rw-r--r--apps/files_external/list.php11
-rw-r--r--apps/files_external/templates/list.php31
-rw-r--r--apps/files_trashbin/appinfo/database.xml9
-rw-r--r--apps/files_trashbin/appinfo/version2
-rw-r--r--apps/user_ldap/appinfo/database.xml5
-rw-r--r--core/css/header.css14
-rw-r--r--core/img/logo-icon.pngbin1347 -> 1370 bytes
-rw-r--r--core/img/logo-icon.svg51
-rw-r--r--core/img/logo-wide.pngbin2154 -> 2022 bytes
-rw-r--r--core/img/logo-wide.svg3
-rw-r--r--core/img/logo.pngbin5109 -> 4782 bytes
-rw-r--r--core/img/logo.svg4
-rw-r--r--core/templates/layout.user.php2
-rw-r--r--lib/private/db/mdb2schemamanager.php2
-rw-r--r--lib/private/files/cache/storage.php32
-rw-r--r--lib/private/updater.php1
-rw-r--r--tests/lib/db/mdb2schemamanager.php37
-rw-r--r--tests/lib/db/ts-autoincrement-after.xml32
-rw-r--r--tests/lib/db/ts-autoincrement-before.xml24
25 files changed, 505 insertions, 81 deletions
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index 55f3d17ac2b..4dac2b66a59 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -186,7 +186,8 @@ table th#headerSize, table td.filesize {
table table td.filesize {
padding: 0 16px;
}
-table th#headerDate, table td.date {
+table th#headerDate, table td.date,
+table th.column-last, table td.column-last {
-moz-box-sizing: border-box;
box-sizing: border-box;
position: relative;
@@ -237,9 +238,9 @@ table td.filename input.filename {
cursor: text;
}
table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:3px 8px 8px 3px; }
-table td.filename .nametext, .uploadtext, .modified { float:left; padding:14px 0; }
+table td.filename .nametext, .uploadtext, .modified, .column-last>span:first-child { float:left; padding:14px 0; }
-.modified {
+.modified, .column-last>span:first-child {
position: relative;
padding-left: 15px;
overflow: hidden;
@@ -247,8 +248,8 @@ table td.filename .nametext, .uploadtext, .modified { float:left; padding:14px 0
width: 90%;
}
/* ellipsize long modified dates to make room for showing delete button */
-#fileList tr:hover .modified,
-#fileList tr:focus .modified {
+#fileList tr:hover .modified, #fileList tr:hover .column-last>span:first-child,
+#fileList tr:focus .modified, #fileList tr:focus .column-last>span:first-child {
width: 75%;
}
diff --git a/apps/files_external/appinfo/app.php b/apps/files_external/appinfo/app.php
index ca164784fb0..e88880fe516 100644
--- a/apps/files_external/appinfo/app.php
+++ b/apps/files_external/appinfo/app.php
@@ -20,12 +20,23 @@ OC::$CLASSPATH['OC\Files\Storage\AmazonS3'] = 'files_external/lib/amazons3.php';
OC::$CLASSPATH['OC\Files\Storage\Dropbox'] = 'files_external/lib/dropbox.php';
OC::$CLASSPATH['OC\Files\Storage\SFTP'] = 'files_external/lib/sftp.php';
OC::$CLASSPATH['OC_Mount_Config'] = 'files_external/lib/config.php';
+OC::$CLASSPATH['OCA\Files\External\Api'] = 'files_external/lib/api.php';
OCP\App::registerAdmin('files_external', 'settings');
if (OCP\Config::getAppValue('files_external', 'allow_user_mounting', 'yes') == 'yes') {
OCP\App::registerPersonal('files_external', 'personal');
}
+\OCA\Files\App::getNavigationManager()->add(
+ array(
+ "id" => 'extstoragemounts',
+ "appname" => 'files_external',
+ "script" => 'list.php',
+ "order" => 30,
+ "name" => $l->t('External storage')
+ )
+);
+
// connecting hooks
OCP\Util::connectHook('OC_Filesystem', 'post_initMountPoints', '\OC_Mount_Config', 'initMountPointsHook');
OCP\Util::connectHook('OC_User', 'post_login', 'OC\Files\Storage\SMB_OC', 'login');
@@ -164,3 +175,4 @@ OC_Mount_Config::registerBackend('\OC\Files\Storage\SFTP', array(
'user' => (string)$l->t('Username'),
'password' => '*'.$l->t('Password'),
'root' => '&'.$l->t('Root'))));
+
diff --git a/apps/files_external/appinfo/routes.php b/apps/files_external/appinfo/routes.php
new file mode 100644
index 00000000000..cb950364e5d
--- /dev/null
+++ b/apps/files_external/appinfo/routes.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * ownCloud - External Storage Routes
+ *
+ * @author Vincent Petry
+ * @copyright 2014 Vincent Petry <pvince81@owncloud.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+OC_API::register('get',
+ '/apps/files_external/api/v1/mounts',
+ array('\OCA\Files\External\Api', 'getUserMounts'),
+ 'files_external');
+
diff --git a/apps/files_external/js/app.js b/apps/files_external/js/app.js
new file mode 100644
index 00000000000..58ad1a0f6ef
--- /dev/null
+++ b/apps/files_external/js/app.js
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
+ *
+ * This file is licensed under the Affero General Public License version 3
+ * or later.
+ *
+ * See the COPYING-README file.
+ *
+ */
+
+if (!OCA.External) {
+ OCA.External = {};
+}
+OCA.External.App = {
+
+ fileList: null,
+
+ initList: function($el) {
+ if (this.fileList) {
+ return this.fileList;
+ }
+
+ this.fileList = new OCA.External.FileList(
+ $el,
+ {
+ scrollContainer: $('#app-content'),
+ fileActions: this._createFileActions()
+ }
+ );
+
+ this._extendFileList(this.fileList);
+ this.fileList.appName = t('files_external', 'External storage');
+ return this.fileList;
+ },
+
+ removeList: function() {
+ if (this.fileList) {
+ this.fileList.$fileList.empty();
+ }
+ },
+
+ _createFileActions: function() {
+ // inherit file actions from the files app
+ var fileActions = new OCA.Files.FileActions();
+ fileActions.registerDefaultActions();
+
+ // when the user clicks on a folder, redirect to the corresponding
+ // folder in the files app instead of opening it directly
+ fileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function (filename, context) {
+ OCA.Files.App.setActiveView('files', {silent: true});
+ OCA.Files.App.fileList.changeDirectory(context.$file.attr('data-path') + '/' + filename, true, true);
+ });
+ fileActions.setDefault('dir', 'Open');
+ return fileActions;
+ },
+
+ _extendFileList: function(fileList) {
+ // remove size column from summary
+ fileList.fileSummary.$el.find('.filesize').remove();
+ }
+};
+
+$(document).ready(function() {
+ $('#app-content-extstoragemounts').on('show', function(e) {
+ OCA.External.App.initList($(e.target));
+ });
+ $('#app-content-extstoragemounts').on('hide', function() {
+ OCA.External.App.removeList();
+ });
+});
+
diff --git a/apps/files_external/js/mountsfilelist.js b/apps/files_external/js/mountsfilelist.js
new file mode 100644
index 00000000000..70b5b81e65b
--- /dev/null
+++ b/apps/files_external/js/mountsfilelist.js
@@ -0,0 +1,122 @@
+/*
+ * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
+ *
+ * This file is licensed under the Affero General Public License version 3
+ * or later.
+ *
+ * See the COPYING-README file.
+ *
+ */
+(function() {
+
+ /**
+ * External storage file list
+ */
+ var FileList = function($el, options) {
+ this.initialize($el, options);
+ };
+
+ FileList.prototype = _.extend({}, OCA.Files.FileList.prototype, {
+ appName: 'External storage',
+
+ initialize: function($el, options) {
+ OCA.Files.FileList.prototype.initialize.apply(this, arguments);
+ if (this.initialized) {
+ return;
+ }
+ },
+
+ _createRow: function(fileData) {
+ // TODO: hook earlier and render the whole row here
+ var $tr = OCA.Files.FileList.prototype._createRow.apply(this, arguments);
+ var $scopeColumn = $('<td class="column-scope column-last"><span></span></td>');
+ var $backendColumn = $('<td class="column-backend"></td>');
+ var scopeText = t('files_external', 'Personal');
+ if (fileData.scope === 'system') {
+ scopeText = t('files_external', 'System');
+ }
+ $tr.find('.filesize,.date').remove();
+ $scopeColumn.find('span').text(scopeText);
+ $backendColumn.text(fileData.backend);
+ $tr.find('td.filename').after($scopeColumn).after($backendColumn);
+ $tr.find('td.filename input:checkbox').remove();
+ return $tr;
+ },
+
+ updateEmptyContent: function() {
+ var dir = this.getCurrentDirectory();
+ if (dir === '/') {
+ // root has special permissions
+ this.$el.find('#emptycontent').toggleClass('hidden', !this.isEmpty);
+ this.$el.find('#filestable thead th').toggleClass('hidden', this.isEmpty);
+ }
+ else {
+ OCA.Files.FileList.prototype.updateEmptyContent.apply(this, arguments);
+ }
+ },
+
+ getDirectoryPermissions: function() {
+ return OC.PERMISSION_READ | OC.PERMISSION_DELETE;
+ },
+
+ updateStorageStatistics: function() {
+ // no op because it doesn't have
+ // storage info like free space / used space
+ },
+
+ reload: function() {
+ var self = this;
+ this.showMask();
+ if (this._reloadCall) {
+ this._reloadCall.abort();
+ }
+ this._reloadCall = $.ajax({
+ url: OC.linkToOCS('apps/files_external/api/v1') + 'mounts',
+ data: {
+ format: 'json'
+ },
+ type: 'GET',
+ beforeSend: function(xhr) {
+ xhr.setRequestHeader('OCS-APIREQUEST', 'true');
+ },
+ error: function(result) {
+ self.reloadCallback(result);
+ },
+ success: function(result) {
+ self.reloadCallback(result);
+ }
+ });
+ },
+
+ reloadCallback: function(result) {
+ delete this._reloadCall;
+ this.hideMask();
+
+ if (result.ocs && result.ocs.data) {
+ this.setFiles(this._makeFiles(result.ocs.data));
+ }
+ else {
+ // TODO: error handling
+ }
+ },
+
+ /**
+ * Converts the OCS API response data to a file info
+ * list
+ * @param OCS API mounts array
+ * @return array of file info maps
+ */
+ _makeFiles: function(data) {
+ var files = _.map(data, function(fileData) {
+ fileData.icon = OC.imagePath('core', 'filetypes/folder-external');
+ return fileData;
+ });
+
+ files.sort(this._sortComparator);
+
+ return files;
+ }
+ });
+
+ OCA.External.FileList = FileList;
+})();
diff --git a/apps/files_external/lib/api.php b/apps/files_external/lib/api.php
new file mode 100644
index 00000000000..51c48427aa3
--- /dev/null
+++ b/apps/files_external/lib/api.php
@@ -0,0 +1,83 @@
+<?php
+/**
+ * ownCloud
+ *
+ * @author Vincent Petry
+ * @copyright 2014 Vincent Petry pvince81@owncloud.com
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\Files\External;
+
+class Api {
+
+ /**
+ * Formats the given mount config to a mount entry.
+ *
+ * @param bool $isSystemMount true for system mount, false
+ * for personal mount
+ *
+ * @return array entry
+ */
+ private static function formatMount($mountConfig, $isSystemMount = false) {
+ // split user name from mount point
+ $path = dirname($mountConfig['mountpoint']);
+ if ($path === '.') {
+ $path = '';
+ }
+
+ $permissions = \OCP\PERMISSION_READ;
+ // personal mounts can be deleted
+ if (!$isSystemMount) {
+ $permissions |= \OCP\PERMISSION_DELETE;
+ }
+
+ // TODO: add storageType, might need to use another OC_Mount_Config method
+ $entry = array(
+ 'name' => basename($mountConfig['mountpoint']),
+ 'path' => $path,
+ 'type' => 'dir',
+ 'backend' => $mountConfig['backend'],
+ 'scope' => ( $isSystemMount ? 'system' : 'personal' ),
+ 'permissions' => $permissions
+ );
+ return $entry;
+ }
+
+ /**
+ * Returns the mount points visible for this user.
+ *
+ * @param array $params
+ * @return \OC_OCS_Result share information
+ */
+ public static function getUserMounts($params) {
+ $entries = array();
+ $user = \OC_User::getUser();
+
+ $personalMounts = \OC_Mount_Config::getPersonalMountPoints();
+ $systemMounts = \OC_Mount_Config::getSystemMountPoints();
+
+ foreach ($systemMounts as $mountConfig) {
+ $entries[] = self::formatMount($mountConfig, true);
+ }
+
+ foreach ($personalMounts as $mountConfig) {
+ $entries[] = self::formatMount($mountConfig, false);
+ }
+
+ return new \OC_OCS_Result($entries);
+ }
+}
diff --git a/apps/files_external/list.php b/apps/files_external/list.php
new file mode 100644
index 00000000000..e9517724f2f
--- /dev/null
+++ b/apps/files_external/list.php
@@ -0,0 +1,11 @@
+<?php
+
+// Check if we are a user
+OCP\User::checkLoggedIn();
+
+$tmpl = new OCP\Template('files_external', 'list', '');
+
+OCP\Util::addScript('files_external', 'app');
+OCP\Util::addScript('files_external', 'mountsfilelist');
+
+$tmpl->printPage();
diff --git a/apps/files_external/templates/list.php b/apps/files_external/templates/list.php
new file mode 100644
index 00000000000..4e06bc7024c
--- /dev/null
+++ b/apps/files_external/templates/list.php
@@ -0,0 +1,31 @@
+<?php /** @var $l OC_L10N */ ?>
+<div id="controls">
+ <div id="file_action_panel"></div>
+</div>
+<div id='notification'></div>
+
+<div id="emptycontent" class="hidden"><?php p($l->t( 'You don\'t have any external storages' )); ?></div>
+
+<input type="hidden" name="dir" value="" id="dir">
+
+<table id="filestable">
+ <thead>
+ <tr>
+ <th id='headerName' class="hidden column-name">
+ <div id="headerName-container">
+ <a class="name sort columntitle" data-sort="name"><span><?php p($l->t( 'Name' )); ?></span><span class="sort-indicator"></span></a>
+ </div>
+ </th>
+ <th id="headerBackend" class="hidden column-backend">
+ <a class="backend sort columntitle" data-sort="backend"><span><?php p($l->t('Storage type')); ?></span><span class="sort-indicator"></span></a>
+ </th>
+ <th id="headerScope" class="hidden column-scope column-last">
+ <a class="scope sort columntitle" data-sort="scope"><span><?php p($l->t('Scope')); ?></span><span class="sort-indicator"></span></a>
+ </th>
+ </tr>
+ </thead>
+ <tbody id="fileList">
+ </tbody>
+ <tfoot>
+ </tfoot>
+</table>
diff --git a/apps/files_trashbin/appinfo/database.xml b/apps/files_trashbin/appinfo/database.xml
index a6ba242c1cf..2944a31b02d 100644
--- a/apps/files_trashbin/appinfo/database.xml
+++ b/apps/files_trashbin/appinfo/database.xml
@@ -13,6 +13,15 @@
<declaration>
+ <field>
+ <name>auto_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <autoincrement>1</autoincrement>
+ <length>4</length>
+ </field>
+
<field>
<name>id</name>
<type>text</type>
diff --git a/apps/files_trashbin/appinfo/version b/apps/files_trashbin/appinfo/version
index 5a2a5806df6..ee6cdce3c29 100644
--- a/apps/files_trashbin/appinfo/version
+++ b/apps/files_trashbin/appinfo/version
@@ -1 +1 @@
-0.6
+0.6.1
diff --git a/apps/user_ldap/appinfo/database.xml b/apps/user_ldap/appinfo/database.xml
index 812e450dde7..4875a70f852 100644
--- a/apps/user_ldap/appinfo/database.xml
+++ b/apps/user_ldap/appinfo/database.xml
@@ -46,6 +46,7 @@
<index>
<name>owncloud_name_users</name>
+ <primary>true</primary>
<unique>true</unique>
<field>
<name>owncloud_name</name>
@@ -90,6 +91,7 @@
<index>
<name>ldap_dn_groups</name>
<unique>true</unique>
+ <primary>true</primary>
<field>
<name>ldap_dn</name>
</field>
@@ -132,6 +134,7 @@
<index>
<name>ldap_group_members_index</name>
<unique>true</unique>
+ <primary>true</primary>
<field>
<name>owncloudname</name>
</field>
@@ -141,4 +144,4 @@
</table>
-</database> \ No newline at end of file
+</database>
diff --git a/core/css/header.css b/core/css/header.css
index d04895d27cf..d2645c6a7d5 100644
--- a/core/css/header.css
+++ b/core/css/header.css
@@ -34,7 +34,7 @@
position: absolute;
top: 0;
left: 0;
- padding: 6px;
+ padding: 5px;
padding-bottom: 0;
height: 45px; /* header height */
-moz-box-sizing: border-box;
@@ -44,16 +44,16 @@
#header .logo {
background-image: url(../img/logo.svg);
background-repeat: no-repeat;
- width: 250px;
- height: 118px;
+ width: 252px;
+ height: 120px;
margin: 0 auto;
}
#header .logo-wide {
background-image: url(../img/logo-wide.svg);
background-repeat: no-repeat;
- width: 147px;
- height: 32px;
+ width: 150px;
+ height: 34px;
}
#header .logo-icon {
@@ -61,8 +61,8 @@
display: inline-block;
background-image: url(../img/logo-icon.svg);
background-repeat: no-repeat;
- width: 60px;
- height: 32px;
+ width: 62px;
+ height: 34px;
}
#header .menutoggle {
diff --git a/core/img/logo-icon.png b/core/img/logo-icon.png
index 26ed8b46416..4f494d6121f 100644
--- a/core/img/logo-icon.png
+++ b/core/img/logo-icon.png
Binary files differ
diff --git a/core/img/logo-icon.svg b/core/img/logo-icon.svg
index 05b467e87a7..9c4260f56a3 100644
--- a/core/img/logo-icon.svg
+++ b/core/img/logo-icon.svg
@@ -1,51 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- enable-background="new 0 0 595.275 311.111"
- xml:space="preserve"
- height="32"
- width="60"
- version="1.1"
- y="0px"
- x="0px"
- viewBox="0 0 60.001066 32"
- id="svg2"
- inkscape:version="0.48.4 r9939"
- sodipodi:docname="logo-icon.svg"><metadata
- id="metadata28"><rdf:RDF><cc:Work
- rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
- id="defs26" /><sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1920"
- inkscape:window-height="1002"
- id="namedview24"
- showgrid="false"
- inkscape:zoom="5.3370171"
- inkscape:cx="92.998089"
- inkscape:cy="17.546808"
- inkscape:window-x="0"
- inkscape:window-y="34"
- inkscape:window-maximized="1"
- inkscape:current-layer="svg2"
- fit-margin-top="0"
- fit-margin-left="0"
- fit-margin-right="0"
- fit-margin-bottom="0" /><path
- inkscape:connector-curvature="0"
- style="text-indent:0;text-transform:none;block-progression:tb;color:#000000;fill:#ffffff;enable-background:accumulate"
- d="m 26.799495,-2.8433247e-4 c -4.405596,0 -7.965069,3.55932393247 -7.965069,7.96507263247 0,1.8160141 0.604729,3.4874067 1.624238,4.8258037 2.211704,-2.559892 5.476107,-4.1855106 9.120767,-4.1855106 1.78311,0 3.47404,0.39707 4.99765,1.093249 0.12336,-0.55787 0.18742,-1.138036 0.18742,-1.7335421 0,-4.4056007 -3.55933,-7.96507263247 -7.965075,-7.96507263247 z M 16.398242,3.6853126 c -2.294322,0 -4.138652,1.8599639 -4.138652,4.1542875 0,0.7428413 0.19164,1.4447423 0.530989,2.0459199 1.384467,-0.7810176 2.985128,-1.2337766 4.685276,-1.2337766 0.164073,0 0.322114,0.0059 0.48415,0.01578 -0.01835,-0.232579 -0.03122,-0.465534 -0.03122,-0.7027887 0,-1.2778741 0.277549,-2.4937463 0.76528,-3.5920269 -0.656667,-0.440337 -1.443409,-0.687152 -2.295801,-0.687152 z m 19.646819,2.8580148 c -0.16951,0 -0.33288,0.020716 -0.49977,0.031173 0.0722,0.4551355 0.12493,0.9146904 0.12493,1.3899908 0,0.7395852 -0.094,1.4532752 -0.2655,2.1395898 2.00997,1.112338 3.67919,2.776726 4.779,4.79458 1.1407,-0.593878 2.41324,-0.971464 3.76382,-1.061976 -0.34808,-4.0820746 -3.72989,-7.2932591 -7.90242,-7.2932591 z m -6.46558,2.96732 c -6.164697,0 -11.151006,4.9858156 -11.151006,11.1510016 0,6.164694 4.985816,11.151003 11.151006,11.151003 6.16519,0 11.151,-4.986309 11.151,-11.151003 0,-6.165186 -4.98631,-11.1510016 -11.151,-11.1510016 z m -12.103478,0.04676 c -4.782694,0 -8.652175,3.8694326 -8.652175,8.6521756 0,2.815496 1.341453,5.30791 3.420225,6.887311 0.876365,-1.690285 2.636541,-2.842379 4.66964,-2.842379 0.245725,0 0.481581,0.02979 0.718422,0.06255 -0.07434,-0.540903 -0.109323,-1.094236 -0.109323,-1.655461 0,-2.683155 0.873405,-5.164373 2.358247,-7.168465 -0.888843,-1.112195 -1.524893,-2.448569 -1.796035,-3.9044096 -0.200939,-0.01381 -0.404575,-0.03117 -0.60907,-0.03117 z m 27.112218,5.1540156 c -1.45224,0 -2.81263,0.370769 -4.01371,0.99953 0.68202,1.51069 1.06198,3.186868 1.06198,4.950794 0,3.302733 -1.32789,6.301818 -3.48272,8.480523 1.583,1.757466 3.87979,2.858015 6.4345,2.858015 4.7827,0 8.65218,-3.869384 8.65218,-8.652175 0,-4.782693 -3.86943,-8.636391 -8.65218,-8.636391 z M 7.980856,15.851581 C 3.574615,15.851088 0,19.394627 0,23.800375 c 0,4.405749 3.574812,7.980363 7.980363,7.980363 1.676867,0 3.230273,-0.522455 4.513474,-1.405577 -0.530249,-0.823933 -0.843366,-1.809011 -0.843366,-2.858015 0,-0.544455 0.08034,-1.06755 0.234261,-1.561742 -2.402296,-1.736108 -3.96685,-4.561272 -3.96685,-7.746067 0,-0.809233 0.106642,-1.591732 0.296737,-2.342663 -0.0789,-0.002 -0.154783,-0.01578 -0.234266,-0.01578 z m 46.836965,6.840451 c -0.23502,0 -0.46245,0.02683 -0.68715,0.06255 0.0124,0.198664 0.0156,0.391684 0.0156,0.593484 0,2.540309 -1.00234,4.846027 -2.62377,6.559297 0.79769,0.927614 1.96937,1.514883 3.29533,1.514883 2.41517,0 4.3729,-1.94209 4.3729,-4.357311 0,-2.41517 -1.95773,-4.372897 -4.3729,-4.372897 z m -37.903634,0.468513 c -2.415074,0 -4.357313,1.942239 -4.357313,4.357311 0,2.415072 1.942239,4.372898 4.357313,4.372898 1.85118,0 3.422493,-1.155103 4.060565,-2.779933 -1.556954,-1.585764 -2.675951,-3.608748 -3.170341,-5.85641 -0.289328,-0.05978 -0.582977,-0.09372 -0.890224,-0.09372 z"
- id="path6" /></svg> \ No newline at end of file
+<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="34" width="62" version="1.1" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" enable-background="new 0 0 595.275 311.111" viewBox="0 0 62.001102 34" xmlns:dc="http://purl.org/dc/elements/1.1/"><path style="block-progression:tb;color:#000000;enable-background:accumulate;text-transform:none;text-indent:0" d="m27.8 0.99971c-4.4056 0-7.9651 3.5593-7.9651 7.9651 0 1.816 0.60473 3.4874 1.6242 4.8258 2.2117-2.5599 5.4761-4.1855 9.1208-4.1855 1.7831 0 3.474 0.39707 4.9976 1.0932 0.12336-0.55787 0.18742-1.138 0.18742-1.7335 0-4.4056-3.5593-7.9651-7.9651-7.9651zm-10.402 3.6856c-2.2943 0-4.1387 1.86-4.1387 4.1543 0 0.74284 0.19164 1.4447 0.53099 2.0459 1.3845-0.78102 2.9851-1.2338 4.6853-1.2338 0.16407 0 0.32211 0.0059 0.48415 0.01578-0.01835-0.23258-0.03122-0.46553-0.03122-0.70279 0-1.2779 0.27755-2.4937 0.76528-3.592-0.65667-0.44034-1.4434-0.68715-2.2958-0.68715zm19.647 2.858c-0.16951 0-0.33288 0.020716-0.49977 0.031173 0.0722 0.45514 0.12493 0.91469 0.12493 1.39 0 0.73959-0.094 1.4533-0.2655 2.1396 2.01 1.1123 3.6792 2.7767 4.779 4.7946 1.1407-0.59388 2.4132-0.97146 3.7638-1.062-0.34808-4.0821-3.7299-7.2933-7.9024-7.2933zm-6.4656 2.9673c-6.1647 0-11.151 4.9858-11.151 11.151 0 6.1647 4.9858 11.151 11.151 11.151s11.151-4.9863 11.151-11.151c0-6.1652-4.9863-11.151-11.151-11.151zm-12.103 0.04676c-4.7827 0-8.6522 3.8694-8.6522 8.6522 0 2.8155 1.3415 5.3079 3.4202 6.8873 0.87636-1.6903 2.6365-2.8424 4.6696-2.8424 0.24572 0 0.48158 0.02979 0.71842 0.06255-0.07434-0.5409-0.10932-1.0942-0.10932-1.6555 0-2.6832 0.8734-5.1644 2.3582-7.1685-0.88884-1.1122-1.5249-2.4486-1.796-3.9044-0.20094-0.01381-0.40458-0.03117-0.60907-0.03117zm27.112 5.154c-1.4522 0-2.8126 0.37077-4.0137 0.99953 0.68202 1.5107 1.062 3.1869 1.062 4.9508 0 3.3027-1.3279 6.3018-3.4827 8.4805 1.583 1.7575 3.8798 2.858 6.4345 2.858 4.7827 0 8.6522-3.8694 8.6522-8.6522 0-4.7827-3.8694-8.6364-8.6522-8.6364zm-36.607 1.14c-4.4062-0.000493-7.9809 3.543-7.9809 7.9488 0 4.4057 3.5748 7.9804 7.9804 7.9804 1.6769 0 3.2303-0.52246 4.5135-1.4056-0.53025-0.82393-0.84337-1.809-0.84337-2.858 0-0.54446 0.08034-1.0676 0.23426-1.5617-2.4023-1.7361-3.9669-4.5613-3.9669-7.7461 0-0.80923 0.10664-1.5917 0.29674-2.3427-0.0789-0.002-0.15478-0.01578-0.23427-0.01578zm46.837 6.8405c-0.23502 0-0.46245 0.02683-0.68715 0.06255 0.0124 0.19866 0.0156 0.39168 0.0156 0.59348 0 2.5403-1.0023 4.846-2.6238 6.5593 0.79769 0.92761 1.9694 1.5149 3.2953 1.5149 2.4152 0 4.3729-1.9421 4.3729-4.3573s-1.9577-4.3729-4.3729-4.3729zm-37.904 0.46851c-2.4151 0-4.3573 1.9422-4.3573 4.3573s1.9422 4.3729 4.3573 4.3729c1.8512 0 3.4225-1.1551 4.0606-2.7799-1.557-1.5858-2.676-3.6087-3.1703-5.8564-0.28933-0.05978-0.58298-0.09372-0.89022-0.09372z" fill="#FFF"/></svg>
diff --git a/core/img/logo-wide.png b/core/img/logo-wide.png
index b15c76ecb15..bca5fa7997f 100644
--- a/core/img/logo-wide.png
+++ b/core/img/logo-wide.png
Binary files differ
diff --git a/core/img/logo-wide.svg b/core/img/logo-wide.svg
index bacba6755c5..1ee00e725e5 100644
--- a/core/img/logo-wide.svg
+++ b/core/img/logo-wide.svg
@@ -1,3 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 595.275 311.111" xml:space="preserve" height="32" width="147.33" version="1.1" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 147.33262 32" xmlns:dc="http://purl.org/dc/elements/1.1/"><g fill="#fff">
-<path style="block-progression:tb;color:#000000;enable-background:accumulate;text-transform:none;text-indent:0" d="m104 13v15.344c0 2.008 1.71 3.656 3.72 3.656v-1c-1.52 0-2.72-1.137-2.72-2.656v-15.344h-1zm42 0v8h-4.53c-2.99 0-5.47 2.571-5.47 5.562s2.48 5.466 5.47 5.438h1.78c0.88 0 1.74-0.442 2.44-1.094 0.7-0.651 1.29-1.555 1.31-2.562v-15.344h-1zm-44.5 2c-4.635 0-8.5 3.865-8.5 8.5s3.865 8.5 8.5 8.5v-1c-4.146 0-7.5-3.353-7.5-7.5s3.354-7.5 7.5-7.5v-1zm-46 6c-0.606 0-1.201 0.092-1.75 0.281 0.071 0.325 0.15 0.664 0.188 1 0.489-0.18 1.007-0.281 1.562-0.281 2.503 0 4.5 1.997 4.5 4.5s-1.997 4.5-4.5 4.5c-1.444 0-2.71-0.676-3.531-1.719-0.198 0.255-0.434 0.485-0.657 0.719 1.017 1.208 2.521 2 4.188 2 2.991 0 5.5-2.509 5.5-5.5s-2.509-5.5-5.5-5.5zm7.5 0v7.344c0 2.008 1.992 3.656 4 3.656 1.368 0 2.905-0.695 3.531-1.812 0.622 1.117 2.101 1.812 3.469 1.812 2.008 0 4-1.648 4-3.656v-7.344h-1v7.344c0 1.519-1.481 2.656-3 2.656s-3-1.002-3-2.656v-7.344h-1v7.344c0 1.519-1.48 2.656-3 2.656-1.519 0-3-1.137-3-2.656v-7.344h-1zm22.531 0c-2.991 0-5.531 2.54-5.531 5.531v5.469h1v-5.469c0-2.502 2.029-4.531 4.531-4.531 2.503 0 4.469 2.029 4.469 4.531v5.469h1v-5.469c0-2.991-2.477-5.531-5.469-5.531zm29.969 0c-2.99 0-5.5 2.509-5.5 5.5s2.51 5.5 5.5 5.5 5.5-2.509 5.5-5.5-2.51-5.5-5.5-5.5zm7.5 0v5.562c0 2.991 2.48 5.438 5.47 5.438s5.53-2.447 5.53-5.438v-5.562h-1v5.562c0 2.502-2.03 4.438-4.53 4.438s-4.47-1.936-4.47-4.438v-5.562h-1zm-7.5 1c2.5 0 4.5 1.997 4.5 4.5s-2 4.5-4.5 4.5-4.5-1.997-4.5-4.5 2-4.5 4.5-4.5zm25.97 0h4.53v6.344c-0.01 0.7-0.35 1.387-0.91 1.906-0.55 0.519-1.27 0.75-1.84 0.75h-1.78c-2.5 0-4.47-1.936-4.47-4.438s1.97-4.562 4.47-4.562z" transform="translate(-.0000031714)"/><path d="m16.398 3.6857c-2.2943 0-4.1386 1.8599-4.1386 4.1542 0 0.74283 0.19165 1.4447 0.53099 2.0459 1.3845-0.781 2.9851-1.2338 4.6852-1.2338 0.16408 0 0.32211 0.00666 0.48414 0.015617-0.01834-0.23258-0.03123-0.46554-0.03123-0.70278 0-1.2779 0.27755-2.4937 0.76525-3.592-0.657-0.4403-1.443-0.6871-2.296-0.6871z"/><path d="m7.9805 15.852c-4.4057 0-7.9805 3.5435-7.9805 7.9492s3.5748 7.9805 7.9805 7.9805c1.6769 0 3.2302-0.52246 4.5134-1.4056-0.53024-0.82393-0.84334-1.809-0.84334-2.858 0-0.54446 0.08034-1.0675 0.23426-1.5617-2.4023-1.7361-3.9668-4.5612-3.9668-7.7462 0-0.80924 0.10664-1.5917 0.29673-2.3426-0.078902-0.0023-0.15479-0.01562-0.23426-0.01562z"/><path d="m17.476 9.5578c-4.7826 0-8.652 3.8694-8.652 8.652 0 2.8154 1.3414 5.3078 3.4202 6.8873 0.87636-1.6903 2.6365-2.8424 4.6696-2.8424 0.24572 0 0.48158 0.02978 0.7184 0.06247-0.07434-0.54088-0.10932-1.0943-0.10932-1.6554 0-2.6831 0.87339-5.1644 2.3582-7.1684-0.889-1.112-1.525-2.448-1.796-3.9039-0.201-0.014-0.405-0.0313-0.609-0.0313z"/><path d="m36.045 6.5437c-0.1695 0-0.33288 0.02081-0.49976 0.031235 0.07218 0.45513 0.12494 0.9147 0.12494 1.3899 0 0.7396-0.09406 1.4533-0.2655 2.1396 2.01 1.1123 3.6791 2.7767 4.7789 4.7945 1.1407-0.59386 2.4132-0.97147 3.7638-1.062-0.34807-4.082-3.7298-7.2933-7.9024-7.2933z"/><path d="m26.799 5.1362e-7c-4.4056 0-7.9649 3.5593-7.9649 7.9649 0 1.816 0.60469 3.4874 1.6242 4.8258 2.2117-2.5599 5.4759-4.1855 9.1205-4.1855 1.7831 0 3.474 0.39707 4.9976 1.0932 0.124-0.5582 0.188-1.1384 0.188-1.7338 0-4.4056-3.559-7.9649-7.965-7.9649z"/><path d="m44.588 14.712c-1.4522 0-2.8126 0.37076-4.0137 0.99951 0.682 1.5107 1.062 3.1868 1.062 4.9507 0 3.3027-1.3279 6.3016-3.4827 8.4802 1.583 1.7575 3.8797 2.858 6.4344 2.858 4.7826 0 8.652-3.8694 8.652-8.652 0-4.7827-3.8694-8.6364-8.652-8.6364z"/><path d="m16.914 23.161c-2.415 0-4.3572 1.9422-4.3572 4.3572s1.9422 4.3729 4.3572 4.3729c1.8512 0 3.4224-1.1551 4.0605-2.7799-1.557-1.5857-2.6759-3.6087-3.1703-5.8565-0.28932-0.05983-0.58298-0.09371-0.89019-0.09371z"/><path d="m29.579 9.511c-6.1647 0-11.151 4.9857-11.151 11.151 0 6.1645 4.9858 11.151 11.151 11.151 6.165 0 11.151-4.9864 11.151-11.151 0-6.1651-4.9861-11.151-11.151-11.151z"/></g></svg>
+<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="34" width="150" version="1.1" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" enable-background="new 0 0 595.275 311.111" viewBox="0 0 150.00267 34" xmlns:dc="http://purl.org/dc/elements/1.1/"><g transform="translate(1 .99987)" fill="#FFF"><path style="block-progression:tb;color:#000000;enable-background:accumulate;text-transform:none;text-indent:0" d="m104 13v15.344c0 2.008 1.71 3.656 3.72 3.656v-1c-1.52 0-2.72-1.137-2.72-2.656v-15.344h-1zm42 0v8h-4.53c-2.99 0-5.47 2.571-5.47 5.562s2.48 5.466 5.47 5.438h1.78c0.88 0 1.74-0.442 2.44-1.094 0.7-0.651 1.29-1.555 1.31-2.562v-15.344h-1zm-44.5 2c-4.635 0-8.5 3.865-8.5 8.5s3.865 8.5 8.5 8.5v-1c-4.146 0-7.5-3.353-7.5-7.5s3.354-7.5 7.5-7.5v-1zm-46 6c-0.606 0-1.201 0.092-1.75 0.281 0.071 0.325 0.15 0.664 0.188 1 0.489-0.18 1.007-0.281 1.562-0.281 2.503 0 4.5 1.997 4.5 4.5s-1.997 4.5-4.5 4.5c-1.444 0-2.71-0.676-3.531-1.719-0.198 0.255-0.434 0.485-0.657 0.719 1.017 1.208 2.521 2 4.188 2 2.991 0 5.5-2.509 5.5-5.5s-2.509-5.5-5.5-5.5zm7.5 0v7.344c0 2.008 1.992 3.656 4 3.656 1.368 0 2.905-0.695 3.531-1.812 0.622 1.117 2.101 1.812 3.469 1.812 2.008 0 4-1.648 4-3.656v-7.344h-1v7.344c0 1.519-1.481 2.656-3 2.656s-3-1.002-3-2.656v-7.344h-1v7.344c0 1.519-1.48 2.656-3 2.656-1.519 0-3-1.137-3-2.656v-7.344h-1zm22.531 0c-2.991 0-5.531 2.54-5.531 5.531v5.469h1v-5.469c0-2.502 2.029-4.531 4.531-4.531 2.503 0 4.469 2.029 4.469 4.531v5.469h1v-5.469c0-2.991-2.477-5.531-5.469-5.531zm29.969 0c-2.99 0-5.5 2.509-5.5 5.5s2.51 5.5 5.5 5.5 5.5-2.509 5.5-5.5-2.51-5.5-5.5-5.5zm7.5 0v5.562c0 2.991 2.48 5.438 5.47 5.438s5.53-2.447 5.53-5.438v-5.562h-1v5.562c0 2.502-2.03 4.438-4.53 4.438s-4.47-1.936-4.47-4.438v-5.562h-1zm-7.5 1c2.5 0 4.5 1.997 4.5 4.5s-2 4.5-4.5 4.5-4.5-1.997-4.5-4.5 2-4.5 4.5-4.5zm25.97 0h4.53v6.344c-0.01 0.7-0.35 1.387-0.91 1.906-0.55 0.519-1.27 0.75-1.84 0.75h-1.78c-2.5 0-4.47-1.936-4.47-4.438s1.97-4.562 4.47-4.562z" transform="translate(-3.1714e-6,0)"/><path d="m16.398 3.6857c-2.2943 0-4.1386 1.8599-4.1386 4.1542 0 0.74283 0.19165 1.4447 0.53099 2.0459 1.3845-0.781 2.9851-1.2338 4.6852-1.2338 0.16408 0 0.32211 0.00666 0.48414 0.015617-0.01834-0.23258-0.03123-0.46554-0.03123-0.70278 0-1.2779 0.27755-2.4937 0.76525-3.592-0.657-0.4403-1.443-0.6871-2.296-0.6871z"/><path d="m7.9805 15.852c-4.4057 0-7.9805 3.544-7.9805 7.949 0 4.4057 3.5748 7.9805 7.9805 7.9805 1.6769 0 3.2302-0.52246 4.5134-1.4056-0.53024-0.82393-0.84334-1.809-0.84334-2.858 0-0.54446 0.08034-1.0675 0.23426-1.5617-2.4023-1.7361-3.9668-4.5612-3.9668-7.7462 0-0.80924 0.10664-1.5917 0.29673-2.3426-0.0791-0.002-0.1549-0.015-0.2344-0.015z"/><path d="m17.476 9.5578c-4.7826 0-8.652 3.8694-8.652 8.652 0 2.8154 1.3414 5.3078 3.4202 6.8873 0.87636-1.6903 2.6365-2.8424 4.6696-2.8424 0.24572 0 0.48158 0.02978 0.7184 0.06247-0.07434-0.54088-0.10932-1.0943-0.10932-1.6554 0-2.6831 0.87339-5.1644 2.3582-7.1684-0.889-1.112-1.525-2.448-1.796-3.9039-0.201-0.014-0.405-0.0313-0.609-0.0313z"/><path d="m36.045 6.5437c-0.1695 0-0.33288 0.02081-0.49976 0.031235 0.07218 0.45513 0.12494 0.9147 0.12494 1.3899 0 0.7396-0.09406 1.4533-0.2655 2.1396 2.01 1.1123 3.6791 2.7767 4.7789 4.7945 1.1407-0.59386 2.4132-0.97147 3.7638-1.062-0.34807-4.082-3.7298-7.2933-7.9024-7.2933z"/><path d="m26.799 5.1362e-7c-4.4056 0-7.9649 3.5593-7.9649 7.9649 0 1.816 0.60469 3.4874 1.6242 4.8258 2.2117-2.5599 5.4759-4.1855 9.1205-4.1855 1.7831 0 3.474 0.39707 4.9976 1.0932 0.124-0.5582 0.188-1.1384 0.188-1.7338 0-4.4056-3.559-7.9649-7.965-7.9649z"/><path d="m44.588 14.712c-1.4522 0-2.8126 0.37076-4.0137 0.99951 0.682 1.5107 1.062 3.1868 1.062 4.9507 0 3.3027-1.3279 6.3016-3.4827 8.4802 1.583 1.7575 3.8797 2.858 6.4344 2.858 4.7826 0 8.652-3.8694 8.652-8.652 0-4.7827-3.8694-8.6364-8.652-8.6364z"/><path d="m16.914 23.161c-2.415 0-4.3572 1.9422-4.3572 4.3572s1.9422 4.3729 4.3572 4.3729c1.8512 0 3.4224-1.1551 4.0605-2.7799-1.557-1.5857-2.6759-3.6087-3.1703-5.8565-0.28932-0.05983-0.58298-0.09371-0.89019-0.09371z"/><path d="m29.579 9.511c-6.1647 0-11.151 4.9857-11.151 11.151 0 6.1645 4.9858 11.151 11.151 11.151 6.165 0 11.151-4.9864 11.151-11.151 0-6.1651-4.9861-11.151-11.151-11.151z"/></g></svg>
diff --git a/core/img/logo.png b/core/img/logo.png
index 2c551a1c22c..f71068d78fc 100644
--- a/core/img/logo.png
+++ b/core/img/logo.png
Binary files differ
diff --git a/core/img/logo.svg b/core/img/logo.svg
index 06008c41c57..71abed92fca 100644
--- a/core/img/logo.svg
+++ b/core/img/logo.svg
@@ -1,4 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 595.275 311.111" xml:space="preserve" height="118.23" width="250" version="1.1" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 250.00001 118.22802" xmlns:dc="http://purl.org/dc/elements/1.1/">
-<path style="block-progression:tb;color:#000000;enable-background:accumulate;text-transform:none;text-indent:0" d="m150.66 0c-11.241 0-20.322 9.0815-20.322 20.322 0 4.6335 1.5429 8.898 4.1442 12.313 5.6431-6.5315 13.972-10.679 23.271-10.679 4.5496 0 8.8639 1.0131 12.751 2.7893 0.31474-1.4234 0.47817-2.9037 0.47817-4.4231 0.01-11.24-9.08-20.322-20.32-20.322zm-26.539 9.404c-5.8539 0-10.56 4.7456-10.56 10.599 0 1.8953 0.48899 3.6862 1.3548 5.22 3.5325-1.9927 7.6164-3.148 11.954-3.148 0.41864 0 0.82186 0.01699 1.2353 0.03985-0.0468-0.59343-0.0797-1.1878-0.0797-1.7931 0-3.2605 0.70816-6.3627 1.9525-9.165-1.6754-1.1235-3.6828-1.7533-5.8576-1.7533zm50.128 7.2921c-0.43247 0-0.84934 0.05309-1.2751 0.0797 0.18418 1.1613 0.31878 2.3339 0.31878 3.5464 0 1.8871-0.24 3.708-0.67741 5.4591 5.1284 2.8381 9.3873 7.0847 12.193 12.233 2.9105-1.5152 6.1573-2.4787 9.6033-2.7096-0.8881-10.415-9.5166-18.609-20.163-18.609zm-16.497 7.5711c-15.729 0-28.451 12.721-28.451 28.451 0 15.729 12.721 28.451 28.451 28.451s28.451-12.723 28.451-28.451c0-15.73-12.722-28.451-28.451-28.451zm-30.882 0.11954c-12.203 0-22.076 9.8727-22.076 22.076 0 7.1836 3.4227 13.543 8.7266 17.573 2.236-4.3127 6.727-7.2523 11.914-7.2523 0.62695 0 1.2287 0.07599 1.833 0.15939-0.18969-1.3801-0.27893-2.792-0.27893-4.2239 0-6.846 2.2284-13.177 6.017-18.29-2.2678-2.8377-3.8907-6.2474-4.5825-9.9619-0.51269-0.03551-1.0323-0.0797-1.5541-0.0797zm69.18 13.149c-3.7054 0-7.1763 0.94599-10.241 2.5503 1.7401 3.8545 2.7096 8.1312 2.7096 12.632 0 8.4268-3.3881 16.079-8.886 21.637 4.039 4.4841 9.8991 7.2921 16.417 7.2921 12.203 0 22.076-9.8727 22.076-22.076s-9.8727-22.036-22.076-22.036zm-93.403 2.9089c-11.241 0-20.362 9.0413-20.362 20.282s9.121 20.362 20.362 20.362c4.2785 0 8.2419-1.333 11.516-3.5863-1.3529-2.1023-2.1518-4.6156-2.1518-7.2921 0-1.3892 0.20497-2.7238 0.59771-3.9848-6.1294-4.4296-10.121-11.638-10.121-19.764 0-2.0648 0.27209-4.0613 0.75711-5.9772-0.20132-0.0058-0.39495-0.03985-0.59772-0.03985zm119.5 17.453c-0.59968 0-1.1799 0.06831-1.7533 0.15939 0.0316 0.50688 0.0398 0.99939 0.0398 1.5142 0 6.4816-2.5574 12.364-6.6944 16.736 2.0353 2.3668 5.0248 3.8652 8.4079 3.8652 6.1623 0 11.157-4.9552 11.157-11.117 0-6.1623-4.9951-11.157-11.157-11.157zm-96.71 1.1954c-6.162 0-11.118 4.9555-11.118 11.117 0 6.162 4.9555 11.157 11.118 11.157 4.7232 0 8.7323-2.9472 10.36-7.0929-3.9726-4.046-6.8276-9.2077-8.0891-14.943-0.73821-0.15266-1.4875-0.23909-2.2713-0.23909zm122.21 9.3642v22.036h-11.675c-7.6322 0-13.827 6.2347-13.827 13.867 0 7.6311 6.195 13.827 13.827 13.827h4.5426c2.239 0 4.4748-1.0874 6.2561-2.7495s3.1409-3.9644 3.1878-6.535c0.0801-4.4122 0-17.254 0-17.254v-23.191h-2.3112zm-106.75 9.9619v30.483c0 5.1232 4.2011 9.2845 9.3244 9.2845v-2.3112c-3.8766 0-7.0132-3.0967-7.0132-6.9733v-29.049c-0.80461-0.4325-1.5514-0.93449-2.3112-1.4345zm-23.112 2.8292c-4.0935 3.9059-6.6546 9.4053-6.6546 15.501 0 11.827 9.6118 21.438 21.438 21.438v-2.3112c-10.579 0-19.127-8.5469-19.127-19.127 0-5.6905 2.4839-10.805 6.4155-14.305-0.73485-0.33851-1.4155-0.73502-2.0721-1.1954zm-27.216 9.165c-7.6322 0-13.827 6.1949-13.827 13.827v12.791h2.3112v-12.791c0-6.3852 5.1309-11.556 11.516-11.556 6.3864 0 11.556 5.1706 11.556 11.556v12.791h2.3112v-12.791c0-7.6322-6.2338-13.827-13.867-13.827zm77.583 0.0797c-7.6326 0-13.827 6.2344-13.827 13.867s6.1945 13.867 13.827 13.867c7.6326 0 13.867-6.2344 13.867-13.867s-6.2344-13.867-13.867-13.867zm-154.29 0.0398c-7.632 0-13.867 6.1952-13.867 13.827 0 7.632 6.235 13.827 13.867 13.827s13.827-6.1952 13.827-13.827c0-7.632-6.1952-13.827-13.827-13.827zm20.761 1.036v17.334c0 5.1234 4.1622 9.2845 9.2845 9.2845 3.4912 0 6.5716-1.9303 8.1688-4.7817 1.5857 2.8514 4.6384 4.7817 8.1289 4.7817 5.1233 0 9.3243-4.1611 9.3243-9.2845v-17.334h-2.3112v17.334c0 3.8764-3.1366 6.9733-7.0132 6.9733s-6.9733-3.0969-6.9733-6.9733v-17.334h-2.3112v17.334c0 3.8766-3.1352 6.9733-7.0132 6.9733-3.8753 0-6.9733-3.0969-6.9733-6.9733v-17.334h-2.3112zm153.45 0v12.791c0 7.6311 6.195 13.827 13.827 13.827 7.6322 0 13.867-6.1959 13.867-13.827v-12.791h-2.3112v12.791c0 6.3837-5.1707 11.516-11.556 11.516-6.3851 0-11.516-5.1322-11.516-11.516v-12.791h-2.3112zm-19.924 1.2353c6.3856 0 11.556 5.1702 11.556 11.556 0 6.3856-5.1702 11.556-11.556 11.556-6.3856 0-11.516-5.1702-11.516-11.556 0-6.3856 5.1304-11.556 11.516-11.556zm67.821 0h11.675c0.009 1.5271 0.0728 12.046 0 16.059-0.0326 1.7858-1.0121 3.5776-2.4307 4.9013-1.4186 1.3236-3.2544 2.1119-4.702 2.1119h-4.5426c-6.3851 0-11.516-5.1322-11.516-11.516 0-6.3852 5.1309-11.556 11.516-11.556zm-222.11 0.0399c6.385 0 11.516 5.131 11.516 11.516s-5.131 11.516-11.516 11.516-11.556-5.131-11.556-11.516 5.1708-11.516 11.556-11.516z" fill="#fff"/>
-</svg>
+<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="120" width="252" version="1.1" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" enable-background="new 0 0 595.275 311.111" viewBox="0 0 252.00001 119.99799" xmlns:dc="http://purl.org/dc/elements/1.1/"><path style="block-progression:tb;color:#000000;enable-background:accumulate;text-transform:none;text-indent:0" d="m151.66 0.77195c-11.241 0-20.322 9.0815-20.322 20.322 0 4.6335 1.5429 8.898 4.1442 12.313 5.6431-6.5315 13.972-10.679 23.271-10.679 4.5496 0 8.8639 1.0131 12.751 2.7893 0.31474-1.4234 0.47817-2.9037 0.47817-4.4231 0.01-11.24-9.08-20.322-20.32-20.322zm-26.53 9.404c-5.8539 0-10.56 4.7456-10.56 10.599 0 1.8953 0.48899 3.6862 1.3548 5.22 3.5325-1.9927 7.6164-3.148 11.954-3.148 0.41864 0 0.82186 0.01699 1.2353 0.03985-0.0468-0.59343-0.0797-1.1878-0.0797-1.7931 0-3.2605 0.70816-6.3627 1.9525-9.165-1.6754-1.1235-3.6828-1.7533-5.8576-1.7533zm50.128 7.2921c-0.43247 0-0.84934 0.05309-1.2751 0.0797 0.18418 1.1613 0.31878 2.3339 0.31878 3.5464 0 1.8871-0.24 3.708-0.67741 5.4591 5.1284 2.8381 9.3873 7.0847 12.193 12.233 2.9105-1.5152 6.1573-2.4787 9.6033-2.7096-0.8881-10.415-9.5166-18.609-20.163-18.609zm-16.497 7.5711c-15.729 0-28.451 12.721-28.451 28.451 0 15.729 12.721 28.451 28.451 28.451s28.451-12.723 28.451-28.451c0-15.73-12.722-28.451-28.451-28.451zm-30.882 0.11954c-12.203 0-22.076 9.8727-22.076 22.076 0 7.1836 3.4227 13.543 8.7266 17.573 2.236-4.3127 6.727-7.2523 11.914-7.2523 0.62695 0 1.2287 0.07599 1.833 0.15939-0.18969-1.3801-0.27893-2.792-0.27893-4.2239 0-6.846 2.2284-13.177 6.017-18.29-2.2678-2.8377-3.8907-6.2474-4.5825-9.9619-0.51269-0.03551-1.0323-0.0797-1.5541-0.0797zm69.18 13.149c-3.7054 0-7.1763 0.94599-10.241 2.5503 1.7401 3.8545 2.7096 8.1312 2.7096 12.632 0 8.4268-3.3881 16.079-8.886 21.637 4.039 4.4841 9.8991 7.2921 16.417 7.2921 12.203 0 22.076-9.8727 22.076-22.076s-9.8727-22.036-22.076-22.036zm-93.403 2.9089c-11.241 0-20.362 9.0413-20.362 20.282s9.121 20.362 20.362 20.362c4.2785 0 8.2419-1.333 11.516-3.5863-1.3529-2.1023-2.1518-4.6156-2.1518-7.2921 0-1.3892 0.20497-2.7238 0.59771-3.9848-6.1294-4.4296-10.121-11.638-10.121-19.764 0-2.0648 0.27209-4.0613 0.75711-5.9772-0.20132-0.0058-0.39495-0.03985-0.59772-0.03985zm119.5 17.453c-0.59968 0-1.1799 0.06831-1.7533 0.15939 0.0316 0.50688 0.0398 0.99939 0.0398 1.5142 0 6.4816-2.5574 12.364-6.6944 16.736 2.0353 2.3668 5.0248 3.8652 8.4079 3.8652 6.1623 0 11.157-4.9552 11.157-11.117 0-6.1623-4.9951-11.157-11.157-11.157zm-96.71 1.1954c-6.162 0-11.118 4.9555-11.118 11.117 0 6.162 4.9555 11.157 11.118 11.157 4.7232 0 8.7323-2.9472 10.36-7.0929-3.9726-4.046-6.8276-9.2077-8.0891-14.943-0.73821-0.15266-1.4875-0.23909-2.2713-0.23909zm122.21 9.3642v22.036h-11.675c-7.6322 0-13.827 6.2347-13.827 13.867 0 7.6311 6.195 13.827 13.827 13.827h4.5426c2.239 0 4.4748-1.0874 6.2561-2.7495s3.1409-3.9644 3.1878-6.535c0.0801-4.4122 0-17.254 0-17.254v-23.191h-2.3112zm-106.75 9.9619v30.483c0 5.1232 4.2011 9.2845 9.3244 9.2845v-2.3112c-3.8766 0-7.0132-3.0967-7.0132-6.9733v-29.055c-0.80461-0.4325-1.5514-0.93449-2.3112-1.4345zm-23.112 2.8292c-4.0935 3.9059-6.6546 9.4053-6.6546 15.501 0 11.827 9.6118 21.438 21.438 21.438v-2.3112c-10.579 0-19.127-8.5469-19.127-19.127 0-5.6905 2.4839-10.805 6.4155-14.305-0.73485-0.33851-1.4155-0.73502-2.0721-1.1954zm-27.216 9.165c-7.6322 0-13.827 6.1949-13.827 13.827v12.791h2.3112v-12.791c0-6.3852 5.1309-11.556 11.516-11.556 6.3864 0 11.556 5.1706 11.556 11.556v12.791h2.3112v-12.791c0-7.6322-6.2338-13.827-13.867-13.827zm77.583 0.0797c-7.6326 0-13.827 6.2344-13.827 13.867s6.1945 13.867 13.827 13.867c7.6326 0 13.867-6.2344 13.867-13.867s-6.2344-13.867-13.867-13.867zm-154.29 0.0398c-7.645 0-13.88 6.195-13.88 13.825 0 7.632 6.235 13.827 13.867 13.827s13.827-6.1952 13.827-13.827c0-7.632-6.1952-13.827-13.827-13.827zm20.761 1.036v17.334c0 5.1234 4.1622 9.2845 9.2845 9.2845 3.4912 0 6.5716-1.9303 8.1688-4.7817 1.5857 2.8514 4.6384 4.7817 8.1289 4.7817 5.1233 0 9.3243-4.1611 9.3243-9.2845v-17.339h-2.3247v17.334c0 3.8764-3.1366 6.9733-7.0132 6.9733s-6.9733-3.0969-6.9733-6.9733v-17.339h-2.3114v17.334c0 3.8766-3.1352 6.9733-7.0132 6.9733-3.8753 0-6.9733-3.0969-6.9733-6.9733v-17.339h-2.3112zm153.45 0v12.791c0 7.6311 6.195 13.827 13.827 13.827 7.6322 0 13.867-6.1959 13.867-13.827v-12.789h-2.3112v12.791c0 6.3837-5.1707 11.516-11.556 11.516-6.3851 0-11.516-5.1322-11.516-11.516v-12.789h-2.3112zm-19.924 1.2353c6.3856 0 11.556 5.1702 11.556 11.556 0 6.3856-5.1702 11.556-11.556 11.556-6.3856 0-11.516-5.1702-11.516-11.556 0-6.3856 5.1304-11.556 11.516-11.556zm67.821 0h11.675c0.009 1.5271 0.0728 12.046 0 16.059-0.0326 1.7858-1.0121 3.5776-2.4307 4.9013-1.4186 1.3236-3.2544 2.1119-4.702 2.1119h-4.5426c-6.3851 0-11.516-5.1322-11.516-11.516 0-6.3852 5.1309-11.556 11.516-11.556zm-222.11 0.0399c6.385 0 11.516 5.131 11.516 11.516s-5.131 11.516-11.516 11.516-11.556-5.131-11.556-11.516 5.1708-11.516 11.556-11.516z" fill="#FFF"/></svg>
diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php
index e39bb94ed98..efa169c333b 100644
--- a/core/templates/layout.user.php
+++ b/core/templates/layout.user.php
@@ -50,7 +50,7 @@
</a>
<a href="#" class="menutoggle">
<div class="header-appname">
- <?php p(!empty($_['application'])?$_['application']:'Apps'); ?>
+ <?php p(!empty($_['application'])?$_['application']: $l->t('Apps')); ?>
</div>
<div class="icon-caret"></div>
</a>
diff --git a/lib/private/db/mdb2schemamanager.php b/lib/private/db/mdb2schemamanager.php
index 734ba18d1ac..ee3d53b576a 100644
--- a/lib/private/db/mdb2schemamanager.php
+++ b/lib/private/db/mdb2schemamanager.php
@@ -109,7 +109,7 @@ class MDB2SchemaManager {
*/
public function simulateUpdateDbFromStructure($file) {
$toSchema = $this->readSchemaFromFile($file);
- $migrator = $this->getMigrator()->checkMigrate($toSchema);
+ $this->getMigrator()->checkMigrate($toSchema);
return true;
}
diff --git a/lib/private/files/cache/storage.php b/lib/private/files/cache/storage.php
index 6b6b0bce9d7..3a267874431 100644
--- a/lib/private/files/cache/storage.php
+++ b/lib/private/files/cache/storage.php
@@ -43,12 +43,15 @@ class Storage {
}
}
+ /**
+ * @return string
+ */
public function getNumericId() {
return $this->numericId;
}
/**
- * @return string
+ * @return string|null
*/
public static function getStorageId($numericId) {
@@ -62,37 +65,46 @@ class Storage {
}
/**
- * @param string $storageId
+ * @return string|null
*/
- public static function exists($storageId) {
+ public static function getNumericStorageId($storageId) {
if (strlen($storageId) > 64) {
$storageId = md5($storageId);
}
+
$sql = 'SELECT `numeric_id` FROM `*PREFIX*storages` WHERE `id` = ?';
$result = \OC_DB::executeAudited($sql, array($storageId));
if ($row = $result->fetchRow()) {
- return true;
+ return $row['numeric_id'];
} else {
- return false;
+ return null;
}
}
/**
+ * @param string $storageId
+ * @return bool
+ */
+ public static function exists($storageId) {
+ return !is_null(self::getNumericStorageId($storageId));
+ }
+
+ /**
* remove the entry for the storage
*
* @param string $storageId
*/
public static function remove($storageId) {
- $storageCache = new Storage($storageId);
- $numericId = $storageCache->getNumericId();
-
if (strlen($storageId) > 64) {
$storageId = md5($storageId);
}
$sql = 'DELETE FROM `*PREFIX*storages` WHERE `id` = ?';
\OC_DB::executeAudited($sql, array($storageId));
- $sql = 'DELETE FROM `*PREFIX*filecache` WHERE `storage` = ?';
- \OC_DB::executeAudited($sql, array($numericId));
+ $numericId = self::exists($storageId);
+ if (!is_null($numericId)) {
+ $sql = 'DELETE FROM `*PREFIX*filecache` WHERE `storage` = ?';
+ \OC_DB::executeAudited($sql, array($numericId));
+ }
}
}
diff --git a/lib/private/updater.php b/lib/private/updater.php
index 58a4086c80f..9cc1b3322eb 100644
--- a/lib/private/updater.php
+++ b/lib/private/updater.php
@@ -150,6 +150,7 @@ class Updater extends BasicEmitter {
// This is added to prevent host header poisoning
\OC_Config::setValue('trusted_domains', \OC_Config::getValue('trusted_domains', array(\OC_Request::serverHost())));
}
+
/*
* STOP CONFIG CHANGES FOR OLDER VERSIONS
*/
diff --git a/tests/lib/db/mdb2schemamanager.php b/tests/lib/db/mdb2schemamanager.php
new file mode 100644
index 00000000000..51e3c7002f4
--- /dev/null
+++ b/tests/lib/db/mdb2schemamanager.php
@@ -0,0 +1,37 @@
+<?php
+
+/**
+ * Copyright (c) 2014 Thomas Müller <deepdiver@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test\DB;
+
+class MDB2SchemaManager extends \PHPUnit_Framework_TestCase {
+
+ public function tearDown() {
+ \OC_DB::dropTable('table');
+ }
+
+ public function testAutoIncrement() {
+
+ if (\OC::$server->getConfig()->getSystemValue('dbtype', 'sqlite') === 'oci') {
+ $this->markTestSkipped('Adding auto increment columns in Oracle is not supported.');
+ }
+
+ $connection = \OC_DB::getConnection();
+ $manager = new \OC\DB\MDB2SchemaManager($connection);
+
+ $manager->createDbFromStructure(__DIR__ . '/ts-autoincrement-before.xml');
+ $connection->executeUpdate('insert into `*PREFIX*table` values (?)', array('abc'));
+ $connection->executeUpdate('insert into `*PREFIX*table` values (?)', array('abc'));
+ $connection->executeUpdate('insert into `*PREFIX*table` values (?)', array('123'));
+ $connection->executeUpdate('insert into `*PREFIX*table` values (?)', array('123'));
+ $manager->updateDbFromStructure(__DIR__ . '/ts-autoincrement-after.xml');
+
+ $this->assertTrue(true);
+ }
+
+}
diff --git a/tests/lib/db/ts-autoincrement-after.xml b/tests/lib/db/ts-autoincrement-after.xml
new file mode 100644
index 00000000000..d4445f1e247
--- /dev/null
+++ b/tests/lib/db/ts-autoincrement-after.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<database>
+
+ <name>*dbname*</name>
+ <create>true</create>
+ <overwrite>false</overwrite>
+
+ <charset>utf8</charset>
+
+ <table>
+
+ <name>*dbprefix*table</name>
+
+ <declaration>
+ <field>
+ <name>auto_id</name>
+ <type>integer</type>
+ <default>0</default>
+ <notnull>true</notnull>
+ <autoincrement>1</autoincrement>
+ <length>4</length>
+ </field>
+ <field>
+ <name>textfield</name>
+ <type>text</type>
+ <default>foo</default>
+ <notnull>true</notnull>
+ <length>32</length>
+ </field>
+ </declaration>
+ </table>
+</database>
diff --git a/tests/lib/db/ts-autoincrement-before.xml b/tests/lib/db/ts-autoincrement-before.xml
new file mode 100644
index 00000000000..412739e9a71
--- /dev/null
+++ b/tests/lib/db/ts-autoincrement-before.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<database>
+
+ <name>*dbname*</name>
+ <create>true</create>
+ <overwrite>false</overwrite>
+
+ <charset>utf8</charset>
+
+ <table>
+
+ <name>*dbprefix*table</name>
+
+ <declaration>
+ <field>
+ <name>textfield</name>
+ <type>text</type>
+ <default>foo</default>
+ <notnull>true</notnull>
+ <length>32</length>
+ </field>
+ </declaration>
+ </table>
+</database>