external storage: fix merge conflict, indentation

This commit is contained in:
Jan-Christoph Borchardt 2014-03-31 13:12:04 +02:00
commit 2be2a5d2c5
119 changed files with 3046 additions and 2126 deletions

5
.gitignore vendored
View File

@ -86,6 +86,11 @@ nbproject
# Node Modules
/build/node_modules/
# nodejs
/build/lib/
/npm-debug.log
# Tests - auto-generated files
/data-autotest
/tests/coverage*

2
.gitmodules vendored
View File

@ -1,3 +1,3 @@
[submodule "3rdparty"]
path = 3rdparty
url = git://github.com/owncloud/3rdparty.git
url = https://github.com/owncloud/3rdparty.git

View File

@ -21,12 +21,6 @@
*
*/
// only need filesystem apps
$RUNTIME_APPTYPES=array('filesystem');
// Init owncloud
// Check if we are a user
OCP\User::checkLoggedIn();
\OC::$session->close();

View File

@ -1,8 +1,5 @@
<?php
// only need filesystem apps
$RUNTIME_APPTYPES = array('filesystem');
$dir = '/';
if (isset($_GET['dir'])) {

View File

@ -1,11 +1,5 @@
<?php
// only need filesystem apps
$RUNTIME_APPTYPES=array('filesystem');
// Init owncloud
OCP\JSON::checkLoggedIn();
\OC::$session->close();

View File

@ -1,8 +1,5 @@
<?php
// only need filesystem apps
$RUNTIME_APPTYPES = array('filesystem');
OCP\JSON::checkLoggedIn();
\OC::$session->close();

View File

@ -22,12 +22,6 @@
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
// load needed apps
$RUNTIME_APPTYPES = array('filesystem', 'authentication', 'logging');
OC_App::loadApps($RUNTIME_APPTYPES);
OC_Util::obEnd();
// Backends
$authBackend = new OC_Connector_Sabre_Auth();

View File

@ -58,7 +58,6 @@ class Scan extends Command {
protected function execute(InputInterface $input, OutputInterface $output) {
if ($input->getOption('all')) {
\OC_App::loadApps('authentication');
$users = $this->userManager->search('');
} else {
$users = $input->getArgument('user_id');

View File

@ -77,10 +77,10 @@
}
/* make sure there's enough room for the file actions */
#body-user #filestable {
min-width: 750px;
min-width: 688px; /* 768 (mobile break) - 80 (nav width) */
}
#body-user #controls {
min-width: 600px;
min-width: 688px; /* 768 (mobile break) - 80 (nav width) */
}
#filestable tbody tr { background-color:#fff; height:40px; }

68
apps/files/css/mobile.css Normal file
View File

@ -0,0 +1,68 @@
@media only screen and (max-width: 768px) {
/* dont require a minimum width for files table */
#body-user #filestable {
min-width: initial !important;
}
/* do not show Deleted Files on mobile, not optimized yet and button too long */
#controls #trash {
display: none;
}
/* hide size and date columns */
table th#headerSize,
table td.filesize,
table th#headerDate,
table td.date {
display: none;
}
/* remove shift for multiselect bar to account for missing navigation */
table.multiselect thead {
padding-left: 0;
}
/* restrict length of displayed filename to prevent overflow */
table td.filename .nametext {
max-width: 75% !important;
}
/* always show actions on mobile, not only on hover */
#fileList a.action {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)" !important;
filter: alpha(opacity=20) !important;
opacity: .2 !important;
display: inline !important;
}
/* do not show Rename or Versions on mobile */
#fileList .action.action-rename,
#fileList .action.action-versions {
display: none !important;
}
/* some padding for better clickability */
#fileList a.action img {
padding: 0 6px 0 12px;
}
/* hide text of the actions on mobile */
#fileList a.action span {
display: none;
}
/* ellipsis on file names */
.nametext {
width: 60%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* proper notification area for multi line messages */
#notification-container {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
}
}

View File

@ -27,6 +27,7 @@ OCP\User::checkLoggedIn();
// Load the files we need
OCP\Util::addStyle('files', 'files');
OCP\Util::addStyle('files', 'upload');
OCP\Util::addStyle('files', 'mobile');
OCP\Util::addscript('files', 'file-upload');
OCP\Util::addscript('files', 'jquery.iframe-transport');
OCP\Util::addscript('files', 'jquery.fileupload');

View File

@ -15,21 +15,33 @@ var FileActions = {
defaults: {},
icons: {},
currentFile: null,
register: function (mime, name, permissions, icon, action) {
register: function (mime, name, permissions, icon, action, displayName) {
if (!FileActions.actions[mime]) {
FileActions.actions[mime] = {};
}
if (!FileActions.actions[mime][name]) {
FileActions.actions[mime][name] = {};
}
if (!displayName) {
displayName = t('files', name);
}
FileActions.actions[mime][name]['action'] = action;
FileActions.actions[mime][name]['permissions'] = permissions;
FileActions.actions[mime][name]['displayName'] = displayName;
FileActions.icons[name] = icon;
},
setDefault: function (mime, name) {
FileActions.defaults[mime] = name;
},
get: function (mime, type, permissions) {
var actions = this.getActions(mime, type, permissions);
var filteredActions = {};
$.each(actions, function (name, action) {
filteredActions[name] = action.action;
});
return filteredActions;
},
getActions: function (mime, type, permissions) {
var actions = {};
if (FileActions.actions.all) {
actions = $.extend(actions, FileActions.actions.all);
@ -51,7 +63,7 @@ var FileActions = {
var filteredActions = {};
$.each(actions, function (name, action) {
if (action.permissions & permissions) {
filteredActions[name] = action.action;
filteredActions[name] = action;
}
});
return filteredActions;
@ -82,7 +94,7 @@ var FileActions = {
*/
display: function (parent, triggerEvent) {
FileActions.currentFile = parent;
var actions = FileActions.get(FileActions.getCurrentMimeType(), FileActions.getCurrentType(), FileActions.getCurrentPermissions());
var actions = FileActions.getActions(FileActions.getCurrentMimeType(), FileActions.getCurrentType(), FileActions.getCurrentPermissions());
var file = FileActions.getCurrentFile();
var nameLinks;
if (FileList.findFileEl(file).data('renaming')) {
@ -105,15 +117,16 @@ var FileActions = {
event.data.actionFunc(file);
};
var addAction = function (name, action) {
var addAction = function (name, action, displayName) {
// NOTE: Temporary fix to prevent rename action in root of Shared directory
if (name === 'Rename' && $('#dir').val() === '/Shared') {
return true;
}
if ((name === 'Download' || action !== defaultAction) && name !== 'Delete') {
var img = FileActions.icons[name],
actionText = t('files', name),
actionText = displayName,
actionContainer = 'a.name>span.fileactions';
if (name === 'Rename') {
@ -125,7 +138,7 @@ var FileActions = {
if (img.call) {
img = img(file);
}
var html = '<a href="#" class="action" data-action="' + name + '">';
var html = '<a href="#" class="action action-' + name.toLowerCase() + '" data-action="' + name + '">';
if (img) {
html += '<img class ="svg" src="' + img + '" />';
}
@ -133,8 +146,7 @@ var FileActions = {
var element = $(html);
element.data('action', name);
//alert(element);
element.on('click', {a: null, elem: parent, actionFunc: actions[name]}, actionHandler);
element.on('click', {a: null, elem: parent, actionFunc: actions[name].action}, actionHandler);
parent.find(actionContainer).append(element);
}
@ -142,12 +154,15 @@ var FileActions = {
$.each(actions, function (name, action) {
if (name !== 'Share') {
addAction(name, action);
displayName = action.displayName;
ah = action.action;
addAction(name, ah, displayName);
}
});
if(actions.Share && !($('#dir').val() === '/' && file === 'Shared')){
// t('files', 'Share')
addAction('Share', actions.Share);
displayName = t('files', 'Share');
addAction('Share', actions.Share, displayName);
}
// remove the existing delete action

View File

@ -71,7 +71,7 @@ window.FileList={
});
// filename td
td = $('<td></td>').attr({
"class": "filename",
"class": "filename svg",
"style": 'background-image:url('+iconurl+'); background-size: 32px;'
});
var rand = Math.random().toString(16).slice(2);

View File

@ -196,11 +196,14 @@ var Files = {
if (width !== Files.lastWidth) {
if ((width < Files.lastWidth || firstRun) && width < Files.breadcrumbsWidth) {
if (Files.hiddenBreadcrumbs === 0) {
Files.breadcrumbsWidth -= $(Files.breadcrumbs[1]).get(0).offsetWidth;
$(Files.breadcrumbs[1]).find('a').hide();
$(Files.breadcrumbs[1]).append('<span>...</span>');
Files.breadcrumbsWidth += $(Files.breadcrumbs[1]).get(0).offsetWidth;
Files.hiddenBreadcrumbs = 2;
bc = $(Files.breadcrumbs[1]).get(0);
if (typeof bc != 'undefined') {
Files.breadcrumbsWidth -= bc.offsetWidth;
$(Files.breadcrumbs[1]).find('a').hide();
$(Files.breadcrumbs[1]).append('<span>...</span>');
Files.breadcrumbsWidth += bc.offsetWidth;
Files.hiddenBreadcrumbs = 2;
}
}
var i = Files.hiddenBreadcrumbs;
while (width < Files.breadcrumbsWidth && i > 1 && i < Files.breadcrumbs.length - 1) {

View File

@ -3,7 +3,9 @@ $TRANSLATIONS = array(
"Could not move %s - File with this name already exists" => "Невозможно переместить %s - файл с таким именем уже существует",
"Could not move %s" => "Невозможно переместить %s",
"File name cannot be empty." => "Имя файла не может быть пустым.",
"\"%s\" is an invalid file name." => "\"%s\" это не правильное имя файла.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Неправильное имя: символы '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' недопустимы.",
"The target folder has been moved or deleted." => "Целевой каталог был перемещен или удален.",
"The name %s is already used in the folder %s. Please choose a different name." => "Имя %s уже используется для каталога %s. Пожалуйста, выберите другое имя.",
"Not a valid source" => "Неправильный источник",
"Server is not allowed to open URLs, please check the server configuration" => "Сервер не позволяет открывать URL-адреса, пожалуйста, проверьте настройки сервера",
@ -27,6 +29,8 @@ $TRANSLATIONS = array(
"Invalid directory." => "Неверный каталог.",
"Files" => "Файлы",
"Unable to upload {filename} as it is a directory or has 0 bytes" => "Невозможно загрузить {filename}, так как это либо каталог, либо файл нулевого размера",
"Total file size {size1} exceeds upload limit {size2}" => "Полный размер файла {size1} превышает лимит по загрузке {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" => "Не достаточно свободного места, Вы загружаете {size1} но осталось только {size2}",
"Upload cancelled." => "Загрузка отменена.",
"Could not get result from server." => "Не удалось получить ответ от сервера.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Идёт загрузка файла. Покинув страницу, вы прервёте загрузку.",
@ -48,6 +52,7 @@ $TRANSLATIONS = array(
"_%n file_::_%n files_" => array("%n файл","%n файла","%n файлов"),
"{dirs} and {files}" => "{dirs} и {files}",
"_Uploading %n file_::_Uploading %n files_" => array("Закачка %n файла","Закачка %n файлов","Закачка %n файлов"),
"\"{name}\" is an invalid file name." => "\"{name}\" это не правильное имя файла.",
"Your storage is full, files can not be updated or synced anymore!" => "Ваше хранилище заполнено, произведите очистку перед загрузкой новых файлов.",
"Your storage is almost full ({usedSpacePercent}%)" => "Ваше хранилище почти заполнено ({usedSpacePercent}%)",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Приложение для шифрования активно, но ваши ключи не инициализированы, пожалуйста, перелогиньтесь",

View File

@ -5,15 +5,15 @@
<div id="new" class="button">
<a><?php p($l->t('New'));?></a>
<ul>
<li class="icon-filetype-text"
<li class="icon-filetype-text svg"
data-type="file" data-newname="<?php p($l->t('New text file')) ?>.txt">
<p><?php p($l->t('Text file'));?></p>
</li>
<li class="icon-filetype-folder"
<li class="icon-filetype-folder svg"
data-type="folder" data-newname="<?php p($l->t('New folder')) ?>">
<p><?php p($l->t('Folder'));?></p>
</li>
<li class="icon-link" data-type="web">
<li class="icon-link svg" data-type="web">
<p><?php p($l->t('From link'));?></p>
</li>
</ul>

View File

@ -1,4 +1,4 @@
<div class="crumb <?php if(!count($_["breadcrumb"])) p('last');?>" data-dir=''>
<div class="crumb svg <?php if(!count($_["breadcrumb"])) p('last');?>" data-dir=''>
<a href="<?php print_unescaped($_['baseURL']); ?>">
<?php if(isset($_['rootBreadCrumb'])):
echo $_['rootBreadCrumb'];

View File

@ -16,6 +16,7 @@ $TRANSLATIONS = array(
"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Пожалуйста, убедитесь, что версия PHP 5.3.3 или новее, а также, что OpenSSL и соответствующее расширение PHP включены и правильно настроены. На данный момент приложение шифрования отключено.",
"Following users are not set up for encryption:" => "Для следующих пользователей шифрование не настроено:",
"Initial encryption started... This can take some time. Please wait." => "Начато начальное шифрование... Это может занять какое-то время. Пожалуйста, подождите.",
"Initial encryption running... Please try again later." => "Работает первоначальное шифрование... Пожалуйста, повторите попытку позже.",
"Go directly to your " => "Перейти прямо в",
"personal settings" => "персональные настройки",
"Encryption" => "Шифрование",

View File

@ -128,6 +128,8 @@ class Proxy extends \OC_FileProxy {
// re-enable proxy - our work is done
\OC_FileProxy::$enabled = $proxyStatus;
} else {
return false;
}
}
}

View File

@ -181,16 +181,21 @@ $(document).ready(function() {
$.each(configurations, function(backend, parameters) {
if (backend == backendClass) {
$.each(parameters['configuration'], function(parameter, placeholder) {
if (placeholder.indexOf('*') != -1) {
td.append('<input type="password" data-parameter="'+parameter+'" placeholder="'+placeholder.substring(1)+'" />');
} else if (placeholder.indexOf('!') != -1) {
var is_optional = false;
if (placeholder.indexOf('&') === 0) {
is_optional = true;
placeholder = placeholder.substring(1);
}
if (placeholder.indexOf('*') === 0) {
var class_string = is_optional ? ' class="optional"' : '';
td.append('<input type="password"' + class_string + ' data-parameter="'+parameter+'" placeholder="'+placeholder.substring(1)+'" />');
} else if (placeholder.indexOf('!') === 0) {
td.append('<label><input type="checkbox" data-parameter="'+parameter+'" />'+placeholder.substring(1)+'</label>');
} else if (placeholder.indexOf('&') != -1) {
td.append('<input type="text" class="optional" data-parameter="'+parameter+'" placeholder="'+placeholder.substring(1)+'" />');
} else if (placeholder.indexOf('#') != -1) {
} else if (placeholder.indexOf('#') === 0) {
td.append('<input type="hidden" data-parameter="'+parameter+'" />');
} else {
td.append('<input type="text" data-parameter="'+parameter+'" placeholder="'+placeholder+'" />');
var class_string = is_optional ? ' class="optional"' : '';
td.append('<input type="text"' + class_string + ' data-parameter="'+parameter+'" placeholder="'+placeholder+'" />');
}
});
if (parameters['custom'] && $('#externalStorage tbody tr.'+backendClass.replace(/\\/g, '\\\\')).length == 1) {

View File

@ -5,6 +5,7 @@ $TRANSLATIONS = array(
"Grant access" => "Предоставление доступа",
"Please provide a valid Dropbox app key and secret." => "Пожалуйста, предоставьте действующий ключ Dropbox и пароль.",
"Error configuring Google Drive storage" => "Ошибка при настройке хранилища Google Drive",
"Saved" => "Сохранено",
"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Внимание:</b> \"smbclient\" не установлен. Подключение по CIFS/SMB невозможно. Пожалуйста, обратитесь к системному администратору, чтобы установить его.",
"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>Внимание:</b> Поддержка FTP не включена в PHP. Подключение по FTP невозможно. Пожалуйста, обратитесь к системному администратору, чтобы включить.",
"<b>Warning:</b> The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "<b>Внимание:</b> Поддержка Curl в PHP не включена или не установлена. Подключение ownCloud / WebDAV или GoogleDrive невозможно. Попросите вашего системного администратора установить его.",
@ -21,6 +22,7 @@ $TRANSLATIONS = array(
"Users" => "Пользователи",
"Delete" => "Удалить",
"Enable User External Storage" => "Включить пользовательские внешние носители",
"Allow users to mount the following external storage" => "Разрешить пользователям монтировать следующую внешнюю систему хранения данных",
"SSL root certificates" => "Корневые сертификаты SSL",
"Import Root Certificate" => "Импортировать корневые сертификаты"
);

View File

@ -374,7 +374,7 @@ class Swift extends \OC\Files\Storage\Common {
'X-Object-Meta-Timestamp' => $mtime
)
);
return $object->Update($settings);
return $object->UpdateMetadata($settings);
} else {
$object = $this->container->DataObject();
if (is_null($mtime)) {

View File

@ -43,29 +43,32 @@
<?php if (isset($mount['options'])): ?>
<?php foreach ($mount['options'] as $parameter => $value): ?>
<?php if (isset($_['backends'][$mount['class']]['configuration'][$parameter])): ?>
<?php $placeholder = $_['backends'][$mount['class']]['configuration'][$parameter]; ?>
<?php if (strpos($placeholder, '*') !== false): ?>
<?php
$placeholder = $_['backends'][$mount['class']]['configuration'][$parameter];
$is_optional = FALSE;
if (strpos($placeholder, '&') === 0) {
$is_optional = TRUE;
$placeholder = substr($placeholder, 1);
}
?>
<?php if (strpos($placeholder, '*') === 0): ?>
<input type="password"
<?php if ($is_optional): ?> class="optional"<?php endif; ?>
data-parameter="<?php p($parameter); ?>"
value="<?php p($value); ?>"
placeholder="<?php p(substr($placeholder, 1)); ?>" />
<?php elseif (strpos($placeholder, '!') !== false): ?>
<?php elseif (strpos($placeholder, '!') === 0): ?>
<label><input type="checkbox"
data-parameter="<?php p($parameter); ?>"
<?php if ($value == 'true'): ?> checked="checked"<?php endif; ?>
/><?php p(substr($placeholder, 1)); ?></label>
<?php elseif (strpos($placeholder, '&') !== false): ?>
<input type="text"
class="optional"
data-parameter="<?php p($parameter); ?>"
value="<?php p($value); ?>"
placeholder="<?php p(substr($placeholder, 1)); ?>" />
<?php elseif (strpos($placeholder, '#') !== false): ?>
<?php elseif (strpos($placeholder, '#') === 0): ?>
<input type="hidden"
data-parameter="<?php p($parameter); ?>"
value="<?php p($value); ?>" />
<?php else: ?>
<input type="text"
<?php if ($is_optional): ?> class="optional"<?php endif; ?>
data-parameter="<?php p($parameter); ?>"
value="<?php p($value); ?>"
placeholder="<?php p($placeholder); ?>" />

View File

@ -1,4 +1,4 @@
@media only screen and (max-width: 600px) {
@media only screen and (max-width: 768px) {
/* make header scroll up for single shares, more view of content on small screens */
#header.share-file {
@ -45,5 +45,13 @@ table td.filename .nametext {
display: none;
}
/* ellipsis on file names */
.nametext {
width: 60%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}

View File

@ -886,5 +886,5 @@ class Test_Files_Sharing_Api extends Test_Files_Sharing_Base {
class TestShareApi extends \OCA\Files\Share\Api {
public function correctPathTest($path, $folder) {
return self::correctPath($path, $folder);
}
}
}

View File

@ -1,11 +1,5 @@
<?php
// only need filesystem apps
$RUNTIME_APPTYPES=array('filesystem');
// Init owncloud
OCP\JSON::checkLoggedIn();
// Load the files

View File

@ -25,6 +25,11 @@ $(document).ready(function() {
enableActions();
}
Files.updateStorageStatistics = function() {
// no op because the trashbin doesn't have
// storage info like free space / used space
};
if (typeof FileActions !== 'undefined') {
FileActions.register('all', 'Restore', OC.PERMISSION_READ, OC.imagePath('core', 'actions/history'), function(filename) {
var tr = FileList.findFileEl(filename);

View File

@ -11,7 +11,7 @@ $(document).ready(function(){
// Add versions button to 'files/index.php'
FileActions.register(
'file'
, t('files_versions', 'Versions')
, 'Versions'
, OC.PERMISSION_UPDATE
, function() {
// Specify icon for hitory button
@ -36,6 +36,7 @@ $(document).ready(function(){
createVersionsDropdown(filename, file);
}
}
, t('files_versions', 'Versions')
);
}

View File

@ -85,6 +85,7 @@ $TRANSLATIONS = array(
"One Group Base DN per line" => "Eno osnovno ime skupine na vrstico",
"Group Search Attributes" => "Skupinski atributi iskanja",
"Group-Member association" => "Povezava član-skupina",
"Nested Groups" => "Gnezdene skupine",
"Special Attributes" => "Posebni atributi",
"Quota Field" => "Polje količinske omejitve",
"Quota Default" => "Privzeta količinska omejitev",

View File

@ -14,7 +14,9 @@
"karma": "*",
"karma-jasmine": "*",
"karma-junit-reporter": "*",
"karma-coverage": "*"
"karma-coverage": "*",
"karma-phantomjs-launcher": "*",
"phantomjs": "*"
},
"engine": "node >= 0.8"
}

View File

@ -276,6 +276,15 @@ $CONFIG = array(
/* all css and js files will be served by the web server statically in one js file and ons css file*/
'asset-pipeline.enabled' => false,
/* where mount.json file should be stored, defaults to data/mount.json */
'mount_file' => '',
/* where mount.json file should be stored, defaults to data/mount.json */
'mount_file' => '',
/*
* Location of the cache folder, defaults to "data/$user/cache" where "$user" is the current user.
*
* When specified, the format will change to "$cache_path/$user" where "$cache_path" is the configured
* cache directory and "$user" is the user.
*
*/
'cache_path' => ''
);

View File

@ -8,7 +8,6 @@
use Symfony\Component\Console\Application;
$RUNTIME_NOAPPS = true;
require_once 'lib/base.php';
// Don't do anything if ownCloud has not been installed yet
@ -22,6 +21,9 @@ if (!OC::$CLI) {
exit(0);
}
// load all apps to get all api routes properly setup
OC_App::loadApps();
$defaults = new OC_Defaults;
$application = new Application($defaults->getName(), \OC_Util::getVersionString());
require_once 'core/register_command.php';

View File

@ -21,7 +21,6 @@
OC_JSON::checkLoggedIn();
OCP\JSON::callCheck();
OC_App::loadApps();
$defaults = new \OCP\Defaults();

View File

@ -1,6 +1,5 @@
<?php
set_time_limit(0);
$RUNTIME_NOAPPS = true;
require_once '../../lib/base.php';
if (OC::checkUpgrade(false)) {

View File

@ -34,9 +34,6 @@ class Upgrade extends Command {
* @param OutputInterface $output output interface
*/
protected function execute(InputInterface $input, OutputInterface $output) {
global $RUNTIME_NOAPPS;
$RUNTIME_NOAPPS = true; //no apps, yet
require_once \OC::$SERVERROOT . '/lib/base.php';

View File

@ -46,7 +46,6 @@ class Report extends Command {
}
private function countUsers() {
\OC_App::loadApps(array('authentication'));
$userManager = \OC::$server->getUserManager();
return $userManager->countUsers();
}
@ -56,4 +55,4 @@ class Report extends Command {
$userDirectories = $dataview->getDirectoryContent('/', 'httpd/unix-directory');
return count($userDirectories);
}
}
}

View File

@ -43,7 +43,7 @@
background-color: #000;
opacity: .20;filter:Alpha(Opacity=20);
z-index: 999;
position: absolute;
position: fixed;
top: 0; left: 0;
width: 100%; height: 100%;
}

View File

@ -1,4 +1,12 @@
@media only screen and (max-width: 600px) {
@media only screen and (max-width: 768px) {
/* show caret indicator next to logo to make clear it is tappable */
#owncloud.menutoggle {
background-image: url('../img/actions/caret.svg');
background-repeat: no-repeat;
background-position: right 26px;
padding-right: 16px !important;
}
/* compress search box on mobile, expand when focused */
.searchbox input[type="search"] {
@ -18,5 +26,80 @@
display: none;
}
/* toggle navigation */
#content-wrapper {
padding-left: 0;
}
#navigation {
top: 45px;
bottom: initial;
width: 255px;
max-height: 90%;
margin-top: 0;
top: 45px;
background-color: rgba(36, 40, 47, .97);
overflow-x: initial;
border-bottom-right-radius: 7px;
border-bottom: 1px #333 solid;
border-right: 1px #333 solid;
box-shadow: 0 0 7px rgba(29,45,68,.97);
display: none;
}
#navigation, #navigation * {
box-sizing:border-box; -moz-box-sizing:border-box;
}
#navigation li {
display: inline-block;
}
#navigation a {
width: 80px;
height: 80px;
display: inline-block;
text-align: center;
padding: 20px 0;
}
#navigation a span {
display: inline-block;
font-size: 13px;
padding-bottom: 0;
padding-left: 0;
width: 80px;
}
#navigation .icon {
margin: 0 auto;
padding: 0;
}
#navigation li:first-child .icon {
padding-top: 0;
}
/* Apps management as sticky footer */
#navigation .wrapper {
min-height: initial;
margin: 0;
}
#apps-management, #navigation .push {
height: initial;
}
/* shift to account for missing navigation */
#body-user #controls,
#body-settings #controls {
padding-left: 0;
}
/* dont require a minimum width for controls bar */
#controls {
min-width: initial !important;
}
/* position share dropdown */
#dropdown {
margin-right: 10% !important;
width: 80% !important;
}
}

View File

@ -77,6 +77,7 @@ body { background:#fefefe; font:normal .8em/1.6em "Helvetica Neue",Helvetica,Ari
#header .logo {
background-image: url(../img/logo.svg);
background-repeat: no-repeat;
width: 250px;
height: 118px;
margin: 0 auto;
@ -84,6 +85,7 @@ body { background:#fefefe; font:normal .8em/1.6em "Helvetica Neue",Helvetica,Ari
#header .logo-wide {
background-image: url(../img/logo-wide.svg);
background-repeat: no-repeat;
width: 147px;
height: 32px;
}
@ -246,6 +248,7 @@ input[type="submit"].enabled {
-webkit-box-sizing: border-box;
box-sizing: border-box;
position: fixed;
top:45px;
right: 0;
left: 0;
height: 44px;

View File

@ -482,6 +482,53 @@ var OC={
}).show();
}, 'html');
}
},
// for menu toggling
registerMenu: function($toggle, $menuEl) {
$menuEl.addClass('menu');
$toggle.addClass('menutoggle');
$toggle.on('click.menu', function(event) {
if ($menuEl.is(OC._currentMenu)) {
$menuEl.hide();
OC._currentMenu = null;
OC._currentMenuToggle = null;
return false;
}
// another menu was open?
else if (OC._currentMenu) {
// close it
OC._currentMenu.hide();
}
$menuEl.show();
OC._currentMenu = $menuEl;
OC._currentMenuToggle = $toggle;
return false
});
},
unregisterMenu: function($toggle, $menuEl) {
// close menu if opened
if ($menuEl.is(OC._currentMenu)) {
$menuEl.hide();
OC._currentMenu = null;
OC._currentMenuToggle = null;
}
$toggle.off('click.menu').removeClass('menutoggle');
$menuEl.removeClass('menu');
},
/**
* Wrapper for matchMedia
*
* This is makes it possible for unit tests to
* stub matchMedia (which doesn't work in PhantomJS)
*/
_matchMedia: function(media) {
if (window.matchMedia) {
return window.matchMedia(media);
}
return false;
}
};
OC.search.customResults={};
@ -712,11 +759,11 @@ SVGSupport.checkMimeType=function(){
if(value[0]==='"'){
value=value.substr(1,value.length-2);
}
headers[parts[0]]=value;
headers[parts[0].toLowerCase()]=value;
}
}
});
if(headers["Content-Type"]!=='image/svg+xml'){
if(headers["content-type"]!=='image/svg+xml'){
replaceSVG();
SVGSupport.checkMimeType.correct=false;
}
@ -940,6 +987,67 @@ function initCore() {
$('a.action').tipsy({gravity:'s', fade:true, live:true});
$('td .modified').tipsy({gravity:'s', fade:true, live:true});
$('input').tipsy({gravity:'w', fade:true});
// toggle for menus
$(document).on('mouseup.closemenus', function(event) {
var $el = $(event.target);
if ($el.closest('.menu').length || $el.closest('.menutoggle').length) {
// don't close when clicking on the menu directly or a menu toggle
return false;
}
if (OC._currentMenu) {
OC._currentMenu.hide();
}
OC._currentMenu = null;
OC._currentMenuToggle = null;
});
/**
* Set up the main menu toggle to react to media query changes.
* If the screen is small enough, the main menu becomes a toggle.
* If the screen is bigger, the main menu is not a toggle any more.
*/
function setupMainMenu() {
// toggle the navigation on mobile
if (!OC._matchMedia) {
return;
}
var mq = OC._matchMedia('(max-width: 768px)');
var lastMatch = mq.matches;
var $toggle = $('#header #owncloud');
var $navigation = $('#navigation');
function updateMainMenu() {
// mobile mode ?
if (lastMatch && !$toggle.hasClass('menutoggle')) {
// init the menu
OC.registerMenu($toggle, $navigation);
$toggle.data('oldhref', $toggle.attr('href'));
$toggle.attr('href', '#');
$navigation.hide();
}
else {
OC.unregisterMenu($toggle, $navigation);
$toggle.attr('href', $toggle.data('oldhref'));
$navigation.show();
}
}
updateMainMenu();
// TODO: debounce this
$(window).resize(function() {
if (lastMatch !== mq.matches) {
lastMatch = mq.matches;
updateMainMenu();
}
});
}
if (window.matchMedia) {
setupMainMenu();
}
}
$(document).ready(initCore);

View File

@ -48,7 +48,7 @@ OC.Share={
var action = $(file).find('.fileactions .action[data-action="Share"]');
var img = action.find('img').attr('src', image);
action.addClass('permanent');
action.html(' '+t('core', 'Shared')).prepend(img);
action.html(' <span>'+t('core', 'Shared')+'</span>').prepend(img);
} else {
var dir = $('#dir').val();
if (dir.length > 1) {
@ -63,7 +63,7 @@ OC.Share={
if (img.attr('src') != OC.imagePath('core', 'actions/public')) {
img.attr('src', image);
$(action).addClass('permanent');
$(action).html(' '+t('core', 'Shared')).prepend(img);
$(action).html(' <span>'+t('core', 'Shared')+'</span>').prepend(img);
}
});
}
@ -103,10 +103,10 @@ OC.Share={
var img = action.find('img').attr('src', image);
if (shares) {
action.addClass('permanent');
action.html(' '+ escapeHTML(t('core', 'Shared'))).prepend(img);
action.html(' <span>'+ escapeHTML(t('core', 'Shared'))+'</span>').prepend(img);
} else {
action.removeClass('permanent');
action.html(' '+ escapeHTML(t('core', 'Share'))).prepend(img);
action.html(' <span>'+ escapeHTML(t('core', 'Share'))+'</span>').prepend(img);
}
}
}

View File

@ -279,5 +279,109 @@ describe('Core base tests', function() {
expect(OC.generateUrl('apps/files/download{file}', {file: '/Welcome.txt'})).toEqual(OC.webroot + '/index.php/apps/files/download/Welcome.txt');
});
});
describe('Main menu mobile toggle', function() {
var oldMatchMedia;
var $toggle;
var $navigation;
beforeEach(function() {
oldMatchMedia = OC._matchMedia;
// a separate method was needed because window.matchMedia
// cannot be stubbed due to a bug in PhantomJS:
// https://github.com/ariya/phantomjs/issues/12069
OC._matchMedia = sinon.stub();
$('#testArea').append('<div id="header">' +
'<a id="owncloud" href="#"></a>' +
'</div>' +
'<div id="navigation"></div>');
$toggle = $('#owncloud');
$navigation = $('#navigation');
});
afterEach(function() {
OC._matchMedia = oldMatchMedia;
});
it('Sets up menu toggle in mobile mode', function() {
OC._matchMedia.returns({matches: true});
window.initCore();
expect($toggle.hasClass('menutoggle')).toEqual(true);
expect($navigation.hasClass('menu')).toEqual(true);
});
it('Does not set up menu toggle in desktop mode', function() {
OC._matchMedia.returns({matches: false});
window.initCore();
expect($toggle.hasClass('menutoggle')).toEqual(false);
expect($navigation.hasClass('menu')).toEqual(false);
});
it('Switches on menu toggle when mobile mode changes', function() {
var mq = {matches: false};
OC._matchMedia.returns(mq);
window.initCore();
expect($toggle.hasClass('menutoggle')).toEqual(false);
mq.matches = true;
$(window).trigger('resize');
expect($toggle.hasClass('menutoggle')).toEqual(true);
});
it('Switches off menu toggle when mobile mode changes', function() {
var mq = {matches: true};
OC._matchMedia.returns(mq);
window.initCore();
expect($toggle.hasClass('menutoggle')).toEqual(true);
mq.matches = false;
$(window).trigger('resize');
expect($toggle.hasClass('menutoggle')).toEqual(false);
});
it('Clicking menu toggle toggles navigation in mobile mode', function() {
OC._matchMedia.returns({matches: true});
window.initCore();
$navigation.hide(); // normally done through media query triggered CSS
expect($navigation.is(':visible')).toEqual(false);
$toggle.click();
expect($navigation.is(':visible')).toEqual(true);
$toggle.click();
expect($navigation.is(':visible')).toEqual(false);
});
it('Clicking menu toggle does not toggle navigation in desktop mode', function() {
OC._matchMedia.returns({matches: false});
window.initCore();
expect($navigation.is(':visible')).toEqual(true);
$toggle.click();
expect($navigation.is(':visible')).toEqual(true);
});
it('Switching to mobile mode hides navigation', function() {
var mq = {matches: false};
OC._matchMedia.returns(mq);
window.initCore();
expect($navigation.is(':visible')).toEqual(true);
mq.matches = true;
$(window).trigger('resize');
expect($navigation.is(':visible')).toEqual(false);
});
it('Switching to desktop mode shows navigation', function() {
var mq = {matches: true};
OC._matchMedia.returns(mq);
window.initCore();
expect($navigation.is(':visible')).toEqual(false);
mq.matches = false;
$(window).trigger('resize');
expect($navigation.is(':visible')).toEqual(true);
});
it('Switch to desktop with opened menu then back to mobile resets toggle', function() {
var mq = {matches: true};
OC._matchMedia.returns(mq);
window.initCore();
expect($navigation.is(':visible')).toEqual(false);
$toggle.click();
expect($navigation.is(':visible')).toEqual(true);
mq.matches = false;
$(window).trigger('resize');
expect($navigation.is(':visible')).toEqual(true);
mq.matches = true;
$(window).trigger('resize');
expect($navigation.is(':visible')).toEqual(false);
$toggle.click();
expect($navigation.is(':visible')).toEqual(true);
});
});
});

View File

@ -1,6 +1,6 @@
<?php
$TRANSLATIONS = array(
"Expiration date is in the past." => "La fecha de caducidad está en el pasado.",
"Expiration date is in the past." => "Ha pasado la fecha de caducidad",
"Couldn't send mail to following users: %s " => "No se pudo enviar el mensaje a los siguientes usuarios: %s",
"Turned on maintenance mode" => "Modo mantenimiento activado",
"Turned off maintenance mode" => "Modo mantenimiento desactivado",
@ -105,7 +105,7 @@ $TRANSLATIONS = array(
"Edit tags" => "Editar etiquetas",
"Error loading dialog template: {error}" => "Error cargando plantilla de diálogo: {error}",
"No tags selected for deletion." => "No hay etiquetas seleccionadas para borrar.",
"Please reload the page." => "Vuelva a cargar la página.",
"Please reload the page." => "Recargue/Actualice la página",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>." => "La actualización ha fracasado. Por favor, informe de este problema a la <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">Comunidad de ownCloud</a>.",
"The update was successful. Redirecting you to ownCloud now." => "La actualización se ha realizado con éxito. Redireccionando a ownCloud ahora.",
"%s password reset" => "%s restablecer contraseña",
@ -179,6 +179,6 @@ $TRANSLATIONS = array(
"Thank you for your patience." => "Gracias por su paciencia.",
"Updating ownCloud to version %s, this may take a while." => "Actualizando ownCloud a la versión %s, esto puede demorar un tiempo.",
"This ownCloud instance is currently being updated, which may take a while." => "Esta versión de owncloud se está actualizando, esto puede demorar un tiempo.",
"Please reload this page after a short time to continue using ownCloud." => "Por favor , recargue esta instancia de onwcloud tras un corto periodo de tiempo y continue usándolo."
"Please reload this page after a short time to continue using ownCloud." => "Por favor, recargue la página tras un corto periodo de tiempo para continuar usando ownCloud"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -1,5 +1,6 @@
<?php
$TRANSLATIONS = array(
"Expiration date is in the past." => "Дата истечения срока действия в прошлом.",
"Couldn't send mail to following users: %s " => "Невозможно отправить письмо следующим пользователям: %s",
"Turned on maintenance mode" => "Режим отладки включён",
"Turned off maintenance mode" => "Режим отладки отключён",
@ -56,6 +57,11 @@ $TRANSLATIONS = array(
"(all selected)" => "(выбраны все)",
"({count} selected)" => "({count} выбрано)",
"Error loading file exists template" => "Ошибка при загрузке шаблона существующего файла",
"Very weak password" => "Очень слабый пароль",
"Weak password" => "Слабый пароль",
"So-so password" => "Так себе пароль",
"Good password" => "Хороший пароль",
"Strong password" => "Устойчивый к взлому пароль",
"Shared" => "Общие",
"Share" => "Открыть доступ",
"Error" => "Ошибка",
@ -103,6 +109,7 @@ $TRANSLATIONS = array(
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>." => "При обновлении произошла ошибка. Пожалуйста сообщите об этом в <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud сообщество</a>.",
"The update was successful. Redirecting you to ownCloud now." => "Обновление прошло успешно. Перенаправляемся в Ваш ownCloud...",
"%s password reset" => "%s сброс пароля",
"A problem has occurred whilst sending the email, please contact your administrator." => "Произошла ошибка при отправке сообщения электронной почты, пожалуйста, свяжитесь с Вашим администратором.",
"Use the following link to reset your password: {link}" => "Используйте следующую ссылку чтобы сбросить пароль: {link}",
"The link to reset your password has been sent to your email.<br>If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator ." => "Ссылка для сброса пароля отправлена вам ​​по электронной почте.<br>Если вы не получите письмо в пределах одной-двух минут, проверьте папку Спам. <br>Если письма там нет, обратитесь к своему администратору.",
"Request failed!<br>Did you make sure your email/username was right?" => "Запрос не удался. Вы уверены, что email или имя пользователя указаны верно?",
@ -115,6 +122,8 @@ $TRANSLATIONS = array(
"To login page" => "На страницу авторизации",
"New password" => "Новый пароль",
"Reset password" => "Сбросить пароль",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " => "Mac OS X не поддерживается и %s не будет работать правильно на этой платформе. Используйте ее на свой страх и риск!",
"For the best results, please consider using a GNU/Linux server instead." => "Для достижения наилучших результатов, пожалуйста, рассмотрите возможность использовать взамен GNU/Linux сервер.",
"Personal" => "Личное",
"Users" => "Пользователи",
"Apps" => "Приложения",
@ -140,6 +149,7 @@ $TRANSLATIONS = array(
"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Ваша папка с данными и файлы возможно доступны из интернета потому что файл .htaccess не работает.",
"For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." => "Для информации, как правильно настроить Ваш сервер, пожалуйста загляните в <a hrev=\"%s\"target=\"blank\">документацию</a>.",
"Create an <strong>admin account</strong>" => "Создать <strong>учётную запись администратора</strong>",
"Storage & database" => "Система хранения данных & база данных",
"Data folder" => "Директория с данными",
"Configure the database" => "Настройка базы данных",
"will be used" => "будет использовано",
@ -162,6 +172,7 @@ $TRANSLATIONS = array(
"remember" => "запомнить",
"Log in" => "Войти",
"Alternative Logins" => "Альтернативные имена пользователя",
"Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" => "Здравствуйте,<br><br>просто даём вам знать, что %s открыл доступ к %s для вас.<br><a href=\"%s\">Посмотреть!</a><br><br>",
"This ownCloud instance is currently in single user mode." => "Эта установка ownCloud в настоящее время в однопользовательском режиме.",
"This means only administrators can use the instance." => "Это значит, что только администраторы могут использовать эту установку.",
"Contact your system administrator if this message persists or appeared unexpectedly." => "Обратитесь к вашему системному администратору если это сообщение не исчезает или появляется неожиданно.",

View File

@ -122,6 +122,8 @@ $TRANSLATIONS = array(
"To login page" => "Na prijavno stran",
"New password" => "Novo geslo",
"Reset password" => "Ponastavi geslo",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " => "Sistem Mac OS X ni podprt, zato %s ne bo deloval zanesljivo v tem okolju. Program uporabljate na lastno odgovornost! ",
"For the best results, please consider using a GNU/Linux server instead." => "Za najbolj še rezultate je priporočljivo uporabljati strežnik GNU/Linux.",
"Personal" => "Osebno",
"Users" => "Uporabniki",
"Apps" => "Programi",

View File

@ -111,7 +111,7 @@ $TRANSLATIONS = array(
"%s password reset" => "%s parola sıfırlama",
"A problem has occurred whilst sending the email, please contact your administrator." => "E-posta gönderilirken bir hata oluştu. Lütfen yönetinizle iletişime geçin.",
"Use the following link to reset your password: {link}" => "Parolanızı sıfırlamak için bu bağlantıyı kullanın: {link}",
"The link to reset your password has been sent to your email.<br>If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator ." => "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi.<br>Eğer makül bir süre içerisinde mesajı almadıysanız spam/junk dizinini kontrol ediniz.<br> Eğer orada da bulamazsanız sistem yöneticinize sorunuz.",
"The link to reset your password has been sent to your email.<br>If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator ." => "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi.<br>Eğer makül bir süre içerisinde mesajı almadıysanız spam/junk/gereksiz dizinini kontrol ediniz.<br> Eğer yine bulamazsanız sistem yöneticinize sorunuz.",
"Request failed!<br>Did you make sure your email/username was right?" => "İstek başarısız!<br>E-posta ve/veya kullanıcı adınızın doğru olduğundan emin misiniz?",
"You will receive a link to reset your password via Email." => "Parolanızı sıfırlamak için bir bağlantıyı e-posta olarak alacaksınız.",
"Username" => "Kullanıcı Adı",

View File

@ -20,7 +20,7 @@ class Controller {
$errors = array('errors' => $e);
if(count($e) > 0) {
$options = array_merge($post, $opts, $errors);
$options = array_merge($opts, $post, $errors);
$this->display($options);
}
else {
@ -28,7 +28,8 @@ class Controller {
}
}
else {
$this->display($opts);
$options = array_merge($opts, $post);
$this->display($options);
}
}
@ -41,6 +42,7 @@ class Controller {
'dbname' => '',
'dbtablespace' => '',
'dbhost' => '',
'dbtype' => '',
);
$parameters = array_merge($defaults, $post);

View File

@ -36,7 +36,7 @@
<body id="body-login">
<div class="wrapper"><!-- for sticky footer -->
<header><div id="header">
<div class='logo'></div>
<div class="logo svg"></div>
<div id="logo-claim" style="display:none;"><?php p($theme->getLogoClaim()); ?></div>
</div></header>

View File

@ -15,7 +15,7 @@
</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=1.0">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0">
<meta name="apple-itunes-app" content="app-id=543672169">
<link rel="shortcut icon" href="<?php print_unescaped(image_path('', 'favicon.png')); ?>" />
<link rel="apple-touch-icon-precomposed" href="<?php print_unescaped(image_path('', 'favicon-touch.png')); ?>" />
@ -46,7 +46,7 @@
</div>
<header><div id="header">
<a href="<?php print_unescaped(link_to('', 'index.php')); ?>" title="" id="owncloud">
<div class='logo-wide'></div>
<div class="logo-wide svg"></div>
</a>
<div id="logo-claim" style="display:none;"><?php p($theme->getLogoClaim()); ?></div>
<div id="settings" class="svg">

View File

@ -48,6 +48,9 @@ try {
require_once 'lib/base.php';
// load all apps to get all api routes properly setup
OC_App::loadApps();
\OC::$session->close();
$logger = \OC_Log::$object;

View File

@ -21,8 +21,6 @@
*
*/
$RUNTIME_NOAPPS = true; //no apps, yet
try {
require_once 'lib/base.php';

View File

@ -14,9 +14,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-26 01:55-0400\n"
"PO-Revision-Date: 2014-03-26 05:55+0000\n"
"Last-Translator: I Robot\n"
"POT-Creation-Date: 2014-03-28 01:55-0400\n"
"PO-Revision-Date: 2014-03-27 21:10+0000\n"
"Last-Translator: m23 <black23@gmail.com>\n"
"Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -436,18 +436,18 @@ msgstr "Cron"
#: templates/admin.php:167
#, php-format
msgid "Last cron was executed at %s."
msgstr ""
msgstr "Poslední cron byl spuštěn v %s."
#: templates/admin.php:170
#, php-format
msgid ""
"Last cron was executed at %s. This is more than an hour ago, something seems"
" wrong."
msgstr ""
msgstr "Poslední cron byl spuštěn v %s. To se stalo před více než hodinu. Vypadá to, že není něco v pořádku."
#: templates/admin.php:174
msgid "Cron was not executed yet!"
msgstr ""
msgstr "Cron ještě nebyl spuštěn!"
#: templates/admin.php:184
msgid "Execute one task with each page loaded"

View File

@ -21,9 +21,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-23 01:55-0400\n"
"PO-Revision-Date: 2014-03-22 18:40+0000\n"
"Last-Translator: Art O. Pal <artopal@fastmail.fm>\n"
"POT-Creation-Date: 2014-03-29 01:55-0400\n"
"PO-Revision-Date: 2014-03-28 06:06+0000\n"
"Last-Translator: victormce <victormce@gmail.com>\n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -31,24 +31,24 @@ msgstr ""
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ajax/share.php:88
#: ajax/share.php:87
msgid "Expiration date is in the past."
msgstr "La fecha de caducidad está en el pasado."
msgstr "Ha pasado la fecha de caducidad"
#: ajax/share.php:120 ajax/share.php:162
#: ajax/share.php:119 ajax/share.php:161
#, php-format
msgid "Couldn't send mail to following users: %s "
msgstr "No se pudo enviar el mensaje a los siguientes usuarios: %s"
#: ajax/update.php:11
#: ajax/update.php:10
msgid "Turned on maintenance mode"
msgstr "Modo mantenimiento activado"
#: ajax/update.php:14
#: ajax/update.php:13
msgid "Turned off maintenance mode"
msgstr "Modo mantenimiento desactivado"
#: ajax/update.php:17
#: ajax/update.php:16
msgid "Updated database"
msgstr "Base de datos actualizada"
@ -152,59 +152,59 @@ msgstr "Diciembre"
msgid "Settings"
msgstr "Ajustes"
#: js/js.js:496
#: js/js.js:543
msgid "Saving..."
msgstr "Guardando..."
#: js/js.js:995
#: js/js.js:1103
msgid "seconds ago"
msgstr "segundos antes"
#: js/js.js:996
#: js/js.js:1104
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] "Hace %n minuto"
msgstr[1] "Hace %n minutos"
#: js/js.js:997
#: js/js.js:1105
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] "Hace %n hora"
msgstr[1] "Hace %n horas"
#: js/js.js:998
#: js/js.js:1106
msgid "today"
msgstr "hoy"
#: js/js.js:999
#: js/js.js:1107
msgid "yesterday"
msgstr "ayer"
#: js/js.js:1000
#: js/js.js:1108
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] "Hace %n día"
msgstr[1] "Hace %n días"
#: js/js.js:1001
#: js/js.js:1109
msgid "last month"
msgstr "el mes pasado"
#: js/js.js:1002
#: js/js.js:1110
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] "Hace %n mes"
msgstr[1] "Hace %n meses"
#: js/js.js:1003
#: js/js.js:1111
msgid "months ago"
msgstr "meses antes"
#: js/js.js:1004
#: js/js.js:1112
msgid "last year"
msgstr "el año pasado"
#: js/js.js:1005
#: js/js.js:1113
msgid "years ago"
msgstr "años antes"
@ -467,7 +467,7 @@ msgstr "No hay etiquetas seleccionadas para borrar."
#: js/update.js:8
msgid "Please reload the page."
msgstr "Vuelva a cargar la página."
msgstr "Recargue/Actualice la página"
#: js/update.js:17
msgid ""
@ -547,14 +547,14 @@ msgstr "Nueva contraseña"
msgid "Reset password"
msgstr "Restablecer contraseña"
#: setup/controller.php:138
#: setup/controller.php:140
#, php-format
msgid ""
"Mac OS X is not supported and %s will not work properly on this platform. "
"Use it at your own risk! "
msgstr "Mac OS X no está soportado y %s no funcionará bien en esta plataforma. ¡Úsela a su propio riesgo! "
#: setup/controller.php:142
#: setup/controller.php:144
msgid ""
"For the best results, please consider using a GNU/Linux server instead."
msgstr "Para óptimos resultados, considere utilizar un servidor GNU/Linux."
@ -812,4 +812,4 @@ msgstr "Esta versión de owncloud se está actualizando, esto puede demorar un t
#: templates/update.user.php:4
msgid "Please reload this page after a short time to continue using ownCloud."
msgstr "Por favor , recargue esta instancia de onwcloud tras un corto periodo de tiempo y continue usándolo."
msgstr "Por favor, recargue la página tras un corto periodo de tiempo para continuar usando ownCloud"

View File

@ -11,9 +11,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-12 01:54-0400\n"
"PO-Revision-Date: 2014-03-11 15:20+0000\n"
"Last-Translator: Art O. Pal <artopal@fastmail.fm>\n"
"POT-Creation-Date: 2014-03-29 01:55-0400\n"
"PO-Revision-Date: 2014-03-28 06:16+0000\n"
"Last-Translator: victormce <victormce@gmail.com>\n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"

View File

@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-15 02:13-0400\n"
"PO-Revision-Date: 2014-03-15 05:40+0000\n"
"Last-Translator: I Robot\n"
"POT-Creation-Date: 2014-03-29 01:55-0400\n"
"PO-Revision-Date: 2014-03-28 06:24+0000\n"
"Last-Translator: victormce <victormce@gmail.com>\n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -33,11 +33,11 @@ msgstr "No se puede restaurar %s"
msgid "Deleted files"
msgstr "Archivos eliminados"
#: js/trash.js:16 js/trash.js:103 js/trash.js:152
#: js/trash.js:16 js/trash.js:108 js/trash.js:157
msgid "Error"
msgstr "Error"
#: lib/trashbin.php:853 lib/trashbin.php:855
#: lib/trashbin.php:859 lib/trashbin.php:861
msgid "restored"
msgstr "recuperado"

View File

@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-26 01:55-0400\n"
"PO-Revision-Date: 2014-03-26 05:55+0000\n"
"Last-Translator: I Robot\n"
"POT-Creation-Date: 2014-03-29 01:55-0400\n"
"PO-Revision-Date: 2014-03-28 19:40+0000\n"
"Last-Translator: mbouzada <mbouzada@gmail.com>\n"
"Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -66,7 +66,7 @@ msgid "Unable to load list from App Store"
msgstr "Non foi posíbel cargar a lista desde a App Store"
#: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17
#: ajax/togglegroups.php:20 changepassword/controller.php:55
#: ajax/togglegroups.php:20 changepassword/controller.php:49
msgid "Authentication error"
msgstr "Produciuse un erro de autenticación"
@ -128,32 +128,32 @@ msgstr "Non é posíbel eliminar o usuario do grupo %s"
msgid "Couldn't update app."
msgstr "Non foi posíbel actualizar o aplicativo."
#: changepassword/controller.php:20
#: changepassword/controller.php:17
msgid "Wrong password"
msgstr "Contrasinal incorrecto"
#: changepassword/controller.php:42
#: changepassword/controller.php:36
msgid "No user supplied"
msgstr "Non subministrado polo usuario"
#: changepassword/controller.php:74
#: changepassword/controller.php:68
msgid ""
"Please provide an admin recovery password, otherwise all user data will be "
"lost"
msgstr "Forneza un contrasinal de recuperación do administrador de recuperación, senón perderanse todos os datos do usuario"
#: changepassword/controller.php:79
#: changepassword/controller.php:73
msgid ""
"Wrong admin recovery password. Please check the password and try again."
msgstr "Contrasinal de recuperación do administrador incorrecto. Comprobe o contrasinal e tenteo de novo."
#: changepassword/controller.php:87
#: changepassword/controller.php:81
msgid ""
"Back-end doesn't support password change, but the users encryption key was "
"successfully updated."
msgstr "A infraestrutura non admite o cambio de contrasinal, mais a chave de cifrado dos usuarios foi actualizada correctamente."
#: changepassword/controller.php:92 changepassword/controller.php:103
#: changepassword/controller.php:86 changepassword/controller.php:97
msgid "Unable to change password"
msgstr "Non é posíbel cambiar o contrasinal"
@ -286,7 +286,7 @@ msgstr "Debe fornecer un contrasinal"
msgid "Warning: Home directory for user \"{user}\" already exists"
msgstr "Aviso: O directorio persoal para o usuario «{user}» xa existe"
#: personal.php:49 personal.php:50
#: personal.php:48 personal.php:49
msgid "__language_name__"
msgstr "Galego"
@ -431,18 +431,18 @@ msgstr "Cron"
#: templates/admin.php:167
#, php-format
msgid "Last cron was executed at %s."
msgstr ""
msgstr "O último «cron» executouse ás %s."
#: templates/admin.php:170
#, php-format
msgid ""
"Last cron was executed at %s. This is more than an hour ago, something seems"
" wrong."
msgstr ""
msgstr "O último «cron» executouse ás %s. Isto supón que pasou máis dunha hora. polo que semella que algo vai mal."
#: templates/admin.php:174
msgid "Cron was not executed yet!"
msgstr ""
msgstr "«Cron» aínda non foi executado!"
#: templates/admin.php:184
msgid "Execute one task with each page loaded"

View File

@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-26 01:55-0400\n"
"PO-Revision-Date: 2014-03-26 05:55+0000\n"
"Last-Translator: I Robot\n"
"POT-Creation-Date: 2014-03-28 01:55-0400\n"
"PO-Revision-Date: 2014-03-27 19:31+0000\n"
"Last-Translator: Flávio Veras <flaviove@gmail.com>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -431,18 +431,18 @@ msgstr "Cron"
#: templates/admin.php:167
#, php-format
msgid "Last cron was executed at %s."
msgstr ""
msgstr "Último cron foi executado em %s."
#: templates/admin.php:170
#, php-format
msgid ""
"Last cron was executed at %s. This is more than an hour ago, something seems"
" wrong."
msgstr ""
msgstr "Última cron foi executado em %s. Isso é, mais do que uma hora atrás, algo parece errado."
#: templates/admin.php:174
msgid "Cron was not executed yet!"
msgstr ""
msgstr "Cron não foi executado ainda!"
#: templates/admin.php:184
msgid "Execute one task with each page loaded"

View File

@ -13,6 +13,7 @@
# stushev, 2013
# eurekafag <rkfg@rkfg.me>, 2013
# sk.avenger <sk.avenger@adygnet.ru>, 2013
# Swab <swab@i.ua>, 2014
# Victor Bravo <>, 2013
# vsapronov <vladimir.sapronov@gmail.com>, 2013
# not_your_conscience <hex.void@gmail.com>, 2013
@ -23,9 +24,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-22 01:55-0400\n"
"PO-Revision-Date: 2014-03-22 05:55+0000\n"
"Last-Translator: I Robot\n"
"POT-Creation-Date: 2014-03-28 01:55-0400\n"
"PO-Revision-Date: 2014-03-27 14:31+0000\n"
"Last-Translator: Swab <swab@i.ua>\n"
"Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -35,7 +36,7 @@ msgstr ""
#: ajax/share.php:88
msgid "Expiration date is in the past."
msgstr ""
msgstr "Дата истечения срока действия в прошлом."
#: ajax/share.php:120 ajax/share.php:162
#, php-format
@ -281,23 +282,23 @@ msgstr "Ошибка при загрузке шаблона существующ
#: js/setup.js:84
msgid "Very weak password"
msgstr ""
msgstr "Очень слабый пароль"
#: js/setup.js:85
msgid "Weak password"
msgstr ""
msgstr "Слабый пароль"
#: js/setup.js:86
msgid "So-so password"
msgstr ""
msgstr "Так себе пароль"
#: js/setup.js:87
msgid "Good password"
msgstr ""
msgstr "Хороший пароль"
#: js/setup.js:88
msgid "Strong password"
msgstr ""
msgstr "Устойчивый к взлому пароль"
#: js/share.js:51 js/share.js:66 js/share.js:106
msgid "Shared"
@ -496,7 +497,7 @@ msgstr "%s сброс пароля"
msgid ""
"A problem has occurred whilst sending the email, please contact your "
"administrator."
msgstr ""
msgstr "Произошла ошибка при отправке сообщения электронной почты, пожалуйста, свяжитесь с Вашим администратором."
#: lostpassword/templates/email.php:2
msgid "Use the following link to reset your password: {link}"
@ -559,12 +560,12 @@ msgstr "Сбросить пароль"
msgid ""
"Mac OS X is not supported and %s will not work properly on this platform. "
"Use it at your own risk! "
msgstr ""
msgstr "Mac OS X не поддерживается и %s не будет работать правильно на этой платформе. Используйте ее на свой страх и риск!"
#: setup/controller.php:142
msgid ""
"For the best results, please consider using a GNU/Linux server instead."
msgstr ""
msgstr "Для достижения наилучших результатов, пожалуйста, рассмотрите возможность использовать взамен GNU/Linux сервер."
#: strings.php:5
msgid "Personal"
@ -686,7 +687,7 @@ msgstr "Создать <strong>учётную запись администра
#: templates/installation.php:70
msgid "Storage & database"
msgstr ""
msgstr "Система хранения данных & база данных"
#: templates/installation.php:77
msgid "Data folder"
@ -787,7 +788,7 @@ msgstr "Альтернативные имена пользователя"
msgid ""
"Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> "
"with you.<br><a href=\"%s\">View it!</a><br><br>"
msgstr ""
msgstr "Здравствуйте,<br><br>просто даём вам знать, что %s открыл доступ к %s для вас.<br><a href=\"%s\">Посмотреть!</a><br><br>"
#: templates/singleuser.user.php:3
msgid "This ownCloud instance is currently in single user mode."

View File

@ -8,6 +8,7 @@
# jekader <jekader@gmail.com>, 2013
# mogarych <mogarych@mail.ru>, 2014
# eurekafag <rkfg@rkfg.me>, 2013
# Swab <swab@i.ua>, 2014
# Victor Bravo <>, 2013
# vsapronov <vladimir.sapronov@gmail.com>, 2013
# not_your_conscience <hex.void@gmail.com>, 2013
@ -18,9 +19,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n"
"PO-Revision-Date: 2014-03-26 06:01+0000\n"
"Last-Translator: I Robot\n"
"POT-Creation-Date: 2014-03-28 01:55-0400\n"
"PO-Revision-Date: 2014-03-27 14:22+0000\n"
"Last-Translator: Swab <swab@i.ua>\n"
"Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -45,7 +46,7 @@ msgstr "Имя файла не может быть пустым."
#: ajax/newfile.php:63
#, php-format
msgid "\"%s\" is an invalid file name."
msgstr ""
msgstr "\"%s\" это не правильное имя файла."
#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105
msgid ""
@ -56,7 +57,7 @@ msgstr "Неправильное имя: символы '\\', '/', '<', '>', ':'
#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141
#: lib/app.php:65
msgid "The target folder has been moved or deleted."
msgstr ""
msgstr "Целевой каталог был перемещен или удален."
#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74
#, php-format
@ -160,12 +161,12 @@ msgstr "Невозможно загрузить {filename}, так как это
#: js/file-upload.js:258
msgid "Total file size {size1} exceeds upload limit {size2}"
msgstr ""
msgstr "Полный размер файла {size1} превышает лимит по загрузке {size2}"
#: js/file-upload.js:268
msgid ""
"Not enough free space, you are uploading {size1} but only {size2} is left"
msgstr ""
msgstr "Не достаточно свободного места, Вы загружаете {size1} но осталось только {size2}"
#: js/file-upload.js:340
msgid "Upload cancelled."
@ -263,7 +264,7 @@ msgstr[2] "Закачка %n файлов"
#: js/files.js:96
msgid "\"{name}\" is an invalid file name."
msgstr ""
msgstr "\"{name}\" это не правильное имя файла."
#: js/files.js:117
msgid "Your storage is full, files can not be updated or synced anymore!"

View File

@ -8,15 +8,16 @@
# lord93 <lordakryl@gmail.com>, 2013
# jekader <jekader@gmail.com>, 2013
# eurekafag <rkfg@rkfg.me>, 2013
# Swab <swab@i.ua>, 2014
# Victor Bravo <>, 2013
# vsapronov <vladimir.sapronov@gmail.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-11 01:54-0400\n"
"PO-Revision-Date: 2014-03-11 05:55+0000\n"
"Last-Translator: I Robot\n"
"POT-Creation-Date: 2014-03-28 01:55-0400\n"
"PO-Revision-Date: 2014-03-27 14:31+0000\n"
"Last-Translator: Swab <swab@i.ua>\n"
"Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -108,7 +109,7 @@ msgstr "Начато начальное шифрование... Это може
#: js/detect-migration.js:25
msgid "Initial encryption running... Please try again later."
msgstr ""
msgstr "Работает первоначальное шифрование... Пожалуйста, повторите попытку позже."
#: templates/invalid_private_key.php:8
msgid "Go directly to your "

View File

@ -3,13 +3,14 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Swab <swab@i.ua>, 2014
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-11 01:54-0400\n"
"PO-Revision-Date: 2014-03-11 05:55+0000\n"
"Last-Translator: I Robot\n"
"POT-Creation-Date: 2014-03-28 01:55-0400\n"
"PO-Revision-Date: 2014-03-27 14:41+0000\n"
"Last-Translator: Swab <swab@i.ua>\n"
"Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -39,22 +40,22 @@ msgstr "Ошибка при настройке хранилища Google Drive"
#: js/settings.js:313 js/settings.js:320
msgid "Saved"
msgstr ""
msgstr "Сохранено"
#: lib/config.php:512
#: lib/config.php:654
msgid ""
"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares "
"is not possible. Please ask your system administrator to install it."
msgstr "<b>Внимание:</b> \"smbclient\" не установлен. Подключение по CIFS/SMB невозможно. Пожалуйста, обратитесь к системному администратору, чтобы установить его."
#: lib/config.php:516
#: lib/config.php:658
msgid ""
"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting"
" of FTP shares is not possible. Please ask your system administrator to "
"install it."
msgstr "<b>Внимание:</b> Поддержка FTP не включена в PHP. Подключение по FTP невозможно. Пожалуйста, обратитесь к системному администратору, чтобы включить."
#: lib/config.php:519
#: lib/config.php:661
msgid ""
"<b>Warning:</b> The Curl support in PHP is not enabled or installed. "
"Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask "
@ -116,7 +117,7 @@ msgstr "Включить пользовательские внешние нос
#: templates/settings.php:130
msgid "Allow users to mount the following external storage"
msgstr ""
msgstr "Разрешить пользователям монтировать следующую внешнюю систему хранения данных"
#: templates/settings.php:147
msgid "SSL root certificates"

View File

@ -22,8 +22,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-26 01:55-0400\n"
"PO-Revision-Date: 2014-03-26 05:55+0000\n"
"POT-Creation-Date: 2014-03-28 01:55-0400\n"
"PO-Revision-Date: 2014-03-27 14:41+0000\n"
"Last-Translator: I Robot\n"
"Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n"
"MIME-Version: 1.0\n"
@ -39,7 +39,7 @@ msgstr ""
#: admin/controller.php:73
msgid "Saved"
msgstr ""
msgstr "Сохранено"
#: admin/controller.php:90
msgid "test email settings"
@ -232,23 +232,23 @@ msgstr "Выберите картинку профиля"
#: js/personal.js:277
msgid "Very weak password"
msgstr ""
msgstr "Очень слабый пароль"
#: js/personal.js:278
msgid "Weak password"
msgstr ""
msgstr "Слабый пароль"
#: js/personal.js:279
msgid "So-so password"
msgstr ""
msgstr "Так себе пароль"
#: js/personal.js:280
msgid "Good password"
msgstr ""
msgstr "Хороший пароль"
#: js/personal.js:281
msgid "Strong password"
msgstr ""
msgstr "Устойчивый к взлому пароль"
#: js/personal.js:316
msgid "Decrypting files... Please wait, this can take some time."

View File

@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-22 01:55-0400\n"
"PO-Revision-Date: 2014-03-22 05:55+0000\n"
"Last-Translator: I Robot\n"
"POT-Creation-Date: 2014-03-30 01:55-0400\n"
"PO-Revision-Date: 2014-03-29 20:30+0000\n"
"Last-Translator: mateju <>\n"
"Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -19,24 +19,24 @@ msgstr ""
"Language: sl\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#: ajax/share.php:88
#: ajax/share.php:87
msgid "Expiration date is in the past."
msgstr "Datum preteka je v preteklosti."
#: ajax/share.php:120 ajax/share.php:162
#: ajax/share.php:119 ajax/share.php:161
#, php-format
msgid "Couldn't send mail to following users: %s "
msgstr "Ni mogoče poslati sporočila za: %s"
#: ajax/update.php:11
#: ajax/update.php:10
msgid "Turned on maintenance mode"
msgstr "Vzdrževalni način je omogočen"
#: ajax/update.php:14
#: ajax/update.php:13
msgid "Turned off maintenance mode"
msgstr "Vzdrževalni način je onemogočen"
#: ajax/update.php:17
#: ajax/update.php:16
msgid "Updated database"
msgstr "Posodobljena podatkovna zbirka"
@ -140,15 +140,15 @@ msgstr "december"
msgid "Settings"
msgstr "Nastavitve"
#: js/js.js:496
#: js/js.js:543
msgid "Saving..."
msgstr "Poteka shranjevanje ..."
#: js/js.js:995
#: js/js.js:1103
msgid "seconds ago"
msgstr "pred nekaj sekundami"
#: js/js.js:996
#: js/js.js:1104
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] "pred %n minuto"
@ -156,7 +156,7 @@ msgstr[1] "pred %n minutama"
msgstr[2] "pred %n minutami"
msgstr[3] "pred %n minutami"
#: js/js.js:997
#: js/js.js:1105
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] "pred %n uro"
@ -164,15 +164,15 @@ msgstr[1] "pred %n urama"
msgstr[2] "pred %n urami"
msgstr[3] "pred %n urami"
#: js/js.js:998
#: js/js.js:1106
msgid "today"
msgstr "danes"
#: js/js.js:999
#: js/js.js:1107
msgid "yesterday"
msgstr "včeraj"
#: js/js.js:1000
#: js/js.js:1108
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] "pred %n dnevom"
@ -180,11 +180,11 @@ msgstr[1] "pred %n dnevoma"
msgstr[2] "pred %n dnevi"
msgstr[3] "pred %n dnevi"
#: js/js.js:1001
#: js/js.js:1109
msgid "last month"
msgstr "zadnji mesec"
#: js/js.js:1002
#: js/js.js:1110
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] "pred %n mesecem"
@ -192,15 +192,15 @@ msgstr[1] "pred %n mesecema"
msgstr[2] "pred %n meseci"
msgstr[3] "pred %n meseci"
#: js/js.js:1003
#: js/js.js:1111
msgid "months ago"
msgstr "mesecev nazaj"
#: js/js.js:1004
#: js/js.js:1112
msgid "last year"
msgstr "lansko leto"
#: js/js.js:1005
#: js/js.js:1113
msgid "years ago"
msgstr "let nazaj"
@ -545,17 +545,17 @@ msgstr "Novo geslo"
msgid "Reset password"
msgstr "Ponastavi geslo"
#: setup/controller.php:138
#: setup/controller.php:140
#, php-format
msgid ""
"Mac OS X is not supported and %s will not work properly on this platform. "
"Use it at your own risk! "
msgstr ""
msgstr "Sistem Mac OS X ni podprt, zato %s ne bo deloval zanesljivo v tem okolju. Program uporabljate na lastno odgovornost! "
#: setup/controller.php:142
#: setup/controller.php:144
msgid ""
"For the best results, please consider using a GNU/Linux server instead."
msgstr ""
msgstr "Za najbolj še rezultate je priporočljivo uporabljati strežnik GNU/Linux."
#: strings.php:5
msgid "Personal"

View File

@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-26 01:55-0400\n"
"PO-Revision-Date: 2014-03-26 05:55+0000\n"
"Last-Translator: I Robot\n"
"POT-Creation-Date: 2014-03-30 01:55-0400\n"
"PO-Revision-Date: 2014-03-29 20:50+0000\n"
"Last-Translator: mateju <>\n"
"Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -22,7 +22,7 @@ msgstr ""
#: admin/controller.php:66
#, php-format
msgid "Invalid value supplied for %s"
msgstr ""
msgstr "Navedena je napačna vrednost za %s"
#: admin/controller.php:73
msgid "Saved"
@ -66,7 +66,7 @@ msgid "Unable to load list from App Store"
msgstr "Ni mogoče naložiti seznama iz programskega središča"
#: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17
#: ajax/togglegroups.php:20 changepassword/controller.php:55
#: ajax/togglegroups.php:20 changepassword/controller.php:49
msgid "Authentication error"
msgstr "Napaka med overjanjem"
@ -128,32 +128,32 @@ msgstr "Uporabnika ni mogoče odstraniti iz skupine %s"
msgid "Couldn't update app."
msgstr "Programa ni mogoče posodobiti."
#: changepassword/controller.php:20
#: changepassword/controller.php:17
msgid "Wrong password"
msgstr "Napačno geslo"
#: changepassword/controller.php:42
#: changepassword/controller.php:36
msgid "No user supplied"
msgstr "Ni navedenega uporabnika"
#: changepassword/controller.php:74
#: changepassword/controller.php:68
msgid ""
"Please provide an admin recovery password, otherwise all user data will be "
"lost"
msgstr "Podati je treba skrbniško obnovitveno geslo, sicer bodo vsi uporabniški podatki izgubljeni."
#: changepassword/controller.php:79
#: changepassword/controller.php:73
msgid ""
"Wrong admin recovery password. Please check the password and try again."
msgstr "Napačno navedeno skrbniško obnovitveno geslo. Preverite geslo in poskusite znova."
#: changepassword/controller.php:87
#: changepassword/controller.php:81
msgid ""
"Back-end doesn't support password change, but the users encryption key was "
"successfully updated."
msgstr "Hrbtišče programa ne podpira spreminjanja gesla, je pa uspešno posodobljeno uporabniško šifriranje."
#: changepassword/controller.php:92 changepassword/controller.php:103
#: changepassword/controller.php:86 changepassword/controller.php:97
msgid "Unable to change password"
msgstr "Ni mogoče spremeniti gesla"
@ -286,7 +286,7 @@ msgstr "Navedeno mora biti veljavno geslo"
msgid "Warning: Home directory for user \"{user}\" already exists"
msgstr "Opozorilo: osebna mapa uporabnika \"{user}\" že obstaja"
#: personal.php:49 personal.php:50
#: personal.php:48 personal.php:49
msgid "__language_name__"
msgstr "Slovenščina"

View File

@ -4,14 +4,14 @@
#
# Translators:
# barbarak <barbarak@arnes.si>, 2013
# mateju <>, 2013
# mateju <>, 2013-2014
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n"
"PO-Revision-Date: 2014-03-26 06:01+0000\n"
"Last-Translator: I Robot\n"
"POT-Creation-Date: 2014-03-30 01:55-0400\n"
"PO-Revision-Date: 2014-03-29 20:50+0000\n"
"Last-Translator: mateju <>\n"
"Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -417,7 +417,7 @@ msgstr "Povezava član-skupina"
#: templates/settings.php:39
msgid "Nested Groups"
msgstr ""
msgstr "Gnezdene skupine"
#: templates/settings.php:39
msgid ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n"
"POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,24 +18,24 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
#: ajax/share.php:88
#: ajax/share.php:87
msgid "Expiration date is in the past."
msgstr ""
#: ajax/share.php:120 ajax/share.php:162
#: ajax/share.php:119 ajax/share.php:161
#, php-format
msgid "Couldn't send mail to following users: %s "
msgstr ""
#: ajax/update.php:11
#: ajax/update.php:10
msgid "Turned on maintenance mode"
msgstr ""
#: ajax/update.php:14
#: ajax/update.php:13
msgid "Turned off maintenance mode"
msgstr ""
#: ajax/update.php:17
#: ajax/update.php:16
msgid "Updated database"
msgstr ""
@ -139,59 +139,59 @@ msgstr ""
msgid "Settings"
msgstr ""
#: js/js.js:496
#: js/js.js:543
msgid "Saving..."
msgstr ""
#: js/js.js:995
#: js/js.js:1103
msgid "seconds ago"
msgstr ""
#: js/js.js:996
#: js/js.js:1104
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] ""
msgstr[1] ""
#: js/js.js:997
#: js/js.js:1105
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] ""
msgstr[1] ""
#: js/js.js:998
#: js/js.js:1106
msgid "today"
msgstr ""
#: js/js.js:999
#: js/js.js:1107
msgid "yesterday"
msgstr ""
#: js/js.js:1000
#: js/js.js:1108
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] ""
msgstr[1] ""
#: js/js.js:1001
#: js/js.js:1109
msgid "last month"
msgstr ""
#: js/js.js:1002
#: js/js.js:1110
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] ""
msgstr[1] ""
#: js/js.js:1003
#: js/js.js:1111
msgid "months ago"
msgstr ""
#: js/js.js:1004
#: js/js.js:1112
msgid "last year"
msgstr ""
#: js/js.js:1005
#: js/js.js:1113
msgid "years ago"
msgstr ""
@ -534,14 +534,14 @@ msgstr ""
msgid "Reset password"
msgstr ""
#: setup/controller.php:138
#: setup/controller.php:140
#, php-format
msgid ""
"Mac OS X is not supported and %s will not work properly on this platform. "
"Use it at your own risk! "
msgstr ""
#: setup/controller.php:142
#: setup/controller.php:144
msgid "For the best results, please consider using a GNU/Linux server instead."
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n"
"POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -193,15 +193,15 @@ msgstr ""
msgid "Error fetching URL"
msgstr ""
#: js/fileactions.js:149
#: js/fileactions.js:164
msgid "Share"
msgstr ""
#: js/fileactions.js:162
#: js/fileactions.js:177
msgid "Delete permanently"
msgstr ""
#: js/fileactions.js:223
#: js/fileactions.js:238
msgid "Rename"
msgstr ""
@ -225,13 +225,13 @@ msgstr ""
msgid "Error deleting file."
msgstr ""
#: js/filelist.js:687 js/filelist.js:761 js/files.js:691
#: js/filelist.js:687 js/filelist.js:761 js/files.js:694
msgid "%n folder"
msgid_plural "%n folders"
msgstr[0] ""
msgstr[1] ""
#: js/filelist.js:688 js/filelist.js:762 js/files.js:697
#: js/filelist.js:688 js/filelist.js:762 js/files.js:700
msgid "%n file"
msgid_plural "%n files"
msgstr[0] ""
@ -277,29 +277,29 @@ msgid ""
"your personal settings to decrypt your files."
msgstr ""
#: js/files.js:379
#: js/files.js:382
msgid ""
"Your download is being prepared. This might take some time if the files are "
"big."
msgstr ""
#: js/files.js:610 js/files.js:654
#: js/files.js:613 js/files.js:657
msgid "Error moving file"
msgstr ""
#: js/files.js:610 js/files.js:654
#: js/files.js:613 js/files.js:657
msgid "Error"
msgstr ""
#: js/files.js:672 templates/index.php:68
#: js/files.js:675 templates/index.php:68
msgid "Name"
msgstr ""
#: js/files.js:673 templates/index.php:80
#: js/files.js:676 templates/index.php:80
msgid "Size"
msgstr ""
#: js/files.js:674 templates/index.php:82
#: js/files.js:677 templates/index.php:82
msgid "Modified"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n"
"POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n"
"POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -37,24 +37,24 @@ msgstr ""
msgid "Error configuring Google Drive storage"
msgstr ""
#: js/settings.js:313 js/settings.js:320
#: js/settings.js:318 js/settings.js:325
msgid "Saved"
msgstr ""
#: lib/config.php:646
#: lib/config.php:654
msgid ""
"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares "
"is not possible. Please ask your system administrator to install it."
msgstr ""
#: lib/config.php:650
#: lib/config.php:658
msgid ""
"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting "
"of FTP shares is not possible. Please ask your system administrator to "
"install it."
msgstr ""
#: lib/config.php:653
#: lib/config.php:661
msgid ""
"<b>Warning:</b> The Curl support in PHP is not enabled or installed. "
"Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask "
@ -89,39 +89,39 @@ msgstr ""
msgid "Add storage"
msgstr ""
#: templates/settings.php:90
#: templates/settings.php:93
msgid "None set"
msgstr ""
#: templates/settings.php:91
#: templates/settings.php:94
msgid "All Users"
msgstr ""
#: templates/settings.php:92
#: templates/settings.php:95
msgid "Groups"
msgstr ""
#: templates/settings.php:100
#: templates/settings.php:103
msgid "Users"
msgstr ""
#: templates/settings.php:113 templates/settings.php:114
#: templates/settings.php:155 templates/settings.php:156
#: templates/settings.php:116 templates/settings.php:117
#: templates/settings.php:158 templates/settings.php:159
msgid "Delete"
msgstr ""
#: templates/settings.php:127
#: templates/settings.php:130
msgid "Enable User External Storage"
msgstr ""
#: templates/settings.php:130
#: templates/settings.php:133
msgid "Allow users to mount the following external storage"
msgstr ""
#: templates/settings.php:147
#: templates/settings.php:150
msgid "SSL root certificates"
msgstr ""
#: templates/settings.php:165
#: templates/settings.php:168
msgid "Import Root Certificate"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n"
"POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n"
"POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -31,7 +31,7 @@ msgstr ""
msgid "Deleted files"
msgstr ""
#: js/trash.js:16 js/trash.js:103 js/trash.js:152
#: js/trash.js:16 js/trash.js:108 js/trash.js:157
msgid "Error"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n"
"POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -22,22 +22,22 @@ msgstr ""
msgid "Could not revert: %s"
msgstr ""
#: js/versions.js:14
#: js/versions.js:39
msgid "Versions"
msgstr ""
#: js/versions.js:60
#: js/versions.js:61
msgid "Failed to revert {file} to revision {timestamp}."
msgstr ""
#: js/versions.js:87
#: js/versions.js:88
msgid "More versions..."
msgstr ""
#: js/versions.js:125
#: js/versions.js:126
msgid "No other versions available"
msgstr ""
#: js/versions.js:155
#: js/versions.js:156
msgid "Restore"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n"
"POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -66,23 +66,23 @@ msgstr ""
msgid "web services under your control"
msgstr ""
#: private/files.php:231
#: private/files.php:232
msgid "ZIP download is turned off."
msgstr ""
#: private/files.php:232
#: private/files.php:233
msgid "Files need to be downloaded one by one."
msgstr ""
#: private/files.php:233 private/files.php:261
#: private/files.php:234 private/files.php:262
msgid "Back to Files"
msgstr ""
#: private/files.php:258
#: private/files.php:259
msgid "Selected files too large to generate zip file."
msgstr ""
#: private/files.php:259
#: private/files.php:260
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n"
"POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -66,23 +66,23 @@ msgstr ""
msgid "web services under your control"
msgstr ""
#: files.php:231
#: files.php:232
msgid "ZIP download is turned off."
msgstr ""
#: files.php:232
#: files.php:233
msgid "Files need to be downloaded one by one."
msgstr ""
#: files.php:233 files.php:261
#: files.php:234 files.php:262
msgid "Back to Files"
msgstr ""
#: files.php:258
#: files.php:259
msgid "Selected files too large to generate zip file."
msgstr ""
#: files.php:259
#: files.php:260
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n"
"POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -64,7 +64,7 @@ msgid "Unable to load list from App Store"
msgstr ""
#: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17
#: ajax/togglegroups.php:20 changepassword/controller.php:55
#: ajax/togglegroups.php:20 changepassword/controller.php:49
msgid "Authentication error"
msgstr ""
@ -126,31 +126,31 @@ msgstr ""
msgid "Couldn't update app."
msgstr ""
#: changepassword/controller.php:20
#: changepassword/controller.php:17
msgid "Wrong password"
msgstr ""
#: changepassword/controller.php:42
#: changepassword/controller.php:36
msgid "No user supplied"
msgstr ""
#: changepassword/controller.php:74
#: changepassword/controller.php:68
msgid ""
"Please provide an admin recovery password, otherwise all user data will be "
"lost"
msgstr ""
#: changepassword/controller.php:79
#: changepassword/controller.php:73
msgid "Wrong admin recovery password. Please check the password and try again."
msgstr ""
#: changepassword/controller.php:87
#: changepassword/controller.php:81
msgid ""
"Back-end doesn't support password change, but the users encryption key was "
"successfully updated."
msgstr ""
#: changepassword/controller.php:92 changepassword/controller.php:103
#: changepassword/controller.php:86 changepassword/controller.php:97
msgid "Unable to change password"
msgstr ""
@ -283,7 +283,7 @@ msgstr ""
msgid "Warning: Home directory for user \"{user}\" already exists"
msgstr ""
#: personal.php:49 personal.php:50
#: personal.php:48 personal.php:49
msgid "__language_name__"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n"
"POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n"
"POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-24 01:55-0400\n"
"PO-Revision-Date: 2014-03-23 13:20+0000\n"
"POT-Creation-Date: 2014-03-28 01:55-0400\n"
"PO-Revision-Date: 2014-03-27 19:31+0000\n"
"Last-Translator: volkangezer <volkangezer@gmail.com>\n"
"Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n"
"MIME-Version: 1.0\n"
@ -490,7 +490,7 @@ msgid ""
"The link to reset your password has been sent to your email.<br>If you do "
"not receive it within a reasonable amount of time, check your spam/junk "
"folders.<br>If it is not there ask your local administrator ."
msgstr "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi.<br>Eğer makül bir süre içerisinde mesajı almadıysanız spam/junk dizinini kontrol ediniz.<br> Eğer orada da bulamazsanız sistem yöneticinize sorunuz."
msgstr "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi.<br>Eğer makül bir süre içerisinde mesajı almadıysanız spam/junk/gereksiz dizinini kontrol ediniz.<br> Eğer yine bulamazsanız sistem yöneticinize sorunuz."
#: lostpassword/templates/lostpassword.php:15
msgid "Request failed!<br>Did you make sure your email/username was right?"

View File

@ -11,9 +11,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-26 01:55-0400\n"
"PO-Revision-Date: 2014-03-26 05:55+0000\n"
"Last-Translator: I Robot\n"
"POT-Creation-Date: 2014-03-28 01:55-0400\n"
"PO-Revision-Date: 2014-03-27 19:31+0000\n"
"Last-Translator: volkangezer <volkangezer@gmail.com>\n"
"Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -433,18 +433,18 @@ msgstr "Cron"
#: templates/admin.php:167
#, php-format
msgid "Last cron was executed at %s."
msgstr ""
msgstr "Son cron %s zamanında çalıştırıldı."
#: templates/admin.php:170
#, php-format
msgid ""
"Last cron was executed at %s. This is more than an hour ago, something seems"
" wrong."
msgstr ""
msgstr "Son cron %s zamanında çalıştırıldı. Bu bir saatten daha uzun bir süre, bir şeyler yanlış gibi görünüyor."
#: templates/admin.php:174
msgid "Cron was not executed yet!"
msgstr ""
msgstr "Cron henüz çalıştırılmadı!"
#: templates/admin.php:184
msgid "Execute one task with each page loaded"

View File

@ -549,16 +549,10 @@ class OC {
OC_User::logout();
}
// Load Apps
// This includes plugins for users and filesystems as well
global $RUNTIME_NOAPPS;
global $RUNTIME_APPTYPES;
if (!$RUNTIME_NOAPPS && !self::checkUpgrade(false)) {
if ($RUNTIME_APPTYPES) {
OC_App::loadApps($RUNTIME_APPTYPES);
} else {
OC_App::loadApps();
}
// Load minimum set of apps - which is filesystem, authentication and logging
if (!self::checkUpgrade(false)) {
OC_App::loadApps(array('authentication'));
OC_App::loadApps(array('filesystem', 'logging'));
}
//setup extra user backends
@ -659,10 +653,10 @@ class OC {
*/
public static function registerShareHooks() {
if (\OC_Config::getValue('installed')) {
OC_Hook::connect('OC_User', 'post_deleteUser', 'OCP\Share', 'post_deleteUser');
OC_Hook::connect('OC_User', 'post_addToGroup', 'OCP\Share', 'post_addToGroup');
OC_Hook::connect('OC_User', 'post_removeFromGroup', 'OCP\Share', 'post_removeFromGroup');
OC_Hook::connect('OC_User', 'post_deleteGroup', 'OCP\Share', 'post_deleteGroup');
OC_Hook::connect('OC_User', 'post_deleteUser', 'OC\Share\Hooks', 'post_deleteUser');
OC_Hook::connect('OC_User', 'post_addToGroup', 'OC\Share\Hooks', 'post_addToGroup');
OC_Hook::connect('OC_User', 'post_removeFromGroup', 'OC\Share\Hooks', 'post_removeFromGroup');
OC_Hook::connect('OC_User', 'post_deleteGroup', 'OC\Share\Hooks', 'post_deleteGroup');
}
}
@ -851,7 +845,7 @@ class OC {
) {
return false;
}
OC_App::loadApps(array('authentication'));
if (defined("DEBUG") && DEBUG) {
OC_Log::write('core', 'Trying to login from cookie', OC_Log::DEBUG);
}
@ -923,7 +917,7 @@ class OC {
) {
return false;
}
OC_App::loadApps(array('authentication'));
if (OC_User::login($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"])) {
//OC_Log::write('core',"Logged in with HTTP Authentication", OC_Log::DEBUG);
OC_User::unsetMagicInCookie();
@ -934,11 +928,6 @@ class OC {
}
// define runtime variables - unless this already has been done
if (!isset($RUNTIME_NOAPPS)) {
$RUNTIME_NOAPPS = false;
}
if (!function_exists('get_temp_dir')) {
function get_temp_dir() {
if ($temp = ini_get('upload_tmp_dir')) return $temp;
@ -957,4 +946,3 @@ if (!function_exists('get_temp_dir')) {
}
OC::init();

View File

@ -1,6 +1,7 @@
<?php
/**
* Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl>
* Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
@ -10,22 +11,22 @@ namespace OC\Cache;
class File {
protected $storage;
/**
* Returns the cache storage for the logged in user
* @return cache storage
*/
protected function getStorage() {
if (isset($this->storage)) {
return $this->storage;
}
if(\OC_User::isLoggedIn()) {
\OC\Files\Filesystem::initMountPoints(\OC_User::getUser());
$subdir = 'cache';
$view = new \OC\Files\View('/' . \OC_User::getUser());
if(!$view->file_exists($subdir)) {
$view->mkdir($subdir);
}
$this->storage = new \OC\Files\View('/' . \OC_User::getUser().'/'.$subdir);
$this->storage = new \OC\Files\View('/' . \OC_User::getUser() . '/cache');
return $this->storage;
}else{
\OC_Log::write('core', 'Can\'t get cache storage, user not logged in', \OC_Log::ERROR);
return false;
throw new \OC\ForbiddenException('Can\t get cache storage, user not logged in');
}
}

View File

@ -8,6 +8,11 @@
/**
* small wrapper around \Doctrine\DBAL\Driver\Statement to make it behave, more like an MDB2 Statement
*
* @method boolean bindValue(mixed $param, mixed $value, integer $type = null);
* @method string errorCode();
* @method array errorInfo();
* @method integer rowCount();
*/
class OC_DB_StatementWrapper {
/**
@ -161,6 +166,8 @@ class OC_DB_StatementWrapper {
/**
* provide an alias for fetch
*
* @return mixed
*/
public function fetchRow() {
return $this->statement->fetch();
@ -168,12 +175,13 @@ class OC_DB_StatementWrapper {
/**
* Provide a simple fetchOne.
*
* fetch single column from the next row
* @param int $colnum the column number to fetch
* @param int $column the column number to fetch
* @return string
*/
public function fetchOne($colnum = 0) {
return $this->statement->fetchColumn($colnum);
public function fetchOne($column = 0) {
return $this->statement->fetchColumn($column);
}
/**

View File

@ -321,10 +321,35 @@ class Filesystem {
self::mount('\OC\Files\Storage\Local', array('datadir' => $root), $user);
}
self::mountCacheDir($user);
// Chance to mount for other storages
\OC_Hook::emit('OC_Filesystem', 'post_initMountPoints', array('user' => $user, 'user_dir' => $root));
}
/**
* Mounts the cache directory
* @param string $user user name
*/
private static function mountCacheDir($user) {
$cacheBaseDir = \OC_Config::getValue('cache_path', '');
if ($cacheBaseDir === '') {
// use local cache dir relative to the user's home
$subdir = 'cache';
$view = new \OC\Files\View('/' . $user);
if(!$view->file_exists($subdir)) {
$view->mkdir($subdir);
}
} else {
$cacheDir = rtrim($cacheBaseDir, '/') . '/' . $user;
if (!file_exists($cacheDir)) {
mkdir($cacheDir, 0770, true);
}
// mount external cache dir to "/$user/cache" mount point
self::mount('\OC\Files\Storage\Local', array('datadir' => $cacheDir), '/' . $user . '/cache');
}
}
/**
* get the default filesystem view
*

View File

@ -160,8 +160,7 @@ abstract class Common implements \OC\Files\Storage\Storage {
public function hash($type, $path, $raw = false) {
$tmpFile = $this->getLocalFile($path);
$hash = hash($type, $tmpFile, $raw);
unlink($tmpFile);
$hash = hash_file($type, $tmpFile, $raw);
return $hash;
}

View File

@ -256,7 +256,7 @@ if (\OC_Util::runningOnWindows()) {
return 0;
}
public function hash($path, $type, $raw = false) {
public function hash($type, $path, $raw = false) {
return hash_file($type, $this->datadir . $path, $raw);
}

View File

@ -276,7 +276,7 @@ class MappedLocal extends \OC\Files\Storage\Common{
return 0;
}
public function hash($path, $type, $raw=false) {
public function hash($type, $path, $raw=false) {
return hash_file($type, $this->buildPath($path), $raw);
}

View File

@ -0,0 +1,16 @@
<?php
/**
* Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace OC;
/**
* Exception thrown whenever access to a resource has
* been forbidden or whenever a user isn't authenticated.
*/
class ForbiddenException extends \Exception {
}

View File

@ -78,8 +78,7 @@ class OC_Helper {
* Returns a absolute url to the given app and file.
*/
public static function linkToAbsolute($app, $file, $args = array()) {
$urlLinkTo = self::linkTo($app, $file, $args);
return self::makeURLAbsolute($urlLinkTo);
return self::linkTo($app, $file, $args);
}
/**

View File

@ -0,0 +1,44 @@
<?php
/**
* ownCloud
*
* @author Bjoern Schiessle
* @copyright 2014 Bjoern Schiessle <schiessle@owncloud.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
namespace OC\Share;
class Constants {
const SHARE_TYPE_USER = 0;
const SHARE_TYPE_GROUP = 1;
const SHARE_TYPE_LINK = 3;
const SHARE_TYPE_EMAIL = 4;
const SHARE_TYPE_CONTACT = 5;
const SHARE_TYPE_REMOTE = 6;
const FORMAT_NONE = -1;
const FORMAT_STATUSES = -2;
const FORMAT_SOURCES = -3;
const TOKEN_LENGTH = 32; // see db_structure.xml
protected static $shareTypeUserAndGroups = -1;
protected static $shareTypeGroupUserUnique = 2;
protected static $backends = array();
protected static $backendTypes = array();
protected static $isResharingAllowed;
}

View File

@ -0,0 +1,202 @@
<?php
/**
* ownCloud
*
* @author Bjoern Schiessle
* @copyright 2014 Bjoern Schiessle <schiessle@owncloud.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
namespace OC\Share;
class Helper extends \OC\Share\Constants {
/**
* Generate a unique target for the item
* @param string Item type
* @param string Item source
* @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK
* @param string User or group the item is being shared with
* @param string User that is the owner of shared item
* @param string The suggested target originating from a reshare (optional)
* @param int The id of the parent group share (optional)
* @return string Item target
*/
public static function generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner,
$suggestedTarget = null, $groupParent = null) {
$backend = \OC\Share\Share::getBackend($itemType);
if ($shareType == self::SHARE_TYPE_LINK) {
if (isset($suggestedTarget)) {
return $suggestedTarget;
}
return $backend->generateTarget($itemSource, false);
} else {
if ($itemType == 'file' || $itemType == 'folder') {
$column = 'file_target';
$columnSource = 'file_source';
} else {
$column = 'item_target';
$columnSource = 'item_source';
}
if ($shareType == self::SHARE_TYPE_USER) {
// Share with is a user, so set share type to user and groups
$shareType = self::$shareTypeUserAndGroups;
$userAndGroups = array_merge(array($shareWith), \OC_Group::getUserGroups($shareWith));
} else {
$userAndGroups = false;
}
$exclude = null;
// Backend has 3 opportunities to generate a unique target
for ($i = 0; $i < 2; $i++) {
// Check if suggested target exists first
if ($i == 0 && isset($suggestedTarget)) {
$target = $suggestedTarget;
} else {
if ($shareType == self::SHARE_TYPE_GROUP) {
$target = $backend->generateTarget($itemSource, false, $exclude);
} else {
$target = $backend->generateTarget($itemSource, $shareWith, $exclude);
}
if (is_array($exclude) && in_array($target, $exclude)) {
break;
}
}
// Check if target already exists
$checkTarget = \OC\Share\Share::getItems($itemType, $target, $shareType, $shareWith);
if (!empty($checkTarget)) {
foreach ($checkTarget as $item) {
// Skip item if it is the group parent row
if (isset($groupParent) && $item['id'] == $groupParent) {
if (count($checkTarget) == 1) {
return $target;
} else {
continue;
}
}
if ($item['uid_owner'] == $uidOwner) {
if ($itemType == 'file' || $itemType == 'folder') {
$meta = \OC\Files\Filesystem::getFileInfo($itemSource);
if ($item['file_source'] == $meta['fileid']) {
return $target;
}
} else if ($item['item_source'] == $itemSource) {
return $target;
}
}
}
if (!isset($exclude)) {
$exclude = array();
}
// Find similar targets to improve backend's chances to generate a unqiue target
if ($userAndGroups) {
if ($column == 'file_target') {
$checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`'
.' WHERE `item_type` IN (\'file\', \'folder\')'
.' AND `share_type` IN (?,?,?)'
.' AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')');
$result = $checkTargets->execute(array(self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP,
self::$shareTypeGroupUserUnique));
} else {
$checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`'
.' WHERE `item_type` = ? AND `share_type` IN (?,?,?)'
.' AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')');
$result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_USER,
self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique));
}
} else {
if ($column == 'file_target') {
$checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`'
.' WHERE `item_type` IN (\'file\', \'folder\')'
.' AND `share_type` = ? AND `share_with` = ?');
$result = $checkTargets->execute(array(self::SHARE_TYPE_GROUP, $shareWith));
} else {
$checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`'
.' WHERE `item_type` = ? AND `share_type` = ? AND `share_with` = ?');
$result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_GROUP, $shareWith));
}
}
while ($row = $result->fetchRow()) {
$exclude[] = $row[$column];
}
} else {
return $target;
}
}
}
$message = 'Sharing backend registered for '.$itemType.' did not generate a unique target for '.$itemSource;
\OC_Log::write('OCP\Share', $message, \OC_Log::ERROR);
throw new \Exception($message);
}
/**
* Delete all reshares of an item
* @param int Id of item to delete
* @param bool If true, exclude the parent from the delete (optional)
* @param string The user that the parent was shared with (optinal)
*/
public static function delete($parent, $excludeParent = false, $uidOwner = null) {
$ids = array($parent);
$parents = array($parent);
while (!empty($parents)) {
$parents = "'".implode("','", $parents)."'";
// Check the owner on the first search of reshares, useful for
// finding and deleting the reshares by a single user of a group share
if (count($ids) == 1 && isset($uidOwner)) {
$query = \OC_DB::prepare('SELECT `id`, `uid_owner`, `item_type`, `item_target`, `parent`'
.' FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.') AND `uid_owner` = ?');
$result = $query->execute(array($uidOwner));
} else {
$query = \OC_DB::prepare('SELECT `id`, `item_type`, `item_target`, `parent`, `uid_owner`'
.' FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.')');
$result = $query->execute();
}
// Reset parents array, only go through loop again if items are found
$parents = array();
while ($item = $result->fetchRow()) {
// Search for a duplicate parent share, this occurs when an
// item is shared to the same user through a group and user or the
// same item is shared by different users
$userAndGroups = array_merge(array($item['uid_owner']), \OC_Group::getUserGroups($item['uid_owner']));
$query = \OC_DB::prepare('SELECT `id`, `permissions` FROM `*PREFIX*share`'
.' WHERE `item_type` = ?'
.' AND `item_target` = ?'
.' AND `share_type` IN (?,?,?)'
.' AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')'
.' AND `uid_owner` != ? AND `id` != ?');
$duplicateParent = $query->execute(array($item['item_type'], $item['item_target'],
self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique,
$item['uid_owner'], $item['parent']))->fetchRow();
if ($duplicateParent) {
// Change the parent to the other item id if share permission is granted
if ($duplicateParent['permissions'] & \OCP\PERMISSION_SHARE) {
$query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `parent` = ? WHERE `id` = ?');
$query->execute(array($duplicateParent['id'], $item['id']));
continue;
}
}
$ids[] = $item['id'];
$parents[] = $item['id'];
}
}
if ($excludeParent) {
unset($ids[0]);
}
if (!empty($ids)) {
$ids = "'".implode("','", $ids)."'";
$query = \OC_DB::prepare('DELETE FROM `*PREFIX*share` WHERE `id` IN ('.$ids.')');
$query->execute();
}
}
}

108
lib/private/share/hooks.php Normal file
View File

@ -0,0 +1,108 @@
<?php
/**
* ownCloud
*
* @author Bjoern Schiessle
* @copyright 2014 Bjoern Schiessle <schiessle@owncloud.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
namespace OC\Share;
class Hooks extends \OC\Share\Constants {
/**
* Function that is called after a user is deleted. Cleans up the shares of that user.
* @param array arguments
*/
public static function post_deleteUser($arguments) {
// Delete any items shared with the deleted user
$query = \OC_DB::prepare('DELETE FROM `*PREFIX*share`'
.' WHERE `share_with` = ? AND `share_type` = ? OR `share_type` = ?');
$result = $query->execute(array($arguments['uid'], self::SHARE_TYPE_USER, self::$shareTypeGroupUserUnique));
// Delete any items the deleted user shared
$query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*share` WHERE `uid_owner` = ?');
$result = $query->execute(array($arguments['uid']));
while ($item = $result->fetchRow()) {
Helper::delete($item['id']);
}
}
/**
* Function that is called after a user is added to a group.
* TODO what does it do?
* @param array arguments
*/
public static function post_addToGroup($arguments) {
// Find the group shares and check if the user needs a unique target
$query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?');
$result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid']));
$query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`,'
.' `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`,'
.' `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)');
while ($item = $result->fetchRow()) {
if ($item['item_type'] == 'file' || $item['item_type'] == 'file') {
$itemTarget = null;
} else {
$itemTarget = Helper::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER,
$arguments['uid'], $item['uid_owner'], $item['item_target'], $item['id']);
}
if (isset($item['file_source'])) {
$fileTarget = Helper::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER,
$arguments['uid'], $item['uid_owner'], $item['file_target'], $item['id']);
} else {
$fileTarget = null;
}
// Insert an extra row for the group share if the item or file target is unique for this user
if ($itemTarget != $item['item_target'] || $fileTarget != $item['file_target']) {
$query->execute(array($item['item_type'], $item['item_source'], $itemTarget, $item['id'],
self::$shareTypeGroupUserUnique, $arguments['uid'], $item['uid_owner'], $item['permissions'],
$item['stime'], $item['file_source'], $fileTarget));
\OC_DB::insertid('*PREFIX*share');
}
}
}
/**
* Function that is called after a user is removed from a group. Shares are cleaned up.
* @param array arguments
*/
public static function post_removeFromGroup($arguments) {
$sql = 'SELECT `id`, `share_type` FROM `*PREFIX*share`'
.' WHERE (`share_type` = ? AND `share_with` = ?) OR (`share_type` = ? AND `share_with` = ?)';
$result = \OC_DB::executeAudited($sql, array(self::SHARE_TYPE_GROUP, $arguments['gid'],
self::$shareTypeGroupUserUnique, $arguments['uid']));
while ($item = $result->fetchRow()) {
if ($item['share_type'] == self::SHARE_TYPE_GROUP) {
// Delete all reshares by this user of the group share
Helper::delete($item['id'], true, $arguments['uid']);
} else {
Helper::delete($item['id']);
}
}
}
/**
* Function that is called after a group is removed. Cleans up the shares to that group.
* @param array arguments
*/
public static function post_deleteGroup($arguments) {
$sql = 'SELECT `id` FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?';
$result = \OC_DB::executeAudited($sql, array(self::SHARE_TYPE_GROUP, $arguments['gid']));
while ($item = $result->fetchRow()) {
Helper::delete($item['id']);
}
}
}

1619
lib/private/share/share.php Normal file

File diff suppressed because it is too large Load Diff

View File

@ -148,6 +148,7 @@ class URLGenerator implements IURLGenerator {
*/
public function getAbsoluteURL($url) {
$separator = $url[0] === '/' ? '' : '/';
return \OC_Request::serverProtocol() . '://' . \OC_Request::serverHost() . $separator . $url;
return \OC_Request::serverProtocol() . '://' . \OC_Request::serverHost(). \OC::$WEBROOT . $separator . $url;
}
}

View File

@ -321,8 +321,6 @@ class OC_User {
*/
public static function isLoggedIn() {
if (\OC::$session->get('user_id') && self::$incognitoMode === false) {
OC_App::loadApps(array('authentication'));
self::setupBackends();
return self::userExists(\OC::$session->get('user_id'));
}
return false;

View File

@ -30,9 +30,7 @@ class OC_Util {
}
// load all filesystem apps before, so no setup-hook gets lost
if(!isset($RUNTIME_NOAPPS) || !$RUNTIME_NOAPPS) {
OC_App::loadApps(array('filesystem'));
}
OC_App::loadApps(array('filesystem'));
// the filesystem will finish when $user is not empty,
// mark fs setup here to avoid doing the setup from loading
@ -703,17 +701,18 @@ class OC_Util {
* @return void
*/
public static function redirectToDefaultPage() {
$urlGenerator = \OC::$server->getURLGenerator();
if(isset($_REQUEST['redirect_url'])) {
$location = OC_Helper::makeURLAbsolute(urldecode($_REQUEST['redirect_url']));
$location = urldecode($_REQUEST['redirect_url']);
}
else if (isset(OC::$REQUESTEDAPP) && !empty(OC::$REQUESTEDAPP)) {
$location = OC_Helper::linkToAbsolute( OC::$REQUESTEDAPP, 'index.php' );
$location = $urlGenerator->getAbsoluteURL('/index.php/apps/'.OC::$REQUESTEDAPP.'/index.php');
} else {
$defaultPage = OC_Appconfig::getValue('core', 'defaultpage');
if ($defaultPage) {
$location = OC_Helper::makeURLAbsolute(OC::$WEBROOT.'/'.$defaultPage);
$location = $urlGenerator->getAbsoluteURL($defaultPage);
} else {
$location = OC_Helper::linkToAbsolute( 'files', 'index.php' );
$location = $urlGenerator->getAbsoluteURL('/index.php/files/index.php');
}
}
OC_Log::write('core', 'redirectToDefaultPage: '.$location, OC_Log::DEBUG);
@ -1074,13 +1073,13 @@ class OC_Util {
public static function getUrlContent($url) {
if (function_exists('curl_init')) {
$curl = curl_init();
$max_redirects = 10;
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_MAXREDIRS, 10);
curl_setopt($curl, CURLOPT_USERAGENT, "ownCloud Server Crawler");
if(OC_Config::getValue('proxy', '') != '') {
@ -1089,9 +1088,50 @@ class OC_Util {
if(OC_Config::getValue('proxyuserpwd', '') != '') {
curl_setopt($curl, CURLOPT_PROXYUSERPWD, OC_Config::getValue('proxyuserpwd'));
}
$data = curl_exec($curl);
if (ini_get('open_basedir') === '' && ini_get('safe_mode' === 'Off')) {
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_MAXREDIRS, $max_redirects);
$data = curl_exec($curl);
} else {
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false);
$mr = $max_redirects;
if ($mr > 0) {
$newurl = curl_getinfo($curl, CURLINFO_EFFECTIVE_URL);
$rcurl = curl_copy_handle($curl);
curl_setopt($rcurl, CURLOPT_HEADER, true);
curl_setopt($rcurl, CURLOPT_NOBODY, true);
curl_setopt($rcurl, CURLOPT_FORBID_REUSE, false);
curl_setopt($rcurl, CURLOPT_RETURNTRANSFER, true);
do {
curl_setopt($rcurl, CURLOPT_URL, $newurl);
$header = curl_exec($rcurl);
if (curl_errno($rcurl)) {
$code = 0;
} else {
$code = curl_getinfo($rcurl, CURLINFO_HTTP_CODE);
if ($code == 301 || $code == 302) {
preg_match('/Location:(.*?)\n/', $header, $matches);
$newurl = trim(array_pop($matches));
} else {
$code = 0;
}
}
} while ($code && --$mr);
curl_close($rcurl);
if ($mr > 0) {
curl_setopt($curl, CURLOPT_URL, $newurl);
}
}
if($mr == 0 && $max_redirects > 0) {
$data = false;
} else {
$data = curl_exec($curl);
}
}
curl_close($curl);
} else {
$contextArray = null;

File diff suppressed because it is too large Load Diff

View File

@ -21,11 +21,15 @@
*
*/
require_once('../lib/base.php');
require_once '../lib/base.php';
use Symfony\Component\Routing\Exception\ResourceNotFoundException;
use Symfony\Component\Routing\Exception\MethodNotAllowedException;
try {
// load all apps to get all api routes properly setup
OC_App::loadApps();
OC::$server->getRouter()->match('/ocs'.OC_Request::getRawPathInfo());
} catch (ResourceNotFoundException $e) {
OC_API::setContentType();

View File

@ -1,5 +1,4 @@
<?php
$RUNTIME_NOAPPS = true;
try {

View File

@ -1,5 +1,4 @@
<?php
$RUNTIME_NOAPPS = true;
try {

View File

@ -23,7 +23,6 @@
// Check if we are a user
OC_JSON::checkLoggedIn();
OC_App::loadApps();
$query=(isset($_GET['query']))?$_GET['query']:'';
if($query) {

Some files were not shown because too many files have changed in this diff Show More