diff --git a/apps/files/ajax/delete.php b/apps/files/ajax/delete.php index c69f5a8860c..69f859daa97 100644 --- a/apps/files/ajax/delete.php +++ b/apps/files/ajax/delete.php @@ -9,8 +9,21 @@ OCP\JSON::callCheck(); // Get data $dir = stripslashes($_POST["dir"]); $files = isset($_POST["file"]) ? $_POST["file"] : $_POST["files"]; +$allFiles = isset($_POST["allfiles"]) ? $_POST["allfiles"] : $_POST["allfiles"]; +if ($allFiles === 'true') { + $allFiles = true; +} -$files = json_decode($files); +// delete all files in dir ? +if ($allFiles) { + $files = array(); + $fileList = \OC\Files\Filesystem::getDirectoryContent($dir); + foreach ($fileList as $fileInfo) { + $files[] = $fileInfo['name']; + } +} else { + $files = json_decode($files); +} $filesWithError = ''; $success = true; diff --git a/apps/files/ajax/newfile.php b/apps/files/ajax/newfile.php index 1853098c507..0187b200759 100644 --- a/apps/files/ajax/newfile.php +++ b/apps/files/ajax/newfile.php @@ -50,16 +50,22 @@ $l10n = \OC_L10n::get('files'); $result = array( 'success' => false, 'data' => NULL - ); +); +$trimmedFileName = trim($filename); -if(trim($filename) === '') { +if($trimmedFileName === '') { $result['data'] = array('message' => (string)$l10n->t('File name cannot be empty.')); OCP\JSON::error($result); exit(); } +if($trimmedFileName === '.' || $trimmedFileName === '..') { + $result['data'] = array('message' => (string)$l10n->t('"%s" is an invalid file name.', $trimmedFileName)); + OCP\JSON::error($result); + exit(); +} -if(strpos($filename, '/') !== false) { - $result['data'] = array('message' => (string)$l10n->t('File name must not contain "/". Please choose a different name.')); +if(!OCP\Util::isValidFileName($filename)) { + $result['data'] = array('message' => (string)$l10n->t("Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed.")); OCP\JSON::error($result); exit(); } diff --git a/apps/files/ajax/newfolder.php b/apps/files/ajax/newfolder.php index 4cfcae3090d..b2b4fb27f74 100644 --- a/apps/files/ajax/newfolder.php +++ b/apps/files/ajax/newfolder.php @@ -23,8 +23,8 @@ if(trim($foldername) === '') { exit(); } -if(strpos($foldername, '/') !== false) { - $result['data'] = array('message' => $l10n->t('Folder name must not contain "/". Please choose a different name.')); +if(!OCP\Util::isValidFileName($foldername)) { + $result['data'] = array('message' => (string)$l10n->t("Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed.")); OCP\JSON::error($result); exit(); } diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index b2de0161aa8..07f831617b7 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -582,30 +582,49 @@ window.FileList={ }}); } }, - do_delete:function(files) { - if (files.substr) { + do_delete:function(files, dir) { + var params; + if (files && files.substr) { files=[files]; } - for (var i=0; iinit(); - $path=$this->cleanPath($path); + $path=$this->cleanPath($path) . '/'; + // FIXME: some WebDAV impl return 403 when trying to DELETE + // a non-empty folder return $this->simpleResponse('DELETE', $path, null, 204); } @@ -107,7 +109,7 @@ class DAV extends \OC\Files\Storage\Common{ $this->init(); $path=$this->cleanPath($path); try { - $response=$this->client->propfind($path, array(), 1); + $response=$this->client->propfind($this->encodePath($path), array(), 1); $id=md5('webdav'.$this->root.$path); $content = array(); $files=array_keys($response); @@ -127,8 +129,11 @@ class DAV extends \OC\Files\Storage\Common{ $this->init(); $path=$this->cleanPath($path); try { - $response=$this->client->propfind($path, array('{DAV:}resourcetype')); - $responseType=$response["{DAV:}resourcetype"]->resourceType; + $response=$this->client->propfind($this->encodePath($path), array('{DAV:}resourcetype')); + $responseType = array(); + if (isset($response["{DAV:}resourcetype"])) { + $responseType=$response["{DAV:}resourcetype"]->resourceType; + } return (count($responseType)>0 and $responseType[0]=="{DAV:}collection")?'dir':'file'; } catch(\Exception $e) { error_log($e->getMessage()); @@ -141,7 +146,7 @@ class DAV extends \OC\Files\Storage\Common{ $this->init(); $path=$this->cleanPath($path); try { - $this->client->propfind($path, array('{DAV:}resourcetype')); + $this->client->propfind($this->encodePath($path), array('{DAV:}resourcetype')); return true;//no 404 exception } catch(\Exception $e) { return false; @@ -166,7 +171,7 @@ class DAV extends \OC\Files\Storage\Common{ $curl = curl_init(); $fp = fopen('php://temp', 'r+'); curl_setopt($curl, CURLOPT_USERPWD, $this->user.':'.$this->password); - curl_setopt($curl, CURLOPT_URL, $this->createBaseUri().str_replace(' ', '%20', $path)); + curl_setopt($curl, CURLOPT_URL, $this->createBaseUri().$this->encodePath($path)); curl_setopt($curl, CURLOPT_FILE, $fp); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); if ($this->secure === true) { @@ -178,6 +183,10 @@ class DAV extends \OC\Files\Storage\Common{ } curl_exec ($curl); + $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); + if ($statusCode !== 200) { + \OCP\Util::writeLog("webdav client", 'curl GET ' . curl_getinfo($curl, CURLINFO_EFFECTIVE_URL) . ' returned status code ' . $statusCode, \OCP\Util::ERROR); + } curl_close ($curl); rewind($fp); return $fp; @@ -220,7 +229,7 @@ class DAV extends \OC\Files\Storage\Common{ $this->init(); $path=$this->cleanPath($path); try { - $response=$this->client->propfind($path, array('{DAV:}quota-available-bytes')); + $response=$this->client->propfind($this->encodePath($path), array('{DAV:}quota-available-bytes')); if (isset($response['{DAV:}quota-available-bytes'])) { return (int)$response['{DAV:}quota-available-bytes']; } else { @@ -240,7 +249,12 @@ class DAV extends \OC\Files\Storage\Common{ // if file exists, update the mtime, else create a new empty file if ($this->file_exists($path)) { - $this->client->proppatch($path, array('{DAV:}lastmodified' => $mtime)); + try { + $this->client->proppatch($this->encodePath($path), array('{DAV:}lastmodified' => $mtime)); + } + catch (\Sabre_DAV_Exception_NotImplemented $e) { + return false; + } } else { $this->file_put_contents($path, ''); } @@ -276,13 +290,17 @@ class DAV extends \OC\Files\Storage\Common{ } } curl_exec ($curl); + $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); + if ($statusCode !== 200) { + \OCP\Util::writeLog("webdav client", 'curl GET ' . curl_getinfo($curl, CURLINFO_EFFECTIVE_URL) . ' returned status code ' . $statusCode, \OCP\Util::ERROR); + } curl_close ($curl); } public function rename($path1, $path2) { $this->init(); - $path1=$this->cleanPath($path1); - $path2=$this->createBaseUri().$this->cleanPath($path2); + $path1 = $this->encodePath($this->cleanPath($path1)); + $path2 = $this->createBaseUri().$this->encodePath($this->cleanPath($path2)); try { $this->client->request('MOVE', $path1, null, array('Destination'=>$path2)); return true; @@ -293,8 +311,8 @@ class DAV extends \OC\Files\Storage\Common{ public function copy($path1, $path2) { $this->init(); - $path1=$this->cleanPath($path1); - $path2=$this->createBaseUri().$this->cleanPath($path2); + $path1 = $this->encodePath($this->cleanPath($path1)); + $path2 = $this->createBaseUri().$this->encodePath($this->cleanPath($path2)); try { $this->client->request('COPY', $path1, null, array('Destination'=>$path2)); return true; @@ -307,7 +325,7 @@ class DAV extends \OC\Files\Storage\Common{ $this->init(); $path=$this->cleanPath($path); try { - $response=$this->client->propfind($path, array('{DAV:}getlastmodified', '{DAV:}getcontentlength')); + $response = $this->client->propfind($this->encodePath($path), array('{DAV:}getlastmodified', '{DAV:}getcontentlength')); return array( 'mtime'=>strtotime($response['{DAV:}getlastmodified']), 'size'=>(int)isset($response['{DAV:}getcontentlength']) ? $response['{DAV:}getcontentlength'] : 0, @@ -321,8 +339,11 @@ class DAV extends \OC\Files\Storage\Common{ $this->init(); $path=$this->cleanPath($path); try { - $response=$this->client->propfind($path, array('{DAV:}getcontenttype', '{DAV:}resourcetype')); - $responseType=$response["{DAV:}resourcetype"]->resourceType; + $response=$this->client->propfind($this->encodePath($path), array('{DAV:}getcontenttype', '{DAV:}resourcetype')); + $responseType = array(); + if (isset($response["{DAV:}resourcetype"])) { + $responseType=$response["{DAV:}resourcetype"]->resourceType; + } $type=(count($responseType)>0 and $responseType[0]=="{DAV:}collection")?'dir':'file'; if ($type=='dir') { return 'httpd/unix-directory'; @@ -345,6 +366,16 @@ class DAV extends \OC\Files\Storage\Common{ return substr($path, 1); } + /** + * URL encodes the given path but keeps the slashes + * @param string $path to encode + * @return string encoded path + */ + private function encodePath($path) { + // slashes need to stay + return str_replace('%2F', '/', rawurlencode($path)); + } + /** * @param string $method * @param string $path @@ -353,7 +384,7 @@ class DAV extends \OC\Files\Storage\Common{ private function simpleResponse($method, $path, $body, $expected) { $path=$this->cleanPath($path); try { - $response=$this->client->request($method, $path, $body); + $response=$this->client->request($method, $this->encodePath($path), $body); return $response['statusCode']==$expected; } catch(\Exception $e) { return false; diff --git a/apps/files_external/tests/config.php b/apps/files_external/tests/config.php index e296bfcb5b2..767c0adf58e 100644 --- a/apps/files_external/tests/config.php +++ b/apps/files_external/tests/config.php @@ -21,7 +21,11 @@ return array( 'host'=>'localhost', 'user'=>'test', 'password'=>'test', - 'root'=>'/owncloud/files/webdav.php', + 'root'=>'', + // wait delay in seconds after write operations + // (only in tests) + // set to higher value for lighttpd webdav + 'wait'=> 0 ), 'owncloud'=>array( 'run'=>true, diff --git a/apps/files_external/tests/webdav.php b/apps/files_external/tests/webdav.php index 1f9b767eca6..74e905ccc89 100644 --- a/apps/files_external/tests/webdav.php +++ b/apps/files_external/tests/webdav.php @@ -18,6 +18,9 @@ class DAV extends Storage { if ( ! is_array($this->config) or ! isset($this->config['webdav']) or ! $this->config['webdav']['run']) { $this->markTestSkipped('WebDAV backend not configured'); } + if (isset($this->config['webdav']['wait'])) { + $this->waitDelay = $this->config['webdav']['wait']; + } $this->config['webdav']['root'] .= '/' . $id; //make sure we have an new empty folder to work in $this->instance = new \OC\Files\Storage\DAV($this->config['webdav']); $this->instance->mkdir('/'); diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js index c1b7eee3fb7..06c168969de 100644 --- a/apps/files_sharing/js/public.js +++ b/apps/files_sharing/js/public.js @@ -1,3 +1,15 @@ +/* + * Copyright (c) 2014 + * + * This file is licensed under the Affero General Public License version 3 + * or later. + * + * See the COPYING-README file. + * + */ + +/* global OC, FileList, FileActions */ + // Override download path to files_sharing/public.php function fileDownloadPath(dir, file) { var url = $('#downloadURL').val(); @@ -28,12 +40,20 @@ $(document).ready(function() { // override since the format is different FileList.getDownloadUrl = function(filename, dir) { - // we use this because we need the service and token attributes - var tr = FileList.findFileEl(filename); - if (tr.length > 0) { - return $(tr).find('a.name').attr('href') + '&download'; + if ($.isArray(filename)) { + filename = JSON.stringify(filename); } - return null; + var path = dir || FileList.getCurrentDirectory(); + var params = { + service: 'files', + t: $('#sharingToken').val(), + path: path, + download: null + }; + if (filename) { + params.files = filename; + } + return OC.filePath('', '', 'public.php') + '?' + OC.buildQueryString(params); }; } diff --git a/apps/files_trashbin/ajax/delete.php b/apps/files_trashbin/ajax/delete.php index 75d481768ad..ebabc5bc7a2 100644 --- a/apps/files_trashbin/ajax/delete.php +++ b/apps/files_trashbin/ajax/delete.php @@ -2,42 +2,38 @@ OCP\JSON::checkLoggedIn(); OCP\JSON::callCheck(); +$folder = isset($_POST['dir']) ? $_POST['dir'] : '/'; // "empty trash" command if (isset($_POST['allfiles']) and $_POST['allfiles'] === 'true'){ $deleteAll = true; - $folder = isset($_POST['dir']) ? $_POST['dir'] : '/'; if ($folder === '/' || $folder === '') { OCA\Files_Trashbin\Trashbin::deleteAll(); $list = array(); } else { - $dirname = dirname($folder); - if ( $dirname !== '/' && $dirname !== '.' ) { - $dirlisting = '1'; - } else { - $dirlisting = '0'; - } $list[] = $folder; + $folder = dirname($folder); } } else { $deleteAll = false; $files = $_POST['files']; - $dirlisting = $_POST['dirlisting']; $list = json_decode($files); } + +$folder = rtrim($folder, '/') . '/'; $error = array(); $success = array(); $i = 0; foreach ($list as $file) { - if ( $dirlisting === '0') { + if ($folder === '/') { $file = ltrim($file, '/'); $delimiter = strrpos($file, '.d'); $filename = substr($file, 0, $delimiter); $timestamp = substr($file, $delimiter+2); } else { - $filename = $file; + $filename = $folder . '/' . $file; $timestamp = null; } diff --git a/apps/files_trashbin/ajax/undelete.php b/apps/files_trashbin/ajax/undelete.php index 876ad269a70..9c3ccba7ed8 100644 --- a/apps/files_trashbin/ajax/undelete.php +++ b/apps/files_trashbin/ajax/undelete.php @@ -4,15 +4,36 @@ OCP\JSON::checkLoggedIn(); OCP\JSON::callCheck(); $files = $_POST['files']; -$dirlisting = $_POST['dirlisting']; -$list = json_decode($files); +$dir = '/'; +if (isset($_POST['dir'])) { + $dir = rtrim($_POST['dir'], '/'). '/'; +} +$allFiles = false; +if (isset($_POST['allfiles']) and $_POST['allfiles'] === 'true') { + $allFiles = true; + $list = array(); + $dirListing = true; + if ($dir === '' || $dir === '/') { + $dirListing = false; + } + foreach (OCA\Files_Trashbin\Helper::getTrashFiles($dir) as $file) { + $fileName = $file['name']; + if (!$dirListing) { + $fileName .= '.d' . $file['timestamp']; + } + $list[] = $fileName; + } +} else { + $list = json_decode($files); +} $error = array(); $success = array(); $i = 0; foreach ($list as $file) { - if ( $dirlisting === '0') { + $path = $dir . '/' . $file; + if ($dir === '/') { $file = ltrim($file, '/'); $delimiter = strrpos($file, '.d'); $filename = substr($file, 0, $delimiter); @@ -23,9 +44,9 @@ foreach ($list as $file) { $timestamp = null; } - if ( !OCA\Files_Trashbin\Trashbin::restore($file, $filename, $timestamp) ) { + if ( !OCA\Files_Trashbin\Trashbin::restore($path, $filename, $timestamp) ) { $error[] = $filename; - OC_Log::write('trashbin','can\'t restore ' . $filename, OC_Log::ERROR); + OC_Log::write('trashbin', 'can\'t restore ' . $filename, OC_Log::ERROR); } else { $success[$i]['filename'] = $file; $success[$i]['timestamp'] = $timestamp; diff --git a/apps/files_trashbin/js/trash.js b/apps/files_trashbin/js/trash.js index 46d8b56308c..6aade210505 100644 --- a/apps/files_trashbin/js/trash.js +++ b/apps/files_trashbin/js/trash.js @@ -1,5 +1,29 @@ +/* + * Copyright (c) 2014 + * + * This file is licensed under the Affero General Public License version 3 + * or later. + * + * See the COPYING-README file. + * + */ + +/* global OC, t, FileList, FileActions */ $(document).ready(function() { + function removeCallback(result) { + if (result.status !== 'success') { + OC.dialogs.alert(result.data.message, t('core', 'Error')); + } + + var files = result.data.success; + for (var i = 0; i < files.length; i++) { + FileList.findFileEl(OC.basename(files[i].filename)).remove(); + } + FileList.updateFileSummary(); + FileList.updateEmptyContent(); + enableActions(); + } if (typeof FileActions !== 'undefined') { FileActions.register('all', 'Restore', OC.PERMISSION_READ, OC.imagePath('core', 'actions/history'), function(filename) { @@ -7,22 +31,12 @@ $(document).ready(function() { var deleteAction = tr.children("td.date").children(".action.delete"); deleteAction.removeClass('delete-icon').addClass('progress-icon'); disableActions(); - $.post(OC.filePath('files_trashbin', 'ajax', 'undelete.php'), - {files: JSON.stringify([$('#dir').val() + '/' + filename]), dirlisting: tr.attr('data-dirlisting')}, - function(result) { - for (var i = 0; i < result.data.success.length; i++) { - var row = document.getElementById(result.data.success[i].filename); - row.parentNode.removeChild(row); - } - if (result.status !== 'success') { - OC.dialogs.alert(result.data.message, t('core', 'Error')); - } - enableActions(); - FileList.updateFileSummary(); - FileList.updateEmptyContent(); - } + $.post(OC.filePath('files_trashbin', 'ajax', 'undelete.php'), { + files: JSON.stringify([filename]), + dir: FileList.getCurrentDirectory() + }, + removeCallback ); - }); }; @@ -34,22 +48,12 @@ $(document).ready(function() { var deleteAction = tr.children("td.date").children(".action.delete"); deleteAction.removeClass('delete-icon').addClass('progress-icon'); disableActions(); - $.post(OC.filePath('files_trashbin', 'ajax', 'delete.php'), - {files: JSON.stringify([$('#dir').val() + '/' +filename]), dirlisting: tr.attr('data-dirlisting')}, - function(result) { - for (var i = 0; i < result.data.success.length; i++) { - var row = document.getElementById(result.data.success[i].filename); - row.parentNode.removeChild(row); - } - if (result.status !== 'success') { - OC.dialogs.alert(result.data.message, t('core', 'Error')); - } - enableActions(); - FileList.updateFileSummary(); - FileList.updateEmptyContent(); - } + $.post(OC.filePath('files_trashbin', 'ajax', 'delete.php'), { + files: JSON.stringify([filename]), + dir: FileList.getCurrentDirectory() + }, + removeCallback ); - }); // Sets the select_all checkbox behaviour : @@ -68,29 +72,45 @@ $(document).ready(function() { $('.undelete').click('click', function(event) { event.preventDefault(); - var files = getSelectedFiles('file'); - var fileslist = JSON.stringify(files); - var dirlisting = getSelectedFiles('dirlisting')[0]; + var allFiles = $('#select_all').is(':checked'); + var files = []; + var params = {}; disableActions(); - for (var i = 0; i < files.length; i++) { - var deleteAction = FileList.findFileEl(files[i]).children("td.date").children(".action.delete"); - deleteAction.removeClass('delete-icon').addClass('progress-icon'); + if (allFiles) { + FileList.showMask(); + params = { + allfiles: true, + dir: FileList.getCurrentDirectory() + }; + } + else { + files = getSelectedFiles('name'); + for (var i = 0; i < files.length; i++) { + var deleteAction = FileList.findFileEl(files[i]).children("td.date").children(".action.delete"); + deleteAction.removeClass('delete-icon').addClass('progress-icon'); + } + params = { + files: JSON.stringify(files), + dir: FileList.getCurrentDirectory() + }; } $.post(OC.filePath('files_trashbin', 'ajax', 'undelete.php'), - {files: fileslist, dirlisting: dirlisting}, - function(result) { - for (var i = 0; i < result.data.success.length; i++) { - var row = document.getElementById(result.data.success[i].filename); - row.parentNode.removeChild(row); - } + params, + function(result) { + if (allFiles) { if (result.status !== 'success') { OC.dialogs.alert(result.data.message, t('core', 'Error')); } + FileList.hideMask(); + // simply remove all files + FileList.update(''); enableActions(); - FileList.updateFileSummary(); - FileList.updateEmptyContent(); } + else { + removeCallback(result); + } + } ); }); @@ -101,17 +121,17 @@ $(document).ready(function() { var params = {}; if (allFiles) { params = { - allfiles: true, - dir: $('#dir').val() + allfiles: true, + dir: FileList.getCurrentDirectory() }; } else { - files = getSelectedFiles('file'); + files = getSelectedFiles('name'); params = { files: JSON.stringify(files), - dirlisting: getSelectedFiles('dirlisting')[0] + dir: FileList.getCurrentDirectory() }; - }; + } disableActions(); if (allFiles) { @@ -128,22 +148,17 @@ $(document).ready(function() { params, function(result) { if (allFiles) { + if (result.status !== 'success') { + OC.dialogs.alert(result.data.message, t('core', 'Error')); + } FileList.hideMask(); // simply remove all files - $('#fileList').empty(); + FileList.update(''); + enableActions(); } else { - for (var i = 0; i < result.data.success.length; i++) { - var row = document.getElementById(result.data.success[i].filename); - row.parentNode.removeChild(row); - } + removeCallback(result); } - if (result.status !== 'success') { - OC.dialogs.alert(result.data.message, t('core', 'Error')); - } - enableActions(); - FileList.updateFileSummary(); - FileList.updateEmptyContent(); } ); @@ -208,11 +223,9 @@ function getSelectedFiles(property){ var files=[]; elements.each(function(i,element){ var file={ - name:$(element).attr('data-filename'), - file:$('#dir').val() + "/" + $(element).attr('data-file'), + name:$(element).attr('data-file'), timestamp:$(element).attr('data-timestamp'), - type:$(element).attr('data-type'), - dirlisting:$(element).attr('data-dirlisting') + type:$(element).attr('data-type') }; if(property){ files.push(file[property]); diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php index 6795aecafee..b7e4023dd73 100644 --- a/apps/user_ldap/lib/access.php +++ b/apps/user_ldap/lib/access.php @@ -921,6 +921,17 @@ class Access extends LDAPUtility { return $name; } + /** + * @brief escapes (user provided) parts for LDAP filter + * @param String $input, the provided value + * @returns the escaped string + */ + public function escapeFilterPart($input) { + $search = array('*', '\\', '(', ')'); + $replace = array('\\*', '\\\\', '\\(', '\\)'); + return str_replace($search, $replace, $input); + } + /** * @brief combines the input filters with AND * @param $filters array, the filters to connect diff --git a/apps/user_ldap/lib/helper.php b/apps/user_ldap/lib/helper.php index 9727d847d27..7de7fe8667f 100644 --- a/apps/user_ldap/lib/helper.php +++ b/apps/user_ldap/lib/helper.php @@ -118,10 +118,16 @@ class Helper { return false; } + $saveOtherConfigurations = ''; + if(empty($prefix)) { + $saveOtherConfigurations = 'AND `Configkey` NOT LIKE \'s%\''; + } + $query = \OCP\DB::prepare(' DELETE FROM `*PREFIX*appconfig` WHERE `configkey` LIKE ? + '.$saveOtherConfigurations.' AND `appid` = \'user_ldap\' AND `configkey` NOT IN (\'enabled\', \'installed_version\', \'types\', \'bgjUpdateGroupsLastRun\') '); diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php index 4a147cf9884..757de6b60f4 100644 --- a/apps/user_ldap/user_ldap.php +++ b/apps/user_ldap/user_ldap.php @@ -163,6 +163,8 @@ class USER_LDAP extends BackendUtility implements \OCP\UserInterface { * Check if the password is correct without logging in the user */ public function checkPassword($uid, $password) { + $uid = $this->access->escapeFilterPart($uid); + //find out dn of the user name $filter = \OCP\Util::mb_str_replace( '%uid', $uid, $this->access->connection->ldapLoginFilter, 'UTF-8'); @@ -203,6 +205,7 @@ class USER_LDAP extends BackendUtility implements \OCP\UserInterface { * Get a list of all users. */ public function getUsers($search = '', $limit = 10, $offset = 0) { + $search = $this->access->escapeFilterPart($search); $cachekey = 'getUsers-'.$search.'-'.$limit.'-'.$offset; //check if users are cached, if so return diff --git a/config/config.sample.php b/config/config.sample.php index 0cd321d095d..9f47ee32940 100755 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -263,4 +263,7 @@ $CONFIG = array( /* whether usage of the instance should be restricted to admin users only */ 'singleuser' => false, + + /* where mount.json file should be stored, defaults to data/mount.json */ + 'mount_file' => '', ); diff --git a/core/ajax/appconfig.php b/core/ajax/appconfig.php index 4f26dedc797..05b7572c6d7 100644 --- a/core/ajax/appconfig.php +++ b/core/ajax/appconfig.php @@ -9,28 +9,43 @@ OC_Util::checkAdminUser(); OCP\JSON::callCheck(); $action=isset($_POST['action'])?$_POST['action']:$_GET['action']; + +if(isset($_POST['app']) || isset($_GET['app'])) { + $app=OC_App::cleanAppId(isset($_POST['app'])?$_POST['app']:$_GET['app']); +} + +// An admin should not be able to add remote and public services +// on its own. This should only be possible programmatically. +// This change is due the fact that an admin may not be expected +// to execute arbitrary code in every environment. +if($app === 'core' && isset($_POST['key']) &&(substr($_POST['key'],0,7) === 'remote_' || substr($_POST['key'],0,7) === 'public_')) { + OC_JSON::error(array('data' => array('message' => 'Unexpected error!'))); + return; +} + $result=false; switch($action) { case 'getValue': - $result=OC_Appconfig::getValue($_GET['app'], $_GET['key'], $_GET['defaultValue']); + $result=OC_Appconfig::getValue($app, $_GET['key'], $_GET['defaultValue']); break; case 'setValue': - $result=OC_Appconfig::setValue($_POST['app'], $_POST['key'], $_POST['value']); + $result=OC_Appconfig::setValue($app, $_POST['key'], $_POST['value']); break; case 'getApps': $result=OC_Appconfig::getApps(); break; case 'getKeys': - $result=OC_Appconfig::getKeys($_GET['app']); + $result=OC_Appconfig::getKeys($app); break; case 'hasKey': - $result=OC_Appconfig::hasKey($_GET['app'], $_GET['key']); + $result=OC_Appconfig::hasKey($app, $_GET['key']); break; case 'deleteKey': - $result=OC_Appconfig::deleteKey($_POST['app'], $_POST['key']); + $result=OC_Appconfig::deleteKey($app, $_POST['key']); break; case 'deleteApp': - $result=OC_Appconfig::deleteApp($_POST['app']); + $result=OC_Appconfig::deleteApp($app); break; } OC_JSON::success(array('data'=>$result)); + diff --git a/core/ajax/share.php b/core/ajax/share.php index c251f8e7bae..86ee018e388 100644 --- a/core/ajax/share.php +++ b/core/ajax/share.php @@ -85,93 +85,32 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo } break; case 'informRecipients': - $l = OC_L10N::get('core'); - $shareType = (int) $_POST['shareType']; $itemType = $_POST['itemType']; $itemSource = $_POST['itemSource']; $recipient = $_POST['recipient']; - $ownerDisplayName = \OCP\User::getDisplayName(); - $from = \OCP\Util::getDefaultEmailAddress('sharing-noreply'); - - $noMail = array(); - $recipientList = array(); if($shareType === \OCP\Share::SHARE_TYPE_USER) { $recipientList[] = $recipient; } elseif ($shareType === \OCP\Share::SHARE_TYPE_GROUP) { $recipientList = \OC_Group::usersInGroup($recipient); } - // don't send a mail to the user who shared the file $recipientList = array_diff($recipientList, array(\OCP\User::getUser())); - // send mail to all recipients with an email address - foreach ($recipientList as $recipient) { - //get correct target folder name - $email = OC_Preferences::getValue($recipient, 'settings', 'email', ''); - - if ($email !== '') { - $displayName = \OCP\User::getDisplayName($recipient); - $items = \OCP\Share::getItemSharedWithUser($itemType, $itemSource, $recipient); - $filename = trim($items[0]['file_target'], '/'); - $subject = (string)$l->t('%s shared »%s« with you', array($ownerDisplayName, $filename)); - $expiration = null; - if (isset($items[0]['expiration'])) { - try { - $date = new DateTime($items[0]['expiration']); - $expiration = $l->l('date', $date->getTimestamp()); - } catch (Exception $e) { - \OCP\Util::writeLog('sharing', "Couldn't read date: " . $e->getMessage(), \OCP\Util::ERROR); - } - } - - if ($itemType === 'folder') { - $foldername = "/Shared/" . $filename; - } else { - // if it is a file we can just link to the Shared folder, - // that's the place where the user will find the file - $foldername = "/Shared"; - } - - $link = \OCP\Util::linkToAbsolute('files', 'index.php', array("dir" => $foldername)); - - $content = new OC_Template("core", "mail", ""); - $content->assign('link', $link); - $content->assign('user_displayname', $ownerDisplayName); - $content->assign('filename', $filename); - $content->assign('expiration', $expiration); - $text = $content->fetchPage(); - - $content = new OC_Template("core", "altmail", ""); - $content->assign('link', $link); - $content->assign('user_displayname', $ownerDisplayName); - $content->assign('filename', $filename); - $content->assign('expiration', $expiration); - $alttext = $content->fetchPage(); - - $default_from = OCP\Util::getDefaultEmailAddress('sharing-noreply'); - $from = OCP\Config::getUserValue(\OCP\User::getUser(), 'settings', 'email', $default_from); - - // send it out now - try { - OCP\Util::sendMail($email, $displayName, $subject, $text, $from, $ownerDisplayName, 1, $alttext); - } catch (Exception $exception) { - $noMail[] = \OCP\User::getDisplayName($recipient); - } - } - } + $mailNotification = new OC\Share\MailNotifications(); + $result = $mailNotification->sendInternalShareMail($recipientList, $itemSource, $itemType); \OCP\Share::setSendMailStatus($itemType, $itemSource, $shareType, true); - if (empty($noMail)) { + if (empty($result)) { OCP\JSON::success(); } else { OCP\JSON::error(array( 'data' => array( 'message' => $l->t("Couldn't send mail to following users: %s ", - implode(', ', $noMail) + implode(', ', $result) ) ) )); @@ -187,56 +126,31 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo break; case 'email': - // enable l10n support - $l = OC_L10N::get('core'); // read post variables - $user = OCP\USER::getUser(); - $displayName = OCP\User::getDisplayName(); - $type = $_POST['itemType']; $link = $_POST['link']; $file = $_POST['file']; $to_address = $_POST['toaddress']; + $mailNotification = new \OC\Share\MailNotifications(); + $expiration = null; if (isset($_POST['expiration']) && $_POST['expiration'] !== '') { try { $date = new DateTime($_POST['expiration']); - $expiration = $l->l('date', $date->getTimestamp()); + $expiration = $date->getTimestamp(); } catch (Exception $e) { \OCP\Util::writeLog('sharing', "Couldn't read date: " . $e->getMessage(), \OCP\Util::ERROR); } } - // setup the email - $subject = (string)$l->t('%s shared »%s« with you', array($displayName, $file)); - - $content = new OC_Template("core", "mail", ""); - $content->assign ('link', $link); - $content->assign ('type', $type); - $content->assign ('user_displayname', $displayName); - $content->assign ('filename', $file); - $content->assign('expiration', $expiration); - $text = $content->fetchPage(); - - $content = new OC_Template("core", "altmail", ""); - $content->assign ('link', $link); - $content->assign ('type', $type); - $content->assign ('user_displayname', $displayName); - $content->assign ('filename', $file); - $content->assign('expiration', $expiration); - $alttext = $content->fetchPage(); - - $default_from = OCP\Util::getDefaultEmailAddress('sharing-noreply'); - $from_address = OCP\Config::getUserValue($user, 'settings', 'email', $default_from ); - - // send it out now - try { - OCP\Util::sendMail($to_address, $to_address, $subject, $text, $from_address, $displayName, 1, $alttext); - OCP\JSON::success(); - } catch (Exception $exception) { - OCP\JSON::error(array('data' => array('message' => OC_Util::sanitizeHTML($exception->getMessage())))); + $result = $mailNotification->sendLinkShareMail($to_address, $file, $link, $expiration); + if($result === true) { + \OCP\JSON::success(); + } else { + \OCP\JSON::error(array('data' => array('message' => OC_Util::sanitizeHTML($result)))); } + break; } } else if (isset($_GET['fetch'])) { diff --git a/core/css/fixes.css b/core/css/fixes.css index 4ee854addef..a33afd5cf77 100644 --- a/core/css/fixes.css +++ b/core/css/fixes.css @@ -54,11 +54,6 @@ background-color: #1B314D; } -/* in IE9 the nav bar on the left side is too narrow and leave a white area - original width is 80px */ -.ie9 #navigation { - width: 100px; -} - /* IE8 isn't able to display transparent background. So it is specified using a gradient */ .ie8 #nojavascript { filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#4c320000', endColorstr='#4c320000'); /* IE */ diff --git a/core/css/multiselect.css b/core/css/multiselect.css index 60f2f47e698..8d949e7cdb7 100644 --- a/core/css/multiselect.css +++ b/core/css/multiselect.css @@ -48,7 +48,7 @@ ul.multiselectoptions > li input[type='checkbox']:checked+label { font-weight: bold; } -div.multiselect { +div.multiselect, select.multiselect { display: inline-block; max-width: 400px; min-width: 150px; @@ -58,6 +58,12 @@ div.multiselect { vertical-align: bottom; } +/* To make a select look like a multiselect until it's initialized */ +select.multiselect { + height: 30px; + min-width: 113px; +} + div.multiselect.active { background-color: #fff; position: relative; diff --git a/core/css/styles.css b/core/css/styles.css index bee44785f12..0be0eaf3441 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -74,6 +74,19 @@ body { background:#fefefe; font:normal .8em/1.6em "Helvetica Neue",Helvetica,Ari color: #aaa; } +#header .logo { + background-image: url(../img/logo.svg); + width: 250px; + height: 118px; + margin: 0 auto; +} + +#header .logo-wide { + background-image: url(../img/logo-wide.svg); + width: 147px; + height: 32px; +} + /* INPUTS */ input[type="text"], input[type="password"], @@ -933,3 +946,15 @@ div.crumb:active { opacity:.7; } +.appear { + opacity: 1; + transition: opacity 500ms ease 0s; + -moz-transition: opacity 500ms ease 0s; + -ms-transition: opacity 500ms ease 0s; + -o-transition: opacity 500ms ease 0s; + -webkit-transition: opacity 500ms ease 0s; +} +.appear.transparent { + opacity: 0; +} + diff --git a/core/img/actions/add.png b/core/img/actions/add.png index 1aac02b8454..3c051e4d73e 100644 Binary files a/core/img/actions/add.png and b/core/img/actions/add.png differ diff --git a/core/img/actions/caret-dark.png b/core/img/actions/caret-dark.png index f84e87e0a82..215af33ea4b 100644 Binary files a/core/img/actions/caret-dark.png and b/core/img/actions/caret-dark.png differ diff --git a/core/img/actions/caret-dark.svg b/core/img/actions/caret-dark.svg index 3a5318e6fa2..2d75e4dd8c1 100644 --- a/core/img/actions/caret-dark.svg +++ b/core/img/actions/caret-dark.svg @@ -1,13 +1,5 @@ + - - - - image/svg+xml - - - - - - - + + diff --git a/core/img/actions/caret.png b/core/img/actions/caret.png index 00baea9ece6..7066b767a28 100644 Binary files a/core/img/actions/caret.png and b/core/img/actions/caret.png differ diff --git a/core/img/actions/caret.svg b/core/img/actions/caret.svg index d1ae8d60a6f..8cd758daf84 100644 --- a/core/img/actions/caret.svg +++ b/core/img/actions/caret.svg @@ -1,11 +1,11 @@ - + - - + + diff --git a/core/img/actions/checkmark-white.png b/core/img/actions/checkmark-white.png index 08b8783649f..27f17204b1d 100644 Binary files a/core/img/actions/checkmark-white.png and b/core/img/actions/checkmark-white.png differ diff --git a/core/img/actions/checkmark-white.svg b/core/img/actions/checkmark-white.svg index 5e8fe8abccc..e6b63a4d599 100644 --- a/core/img/actions/checkmark-white.svg +++ b/core/img/actions/checkmark-white.svg @@ -1,4 +1,4 @@ -image/svg+xml - - + + + diff --git a/core/img/actions/checkmark.png b/core/img/actions/checkmark.png index 99a4019c69e..8b4c8ddc706 100644 Binary files a/core/img/actions/checkmark.png and b/core/img/actions/checkmark.png differ diff --git a/core/img/actions/checkmark.svg b/core/img/actions/checkmark.svg index f70a407c2ed..dbb97d1b469 100644 --- a/core/img/actions/checkmark.svg +++ b/core/img/actions/checkmark.svg @@ -1,4 +1,4 @@ -image/svg+xml - - + + + diff --git a/core/img/actions/clock.png b/core/img/actions/clock.png index 9c3a284b8ba..5023cf4c3f6 100644 Binary files a/core/img/actions/clock.png and b/core/img/actions/clock.png differ diff --git a/core/img/actions/clock.svg b/core/img/actions/clock.svg index f3fcb19031a..6b938deea82 100644 --- a/core/img/actions/clock.svg +++ b/core/img/actions/clock.svg @@ -1,5 +1,5 @@ - + diff --git a/core/img/actions/close.png b/core/img/actions/close.png index 0d8c89a56e2..3389c66e03b 100644 Binary files a/core/img/actions/close.png and b/core/img/actions/close.png differ diff --git a/core/img/actions/delete-hover.png b/core/img/actions/delete-hover.png index 99f549faf9b..48e6c089c9d 100644 Binary files a/core/img/actions/delete-hover.png and b/core/img/actions/delete-hover.png differ diff --git a/core/img/actions/delete-hover.svg b/core/img/actions/delete-hover.svg index 568185c5c70..9e5150359de 100644 --- a/core/img/actions/delete-hover.svg +++ b/core/img/actions/delete-hover.svg @@ -1,12 +1,4 @@ + - - - - image/svg+xml - - - - - - + diff --git a/core/img/actions/delete.png b/core/img/actions/delete.png index 0d8c89a56e2..3389c66e03b 100644 Binary files a/core/img/actions/delete.png and b/core/img/actions/delete.png differ diff --git a/core/img/actions/download.png b/core/img/actions/download.png index 65954f941bb..0f71a5a776f 100644 Binary files a/core/img/actions/download.png and b/core/img/actions/download.png differ diff --git a/core/img/actions/history.png b/core/img/actions/history.png index 3234880b25a..ec2bbd0587f 100644 Binary files a/core/img/actions/history.png and b/core/img/actions/history.png differ diff --git a/core/img/actions/info.png b/core/img/actions/info.png index 37ccb356830..9ebfe9cbdcc 100644 Binary files a/core/img/actions/info.png and b/core/img/actions/info.png differ diff --git a/core/img/actions/info.svg b/core/img/actions/info.svg index 55bdb17f2e1..7c93fd6a3ef 100644 --- a/core/img/actions/info.svg +++ b/core/img/actions/info.svg @@ -1,7 +1,7 @@ - + diff --git a/core/img/actions/lock.png b/core/img/actions/lock.png index f3121811ea6..2013ebad695 100644 Binary files a/core/img/actions/lock.png and b/core/img/actions/lock.png differ diff --git a/core/img/actions/lock.svg b/core/img/actions/lock.svg index beef1d3ad3a..9ea5015c8a3 100644 --- a/core/img/actions/lock.svg +++ b/core/img/actions/lock.svg @@ -1,5 +1,5 @@ - + diff --git a/core/img/actions/logout.png b/core/img/actions/logout.png index e9c89a15a7a..5b94147732c 100644 Binary files a/core/img/actions/logout.png and b/core/img/actions/logout.png differ diff --git a/core/img/actions/logout.svg b/core/img/actions/logout.svg index 59543875d75..895080dab8f 100644 --- a/core/img/actions/logout.svg +++ b/core/img/actions/logout.svg @@ -1,5 +1,5 @@ - - + + diff --git a/core/img/actions/mail.png b/core/img/actions/mail.png index be6142444ae..6d06259cd08 100644 Binary files a/core/img/actions/mail.png and b/core/img/actions/mail.png differ diff --git a/core/img/actions/more.png b/core/img/actions/more.png index edcafdd9bbf..880d5dccce3 100644 Binary files a/core/img/actions/more.png and b/core/img/actions/more.png differ diff --git a/core/img/actions/password.png b/core/img/actions/password.png index 07365a5775e..3619fabab9a 100644 Binary files a/core/img/actions/password.png and b/core/img/actions/password.png differ diff --git a/core/img/actions/password.svg b/core/img/actions/password.svg index a9b29fda093..4b772ae2dcb 100644 --- a/core/img/actions/password.svg +++ b/core/img/actions/password.svg @@ -1,3 +1,4 @@ -image/svg+xml - + + + diff --git a/core/img/actions/pause-big.png b/core/img/actions/pause-big.png index 1c4cf503b8d..054281c6314 100644 Binary files a/core/img/actions/pause-big.png and b/core/img/actions/pause-big.png differ diff --git a/core/img/actions/pause.png b/core/img/actions/pause.png index f74ed3a8619..d4b865e3401 100644 Binary files a/core/img/actions/pause.png and b/core/img/actions/pause.png differ diff --git a/core/img/actions/play-add.png b/core/img/actions/play-add.png index 0097f671aef..ccf77d2a062 100644 Binary files a/core/img/actions/play-add.png and b/core/img/actions/play-add.png differ diff --git a/core/img/actions/play-add.svg b/core/img/actions/play-add.svg index cdf4f6ea9f3..a0dec159d77 100644 --- a/core/img/actions/play-add.svg +++ b/core/img/actions/play-add.svg @@ -1,9 +1,7 @@ - - - - + + diff --git a/core/img/actions/play-big.png b/core/img/actions/play-big.png index 2da2426dcfc..7d4916cb204 100644 Binary files a/core/img/actions/play-big.png and b/core/img/actions/play-big.png differ diff --git a/core/img/actions/play-next.png b/core/img/actions/play-next.png index 08568b3dc0b..50cd91d240e 100644 Binary files a/core/img/actions/play-next.png and b/core/img/actions/play-next.png differ diff --git a/core/img/actions/play-previous.png b/core/img/actions/play-previous.png index 811cde46c15..c380e96bb58 100644 Binary files a/core/img/actions/play-previous.png and b/core/img/actions/play-previous.png differ diff --git a/core/img/actions/play.png b/core/img/actions/play.png index adbef1e576d..7994424c65c 100644 Binary files a/core/img/actions/play.png and b/core/img/actions/play.png differ diff --git a/core/img/actions/public.png b/core/img/actions/public.png index 9e56f2919fd..077bb7504de 100644 Binary files a/core/img/actions/public.png and b/core/img/actions/public.png differ diff --git a/core/img/actions/rename.png b/core/img/actions/rename.png index 3af6840071b..975bd2d7031 100644 Binary files a/core/img/actions/rename.png and b/core/img/actions/rename.png differ diff --git a/core/img/actions/search.png b/core/img/actions/search.png index 312e4f419e5..49b61754354 100644 Binary files a/core/img/actions/search.png and b/core/img/actions/search.png differ diff --git a/core/img/actions/search.svg b/core/img/actions/search.svg index 4f27369dbbc..28e36e2d5bd 100644 --- a/core/img/actions/search.svg +++ b/core/img/actions/search.svg @@ -1,14 +1,12 @@ - + - - - - + + diff --git a/core/img/actions/settings.png b/core/img/actions/settings.png index 9ada3087707..f6eb6ce0cc7 100644 Binary files a/core/img/actions/settings.png and b/core/img/actions/settings.png differ diff --git a/core/img/actions/settings.svg b/core/img/actions/settings.svg index bd7ae3b3d7f..a3a4c6c51d3 100644 --- a/core/img/actions/settings.svg +++ b/core/img/actions/settings.svg @@ -1,17 +1,17 @@ - + - + - + - - + + diff --git a/core/img/actions/share.png b/core/img/actions/share.png index 099e4d6ab35..fdacbbabebc 100644 Binary files a/core/img/actions/share.png and b/core/img/actions/share.png differ diff --git a/core/img/actions/shared.png b/core/img/actions/shared.png index 6e112e75b44..83ec1a0cf15 100644 Binary files a/core/img/actions/shared.png and b/core/img/actions/shared.png differ diff --git a/core/img/actions/shared.svg b/core/img/actions/shared.svg index 3e63cc54687..60b54015167 100644 --- a/core/img/actions/shared.svg +++ b/core/img/actions/shared.svg @@ -1,5 +1,5 @@ - + diff --git a/core/img/actions/sound-off.png b/core/img/actions/sound-off.png index 2eddb00af0f..0457de8e4d1 100644 Binary files a/core/img/actions/sound-off.png and b/core/img/actions/sound-off.png differ diff --git a/core/img/actions/sound.png b/core/img/actions/sound.png index 9349c94e7a4..e849b4d248b 100644 Binary files a/core/img/actions/sound.png and b/core/img/actions/sound.png differ diff --git a/core/img/actions/star.png b/core/img/actions/star.png index 124ce495af6..6a04282f3fa 100644 Binary files a/core/img/actions/star.png and b/core/img/actions/star.png differ diff --git a/core/img/actions/star.svg b/core/img/actions/star.svg index 7bcd8dc0598..c2b3b60a2b8 100644 --- a/core/img/actions/star.svg +++ b/core/img/actions/star.svg @@ -1,14 +1,6 @@ + - - - - image/svg+xml - - - - - - - + + diff --git a/core/img/actions/starred.png b/core/img/actions/starred.png index 5185d0f5381..22e68c757e7 100644 Binary files a/core/img/actions/starred.png and b/core/img/actions/starred.png differ diff --git a/core/img/actions/starred.svg b/core/img/actions/starred.svg index c7a5a7dac12..130bab366a2 100644 --- a/core/img/actions/starred.svg +++ b/core/img/actions/starred.svg @@ -1,14 +1,6 @@ + - - - - image/svg+xml - - - - - - - + + diff --git a/core/img/actions/toggle-filelist.png b/core/img/actions/toggle-filelist.png index 45d363f1934..0926a726d53 100644 Binary files a/core/img/actions/toggle-filelist.png and b/core/img/actions/toggle-filelist.png differ diff --git a/core/img/actions/toggle-filelist.svg b/core/img/actions/toggle-filelist.svg index 940f6a49e63..57f4c67fb30 100644 --- a/core/img/actions/toggle-filelist.svg +++ b/core/img/actions/toggle-filelist.svg @@ -1,11 +1,9 @@ - - - - - - - - + + + + + + diff --git a/core/img/actions/toggle-pictures.png b/core/img/actions/toggle-pictures.png index 8068d17e30d..7499d5b7809 100644 Binary files a/core/img/actions/toggle-pictures.png and b/core/img/actions/toggle-pictures.png differ diff --git a/core/img/actions/toggle-pictures.svg b/core/img/actions/toggle-pictures.svg index 5205c0226d1..f25695537f9 100644 --- a/core/img/actions/toggle-pictures.svg +++ b/core/img/actions/toggle-pictures.svg @@ -1,9 +1,7 @@ - - - - - - + + + + diff --git a/core/img/actions/toggle.png b/core/img/actions/toggle.png index d06e5cb32b5..45f9407a1ab 100644 Binary files a/core/img/actions/toggle.png and b/core/img/actions/toggle.png differ diff --git a/core/img/actions/toggle.svg b/core/img/actions/toggle.svg index 1b774a19b11..774daa4fdf6 100644 --- a/core/img/actions/toggle.svg +++ b/core/img/actions/toggle.svg @@ -1,5 +1,5 @@ - + diff --git a/core/img/actions/triangle-e.png b/core/img/actions/triangle-e.png index 09d398f602e..8abe23a6280 100644 Binary files a/core/img/actions/triangle-e.png and b/core/img/actions/triangle-e.png differ diff --git a/core/img/actions/triangle-n.png b/core/img/actions/triangle-n.png index 0ffcf6cbc44..0f37e950a45 100644 Binary files a/core/img/actions/triangle-n.png and b/core/img/actions/triangle-n.png differ diff --git a/core/img/actions/triangle-n.svg b/core/img/actions/triangle-n.svg index 4f866978f48..49d1ac99a7e 100644 --- a/core/img/actions/triangle-n.svg +++ b/core/img/actions/triangle-n.svg @@ -1,4 +1,4 @@ - + diff --git a/core/img/actions/triangle-s.png b/core/img/actions/triangle-s.png index 0f533b142eb..81f623eac17 100644 Binary files a/core/img/actions/triangle-s.png and b/core/img/actions/triangle-s.png differ diff --git a/core/img/actions/triangle-s.svg b/core/img/actions/triangle-s.svg index b178b20a20b..4f35c38f689 100644 --- a/core/img/actions/triangle-s.svg +++ b/core/img/actions/triangle-s.svg @@ -1,4 +1,4 @@ - + diff --git a/core/img/actions/upload-white.png b/core/img/actions/upload-white.png index fd9bdccc240..a3b233e8aa6 100644 Binary files a/core/img/actions/upload-white.png and b/core/img/actions/upload-white.png differ diff --git a/core/img/actions/upload.png b/core/img/actions/upload.png index 1d90165a552..f6a0c4cfa83 100644 Binary files a/core/img/actions/upload.png and b/core/img/actions/upload.png differ diff --git a/core/img/actions/user.png b/core/img/actions/user.png index 2221ac679d1..5f2fddc0ea3 100644 Binary files a/core/img/actions/user.png and b/core/img/actions/user.png differ diff --git a/core/img/actions/user.svg b/core/img/actions/user.svg index aa719573708..65edc5ebec8 100644 --- a/core/img/actions/user.svg +++ b/core/img/actions/user.svg @@ -1,5 +1,5 @@ - + diff --git a/core/img/actions/view-close.png b/core/img/actions/view-close.png index 330ae09ea73..8422b733466 100644 Binary files a/core/img/actions/view-close.png and b/core/img/actions/view-close.png differ diff --git a/core/img/actions/view-next.png b/core/img/actions/view-next.png index f9e6174ae3f..8a23452e083 100644 Binary files a/core/img/actions/view-next.png and b/core/img/actions/view-next.png differ diff --git a/core/img/actions/view-pause.png b/core/img/actions/view-pause.png index 94696bf6868..1de1fb4654b 100644 Binary files a/core/img/actions/view-pause.png and b/core/img/actions/view-pause.png differ diff --git a/core/img/actions/view-pause.svg b/core/img/actions/view-pause.svg index d901a4d789e..f5fdc030479 100644 --- a/core/img/actions/view-pause.svg +++ b/core/img/actions/view-pause.svg @@ -1,6 +1,6 @@ - + diff --git a/core/img/actions/view-play.png b/core/img/actions/view-play.png index 721787d9c44..c506815c0cf 100644 Binary files a/core/img/actions/view-play.png and b/core/img/actions/view-play.png differ diff --git a/core/img/actions/view-previous.png b/core/img/actions/view-previous.png index 97b41a195ff..79dcb2301df 100644 Binary files a/core/img/actions/view-previous.png and b/core/img/actions/view-previous.png differ diff --git a/core/img/breadcrumb.png b/core/img/breadcrumb.png index 7e9593a36bf..5556920aa73 100644 Binary files a/core/img/breadcrumb.png and b/core/img/breadcrumb.png differ diff --git a/core/img/breadcrumb.svg b/core/img/breadcrumb.svg index f0b5c9218d5..10d6e4150cb 100644 --- a/core/img/breadcrumb.svg +++ b/core/img/breadcrumb.svg @@ -1,12 +1,4 @@ + - - - - image/svg+xml - - - - - - + diff --git a/core/img/desktopapp.svg b/core/img/desktopapp.svg index c2cfb016299..d63cfef0848 100644 --- a/core/img/desktopapp.svg +++ b/core/img/desktopapp.svg @@ -1,4 +1,5 @@ -image/svg+xml -Desktop app -Windows, OS X, Linux + + +Desktop app +Windows, OS X, Linux diff --git a/core/img/favicon-touch.png b/core/img/favicon-touch.png index 24770fb634f..27019a4ddef 100644 Binary files a/core/img/favicon-touch.png and b/core/img/favicon-touch.png differ diff --git a/core/img/favicon-touch.svg b/core/img/favicon-touch.svg index 68f36a8a9ac..8d548ef0359 100644 --- a/core/img/favicon-touch.svg +++ b/core/img/favicon-touch.svg @@ -1,4 +1,4 @@ - - + + diff --git a/core/img/favicon.png b/core/img/favicon.png index 02936243cb1..8067350ef47 100644 Binary files a/core/img/favicon.png and b/core/img/favicon.png differ diff --git a/core/img/favicon.svg b/core/img/favicon.svg index 39cb1742689..319fd434dc5 100644 --- a/core/img/favicon.svg +++ b/core/img/favicon.svg @@ -1,4 +1,4 @@ - - + + diff --git a/core/img/filetypes/application-epub+zip.png b/core/img/filetypes/application-epub+zip.png index b3e3b28b4d5..2399088b28a 100644 Binary files a/core/img/filetypes/application-epub+zip.png and b/core/img/filetypes/application-epub+zip.png differ diff --git a/core/img/filetypes/application-epub+zip.svg b/core/img/filetypes/application-epub+zip.svg index 041f9f15e68..7de28f4f216 100644 --- a/core/img/filetypes/application-epub+zip.svg +++ b/core/img/filetypes/application-epub+zip.svg @@ -1,761 +1,74 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/application-javascript.png b/core/img/filetypes/application-javascript.png new file mode 100644 index 00000000000..1e1d3140f63 Binary files /dev/null and b/core/img/filetypes/application-javascript.png differ diff --git a/core/img/filetypes/application-javascript.svg b/core/img/filetypes/application-javascript.svg new file mode 100644 index 00000000000..4e9819bb685 --- /dev/null +++ b/core/img/filetypes/application-javascript.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/application-pdf.png b/core/img/filetypes/application-pdf.png index a9ab6d279b6..74676372671 100644 Binary files a/core/img/filetypes/application-pdf.png and b/core/img/filetypes/application-pdf.png differ diff --git a/core/img/filetypes/application-pdf.svg b/core/img/filetypes/application-pdf.svg index 47c2caabdad..b671e98725d 100644 --- a/core/img/filetypes/application-pdf.svg +++ b/core/img/filetypes/application-pdf.svg @@ -1,52 +1,48 @@ - + - + - + - + - + - + - + - - - + + + - - - - - - - - - - + + + + + + diff --git a/core/img/filetypes/application-rss+xml.png b/core/img/filetypes/application-rss+xml.png index e5bb322c573..5b18ee2cd4f 100644 Binary files a/core/img/filetypes/application-rss+xml.png and b/core/img/filetypes/application-rss+xml.png differ diff --git a/core/img/filetypes/application-rss+xml.svg b/core/img/filetypes/application-rss+xml.svg index 4fd98545a7d..54a9f46e4ec 100644 --- a/core/img/filetypes/application-rss+xml.svg +++ b/core/img/filetypes/application-rss+xml.svg @@ -1,40 +1,38 @@ - + - + - + - + - - + + - - - - - - - + + + + + diff --git a/core/img/filetypes/application-x-cbr.png b/core/img/filetypes/application-x-cbr.png index c61130cda31..c0d374a4596 100644 Binary files a/core/img/filetypes/application-x-cbr.png and b/core/img/filetypes/application-x-cbr.png differ diff --git a/core/img/filetypes/application-x-cbr.svg b/core/img/filetypes/application-x-cbr.svg index 9e3fc11d39d..3c9e150e790 100644 --- a/core/img/filetypes/application-x-cbr.svg +++ b/core/img/filetypes/application-x-cbr.svg @@ -1,771 +1,78 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/application-x-shockwave-flash.png b/core/img/filetypes/application-x-shockwave-flash.png new file mode 100644 index 00000000000..75424f81d68 Binary files /dev/null and b/core/img/filetypes/application-x-shockwave-flash.png differ diff --git a/core/img/filetypes/flash.svg b/core/img/filetypes/application-x-shockwave-flash.svg similarity index 62% rename from core/img/filetypes/flash.svg rename to core/img/filetypes/application-x-shockwave-flash.svg index cb823703d9b..b373fd6512d 100644 --- a/core/img/filetypes/flash.svg +++ b/core/img/filetypes/application-x-shockwave-flash.svg @@ -5,56 +5,52 @@ - + - + - - - + + + - + - + - + - + - - - - - - - - - + + + + + - - - + + + diff --git a/core/img/filetypes/application.png b/core/img/filetypes/application.png index 9152cc1b744..b6b1bbce2f0 100644 Binary files a/core/img/filetypes/application.png and b/core/img/filetypes/application.png differ diff --git a/core/img/filetypes/application.svg b/core/img/filetypes/application.svg index 870a4ac2467..edce49e3e4e 100644 --- a/core/img/filetypes/application.svg +++ b/core/img/filetypes/application.svg @@ -1,59 +1,57 @@ - + - - + + - + - + - + - + - + - + - + - - - + + + - - - - - - - - + + + + + + diff --git a/core/img/filetypes/audio.png b/core/img/filetypes/audio.png index 3f56a7e2a9a..3c78bcfd173 100644 Binary files a/core/img/filetypes/audio.png and b/core/img/filetypes/audio.png differ diff --git a/core/img/filetypes/audio.svg b/core/img/filetypes/audio.svg index d5eda38e8aa..1b37a1e6eab 100644 --- a/core/img/filetypes/audio.svg +++ b/core/img/filetypes/audio.svg @@ -1,49 +1,47 @@ - + - + - + - + - + - + - + - - - + + + - + - - - - - - + + + + diff --git a/core/img/filetypes/calendar.png b/core/img/filetypes/calendar.png deleted file mode 100644 index d85b1db651c..00000000000 Binary files a/core/img/filetypes/calendar.png and /dev/null differ diff --git a/core/img/filetypes/calendar.svg b/core/img/filetypes/calendar.svg deleted file mode 100644 index 0016749b936..00000000000 --- a/core/img/filetypes/calendar.svg +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/core/img/filetypes/database.png b/core/img/filetypes/database.png index 24788b2a37f..49b2b861757 100644 Binary files a/core/img/filetypes/database.png and b/core/img/filetypes/database.png differ diff --git a/core/img/filetypes/database.svg b/core/img/filetypes/database.svg index 6dfac54e68b..f3d4570015f 100644 --- a/core/img/filetypes/database.svg +++ b/core/img/filetypes/database.svg @@ -1,54 +1,47 @@ - + - + - + - - + + - - + + - - - - - + + + + + - - - + + + - - - + + + - - - - image/svg+xml - - - - - - - - - - - - - + + + + + + + + + + diff --git a/core/img/filetypes/file.png b/core/img/filetypes/file.png index c20f13c2e13..54a242d9d29 100644 Binary files a/core/img/filetypes/file.png and b/core/img/filetypes/file.png differ diff --git a/core/img/filetypes/file.svg b/core/img/filetypes/file.svg index 3d91c341143..ab7db2d2e45 100644 --- a/core/img/filetypes/file.svg +++ b/core/img/filetypes/file.svg @@ -5,32 +5,28 @@ - + - + - - - + + + - - - - - - - - - + + + + + diff --git a/core/img/filetypes/flash.png b/core/img/filetypes/flash.png deleted file mode 100644 index bcde641da3c..00000000000 Binary files a/core/img/filetypes/flash.png and /dev/null differ diff --git a/core/img/filetypes/folder-drag-accept.png b/core/img/filetypes/folder-drag-accept.png index 19c2d2eebd4..086f38afd83 100644 Binary files a/core/img/filetypes/folder-drag-accept.png and b/core/img/filetypes/folder-drag-accept.png differ diff --git a/core/img/filetypes/folder-drag-accept.svg b/core/img/filetypes/folder-drag-accept.svg index a7885c80be7..5ee8f0e5ff3 100644 --- a/core/img/filetypes/folder-drag-accept.svg +++ b/core/img/filetypes/folder-drag-accept.svg @@ -1,335 +1,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/folder-external.png b/core/img/filetypes/folder-external.png index 997f07b2bac..7da0a42fc24 100644 Binary files a/core/img/filetypes/folder-external.png and b/core/img/filetypes/folder-external.png differ diff --git a/core/img/filetypes/folder-external.svg b/core/img/filetypes/folder-external.svg index 89ec9a8ecaa..bf07bdd79ce 100644 --- a/core/img/filetypes/folder-external.svg +++ b/core/img/filetypes/folder-external.svg @@ -1,68 +1,60 @@ + - - - - image/svg+xml - - - - - - + - - + + - + - + - + - + - + - + - + - - + + - + - + - - - + + + - - - + + + - - - - - - + + + + + + diff --git a/core/img/filetypes/folder-public.png b/core/img/filetypes/folder-public.png index c716607e26e..4758fb25408 100644 Binary files a/core/img/filetypes/folder-public.png and b/core/img/filetypes/folder-public.png differ diff --git a/core/img/filetypes/folder-public.svg b/core/img/filetypes/folder-public.svg index a949833f95a..04a11f26899 100644 --- a/core/img/filetypes/folder-public.svg +++ b/core/img/filetypes/folder-public.svg @@ -1,68 +1,60 @@ + - - - - image/svg+xml - - - - - - + - - + + - + - + - + - + - + - + - + - - + + - + - + - - - + + + - - - + + + - - - - - - + + + + + + diff --git a/core/img/filetypes/folder-shared.png b/core/img/filetypes/folder-shared.png index e547a242062..e3c0ee9815a 100644 Binary files a/core/img/filetypes/folder-shared.png and b/core/img/filetypes/folder-shared.png differ diff --git a/core/img/filetypes/folder-shared.svg b/core/img/filetypes/folder-shared.svg index 56aa9634d27..a389e535439 100644 --- a/core/img/filetypes/folder-shared.svg +++ b/core/img/filetypes/folder-shared.svg @@ -1,68 +1,60 @@ + - - - - image/svg+xml - - - - - - + - - + + - + - + - + - + - + - + - + - - + + - + - + - - - + + + - - - + + + - - - - - - + + + + + + diff --git a/core/img/filetypes/folder.png b/core/img/filetypes/folder.png index b7be63d5836..bffa01fa071 100644 Binary files a/core/img/filetypes/folder.png and b/core/img/filetypes/folder.png differ diff --git a/core/img/filetypes/folder.svg b/core/img/filetypes/folder.svg index 92d4cc22718..8271ca3793a 100644 --- a/core/img/filetypes/folder.svg +++ b/core/img/filetypes/folder.svg @@ -1,60 +1,58 @@ - + - + - + - + - + - + - + - + - + - - - - - + + + - - - + + + - - - + + + diff --git a/core/img/filetypes/font.png b/core/img/filetypes/font.png index 9404c3ca6ac..535e03dfa77 100644 Binary files a/core/img/filetypes/font.png and b/core/img/filetypes/font.png differ diff --git a/core/img/filetypes/font.svg b/core/img/filetypes/font.svg index 8fca5ff9eff..13c0596006b 100644 --- a/core/img/filetypes/font.svg +++ b/core/img/filetypes/font.svg @@ -5,33 +5,31 @@ - + - - - - + + + + - + - + - + - - - - - - - - - + + + + + + + diff --git a/core/img/filetypes/image-svg+xml.png b/core/img/filetypes/image-svg+xml.png index e3dd52489d3..a847f78fcd8 100644 Binary files a/core/img/filetypes/image-svg+xml.png and b/core/img/filetypes/image-svg+xml.png differ diff --git a/core/img/filetypes/image-svg+xml.svg b/core/img/filetypes/image-svg+xml.svg index 06df5f54da6..1f0a54a21ca 100644 --- a/core/img/filetypes/image-svg+xml.svg +++ b/core/img/filetypes/image-svg+xml.svg @@ -1,56 +1,48 @@ - + - + - + - + - - + + - + - - - - - - - - - + + + + + - - - - - - - - - - - + + + + + + + diff --git a/core/img/filetypes/image.png b/core/img/filetypes/image.png index 087f5dcdbdf..5cdc05029af 100644 Binary files a/core/img/filetypes/image.png and b/core/img/filetypes/image.png differ diff --git a/core/img/filetypes/image.svg b/core/img/filetypes/image.svg index 50991f7359d..86cbb633bf3 100644 --- a/core/img/filetypes/image.svg +++ b/core/img/filetypes/image.svg @@ -1,61 +1,57 @@ - + - - + + - + - + - + - + - + - + - + - - - - - - - - - - - - - - + + + + + + + + + + diff --git a/core/img/filetypes/package-x-generic.png b/core/img/filetypes/package-x-generic.png index e08cc5480ce..4f5c6583bf1 100644 Binary files a/core/img/filetypes/package-x-generic.png and b/core/img/filetypes/package-x-generic.png differ diff --git a/core/img/filetypes/package-x-generic.svg b/core/img/filetypes/package-x-generic.svg index 13ab5b7550e..e00438421af 100644 --- a/core/img/filetypes/package-x-generic.svg +++ b/core/img/filetypes/package-x-generic.svg @@ -1,62 +1,53 @@ - + - - - - image/svg+xml - - - - - - + - - + + - + - - + + - + - + - - + + - + - - + + - - - - + + + + - - - - + + + + - + - - - - + + + + - - - - + + + + diff --git a/core/img/filetypes/text-calendar.png b/core/img/filetypes/text-calendar.png new file mode 100644 index 00000000000..d5c666a7695 Binary files /dev/null and b/core/img/filetypes/text-calendar.png differ diff --git a/core/img/filetypes/text-calendar.svg b/core/img/filetypes/text-calendar.svg new file mode 100644 index 00000000000..7d62bb8fa12 --- /dev/null +++ b/core/img/filetypes/text-calendar.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/text-code.png b/core/img/filetypes/text-code.png index 753d151f538..c0e75901081 100644 Binary files a/core/img/filetypes/text-code.png and b/core/img/filetypes/text-code.png differ diff --git a/core/img/filetypes/text-code.svg b/core/img/filetypes/text-code.svg index 61a5c19f511..b85ddece9c0 100644 --- a/core/img/filetypes/text-code.svg +++ b/core/img/filetypes/text-code.svg @@ -1,42 +1,38 @@ - + - + - + - + - - + + - - - - - - - - - - + + + + + + @@ -58,9 +54,7 @@ - - - - - + + + diff --git a/core/img/filetypes/text-html.png b/core/img/filetypes/text-html.png index dd17b750103..c3bbf2bfd91 100644 Binary files a/core/img/filetypes/text-html.png and b/core/img/filetypes/text-html.png differ diff --git a/core/img/filetypes/text-html.svg b/core/img/filetypes/text-html.svg index c41964738d0..99215d303ea 100644 --- a/core/img/filetypes/text-html.svg +++ b/core/img/filetypes/text-html.svg @@ -1,49 +1,43 @@ - + - + - + - + - - + + - - - - - - - - - + + + + + - - - - - + + + diff --git a/core/img/filetypes/text-vcard.png b/core/img/filetypes/text-vcard.png index 2e52d1ecb3a..6849792dfd2 100644 Binary files a/core/img/filetypes/text-vcard.png and b/core/img/filetypes/text-vcard.png differ diff --git a/core/img/filetypes/text-vcard.svg b/core/img/filetypes/text-vcard.svg index 27054be57e6..f9d50fef77c 100644 --- a/core/img/filetypes/text-vcard.svg +++ b/core/img/filetypes/text-vcard.svg @@ -1,60 +1,53 @@ - + - - - + + + - + - - - + + + - + - - - - - - + + + + + + - + - - - + + + - + - - + + - + - - - - image/svg+xml - - - - - - - - - - - - - - + + + + + + + + + + + diff --git a/core/img/filetypes/text-x-c.png b/core/img/filetypes/text-x-c.png index b9edd1e866e..2bdb16a2a77 100644 Binary files a/core/img/filetypes/text-x-c.png and b/core/img/filetypes/text-x-c.png differ diff --git a/core/img/filetypes/text-x-c.svg b/core/img/filetypes/text-x-c.svg index 35a6a0cdfe2..462286754f9 100644 --- a/core/img/filetypes/text-x-c.svg +++ b/core/img/filetypes/text-x-c.svg @@ -1,75 +1,70 @@ - + - - + + - - + + - - + + - + - - - + + + - + - + - - - + + + - + - + - - - - + + + + - - - - - + + + + + - - - - image/svg+xml - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/text-x-h.png b/core/img/filetypes/text-x-h.png index 37a8805b506..7b4a36cdbe9 100644 Binary files a/core/img/filetypes/text-x-h.png and b/core/img/filetypes/text-x-h.png differ diff --git a/core/img/filetypes/text-x-h.svg b/core/img/filetypes/text-x-h.svg index 38ed04690fc..9ed1bd6ff9c 100644 --- a/core/img/filetypes/text-x-h.svg +++ b/core/img/filetypes/text-x-h.svg @@ -1,79 +1,74 @@ - + - + - + - - - + + + - - + + - - + + - - + + - - - + + + - + - - - + + + - + - + - - - - + + + + - - - - - + + + + + - - - - image/svg+xml - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/text-x-javascript.png b/core/img/filetypes/text-x-javascript.png deleted file mode 100644 index 24d09ce9781..00000000000 Binary files a/core/img/filetypes/text-x-javascript.png and /dev/null differ diff --git a/core/img/filetypes/text-x-javascript.svg b/core/img/filetypes/text-x-javascript.svg deleted file mode 100644 index 0cc52ce6ba7..00000000000 --- a/core/img/filetypes/text-x-javascript.svg +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/core/img/filetypes/text-x-python.png b/core/img/filetypes/text-x-python.png index 57148f4b90d..fbaf9a342f6 100644 Binary files a/core/img/filetypes/text-x-python.png and b/core/img/filetypes/text-x-python.png differ diff --git a/core/img/filetypes/text-x-python.svg b/core/img/filetypes/text-x-python.svg index 00755e6d0c2..b0ed6fc536f 100644 --- a/core/img/filetypes/text-x-python.svg +++ b/core/img/filetypes/text-x-python.svg @@ -1,87 +1,80 @@ - + - + - - - + + + - + - - - + + + - + - - - + + + - - + - - + + - - - + + - + - + - - - + + + - + - + - - - - + + + + - - - - - + + + + + - - - - image/svg+xml - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - diff --git a/core/img/filetypes/text.png b/core/img/filetypes/text.png index 6b069c82c11..73080fb3ea0 100644 Binary files a/core/img/filetypes/text.png and b/core/img/filetypes/text.png differ diff --git a/core/img/filetypes/text.svg b/core/img/filetypes/text.svg index 69a1bcd98c3..32685b586cb 100644 --- a/core/img/filetypes/text.svg +++ b/core/img/filetypes/text.svg @@ -1,43 +1,39 @@ - + - + - + - + - - + + - - - - - - - - + + + + - - - + + + diff --git a/core/img/filetypes/video.png b/core/img/filetypes/video.png index 045754df26f..a5793d6eb10 100644 Binary files a/core/img/filetypes/video.png and b/core/img/filetypes/video.png differ diff --git a/core/img/filetypes/video.svg b/core/img/filetypes/video.svg index 67691369ac9..b54e08bdf2f 100644 --- a/core/img/filetypes/video.svg +++ b/core/img/filetypes/video.svg @@ -1,85 +1,92 @@ - + - - - - + + + + - - - + + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - - - - - - + + + + + + + + + - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/web.png b/core/img/filetypes/web.png index c3802312645..33063212466 100644 Binary files a/core/img/filetypes/web.png and b/core/img/filetypes/web.png differ diff --git a/core/img/filetypes/web.svg b/core/img/filetypes/web.svg index 67775a2233b..5b5a9c3b771 100644 --- a/core/img/filetypes/web.svg +++ b/core/img/filetypes/web.svg @@ -1,45 +1,36 @@ - + - - - - image/svg+xml - - - - - - + - + - + - - + + - + - + - - - + + + - - - - - - - + + + + + + + diff --git a/core/img/filetypes/x-office-document.png b/core/img/filetypes/x-office-document.png index fcd28e9a292..6c0c4f8c228 100644 Binary files a/core/img/filetypes/x-office-document.png and b/core/img/filetypes/x-office-document.png differ diff --git a/core/img/filetypes/x-office-document.svg b/core/img/filetypes/x-office-document.svg index fc51a3a1b70..eb2368722e2 100644 --- a/core/img/filetypes/x-office-document.svg +++ b/core/img/filetypes/x-office-document.svg @@ -1,60 +1,53 @@ - + - + - - - + + + - + - - + + - + - + - - - + + + - + - - - - + + + + - - - - - + + + + + - - - - image/svg+xml - - - - - - - - - - - - - - + + + + + + + + + + + diff --git a/core/img/filetypes/x-office-presentation.png b/core/img/filetypes/x-office-presentation.png index 7ee552ba7c8..b129c76de60 100644 Binary files a/core/img/filetypes/x-office-presentation.png and b/core/img/filetypes/x-office-presentation.png differ diff --git a/core/img/filetypes/x-office-presentation.svg b/core/img/filetypes/x-office-presentation.svg index 821798d50fd..534e695537e 100644 --- a/core/img/filetypes/x-office-presentation.svg +++ b/core/img/filetypes/x-office-presentation.svg @@ -1,109 +1,108 @@ - + - - - + + + - + - - - + + + - + - + - - - - - - + + + + + + - + - - - + + + - + - + - + - - + + - + - + - + - + - + - + - + - - - - image/svg+xml - - - - - - - - - - - + + + + - - - + + + - - - - - - - - - - - + + + - + + + + + + + + + + + + + + + + + + + diff --git a/core/img/filetypes/x-office-spreadsheet.png b/core/img/filetypes/x-office-spreadsheet.png index dfdc74a8bf6..9efe6f29501 100644 Binary files a/core/img/filetypes/x-office-spreadsheet.png and b/core/img/filetypes/x-office-spreadsheet.png differ diff --git a/core/img/filetypes/x-office-spreadsheet.svg b/core/img/filetypes/x-office-spreadsheet.svg index af40bb252a2..aae8f3c95ca 100644 --- a/core/img/filetypes/x-office-spreadsheet.svg +++ b/core/img/filetypes/x-office-spreadsheet.svg @@ -1,64 +1,63 @@ - + - + - - - + + + - + - + - - - - + + + + - - - - - + + + + + - + - - + + - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/img/image-optimization.sh b/core/img/image-optimization.sh index 0a96bf558d1..e6374c419b2 100755 --- a/core/img/image-optimization.sh +++ b/core/img/image-optimization.sh @@ -2,7 +2,7 @@ function recursive_optimize_images() { cd $1; -optipng -o6 *.png; +optipng -o6 -strip all *.png; jpegoptim --strip-all *.jpg; for svg in `ls *.svg`; do diff --git a/core/img/logo-wide.png b/core/img/logo-wide.png index 5b7d4c6f915..b15c76ecb15 100644 Binary files a/core/img/logo-wide.png and b/core/img/logo-wide.png differ diff --git a/core/img/logo-wide.svg b/core/img/logo-wide.svg index 29c617d6f83..bacba6755c5 100644 --- a/core/img/logo-wide.svg +++ b/core/img/logo-wide.svg @@ -1,3 +1,3 @@ - - + + diff --git a/core/img/logo.png b/core/img/logo.png index 8d112d99be5..2c551a1c22c 100644 Binary files a/core/img/logo.png and b/core/img/logo.png differ diff --git a/core/img/logo.svg b/core/img/logo.svg index cfb20b60e4f..06008c41c57 100644 --- a/core/img/logo.svg +++ b/core/img/logo.svg @@ -1,4 +1,4 @@ - - + + diff --git a/core/img/places/calendar-dark.png b/core/img/places/calendar-dark.png index 920dee610dd..39032bcfa1a 100644 Binary files a/core/img/places/calendar-dark.png and b/core/img/places/calendar-dark.png differ diff --git a/core/img/places/contacts-dark.png b/core/img/places/contacts-dark.png index a08339d1d3d..ec60fb603fb 100644 Binary files a/core/img/places/contacts-dark.png and b/core/img/places/contacts-dark.png differ diff --git a/core/img/places/contacts-dark.svg b/core/img/places/contacts-dark.svg index 3fc10cfe08f..9c95478cdfe 100644 --- a/core/img/places/contacts-dark.svg +++ b/core/img/places/contacts-dark.svg @@ -1,7 +1,7 @@ - - + + diff --git a/core/img/places/file.png b/core/img/places/file.png index 63837a1af90..ff179e96b64 100644 Binary files a/core/img/places/file.png and b/core/img/places/file.png differ diff --git a/core/img/places/file.svg b/core/img/places/file.svg index f93f3ef6fae..ea2ea068ce6 100644 --- a/core/img/places/file.svg +++ b/core/img/places/file.svg @@ -1,14 +1,14 @@ - + - - + + diff --git a/core/img/places/files.png b/core/img/places/files.png index 52e0c6bf949..16c78efe40f 100644 Binary files a/core/img/places/files.png and b/core/img/places/files.png differ diff --git a/core/img/places/files.svg b/core/img/places/files.svg index d446ef655ae..970f5b56296 100644 --- a/core/img/places/files.svg +++ b/core/img/places/files.svg @@ -1,6 +1,6 @@ - + diff --git a/core/img/places/folder.png b/core/img/places/folder.png index 46079e03e9e..d8eb4ccf4c6 100644 Binary files a/core/img/places/folder.png and b/core/img/places/folder.png differ diff --git a/core/img/places/folder.svg b/core/img/places/folder.svg index 676f10afe0b..edc9e7e208a 100644 --- a/core/img/places/folder.svg +++ b/core/img/places/folder.svg @@ -1,18 +1,18 @@ - + - + - + - + diff --git a/core/img/places/home.png b/core/img/places/home.png index e664719e2ec..8905bd7fb3c 100644 Binary files a/core/img/places/home.png and b/core/img/places/home.png differ diff --git a/core/img/places/home.svg b/core/img/places/home.svg index 80b7dcc8663..bb75f259b4b 100644 --- a/core/img/places/home.svg +++ b/core/img/places/home.svg @@ -1,11 +1,11 @@ - + - + diff --git a/core/img/places/link.png b/core/img/places/link.png index 44b7e199a72..7cf97115ded 100644 Binary files a/core/img/places/link.png and b/core/img/places/link.png differ diff --git a/core/img/places/link.svg b/core/img/places/link.svg index 8784ebc1456..f012db6315c 100644 --- a/core/img/places/link.svg +++ b/core/img/places/link.svg @@ -1,12 +1,4 @@ + - - - - image/svg+xml - - - - - - + diff --git a/core/img/places/music.png b/core/img/places/music.png index 5b71e19ee3c..953a2c24665 100644 Binary files a/core/img/places/music.png and b/core/img/places/music.png differ diff --git a/core/img/places/picture.png b/core/img/places/picture.png index 2b96ea518ce..b60da3b5fd8 100644 Binary files a/core/img/places/picture.png and b/core/img/places/picture.png differ diff --git a/core/img/places/picture.svg b/core/img/places/picture.svg index 82d457f5c7c..b4c81b7a937 100644 --- a/core/img/places/picture.svg +++ b/core/img/places/picture.svg @@ -1,4 +1,4 @@ - + diff --git a/core/img/rating/s1.png b/core/img/rating/s1.png index 015f9483714..9d5014106e5 100644 Binary files a/core/img/rating/s1.png and b/core/img/rating/s1.png differ diff --git a/core/img/rating/s10.png b/core/img/rating/s10.png index b47b05e4f89..b9c190f8ce7 100644 Binary files a/core/img/rating/s10.png and b/core/img/rating/s10.png differ diff --git a/core/img/rating/s11.png b/core/img/rating/s11.png index 3dcb4bb4830..c674569c389 100644 Binary files a/core/img/rating/s11.png and b/core/img/rating/s11.png differ diff --git a/core/img/rating/s2.png b/core/img/rating/s2.png index 94ac5bc9566..6846c8771f5 100644 Binary files a/core/img/rating/s2.png and b/core/img/rating/s2.png differ diff --git a/core/img/rating/s3.png b/core/img/rating/s3.png index 42a814ca081..2f132cc5fa1 100644 Binary files a/core/img/rating/s3.png and b/core/img/rating/s3.png differ diff --git a/core/img/rating/s4.png b/core/img/rating/s4.png index 5ce38887570..55e917f92e6 100644 Binary files a/core/img/rating/s4.png and b/core/img/rating/s4.png differ diff --git a/core/img/rating/s5.png b/core/img/rating/s5.png index da4bbc58479..fa76c311c69 100644 Binary files a/core/img/rating/s5.png and b/core/img/rating/s5.png differ diff --git a/core/img/rating/s6.png b/core/img/rating/s6.png index 267c52ad3c0..8856309f838 100644 Binary files a/core/img/rating/s6.png and b/core/img/rating/s6.png differ diff --git a/core/img/rating/s7.png b/core/img/rating/s7.png index 3381d066d87..4112e14fde2 100644 Binary files a/core/img/rating/s7.png and b/core/img/rating/s7.png differ diff --git a/core/img/rating/s8.png b/core/img/rating/s8.png index 091dc5b21f0..ce25cf58df9 100644 Binary files a/core/img/rating/s8.png and b/core/img/rating/s8.png differ diff --git a/core/img/rating/s9.png b/core/img/rating/s9.png index dfe83563433..3197f23785f 100644 Binary files a/core/img/rating/s9.png and b/core/img/rating/s9.png differ diff --git a/core/templates/layout.guest.php b/core/templates/layout.guest.php index 6a96b17b100..91157b923a5 100644 --- a/core/templates/layout.guest.php +++ b/core/templates/layout.guest.php @@ -36,7 +36,7 @@
diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index bc1c700402e..44413f5a2a8 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -45,8 +45,9 @@