Merge branch 'master' into mimeicons-svg
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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];
|
||||
}
|
||||
if (files) {
|
||||
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');
|
||||
}
|
||||
}
|
||||
// Finish any existing actions
|
||||
if (FileList.lastAction) {
|
||||
FileList.lastAction();
|
||||
}
|
||||
|
||||
var fileNames = JSON.stringify(files);
|
||||
var params = {
|
||||
dir: dir || FileList.getCurrentDirectory()
|
||||
};
|
||||
if (files) {
|
||||
params.files = JSON.stringify(files);
|
||||
}
|
||||
else {
|
||||
// no files passed, delete all in current dir
|
||||
params.allfiles = true;
|
||||
}
|
||||
|
||||
$.post(OC.filePath('files', 'ajax', 'delete.php'),
|
||||
{dir:$('#dir').val(),files:fileNames},
|
||||
params,
|
||||
function(result) {
|
||||
if (result.status === 'success') {
|
||||
if (params.allfiles) {
|
||||
// clear whole list
|
||||
$('#fileList tr').remove();
|
||||
}
|
||||
else {
|
||||
$.each(files,function(index,file) {
|
||||
var files = FileList.findFileEl(file);
|
||||
files.remove();
|
||||
files.find('input[type="checkbox"]').removeAttr('checked');
|
||||
files.removeClass('selected');
|
||||
});
|
||||
}
|
||||
procesSelection();
|
||||
checkTrashStatus();
|
||||
FileList.updateFileSummary();
|
||||
|
@ -622,11 +641,18 @@ window.FileList={
|
|||
setTimeout(function() {
|
||||
OC.Notification.hide();
|
||||
}, 10000);
|
||||
if (params.allfiles) {
|
||||
// reload the page as we don't know what files were deleted
|
||||
// and which ones remain
|
||||
FileList.reload();
|
||||
}
|
||||
else {
|
||||
$.each(files,function(index,file) {
|
||||
var deleteAction = FileList.findFileEl(file).find('.action.delete');
|
||||
deleteAction.removeClass('progress-icon').addClass('delete-icon');
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
createFileSummary: function() {
|
||||
|
@ -794,6 +820,13 @@ window.FileList={
|
|||
$(e).removeClass("searchresult");
|
||||
});
|
||||
},
|
||||
/**
|
||||
* Returns whether all files are selected
|
||||
* @return true if all files are selected, false otherwise
|
||||
*/
|
||||
isAllSelected: function() {
|
||||
return $('#select_all').prop('checked');
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns the download URL of the given file
|
||||
|
@ -801,10 +834,13 @@ window.FileList={
|
|||
* @param dir optional directory in which the file name is, defaults to the current directory
|
||||
*/
|
||||
getDownloadUrl: function(filename, dir) {
|
||||
var files = filename;
|
||||
if ($.isArray(filename)) {
|
||||
files = JSON.stringify(filename);
|
||||
}
|
||||
var params = {
|
||||
files: filename,
|
||||
dir: dir || FileList.getCurrentDirectory(),
|
||||
download: null
|
||||
files: files
|
||||
};
|
||||
return OC.filePath('files', 'ajax', 'download.php') + '?' + OC.buildQueryString(params);
|
||||
}
|
||||
|
|
|
@ -364,23 +364,26 @@ $(document).ready(function() {
|
|||
});
|
||||
|
||||
$('.download').click('click',function(event) {
|
||||
var files=getSelectedFilesTrash('name');
|
||||
var fileslist = JSON.stringify(files);
|
||||
var dir=$('#dir').val()||'/';
|
||||
OC.Notification.show(t('files','Your download is being prepared. This might take some time if the files are big.'));
|
||||
// use special download URL if provided, e.g. for public shared files
|
||||
var downloadURL = document.getElementById("downloadURL");
|
||||
if ( downloadURL ) {
|
||||
window.location = downloadURL.value+"&download&files=" + encodeURIComponent(fileslist);
|
||||
} else {
|
||||
window.location = OC.filePath('files', 'ajax', 'download.php') + '?'+ $.param({ dir: dir, files: fileslist });
|
||||
var files;
|
||||
var dir = FileList.getCurrentDirectory();
|
||||
if (FileList.isAllSelected()) {
|
||||
files = OC.basename(dir);
|
||||
dir = OC.dirname(dir) || '/';
|
||||
}
|
||||
else {
|
||||
files = getSelectedFilesTrash('name');
|
||||
}
|
||||
OC.Notification.show(t('files','Your download is being prepared. This might take some time if the files are big.'));
|
||||
OC.redirect(FileList.getDownloadUrl(files, dir));
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.delete-selected').click(function(event) {
|
||||
var files=getSelectedFilesTrash('name');
|
||||
event.preventDefault();
|
||||
if (FileList.isAllSelected()) {
|
||||
files = null;
|
||||
}
|
||||
FileList.do_delete(files);
|
||||
return false;
|
||||
});
|
||||
|
|
|
@ -69,7 +69,7 @@ describe('FileActions tests', function() {
|
|||
$tr.find('.action[data-action=Download]').click();
|
||||
|
||||
expect(redirectStub.calledOnce).toEqual(true);
|
||||
expect(redirectStub.getCall(0).args[0]).toEqual(OC.webroot + '/index.php/apps/files/ajax/download.php?files=test%20download%20File.txt&dir=%2Fsubdir&download');
|
||||
expect(redirectStub.getCall(0).args[0]).toEqual(OC.webroot + '/index.php/apps/files/ajax/download.php?dir=%2Fsubdir&files=test%20download%20File.txt');
|
||||
redirectStub.restore();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -58,8 +58,15 @@ describe('FileList tests', function() {
|
|||
expect($tr.attr('data-permissions')).toEqual('31');
|
||||
//expect($tr.attr('data-mime')).toEqual('httpd/unix-directory');
|
||||
});
|
||||
it('returns correct download URL', function() {
|
||||
expect(FileList.getDownloadUrl('some file.txt')).toEqual(OC.webroot + '/index.php/apps/files/ajax/download.php?files=some%20file.txt&dir=%2Fsubdir&download');
|
||||
expect(FileList.getDownloadUrl('some file.txt', '/anotherpath/abc')).toEqual(OC.webroot + '/index.php/apps/files/ajax/download.php?files=some%20file.txt&dir=%2Fanotherpath%2Fabc&download');
|
||||
describe('Download Url', function() {
|
||||
it('returns correct download URL for single files', function() {
|
||||
expect(FileList.getDownloadUrl('some file.txt')).toEqual(OC.webroot + '/index.php/apps/files/ajax/download.php?dir=%2Fsubdir&files=some%20file.txt');
|
||||
expect(FileList.getDownloadUrl('some file.txt', '/anotherpath/abc')).toEqual(OC.webroot + '/index.php/apps/files/ajax/download.php?dir=%2Fanotherpath%2Fabc&files=some%20file.txt');
|
||||
$('#dir').val('/');
|
||||
expect(FileList.getDownloadUrl('some file.txt')).toEqual(OC.webroot + '/index.php/apps/files/ajax/download.php?dir=%2F&files=some%20file.txt');
|
||||
});
|
||||
it('returns correct download URL for multiple files', function() {
|
||||
expect(FileList.getDownloadUrl(['a b c.txt', 'd e f.txt'])).toEqual(OC.webroot + '/index.php/apps/files/ajax/download.php?dir=%2Fsubdir&files=%5B%22a%20b%20c.txt%22%2C%22d%20e%20f.txt%22%5D');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -4,7 +4,7 @@ OCP\JSON::checkAppEnabled('files_external');
|
|||
OCP\JSON::callCheck();
|
||||
|
||||
if ( ! ($filename = $_FILES['rootcert_import']['name']) ) {
|
||||
header("Location: settings/personal.php");
|
||||
header('Location:' . OCP\Util::linkToRoute( "settings_personal" ));
|
||||
exit;
|
||||
}
|
||||
|
||||
|
|
|
@ -352,9 +352,8 @@ class OC_Mount_Config {
|
|||
$phpFile = OC_User::getHome(OCP\User::getUser()).'/mount.php';
|
||||
$jsonFile = OC_User::getHome(OCP\User::getUser()).'/mount.json';
|
||||
} else {
|
||||
$datadir = \OC_Config::getValue("datadirectory", \OC::$SERVERROOT . "/data");
|
||||
$phpFile = OC::$SERVERROOT.'/config/mount.php';
|
||||
$jsonFile = $datadir . '/mount.json';
|
||||
$jsonFile = \OC_Config::getValue("mount_file", \OC::$SERVERROOT . "/data/mount.json");
|
||||
}
|
||||
if (is_file($jsonFile)) {
|
||||
$mountPoints = json_decode(file_get_contents($jsonFile), true);
|
||||
|
@ -380,8 +379,7 @@ class OC_Mount_Config {
|
|||
if ($isPersonal) {
|
||||
$file = OC_User::getHome(OCP\User::getUser()).'/mount.json';
|
||||
} else {
|
||||
$datadir = \OC_Config::getValue("datadirectory", \OC::$SERVERROOT . "/data");
|
||||
$file = $datadir . '/mount.json';
|
||||
$file = \OC_Config::getValue("mount_file", \OC::$SERVERROOT . "/data/mount.json");
|
||||
}
|
||||
$content = json_encode($data);
|
||||
@file_put_contents($file, $content);
|
||||
|
|
|
@ -99,7 +99,9 @@ class DAV extends \OC\Files\Storage\Common{
|
|||
|
||||
public function rmdir($path) {
|
||||
$this->init();
|
||||
$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'));
|
||||
$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'));
|
||||
$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;
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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('/');
|
||||
|
|
|
@ -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);
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,28 +72,44 @@ $(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();
|
||||
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},
|
||||
params,
|
||||
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 (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);
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
|
@ -102,16 +122,16 @@ $(document).ready(function() {
|
|||
if (allFiles) {
|
||||
params = {
|
||||
allfiles: true,
|
||||
dir: $('#dir').val()
|
||||
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) {
|
||||
FileList.hideMask();
|
||||
// simply remove all files
|
||||
$('#fileList').empty();
|
||||
}
|
||||
else {
|
||||
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'));
|
||||
}
|
||||
FileList.hideMask();
|
||||
// simply remove all files
|
||||
FileList.update('');
|
||||
enableActions();
|
||||
FileList.updateFileSummary();
|
||||
FileList.updateEmptyContent();
|
||||
}
|
||||
else {
|
||||
removeCallback(result);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -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]);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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\')
|
||||
');
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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' => '',
|
||||
);
|
||||
|
|
|
@ -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));
|
||||
|
||||
|
|
|
@ -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'])) {
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Before Width: | Height: | Size: 184 B After Width: | Height: | Size: 111 B |
Before Width: | Height: | Size: 304 B After Width: | Height: | Size: 199 B |
|
@ -1,13 +1,5 @@
|
|||
<?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" height="16" width="16" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
<dc:title/>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<path style="block-progression:tb;text-indent:0;color:#000000;text-transform:none;" d="m4,5,4,7,4-6.989z" fill-opacity="0.19607843" fill="#FFF"/>
|
||||
<path style="block-progression:tb;text-indent:0;color:#000000;text-transform:none;" fill="#000" d="m4,4,4,7,4-6.989z"/>
|
||||
<path style="block-progression:tb;color:#000000;text-transform:none;text-indent:0" fill="#FFF" d="m4 5 4 7 4-6.989z" fill-opacity=".19608"/>
|
||||
<path style="block-progression:tb;color:#000000;text-transform:none;text-indent:0" d="m4 4 4 7 4-6.989z"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 711 B After Width: | Height: | Size: 532 B |
Before Width: | Height: | Size: 269 B After Width: | Height: | Size: 196 B |
|
@ -1,11 +1,11 @@
|
|||
<?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" height="10" width="10" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<defs>
|
||||
<linearGradient id="a" y2="8.0832" gradientUnits="userSpaceOnUse" x2="8.4965" gradientTransform="matrix(1.0526 0 0 .98436 -3.4211 1.0602)" y1="-.061574" x1="8.4965">
|
||||
<linearGradient id="a" x1="8.4965" gradientUnits="userSpaceOnUse" y1="-.061574" gradientTransform="matrix(1.0526 0 0 .98436 -3.4211 1.0602)" x2="8.4965" y2="8.0832">
|
||||
<stop stop-color="#fff" offset="0"/>
|
||||
<stop stop-color="#e6e6e6" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<path opacity=".5" style="block-progression:tb;text-indent:0;color:#000000;text-transform:none" d="m1 2 4 8 4-7.989z"/>
|
||||
<path style="block-progression:tb;text-indent:0;color:#000000;text-transform:none" d="m1 1 4 8 4-7.989z" fill="url(#a)"/>
|
||||
<path opacity=".5" style="block-progression:tb;color:#000000;text-transform:none;text-indent:0" d="m1 2 4 8 4-7.989z"/>
|
||||
<path style="block-progression:tb;color:#000000;text-transform:none;text-indent:0" d="m1 1 4 8 4-7.989z" fill="url(#a)"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 857 B After Width: | Height: | Size: 857 B |
Before Width: | Height: | Size: 286 B After Width: | Height: | Size: 212 B |
|
@ -1,4 +1,4 @@
|
|||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" version="1.1" xml:space="preserve" height="16px" viewBox="-0.5 -0.5 16 16" width="16px" enable-background="new -0.5 -0.5 16 16" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" overflow="visible"><metadata><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><defs>
|
||||
</defs>
|
||||
<path fill="#ffffff" d="M12.438,3.6875c-0.363,0-0.726,0.1314-1,0.4063l-4.5005,4.5-1.9687-2c-0.5498-0.5484-1.4489-0.5498-2,0l-0.5,0.5c-0.5512,0.5496-0.5512,1.4502,0,2l2.9687,2.9682c0.0063,0.007-0.0065,0.025,0,0.032l0.5,0.5c0.5497,0.55,1.4503,0.55,2,0l0.5-0.5,0.1875-0.219,5.313-5.2812c0.549-0.5498,0.549-1.4503,0-2l-0.5-0.5c-0.275-0.2749-0.638-0.4063-1-0.4063z" transform="translate(-0.5,-0.5)"/>
|
||||
<?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" xml:space="preserve" overflow="visible" height="16px" width="16px" version="1.1" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" enable-background="new -0.5 -0.5 16 16" viewBox="-0.5 -0.5 16 16" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<path transform="translate(-.5 -.5)" d="m12.438 3.6875c-0.363 0-0.726 0.1314-1 0.4063l-4.5005 4.5-1.9687-2c-0.5498-0.5484-1.4489-0.5498-2 0l-0.5 0.5c-0.5512 0.5496-0.5512 1.4502 0 2l2.9687 2.9682c0.0063 0.007-0.0065 0.025 0 0.032l0.5 0.5c0.5497 0.55 1.4503 0.55 2 0l0.5-0.5 0.1875-0.219 5.313-5.2812c0.549-0.5498 0.549-1.4503 0-2l-0.5-0.5c-0.275-0.2749-0.638-0.4063-1-0.4063z" fill="#fff"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 946 B After Width: | Height: | Size: 799 B |
Before Width: | Height: | Size: 303 B After Width: | Height: | Size: 229 B |
|
@ -1,4 +1,4 @@
|
|||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" version="1.1" xml:space="preserve" height="16px" viewBox="-0.5 -0.5 16 16" width="16px" enable-background="new -0.5 -0.5 16 16" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" overflow="visible"><metadata><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><defs>
|
||||
</defs>
|
||||
<path fill="#000" d="M12.438,3.6875c-0.363,0-0.726,0.1314-1,0.4063l-4.5005,4.5-1.9687-2c-0.5498-0.5484-1.4489-0.5498-2,0l-0.5,0.5c-0.5512,0.5496-0.5512,1.4502,0,2l2.9687,2.9682c0.0063,0.007-0.0065,0.025,0,0.032l0.5,0.5c0.5497,0.55,1.4503,0.55,2,0l0.5-0.5,0.1875-0.219,5.313-5.2812c0.549-0.5498,0.549-1.4503,0-2l-0.5-0.5c-0.275-0.2749-0.638-0.4063-1-0.4063z" transform="translate(-0.5,-0.5)"/>
|
||||
<?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" xml:space="preserve" overflow="visible" height="16px" width="16px" version="1.1" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" enable-background="new -0.5 -0.5 16 16" viewBox="-0.5 -0.5 16 16" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<path transform="translate(-.5 -.5)" d="m12.438 3.6875c-0.363 0-0.726 0.1314-1 0.4063l-4.5005 4.5-1.9687-2c-0.5498-0.5484-1.4489-0.5498-2 0l-0.5 0.5c-0.5512 0.5496-0.5512 1.4502 0 2l2.9687 2.9682c0.0063 0.007-0.0065 0.025 0 0.032l0.5 0.5c0.5497 0.55 1.4503 0.55 2 0l0.5-0.5 0.1875-0.219 5.313-5.2812c0.549-0.5498 0.549-1.4503 0-2l-0.5-0.5c-0.275-0.2749-0.638-0.4063-1-0.4063z"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 943 B After Width: | Height: | Size: 787 B |
Before Width: | Height: | Size: 367 B After Width: | Height: | Size: 332 B |
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="16px" viewBox="0 0 100 100" width="16px" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="16px" width="16px" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 100 100">
|
||||
<path d="m50 89.836c-23.389 0-42.418-19.027-42.418-42.417s19.029-42.419 42.418-42.419 42.418 19.029 42.418 42.419-19.029 42.417-42.418 42.417zm0-79.924c-20.681 0-37.506 16.826-37.506 37.508 0 20.681 16.826 37.505 37.506 37.505s37.507-16.824 37.507-37.505c0-20.683-16.826-37.508-37.507-37.508z"/>
|
||||
<path d="m50.001 49.875c-0.141 0-0.283-0.011-0.427-0.037-1.173-0.206-2.03-1.226-2.03-2.419v-17.977c0-1.355 1.1-2.456 2.456-2.456 1.355 0 2.456 1.1 2.456 2.456v4.003l5.431-14.974c0.464-1.274 1.872-1.937 3.146-1.471 1.274 0.462 1.934 1.871 1.471 3.146l-10.195 28.11c-0.357 0.985-1.29 1.619-2.308 1.619z"/>
|
||||
<circle cy="12.956" cx="49.999" r="1.617"/>
|
||||
|
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 254 B After Width: | Height: | Size: 181 B |
Before Width: | Height: | Size: 295 B After Width: | Height: | Size: 222 B |
|
@ -1,12 +1,4 @@
|
|||
<?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" height="16" width="16" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
<dc:title/>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<path fill="#d40000" d="M8,1c-3.866,0-7,3.134-7,7s3.134,7,7,7,7-3.134,7-7-3.134-7-7-7zm-2.8438,2.75l2.8438,2.8438,2.844-2.8438,1.406,1.4062-2.8438,2.8438,2.8438,2.844-1.406,1.406-2.844-2.8438-2.8438,2.8438-1.4062-1.406,2.8438-2.844-2.8438-2.8438,1.4062-1.4062z"/>
|
||||
<path d="m8 1c-3.866 0-7 3.134-7 7s3.134 7 7 7 7-3.134 7-7-3.134-7-7-7zm-2.8438 2.75l2.8438 2.8438 2.844-2.8438 1.406 1.4062-2.8438 2.8438 2.8438 2.844-1.406 1.406-2.844-2.8438-2.8438 2.8438-1.4062-1.406 2.8438-2.844-2.8438-2.8438 1.4062-1.4062z" fill="#d40000"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 708 B After Width: | Height: | Size: 547 B |
Before Width: | Height: | Size: 254 B After Width: | Height: | Size: 181 B |
Before Width: | Height: | Size: 236 B After Width: | Height: | Size: 162 B |
Before Width: | Height: | Size: 321 B After Width: | Height: | Size: 249 B |
Before Width: | Height: | Size: 423 B After Width: | Height: | Size: 349 B |
|
@ -1,7 +1,7 @@
|
|||
<?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" height="16" width="16" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<defs>
|
||||
<linearGradient id="a" y2="28.777" gradientUnits="userSpaceOnUse" y1="13.895" gradientTransform="matrix(1.0345 0 0 1.0345 8.0708 -14.514)" x2=".44924" x1=".86850">
|
||||
<linearGradient id="a" x1=".8685" gradientUnits="userSpaceOnUse" x2=".44924" gradientTransform="matrix(1.0345 0 0 1.0345 8.0708 -14.514)" y1="13.895" y2="28.777">
|
||||
<stop offset="0"/>
|
||||
<stop stop-color="#363636" offset="1"/>
|
||||
</linearGradient>
|
||||
|
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 295 B After Width: | Height: | Size: 221 B |
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="16px" viewBox="0 0 71 100" width="16px" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="16px" width="16px" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 71 100">
|
||||
<path d="m65.5 45v-15c0-16.542-13.458-30-30-30s-30 13.458-30 30v15h-5.5v55h71v-55h-5.5zm-52-15c0-12.131 9.869-22 22-22s22 9.869 22 22v15h-44v-15z"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 495 B After Width: | Height: | Size: 495 B |
Before Width: | Height: | Size: 424 B After Width: | Height: | Size: 352 B |
|
@ -1,5 +1,5 @@
|
|||
<?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" height="16" width="16" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<path style="block-progression:tb;text-indent:0;color:#000000;text-transform:none" d="m8.0001 0c-0.4714 0-0.96103 0.5419-0.95 1v6c-0.00747 0.52831 0.42163 1 0.95 1s0.95747-0.47169 0.95-1v-6c0.014622-0.6051-0.4786-1-0.95-1zm-3.3438 2.5c-0.087186 0.019294-0.17163 0.050959-0.25 0.09375-2.9995 1.5715-3.9184 4.7979-3.125 7.4688 0.7934 2.67 3.2799 4.937 6.6875 4.937 3.3592 0 5.8772-2.149 6.7192-4.781 0.841-2.6321-0.058-5.8234-3.125-7.594-0.434-0.2536-1.059-0.0899-1.313 0.3437-0.2536 0.4336-0.09 1.0589 0.344 1.3125 2.3908 1.3798 2.8825 3.4944 2.2812 5.375-0.6012 1.8806-2.344 3.4375-4.9062 3.4375-2.5759 0-4.2976-1.6502-4.875-3.5938-0.5776-1.9435-0.047-4.048 2.1873-5.2187 0.3787-0.2063 0.5791-0.6925 0.4558-1.1057-0.1232-0.4133-0.5572-0.7103-0.987-0.6755-0.0313-0.0015-0.0626-0.0015-0.0938 0z"/>
|
||||
<path style="block-progression:tb;text-indent:0;color:#000000;text-transform:none" d="m8.0001 1c-0.4714 0-0.96103 0.5419-0.95 1v6c-0.00747 0.52831 0.42163 1 0.95 1s0.95747-0.47169 0.95-1v-6c0.014622-0.6051-0.4786-1-0.95-1zm-3.3438 2.5c-0.087186 0.019294-0.17163 0.050959-0.25 0.09375-2.9995 1.5715-3.9184 4.7979-3.125 7.4688 0.7934 2.67 3.2799 4.937 6.6875 4.937 3.3592 0 5.8772-2.149 6.7192-4.781 0.841-2.6321-0.058-5.8234-3.125-7.594-0.434-0.2536-1.059-0.0899-1.313 0.3437-0.2536 0.4336-0.09 1.0589 0.344 1.3125 2.3908 1.3798 2.8825 3.4944 2.2812 5.375-0.6012 1.8806-2.344 3.4375-4.9062 3.4375-2.5759 0-4.2976-1.6502-4.875-3.5938-0.5776-1.9436-0.047-4.0481 2.1873-5.2188 0.3787-0.2063 0.5791-0.6925 0.4558-1.1057-0.1232-0.4133-0.5572-0.7103-0.987-0.6755-0.0313-0.0015-0.0626-0.0015-0.0938 0z" fill="#fff"/>
|
||||
<path style="block-progression:tb;color:#000000;text-transform:none;text-indent:0" d="m8.0001 0c-0.4714 0-0.96103 0.5419-0.95 1v6c-0.00747 0.52831 0.42163 1 0.95 1s0.95747-0.47169 0.95-1v-6c0.014622-0.6051-0.4786-1-0.95-1zm-3.3438 2.5c-0.087186 0.019294-0.17163 0.050959-0.25 0.09375-2.9995 1.5715-3.9184 4.7979-3.125 7.4688 0.7934 2.67 3.2799 4.937 6.6875 4.937 3.3592 0 5.8772-2.149 6.7192-4.781 0.841-2.6321-0.058-5.8234-3.125-7.594-0.434-0.2536-1.059-0.0899-1.313 0.3437-0.2536 0.4336-0.09 1.0589 0.344 1.3125 2.3908 1.3798 2.8825 3.4944 2.2812 5.375-0.6012 1.8806-2.344 3.4375-4.9062 3.4375-2.5759 0-4.2976-1.6502-4.875-3.5938-0.5776-1.9435-0.047-4.048 2.1873-5.2187 0.3787-0.2063 0.5791-0.6925 0.4558-1.1057-0.1232-0.4133-0.5572-0.7103-0.987-0.6755-0.0313-0.0015-0.0626-0.0015-0.0938 0z"/>
|
||||
<path style="block-progression:tb;color:#000000;text-transform:none;text-indent:0" d="m8.0001 1c-0.4714 0-0.96103 0.5419-0.95 1v6c-0.00747 0.52831 0.42163 1 0.95 1s0.95747-0.47169 0.95-1v-6c0.014622-0.6051-0.4786-1-0.95-1zm-3.3438 2.5c-0.087186 0.019294-0.17163 0.050959-0.25 0.09375-2.9995 1.5715-3.9184 4.7979-3.125 7.4688 0.7934 2.67 3.2799 4.937 6.6875 4.937 3.3592 0 5.8772-2.149 6.7192-4.781 0.841-2.6321-0.058-5.8234-3.125-7.594-0.434-0.2536-1.059-0.0899-1.313 0.3437-0.2536 0.4336-0.09 1.0589 0.344 1.3125 2.3908 1.3798 2.8825 3.4944 2.2812 5.375-0.6012 1.8806-2.344 3.4375-4.9062 3.4375-2.5759 0-4.2976-1.6502-4.875-3.5938-0.5776-1.9436-0.047-4.0481 2.1873-5.2188 0.3787-0.2063 0.5791-0.6925 0.4558-1.1057-0.1232-0.4133-0.5572-0.7103-0.987-0.6755-0.0313-0.0015-0.0626-0.0015-0.0938 0z" fill="#fff"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 303 B After Width: | Height: | Size: 229 B |
Before Width: | Height: | Size: 195 B After Width: | Height: | Size: 122 B |
Before Width: | Height: | Size: 248 B After Width: | Height: | Size: 159 B |
|
@ -1,3 +1,4 @@
|
|||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="16px" width="16px" version="1.1" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 71 100"><metadata><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata>
|
||||
<path d="M8,1c-2.2091,0-4,1.7909-4,4v2h-1v7h10v-7h-1v-2c0-2.2091-1.791-4-4-4zm0,2c1.1046,0,2,0.89543,2,2v2h-4v-2c0-1.1046,0.8954-2,2-2z" transform="matrix(6.25,0,0,6.25,-14.5,0)" fill="#000"/>
|
||||
<?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" xml:space="preserve" height="16px" width="16px" version="1.1" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" viewBox="0 0 71 100" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<path d="m8 1c-2.2091 0-4 1.7909-4 4v2h-1v7h10v-7h-1v-2c0-2.2091-1.791-4-4-4zm0 2c1.1046 0 2 0.89543 2 2v2h-4v-2c0-1.1046 0.8954-2 2-2z" transform="matrix(6.25,0,0,6.25,-14.5,0)"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 665 B After Width: | Height: | Size: 525 B |
Before Width: | Height: | Size: 166 B After Width: | Height: | Size: 92 B |
Before Width: | Height: | Size: 170 B After Width: | Height: | Size: 96 B |
Before Width: | Height: | Size: 237 B After Width: | Height: | Size: 163 B |
|
@ -1,9 +1,7 @@
|
|||
<?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" height="16" width="16" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<g transform="translate(0 -1036.4)">
|
||||
<g>
|
||||
<path d="m2 1037.4 11 6-11 6z"/>
|
||||
<path d="m11 1045.4v2h-2v2h2v2h2v-2h2v-2h-2v-2z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 429 B After Width: | Height: | Size: 414 B |
Before Width: | Height: | Size: 210 B After Width: | Height: | Size: 136 B |
Before Width: | Height: | Size: 224 B After Width: | Height: | Size: 150 B |
Before Width: | Height: | Size: 237 B After Width: | Height: | Size: 163 B |
Before Width: | Height: | Size: 201 B After Width: | Height: | Size: 127 B |
Before Width: | Height: | Size: 412 B After Width: | Height: | Size: 338 B |
Before Width: | Height: | Size: 267 B After Width: | Height: | Size: 193 B |
Before Width: | Height: | Size: 420 B After Width: | Height: | Size: 348 B |
|
@ -1,14 +1,12 @@
|
|||
<?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" height="16" width="16" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<defs>
|
||||
<linearGradient id="a" y2="38.409" gradientUnits="userSpaceOnUse" x2="46.396" gradientTransform="matrix(-.41002 0 0 .54471 28.023 -5.922)" y1="12.708" x1="46.396">
|
||||
<linearGradient id="a" x1="46.396" gradientUnits="userSpaceOnUse" y1="12.708" gradientTransform="matrix(-.41002 0 0 .54471 28.023 -5.922)" x2="46.396" y2="38.409">
|
||||
<stop offset="0"/>
|
||||
<stop stop-color="#363636" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect style="color:#000000" fill-opacity="0" height="97.986" width="163.31" y="-32.993" x="-62.897"/>
|
||||
<g>
|
||||
<path opacity=".6" style="color:#000000" d="m6 1.9992c-2.7614 0-5 2.2386-5 5s2.2386 5 5 5c0.98478 0 1.8823-0.28967 2.6562-0.78125l4.4688 4.625c0.09558 0.10527 0.22619 0.16452 0.375 0.15625 0.14882-0.0083 0.3031-0.07119 0.40625-0.1875l0.9375-1.0625c0.19194-0.22089 0.19549-0.53592 0-0.71875l-4.594-4.4068c0.4776-0.76635 0.75-1.6555 0.75-2.625 0-2.7614-2.2386-5-5-5zm0 2c1.6569 0 3 1.3431 3 3s-1.3431 3-3 3-3-1.3431-3-3 1.3431-3 3-3z" fill="#fff"/>
|
||||
<path opacity=".7" style="color:#000000" d="m6 1c-2.7614 0-5 2.2386-5 5s2.2386 5 5 5c0.98478 0 1.8823-0.28967 2.6562-0.78125l4.4688 4.625c0.09558 0.10527 0.22619 0.16452 0.375 0.15625 0.14882-0.0083 0.3031-0.07119 0.40625-0.1875l0.9375-1.0625c0.19194-0.22089 0.19549-0.53592 0-0.71875l-4.594-4.406c0.478-0.7663 0.75-1.6555 0.75-2.625 0-2.7614-2.2386-5-5-5zm0 2c1.6569 0 3 1.3431 3 3s-1.3431 3-3 3-3-1.3431-3-3 1.3431-3 3-3z" fill="url(#a)"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 524 B After Width: | Height: | Size: 452 B |
|
@ -1,17 +1,17 @@
|
|||
<?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" height="16" width="16" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<defs>
|
||||
<linearGradient id="c" y2="7.556" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="15.5" y1="7.556" x1=".5"/>
|
||||
<linearGradient id="d" x1=".5" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="15.5" y1="7.556" y2="7.556"/>
|
||||
<linearGradient id="a">
|
||||
<stop offset="0"/>
|
||||
<stop stop-color="#363636" offset="1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="b" y2="14.998" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="7.493" y1=".0035527" x1="7.493"/>
|
||||
<linearGradient id="e" x1="7.493" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="7.493" y1=".0035527" y2="14.998"/>
|
||||
</defs>
|
||||
<g opacity=".6" transform="translate(.027972 .944)" fill="#fff">
|
||||
<path d="m6.9375 0.056c-0.2484 0-0.4375 0.18908-0.4375 0.4375v1.25c-0.5539 0.1422-1.0512 0.3719-1.5312 0.6563l-0.9063-0.9063c-0.17566-0.17566-0.44934-0.17566-0.625 0l-1.5 1.5c-0.17566 0.17566-0.17566 0.44934 0 0.625l0.9063 0.9063c-0.2844 0.48-0.5141 0.9773-0.6563 1.5312h-1.25c-0.24842 0-0.4375 0.1891-0.4375 0.4375v2.125c1e-8 0.24842 0.18908 0.4375 0.4375 0.4375h1.25c0.1422 0.5539 0.37188 1.0512 0.65625 1.5312l-0.9063 0.907c-0.17566 0.17566-0.17566 0.44934 0 0.625l1.5 1.5c0.17566 0.17566 0.44934 0.17566 0.625 0l0.9063-0.907c0.48 0.285 0.9773 0.514 1.5312 0.656v1.25c1e-7 0.24842 0.18908 0.4375 0.4375 0.4375h2.125c0.2484 0 0.4375-0.189 0.4375-0.438v-1.25c0.5539-0.1422 1.0512-0.37188 1.5312-0.65625l0.90625 0.90625c0.17566 0.17566 0.44934 0.17566 0.625 0l1.5-1.5c0.17566-0.17566 0.17566-0.44934 0-0.625l-0.906-0.906c0.285-0.48 0.514-0.9771 0.656-1.531h1.25c0.249 0 0.438-0.1891 0.438-0.4375v-2.125c0-0.2484-0.189-0.4375-0.438-0.4375h-1.25c-0.142-0.5539-0.371-1.0512-0.656-1.5312l0.906-0.9063c0.17566-0.17566 0.17566-0.44934 0-0.625l-1.5-1.5c-0.17566-0.17566-0.44934-0.17566-0.625 0l-0.906 0.9063c-0.48-0.2844-0.977-0.5141-1.531-0.6563v-1.25c0-0.24842-0.1891-0.4375-0.4375-0.4375zm1.0625 4.1573c1.8451 0 3.3427 1.4975 3.3427 3.3427 0 1.8451-1.4975 3.3427-3.3427 3.3427-1.8451 0-3.3427-1.4979-3.3427-3.343s1.4976-3.3427 3.3427-3.3427z" display="block" fill="#fff"/>
|
||||
<path fill="#fff" d="m6.9375 0.056c-0.2484 0-0.4375 0.18908-0.4375 0.4375v1.25c-0.5539 0.1422-1.0512 0.3719-1.5312 0.6563l-0.9063-0.9063c-0.17566-0.17566-0.44934-0.17566-0.625 0l-1.5 1.5c-0.17566 0.17566-0.17566 0.44934 0 0.625l0.9063 0.9063c-0.2844 0.48-0.5141 0.9773-0.6563 1.5312h-1.25c-0.24842 0-0.4375 0.1891-0.4375 0.4375v2.125c1e-8 0.24842 0.18908 0.4375 0.4375 0.4375h1.25c0.1422 0.5539 0.37188 1.0512 0.65625 1.5312l-0.9063 0.907c-0.17566 0.17566-0.17566 0.44934 0 0.625l1.5 1.5c0.17566 0.17566 0.44934 0.17566 0.625 0l0.9063-0.907c0.48 0.285 0.9773 0.514 1.5312 0.656v1.25c1e-7 0.24842 0.18908 0.4375 0.4375 0.4375h2.125c0.2484 0 0.4375-0.189 0.4375-0.438v-1.25c0.5539-0.1422 1.0512-0.37188 1.5312-0.65625l0.90625 0.90625c0.17566 0.17566 0.44934 0.17566 0.625 0l1.5-1.5c0.17566-0.17566 0.17566-0.44934 0-0.625l-0.906-0.906c0.285-0.48 0.514-0.9771 0.656-1.531h1.25c0.249 0 0.438-0.1891 0.438-0.4375v-2.125c0-0.2484-0.189-0.4375-0.438-0.4375h-1.25c-0.142-0.5539-0.371-1.0512-0.656-1.5312l0.906-0.9063c0.17566-0.17566 0.17566-0.44934 0-0.625l-1.5-1.5c-0.17566-0.17566-0.44934-0.17566-0.625 0l-0.906 0.9063c-0.48-0.2844-0.977-0.5141-1.531-0.6563v-1.25c0-0.24842-0.1891-0.4375-0.4375-0.4375zm1.0625 4.1573c1.8451 0 3.3427 1.4975 3.3427 3.3427 0 1.8451-1.4975 3.3427-3.3427 3.3427-1.8451 0-3.3427-1.4979-3.3427-3.343s1.4976-3.3427 3.3427-3.3427z" display="block"/>
|
||||
</g>
|
||||
<g opacity=".7" transform="translate(0 -.056)" fill="url(#c)">
|
||||
<path d="m6.9375 0.056c-0.2484 0-0.4375 0.18908-0.4375 0.4375v1.25c-0.5539 0.1422-1.0512 0.3719-1.5312 0.6563l-0.9063-0.9063c-0.17566-0.17566-0.44934-0.17566-0.625 0l-1.5 1.5c-0.17566 0.17566-0.17566 0.44934 0 0.625l0.9063 0.9063c-0.2844 0.48-0.5141 0.9773-0.6563 1.5312h-1.25c-0.24842 0-0.4375 0.1891-0.4375 0.4375v2.125c1e-8 0.24842 0.18908 0.4375 0.4375 0.4375h1.25c0.1422 0.5539 0.37188 1.0512 0.65625 1.5312l-0.9063 0.907c-0.17566 0.17566-0.17566 0.44934 0 0.625l1.5 1.5c0.17566 0.17566 0.44934 0.17566 0.625 0l0.9063-0.907c0.48 0.285 0.9773 0.514 1.5312 0.656v1.25c1e-7 0.24842 0.18908 0.4375 0.4375 0.4375h2.125c0.2484 0 0.4375-0.189 0.4375-0.438v-1.25c0.5539-0.1422 1.0512-0.37188 1.5312-0.65625l0.90625 0.90625c0.17566 0.17566 0.44934 0.17566 0.625 0l1.5-1.5c0.17566-0.17566 0.17566-0.44934 0-0.625l-0.906-0.906c0.285-0.48 0.514-0.9771 0.656-1.531h1.25c0.249 0 0.438-0.1891 0.438-0.4375v-2.125c0-0.2484-0.189-0.4375-0.438-0.4375h-1.25c-0.142-0.5539-0.371-1.0512-0.656-1.5312l0.906-0.9063c0.17566-0.17566 0.17566-0.44934 0-0.625l-1.5-1.5c-0.17566-0.17566-0.44934-0.17566-0.625 0l-0.906 0.9063c-0.48-0.2844-0.977-0.5141-1.531-0.6563v-1.25c0-0.24842-0.1891-0.4375-0.4375-0.4375zm1.0625 4.1573c1.8451 0 3.3427 1.4975 3.3427 3.3427 0 1.8451-1.4975 3.3427-3.3427 3.3427-1.8451 0-3.3427-1.4979-3.3427-3.343s1.4976-3.3427 3.3427-3.3427z" display="block" fill="url(#b)"/>
|
||||
<g opacity=".7" transform="translate(0 -.056)" fill="url(#d)">
|
||||
<path fill="url(#e)" d="m6.9375 0.056c-0.2484 0-0.4375 0.18908-0.4375 0.4375v1.25c-0.5539 0.1422-1.0512 0.3719-1.5312 0.6563l-0.9063-0.9063c-0.17566-0.17566-0.44934-0.17566-0.625 0l-1.5 1.5c-0.17566 0.17566-0.17566 0.44934 0 0.625l0.9063 0.9063c-0.2844 0.48-0.5141 0.9773-0.6563 1.5312h-1.25c-0.24842 0-0.4375 0.1891-0.4375 0.4375v2.125c1e-8 0.24842 0.18908 0.4375 0.4375 0.4375h1.25c0.1422 0.5539 0.37188 1.0512 0.65625 1.5312l-0.9063 0.907c-0.17566 0.17566-0.17566 0.44934 0 0.625l1.5 1.5c0.17566 0.17566 0.44934 0.17566 0.625 0l0.9063-0.907c0.48 0.285 0.9773 0.514 1.5312 0.656v1.25c1e-7 0.24842 0.18908 0.4375 0.4375 0.4375h2.125c0.2484 0 0.4375-0.189 0.4375-0.438v-1.25c0.5539-0.1422 1.0512-0.37188 1.5312-0.65625l0.90625 0.90625c0.17566 0.17566 0.44934 0.17566 0.625 0l1.5-1.5c0.17566-0.17566 0.17566-0.44934 0-0.625l-0.906-0.906c0.285-0.48 0.514-0.9771 0.656-1.531h1.25c0.249 0 0.438-0.1891 0.438-0.4375v-2.125c0-0.2484-0.189-0.4375-0.438-0.4375h-1.25c-0.142-0.5539-0.371-1.0512-0.656-1.5312l0.906-0.9063c0.17566-0.17566 0.17566-0.44934 0-0.625l-1.5-1.5c-0.17566-0.17566-0.44934-0.17566-0.625 0l-0.906 0.9063c-0.48-0.2844-0.977-0.5141-1.531-0.6563v-1.25c0-0.24842-0.1891-0.4375-0.4375-0.4375zm1.0625 4.1573c1.8451 0 3.3427 1.4975 3.3427 3.3427 0 1.8451-1.4975 3.3427-3.3427 3.3427-1.8451 0-3.3427-1.4979-3.3427-3.343s1.4976-3.3427 3.3427-3.3427z" display="block"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 338 B After Width: | Height: | Size: 264 B |
Before Width: | Height: | Size: 364 B After Width: | Height: | Size: 290 B |
|
@ -1,5 +1,5 @@
|
|||
<?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" height="16" width="16" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<rect style="color:#000000" fill-opacity="0" height="97.986" width="163.31" y="-32.993" x="-62.897"/>
|
||||
<path style="block-progression:tb;text-indent:0;color:#000000;text-transform:none" d="m4.5689 2.4831c-0.96481 0-1.7833 0.70559-1.7833 1.6162 0.00685 0.28781 0.032588 0.64272 0.20434 1.3933v0.018581l0.018574 0.018573c0.055135 0.15793 0.13537 0.24827 0.24149 0.37154 0.10612 0.12326 0.23263 0.26834 0.35294 0.39011 0.014154 0.014326 0.023227 0.023201 0.037149 0.037163 0.023859 0.10383 0.052763 0.21557 0.074304 0.3158 0.057317 0.26668 0.051439 0.45553 0.037155 0.52015-0.4146 0.1454-0.9304 0.3187-1.3932 0.5199-0.2598 0.113-0.4949 0.2139-0.6873 0.3344-0.1923 0.1206-0.3836 0.2116-0.4458 0.483-0.0007972 0.012367-0.0007972 0.024787 0 0.037163-0.060756 0.55788-0.15266 1.3783-0.22291 1.932-0.015166 0.11656 0.046264 0.23943 0.14861 0.29723 0.84033 0.45393 2.1312 0.63663 3.418 0.63161 1.2868-0.005 2.5674-0.19845 3.3808-0.63161 0.10234-0.0578 0.16378-0.18067 0.14861-0.29723-0.0224-0.173-0.05-0.5633-0.0743-0.9474-0.0243-0.384-0.0454-0.7617-0.0743-0.9845-0.0101-0.0552-0.0362-0.1074-0.0743-0.1486-0.2584-0.3086-0.6445-0.4973-1.096-0.6874-0.4122-0.1735-0.8954-0.3538-1.3746-0.5573-0.02682-0.059748-0.053461-0.23358 0-0.50157 0.014356-0.071959 0.036836-0.14903 0.055729-0.22292 0.045032-0.05044 0.080132-0.091658 0.13003-0.14861 0.1064-0.1215 0.2207-0.2489 0.3157-0.3715 0.0951-0.1226 0.1728-0.2279 0.223-0.3715l0.018574-0.018581c0.1941-0.7837 0.1942-1.1107 0.2043-1.3933v-0.018573c0-0.91058-0.81848-1.6162-1.7833-1.6162zm5.101-1.4831c-1.4067 0-2.6 1.0287-2.6 2.3562 0.00998 0.4196 0.047512 0.93701 0.29791 2.0312v0.027083l0.027081 0.027083c0.080384 0.23025 0.19736 0.36196 0.35208 0.54166s0.33917 0.39121 0.51458 0.56874c0.020637 0.020887 0.033864 0.033826 0.054161 0.054175 0.034785 0.15137 0.076926 0.31428 0.10833 0.46041 0.083566 0.38879 0.074995 0.66411 0.054171 0.75832-0.6045 0.2122-1.3565 0.465-2.0312 0.7583-0.3789 0.1647-0.7217 0.3118-1.0021 0.4875-0.28044 0.17574-0.55934 0.30851-0.64999 0.70416-0.00116 0.01804-0.00116 0.03613 0 0.05418-0.08858 0.81334-0.22257 2.0094-0.325 2.8166-0.022111 0.16993 0.067452 0.34906 0.21666 0.43333 1.2252 0.66179 3.1072 0.92814 4.9833 0.92082 1.8761-0.0073 3.7431-0.28932 4.9291-0.92082 0.14921-0.08427 0.23878-0.2634 0.21666-0.43333-0.0327-0.25234-0.07287-0.82136-0.10833-1.3812-0.03546-0.55988-0.06625-1.1106-0.10833-1.4354-0.01468-0.0805-0.05274-0.15661-0.10833-0.21666-0.377-0.4498-0.94-0.7248-1.598-1.002-0.601-0.253-1.306-0.5158-2.004-0.8125-0.0391-0.087106-0.07795-0.34054 0-0.73124 0.02093-0.10491 0.05371-0.21727 0.08125-0.325 0.06566-0.073537 0.11683-0.13363 0.18958-0.21666 0.15516-0.17709 0.32189-0.36287 0.46041-0.54166s0.25186-0.33217 0.325-0.54166l0.02708-0.027083c0.28309-1.1425 0.28324-1.6193 0.29792-2.0312v-0.027083c0-1.3275-1.1933-2.3562-2.6-2.3562z"/>
|
||||
<path style="block-progression:tb;color:#000000;text-transform:none;text-indent:0" d="m4.5689 2.4831c-0.96481 0-1.7833 0.70559-1.7833 1.6162 0.00685 0.28781 0.032588 0.64272 0.20434 1.3933v0.018581l0.018574 0.018573c0.055135 0.15793 0.13537 0.24827 0.24149 0.37154 0.10612 0.12326 0.23263 0.26834 0.35294 0.39011 0.014154 0.014326 0.023227 0.023201 0.037149 0.037163 0.023859 0.10383 0.052763 0.21557 0.074304 0.3158 0.057317 0.26668 0.051439 0.45553 0.037155 0.52015-0.4146 0.1454-0.9304 0.3187-1.3932 0.5199-0.2598 0.113-0.4949 0.2139-0.6873 0.3344-0.1923 0.1206-0.3836 0.2116-0.4458 0.483-0.0007972 0.012367-0.0007972 0.024787 0 0.037163-0.060756 0.55788-0.15266 1.3783-0.22291 1.932-0.015166 0.11656 0.046264 0.23943 0.14861 0.29723 0.84033 0.45393 2.1312 0.63663 3.418 0.63161 1.2868-0.005 2.5674-0.19845 3.3808-0.63161 0.10234-0.0578 0.16378-0.18067 0.14861-0.29723-0.0224-0.173-0.05-0.5633-0.0743-0.9474-0.0243-0.384-0.0454-0.7617-0.0743-0.9845-0.0101-0.0552-0.0362-0.1074-0.0743-0.1486-0.2584-0.3086-0.6445-0.4973-1.096-0.6874-0.4122-0.1735-0.8954-0.3538-1.3746-0.5573-0.02682-0.059748-0.053461-0.23358 0-0.50157 0.014356-0.071959 0.036836-0.14903 0.055729-0.22292 0.045032-0.05044 0.080132-0.091658 0.13003-0.14861 0.1064-0.1215 0.2207-0.2489 0.3157-0.3715 0.0951-0.1226 0.1728-0.2279 0.223-0.3715l0.018574-0.018581c0.1941-0.7837 0.1942-1.1107 0.2043-1.3933v-0.018573c0-0.91058-0.81848-1.6162-1.7833-1.6162zm5.101-1.4831c-1.4067 0-2.6 1.0287-2.6 2.3562 0.00998 0.4196 0.047512 0.93701 0.29791 2.0312v0.027083l0.027081 0.027083c0.080384 0.23025 0.19736 0.36196 0.35208 0.54166s0.33917 0.39121 0.51458 0.56874c0.020637 0.020887 0.033864 0.033826 0.054161 0.054175 0.034785 0.15137 0.076926 0.31428 0.10833 0.46041 0.083566 0.38879 0.074995 0.66411 0.054171 0.75832-0.6045 0.2122-1.3565 0.465-2.0312 0.7583-0.3789 0.1647-0.7217 0.3118-1.0021 0.4875-0.28044 0.17574-0.55934 0.30851-0.64999 0.70416-0.00116 0.01804-0.00116 0.03613 0 0.05418-0.08858 0.81334-0.22257 2.0094-0.325 2.8166-0.022111 0.16993 0.067452 0.34906 0.21666 0.43333 1.2252 0.66179 3.1072 0.92814 4.9833 0.92082 1.8761-0.0073 3.7431-0.28932 4.9291-0.92082 0.14921-0.08427 0.23878-0.2634 0.21666-0.43333-0.0327-0.25234-0.07287-0.82136-0.10833-1.3812-0.03546-0.55988-0.06625-1.1106-0.10833-1.4354-0.01468-0.0805-0.05274-0.15661-0.10833-0.21666-0.377-0.4498-0.94-0.7248-1.598-1.002-0.601-0.253-1.306-0.5158-2.004-0.8125-0.0391-0.087106-0.07795-0.34054 0-0.73124 0.02093-0.10491 0.05371-0.21727 0.08125-0.325 0.06566-0.073537 0.11683-0.13363 0.18958-0.21666 0.15516-0.17709 0.32189-0.36287 0.46041-0.54166s0.25186-0.33217 0.325-0.54166l0.02708-0.027083c0.28309-1.1425 0.28324-1.6193 0.29792-2.0312v-0.027083c0-1.3275-1.1933-2.3562-2.6-2.3562z"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 192 B After Width: | Height: | Size: 118 B |
Before Width: | Height: | Size: 254 B After Width: | Height: | Size: 180 B |
Before Width: | Height: | Size: 640 B After Width: | Height: | Size: 565 B |
|
@ -1,14 +1,6 @@
|
|||
<?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" height="22" width="22" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
<dc:title/>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g transform="matrix(0.06832234,0,0,0.06832234,-10.114234,-50.901693)">
|
||||
<path fill="#CCC" transform="translate(-21.071,-112.5)" d="m330.36,858.43,43.111,108.06,117.64,9.2572-89.445,74.392,27.55,114.75-98.391-62.079-100.62,61.66,28.637-112.76-89.734-76.638,116.09-7.6094z"/>
|
||||
<g transform="matrix(.068322 0 0 .068322 -10.114 -50.902)">
|
||||
<path d="m330.36 858.43 43.111 108.06 117.64 9.2572-89.445 74.392 27.55 114.75-98.391-62.079-100.62 61.66 28.637-112.76-89.734-76.638 116.09-7.6094z" transform="translate(-21.071,-112.5)" fill="#CCC"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 726 B After Width: | Height: | Size: 553 B |
Before Width: | Height: | Size: 566 B After Width: | Height: | Size: 492 B |
|
@ -1,14 +1,6 @@
|
|||
<?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" height="22" width="22" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
<dc:title/>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g transform="matrix(0.06832234,0,0,0.06832234,-10.114235,-50.901693)">
|
||||
<path fill="#FC0" transform="translate(-21.071,-112.5)" d="m330.36,858.43,43.111,108.06,117.64,9.2572-89.445,74.392,27.55,114.75-98.391-62.079-100.62,61.66,28.637-112.76-89.734-76.638,116.09-7.6094z"/>
|
||||
<g transform="matrix(.068322 0 0 .068322 -10.114 -50.902)">
|
||||
<path d="m330.36 858.43 43.111 108.06 117.64 9.2572-89.445 74.392 27.55 114.75-98.391-62.079-100.62 61.66 28.637-112.76-89.734-76.638 116.09-7.6094z" transform="translate(-21.071,-112.5)" fill="#FC0"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 726 B After Width: | Height: | Size: 553 B |
Before Width: | Height: | Size: 195 B After Width: | Height: | Size: 122 B |
|
@ -1,11 +1,9 @@
|
|||
<?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" height="16" width="16" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<g>
|
||||
<rect rx=".5" ry=".5" height="4" width="4" y="1" x="1"/>
|
||||
<rect rx=".5" ry=".5" height="1" width="9" y="2" x="6"/>
|
||||
<rect rx=".5" ry=".5" height="4" width="4" y="6" x="1"/>
|
||||
<rect rx=".5" ry=".5" height="1" width="9" y="7" x="6"/>
|
||||
<rect rx=".5" ry=".5" height="4" width="4" y="11" x="1"/>
|
||||
<rect rx=".5" ry=".5" height="1" width="9" y="12" x="6"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 692 B After Width: | Height: | Size: 675 B |
Before Width: | Height: | Size: 193 B After Width: | Height: | Size: 120 B |
|
@ -1,9 +1,7 @@
|
|||
<?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" height="16" width="16" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<g>
|
||||
<rect rx=".5" ry=".5" height="6" width="6" y="1" x="1"/>
|
||||
<rect rx=".5" ry=".5" height="6" width="6" y="1" x="9"/>
|
||||
<rect rx=".5" ry=".5" height="6" width="6" y="9" x="9"/>
|
||||
<rect rx=".5" ry=".5" height="6" width="6" y="9" x="1"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 572 B After Width: | Height: | Size: 557 B |
Before Width: | Height: | Size: 391 B After Width: | Height: | Size: 318 B |
|
@ -1,5 +1,5 @@
|
|||
<?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 16 9" xml:space="preserve" overflow="visible" height="9px" width="16px" version="1.1" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 16 9">
|
||||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="9px" viewBox="0 0 16 9" width="16px" version="1.1" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" enable-background="new 0 0 16 9" overflow="visible" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<path d="m7.999 0c-3.109 0-5.926 1.719-7.999 4.5 2.073 2.781 4.89 4.5 7.999 4.5 3.111 0 5.928-1.719 8.001-4.5-2.073-2.781-4.892-4.5-8.001-4.5zm0.001 7.5c-1.657 0-3-1.343-3-3s1.343-3 3-3c1.657 0 3 1.343 3 3s-1.343 3-3 3z" fill="#222"/>
|
||||
<circle cy="4.501" cx="8" r="1.5" fill="#222"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 676 B After Width: | Height: | Size: 676 B |
Before Width: | Height: | Size: 174 B After Width: | Height: | Size: 121 B |
Before Width: | Height: | Size: 211 B After Width: | Height: | Size: 138 B |
|
@ -1,4 +1,4 @@
|
|||
<?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" height="16px" width="16px" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<path style="block-progression:tb;text-indent:0;color:#000000;text-transform:none" d="m12 12-4-8-4 7.989z"/>
|
||||
<path style="block-progression:tb;color:#000000;text-transform:none;text-indent:0" d="m12 12-4-8-4 7.989z"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 439 B After Width: | Height: | Size: 439 B |
Before Width: | Height: | Size: 211 B After Width: | Height: | Size: 138 B |
|
@ -1,4 +1,4 @@
|
|||
<?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" height="16px" width="16px" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<path style="block-progression:tb;text-indent:0;color:#000000;text-transform:none" d="m4 4 4 8 4-7.989z"/>
|
||||
<path style="block-progression:tb;color:#000000;text-transform:none;text-indent:0" d="m4 4 4 8 4-7.989z"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 437 B After Width: | Height: | Size: 437 B |
Before Width: | Height: | Size: 226 B After Width: | Height: | Size: 152 B |
Before Width: | Height: | Size: 235 B After Width: | Height: | Size: 161 B |
Before Width: | Height: | Size: 374 B After Width: | Height: | Size: 300 B |
|
@ -1,5 +1,5 @@
|
|||
<?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" height="16" width="16" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<rect style="color:#000000" fill-opacity="0" height="97.986" width="163.31" y="-32.993" x="-62.897"/>
|
||||
<path style="block-progression:tb;text-indent:0;color:#000000;text-transform:none" d="m8.4036 1c-1.7312 0-3.1998 1.2661-3.1998 2.9 0.012287 0.51643 0.058473 1.1532 0.36664 2.5v0.033333l0.033328 0.033333c0.098928 0.28338 0.24289 0.44549 0.4333 0.66666s0.41742 0.48149 0.63328 0.69999c0.025397 0.025708 0.041676 0.041633 0.066656 0.066677 0.04281 0.18631 0.094672 0.38681 0.13332 0.56666 0.10284 0.47851 0.092296 0.81737 0.066668 0.93332-0.74389 0.26121-1.6694 0.57228-2.4998 0.93332-0.46622 0.2027-0.8881 0.3837-1.2332 0.59999-0.34513 0.2163-0.68837 0.37971-0.79994 0.86666-0.16004 0.63293-0.19866 0.7539-0.39997 1.5333-0.027212 0.20914 0.083011 0.42961 0.26665 0.53333 1.5078 0.81451 3.824 1.1423 6.1329 1.1333s4.6066-0.35609 6.0662-1.1333c0.11739-0.07353 0.14304-0.10869 0.13332-0.2333-0.04365-0.68908-0.08154-1.3669-0.13332-1.7666-0.01807-0.09908-0.06492-0.19275-0.13332-0.26666-0.46366-0.5537-1.1564-0.89218-1.9665-1.2333-0.7396-0.31144-1.6067-0.63486-2.4665-0.99999-0.048123-0.10721-0.095926-0.41912 0-0.89999 0.025759-0.12912 0.066096-0.26742 0.099994-0.4 0.0808-0.090507 0.14378-0.16447 0.23332-0.26666 0.19096-0.21796 0.39614-0.44661 0.56662-0.66666s0.30996-0.40882 0.39997-0.66666l0.03333-0.033333c0.34839-1.4062 0.34857-1.9929 0.36664-2.5v-0.033333c0-1.6339-1.4686-2.9-3.1998-2.9z"/>
|
||||
<path style="block-progression:tb;color:#000000;text-transform:none;text-indent:0" d="m8.4036 1c-1.7312 0-3.1998 1.2661-3.1998 2.9 0.012287 0.51643 0.058473 1.1532 0.36664 2.5v0.033333l0.033328 0.033333c0.098928 0.28338 0.24289 0.44549 0.4333 0.66666s0.41742 0.48149 0.63328 0.69999c0.025397 0.025708 0.041676 0.041633 0.066656 0.066677 0.04281 0.18631 0.094672 0.38681 0.13332 0.56666 0.10284 0.47851 0.092296 0.81737 0.066668 0.93332-0.74389 0.26121-1.6694 0.57228-2.4998 0.93332-0.46622 0.2027-0.8881 0.3837-1.2332 0.59999-0.34513 0.2163-0.68837 0.37971-0.79994 0.86666-0.16004 0.63293-0.19866 0.7539-0.39997 1.5333-0.027212 0.20914 0.083011 0.42961 0.26665 0.53333 1.5078 0.81451 3.824 1.1423 6.1329 1.1333s4.6066-0.35609 6.0662-1.1333c0.11739-0.07353 0.14304-0.10869 0.13332-0.2333-0.04365-0.68908-0.08154-1.3669-0.13332-1.7666-0.01807-0.09908-0.06492-0.19275-0.13332-0.26666-0.46366-0.5537-1.1564-0.89218-1.9665-1.2333-0.7396-0.31144-1.6067-0.63486-2.4665-0.99999-0.048123-0.10721-0.095926-0.41912 0-0.89999 0.025759-0.12912 0.066096-0.26742 0.099994-0.4 0.0808-0.090507 0.14378-0.16447 0.23332-0.26666 0.19096-0.21796 0.39614-0.44661 0.56662-0.66666s0.30996-0.40882 0.39997-0.66666l0.03333-0.033333c0.34839-1.4062 0.34857-1.9929 0.36664-2.5v-0.033333c0-1.6339-1.4686-2.9-3.1998-2.9z"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 368 B After Width: | Height: | Size: 295 B |
Before Width: | Height: | Size: 305 B After Width: | Height: | Size: 232 B |
Before Width: | Height: | Size: 181 B After Width: | Height: | Size: 108 B |
|
@ -1,6 +1,6 @@
|
|||
<?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" height="32" width="32" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<g transform="translate(0 -1020.4)">
|
||||
<path fill="#fff" d="m6 1026.4v20h8v-20h-8zm12 0v20h8v-20h-8z"/>
|
||||
<path d="m6 1026.4v20h8v-20h-8zm12 0v20h8v-20h-8z" fill="#fff"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 393 B After Width: | Height: | Size: 393 B |
Before Width: | Height: | Size: 227 B After Width: | Height: | Size: 154 B |
Before Width: | Height: | Size: 304 B After Width: | Height: | Size: 231 B |
Before Width: | Height: | Size: 594 B After Width: | Height: | Size: 376 B |
|
@ -1,12 +1,4 @@
|
|||
<?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" height="44" width="14" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<metadata>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
<dc:title/>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<path d="M0.54879,0.047777,12.744,22,0.54879,43.951,12.744,22z" stroke="#d7d7d7" stroke-linecap="round" stroke-miterlimit="31.20000076000000178" stroke-width="1.09758711000000009" fill="#F00"/>
|
||||
<path d="m0.54879 0.047777 12.195 21.952-12.195 21.951 12.195-21.951z" stroke="#d7d7d7" stroke-linecap="round" stroke-miterlimit="31.2" stroke-width="1.0976" fill="#F00"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 638 B After Width: | Height: | Size: 455 B |
|
@ -1,4 +1,5 @@
|
|||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" version="1.1" xml:space="preserve" height="60" width="170" enable-background="new 0 0 792 612" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 1346.4 475.2"><metadata><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata>
|
||||
<rect rx="50" ry="50" height="475.2" width="1346.4" y="-3.5527E-15" x="-2.8405E-15" fill="#000"/><path d="m150.48,126.72c-11.88,0-23.76,11.88-23.76,23.76v166.32l-47.52,23.76v11.88s0,11.88,11.88,11.88h356.4c11.88,0,11.88-11.88,11.88-11.88v-11.88l-47.52-23.76v-166.32c0-11.88-11.88-23.76-23.76-23.76zm0,23.667h237.6v142.65h-237.6z" fill="#fff"/><text style="word-spacing:0px;letter-spacing:0px;" xml:space="preserve" font-size="316.8px" y="239.58" x="451.44" font-family="Sans" line-height="125%" fill="#ffffff"><tspan font-size="126.72px" font-family="FreeSans" y="239.58" x="451.44" font-weight="600" fill="#ffffff">Desktop app</tspan></text>
|
||||
<text style="word-spacing:0px;letter-spacing:0px;" xml:space="preserve" font-size="316.8px" y="342.54001" x="493.01996" font-family="Sans" line-height="125%" fill="#ffffff"><tspan font-size="71.28px" y="342.54001" x="493.01996" font-family="FreeSans" fill="#ffffff">Windows, OS X, Linux</tspan></text>
|
||||
<?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" xml:space="preserve" height="60" width="170" version="1.1" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" enable-background="new 0 0 792 612" viewBox="0 0 1346.4 475.2" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<rect rx="50" ry="50" height="475.2" width="1346.4" y="-3.5527e-15" x="-2.8405e-15"/><path d="m150.48 126.72c-11.88 0-23.76 11.88-23.76 23.76v166.32l-47.52 23.76v11.88s0 11.88 11.88 11.88h356.4c11.88 0 11.88-11.88 11.88-11.88v-11.88l-47.52-23.76v-166.32c0-11.88-11.88-23.76-23.76-23.76zm0 23.667h237.6v142.65h-237.6z" fill="#fff"/><text style="word-spacing:0px;letter-spacing:0px" xml:space="preserve" font-size="316.8px" y="239.58" x="451.44" font-family="Sans" line-height="125%" fill="#ffffff"><tspan font-size="126.72px" font-weight="600" y="239.58" x="451.44" font-family="FreeSans" fill="#ffffff">Desktop app</tspan></text>
|
||||
<text style="word-spacing:0px;letter-spacing:0px" xml:space="preserve" font-size="316.8px" y="342.54001" x="493.01996" font-family="Sans" line-height="125%" fill="#ffffff"><tspan y="342.54001" x="493.01996" font-size="71.28px" font-family="FreeSans" fill="#ffffff">Windows, OS X, Linux</tspan></text>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.5 KiB |