Compare commits

..

806 Commits

Author SHA1 Message Date
Frank Karlitschek 60e955bde4 6.0.6 2014-11-07 20:27:15 +01:00
Craig Morrissey 3cb244dd23 logging changes 2014-11-07 12:47:06 -05:00
Björn Schießle 78edcd9696 Merge pull request #11706 from owncloud/fix_trash_stable6
[oc6] make sure that trash bin is initialized correctly
2014-10-23 16:34:00 +02:00
Bjoern Schiessle 9320225daa make sure that trash bin is initialized for both the current user and the file owner 2014-10-22 15:14:30 +02:00
Bjoern Schiessle 9ea90ac82f no error if we try to delete a file which no longer exists 2014-10-21 16:55:17 +02:00
Arthur Schiwon e46f87fdac backport of #11494
fix retrievel of group members and cache group members

fix changed variable name

with several backends, more than limit can be returned

make performance less bad. Still far from good, but at least it works

add one simple cache test

adjust group manager tests

Conflicts:
	apps/user_ldap/group_ldap.php
	apps/user_ldap/lib/access.php
	apps/user_ldap/tests/group_ldap.php
2014-10-20 12:51:38 +02:00
blizzz 6fc04c2f91 Merge pull request #11217 from owncloud/backport-9225-stable6
Backport of #9225 to stable6
2014-10-20 11:42:51 +02:00
Lukas Reschke 55573645c6 Merge pull request #11371 from owncloud/backport-11368
Load public preview via JS
2014-10-20 09:13:26 +02:00
Frank Karlitschek de8c624a15 Merge pull request #10576 from owncloud/ajaxify_user_list_for_files_external_stable6
Ajaxify user list for files external stable6
2014-10-18 18:28:28 +02:00
Lukas Reschke 65b439da8c Merge pull request #11560 from owncloud/stable6-encsharekeymatchingdirectbackport
[stable6] backport share key pattern matching fix
2014-10-17 11:36:03 +02:00
Arthur Schiwon 4e6a4e53cf Merge branch 'voxsim-backport-9225-stable6' into backport-9225-stable6 2014-10-16 16:38:26 +02:00
Lukas Reschke 870dc981aa Merge pull request #11248 from owncloud/11032-backport-stable6
Do only follow HTTP and HTTPS redirects
2014-10-16 13:54:21 +02:00
Lukas Reschke 979d2823b5 Fix SVG icons
FIXME: Ugly hack to prevent SVG of being returned if the SVG
provider is not enabled.
This is required because the preview system is designed in a
bad way and relies on opt-in with asterisks (i.e. image/*)
which will lead to the fact that a SVG will also match the image
provider.
2014-10-16 12:25:58 +02:00
Vincent Petry d63bba391d Disabled assert known to fail
stable6 has a bug where the share keys are not properly deleted when
deleting a shared file as non-owner.

To make sure the more important fix from the backport of
1e631754d7 can be applied, the
corresponding assert introduced by the backport is disabled.
2014-10-16 10:29:24 +02:00
Frank Karlitschek 784931f835 6.0.6 RC1 2014-10-16 08:24:28 +02:00
Vincent Petry 962b410fcc Remove FileInfo instance check
FileInfo class doesn't exist in stable6
2014-10-15 17:26:13 +02:00
Vincent Petry 9878f00118 Removed broken/unneeded fixFileSize
fixFileSize is not needed as the target file will already have the
correct unencrypted size after renaming
2014-10-15 12:34:33 +02:00
Vincent Petry 828a939f96 Fix share key finding algorithm in various cases
Instead of inaccurate pattern matching, use the list of users who we
know have access to the file to build the list of share keys.

This covers the following cases:

- Move/copy files into a subfolder within a share
- Unsharing from a user
- Deleting files directlry / moving share keys to trashbin

Conflicts:
	apps/files_encryption/lib/keymanager.php
	apps/files_encryption/tests/hooks.php
	apps/files_encryption/tests/keymanager.php
	apps/files_encryption/tests/trashbin.php
2014-10-15 12:34:32 +02:00
Vincent Petry 9327abd2e4 Merge pull request #11561 from owncloud/stable6-enc-webdavcopywithencryptionfix
[stable6] add support for webdav copy to the encryption and versions app
2014-10-15 12:30:37 +02:00
Bjoern Schiessle 07377be378 make sure that we always find all versions 2014-10-14 11:36:39 +02:00
Bjoern Schiessle fd55d73ac5 add unit test for rename and copy operation
Conflicts:
	apps/files_versions/appinfo/app.php
	apps/files_versions/tests/versions.php
2014-10-14 11:11:37 +02:00
Bjoern Schiessle 1aedc60aa2 make the versions and encryption app aware of the copy operation
Conflicts:
	apps/files_encryption/hooks/hooks.php
	apps/files_versions/appinfo/app.php
2014-10-14 11:10:00 +02:00
Jörn Friedrich Dreyer 2107915073 fix flickering users 2014-10-13 17:49:40 +02:00
Arthur Schiwon abc2aad2a1 no need to load display names 2014-10-13 17:18:35 +02:00
Jörn Friedrich Dreyer cb74d8ac0e fix deletion of shares 2014-10-13 17:18:35 +02:00
Jörn Friedrich Dreyer 5af5bd5498 replace chosen with select2 to provide ajaxified user and group selection for files_external, fixes #7499 2014-10-13 17:18:35 +02:00
Jörn Friedrich Dreyer 564d28b57c add select2 to app specific thirdparty 2014-10-13 17:18:35 +02:00
Lukas Reschke af97529339 force loading of encryption app 2014-10-13 11:55:05 +02:00
Vincent Petry 3844585f91 Prevent button click when enter key is pressed in LDAP wizard
Pressing enter in the LDAP wizard will trigger a click on the first
button. In the main page it would trigger the delete dialog, which is
quite inconvenient.

Added a type attribute to suppress this behavior.

Backport of bb424802c8 from master
2014-10-10 14:55:32 +02:00
Robin Appelman dfa57cdc01 Show a proper error message when trying to scan the filesystem for a non existing user
Backport of e8280c80da from master
2014-10-10 13:00:39 +02:00
Robin Appelman c526ebb832 Don't keep the full info of all children in memory
Backport of f88021dbbc from master
2014-10-10 13:00:14 +02:00
Arthur Schiwon 94d5f9e6e2 Backport of #10527
properly cancel a Paginated Results operation in order to avoid protocol errors, fixes #10526

abandon ongoing paged search before starting a new one

abandond paged search only if PHP supports them

init a new paged search on read operations to satisfy OpenLDAP

make scrutinizer happy, very minor changes

Conflicts:
	apps/user_ldap/lib/access.php
	apps/user_ldap/lib/ildapwrapper.php
2014-10-09 14:46:20 +02:00
Lukas Reschke 65c655afad Merge pull request #8307 from owncloud/case_insensitive_search_oracle_stable6
on oracle use regex_like to make filename search case insensitive
2014-10-03 15:19:59 +02:00
Lukas Reschke befbf1c150 Load public preview via JS
Backport of https://github.com/owncloud/core/pull/11368 to stable6 - since stable6 has no detection for SVG support this will just use the PNG icon instead of SVG ones.

I believe this is a better solution than backporting the whole SVG support stuff and potentially breaking a lot.
2014-10-01 13:49:59 +02:00
Lukas Reschke d9ceeed60d Merge pull request #11153 from owncloud/parallel-upload-stable6
close the session for all DAV calls right after authentication - no need...
2014-10-01 10:42:20 +02:00
Jörn Friedrich Dreyer 5e0ea9f3b5 fix case insensitive search on oracle and postgresql
on oracle use regex_like
on postgres use ILIKE
add unit test to check case insensitivity
2014-09-29 14:31:40 +02:00
Lukas Reschke b358547699 Clarify possible preview providers for type Office
a

Conflicts:
	lib/private/preview.php
2014-09-25 09:59:08 +02:00
Simon Vocella e9cc95a403 Fix in stable6 after backport of #9225 2014-09-24 22:56:23 +02:00
Arthur Schiwon a84250c6d1 ask implementsAction instead of checking method_exists for easier testing 2014-09-24 22:36:45 +02:00
Joas Schilling 79e6b60199 Fix getting group '0' from database backend
Fix #9972
2014-09-24 22:23:25 +02:00
Arthur Schiwon 01ce97f85f add optional countUsersInGroup method to group backends
Conflicts:
	lib/private/group/backend.php
	lib/private/group/database.php
	lib/private/group/dummy.php
2014-09-24 22:23:13 +02:00
Robin Appelman 03694be08a remove unneeded ; in comment 2014-09-24 22:08:01 +02:00
Robin Appelman 5525294f9b user Group->users as assosiative array 2014-09-24 22:07:56 +02:00
Robin Appelman e9cf3b4e8b cache the result from inGroup 2014-09-24 22:07:47 +02:00
Robin Appelman 82c375cda5 Fix test cases for group manager 2014-09-24 09:39:39 +02:00
Robin Appelman ed6588ff21 remove duplicate call to groupExists 2014-09-24 09:22:43 +02:00
Morris Jobke 34a803d83e Merge pull request #11246 from owncloud/backport-11211-stable6
Add a configuration switch for enabled preview mimetypes
2014-09-23 23:54:08 +02:00
Lukas Reschke 716613fda4 Merge branch 'stable6' into backport-11211-stable6
Conflicts:
	config/config.sample.php
2014-09-23 14:49:53 +02:00
Vincent Petry 3ec5cbb347 Reenable file proxy when renaming between mount points
When moving a folder into another mount point, $renamedFiles is empty
because that goes over a different mechanism.

In such case, this fix makes sure that the file proxy is reenable to
avoid breaking the subsequent files that are being moved.
2014-09-23 13:35:45 +02:00
Victor Dubiniuk f2629142b0 Use non-empty defaults 2014-09-23 12:53:54 +02:00
Lukas Reschke b2798afef5 Do only follow HTTP and HTTPS redirects
We do not want to follow redirects to other protocols since they might allow an adversary to bypass network restrictions. (i.e. a redirect to ftp:// might be used to access files of a FTP server which might be in a secure zone and not be reachable from the net but from the ownCloud server)

Get final redirect manually using get_headers()

Migrate to HTTPHelper class and add unit tests

Conflicts:
	apps/files/ajax/newfile.php
	lib/private/files/storage/dav.php
	lib/private/server.php
	lib/private/util.php
	lib/public/iservercontainer.php
2014-09-23 12:05:34 +02:00
Bjoern Schiessle 5de19f38c4 first check if a private key exists, if not it is always a recovery szenario 2014-09-23 10:56:01 +02:00
Lukas Reschke 77a4b1609b Add a configuration switch for enabled preview mimetypes
Backport of https://github.com/owncloud/core/pull/11211 to stable6
2014-09-23 10:53:34 +02:00
Vincent Petry e001dfb3be Added extra check to avoid deleting key folders
Whenever a delete operation is called twice in a row, it could happen
that the first call already deleted the file.

The second call would return an empty $ownerPath because the file does
not exist. That empty $ownerPath would run the key deletion operation on
the wrong path.

This fix adds checks in many places to make sure we don't use $ownerPath
when it's empty or null.

Backport of 8aca127e52 from master
2014-09-22 17:09:25 +02:00
Lukas Reschke e123b6db68 Merge pull request #11207 from owncloud/enc_create_backup_on_recovery_oc6
create backup from all keys before recovery (oc6 backport)
2014-09-22 15:11:16 +02:00
voxsim 45489ecce4 Backport of #9225
fix in displayNamesInGroup: when specified limit N, we did complex search only in the first N users

change logic in displayNamesInGroup and add some unit tests

add more logic in displayNamesInGroup for big user bases

1. remove sizeof($filteredUsers) > 0 as condition
2. use count instead of sizeof. Latter is an alias to first one, practically we stick to count everywhere. Having it consistent helps with readability.
3. move whitespace so we have $groupUsers[] = $filteredUser; instead of $groupUsers []= $filteredUser;

Conflicts:
	tests/lib/group/manager.php
2014-09-22 12:26:47 +02:00
Bjoern Schiessle 7539309742 create backup from all keys before recovery 2014-09-22 09:53:40 +02:00
Thomas Müller 7217fb873c use session_write_close() because the Session class has no close() yet in this version 2014-09-18 13:21:08 +02:00
Thomas Müller b963723c21 close the session for all DAV calls right after authentication - no need to write to the session afterwards 2014-09-18 11:58:38 +02:00
Lukas Reschke 7a2dbc25cb Revert "Reword the description"
This reverts commit 16c5925155.
2014-09-16 16:03:30 +02:00
Lukas Reschke 16c5925155 Reword the description
The old one was just horrible wrong.
Conflicts:
	config/config.sample.php
2014-09-16 16:02:48 +02:00
Thomas Müller 5ecbd9ddd6 Merge pull request #11025 from owncloud/nojavascript
introduce no-javascript message, manual backport of #6202 and #10944
2014-09-12 11:30:33 +02:00
Jan-Christoph Borchardt c3002b3053 introduce no-javascript message, manual backport of #6202 and #10944, fix #10841 2014-09-11 16:11:44 +02:00
tomneedham e962c190c7 Add displayname for admins 2014-09-11 08:51:31 +01:00
Vincent Petry 725360fa14 Merge pull request #10250 from owncloud/block-folder-upload-stable6
Prevent folder upload causing unexpected behavior
2014-09-03 17:15:59 +02:00
Thomas Müller 69f198d6fb Merge pull request #10645 from owncloud/backport_7728
Backport 7728
2014-09-03 12:46:12 +02:00
Thomas Müller 7507995485 Merge pull request #10774 from owncloud/backport-getUserFolder
Add optional user ID parameter for getUseFolder
2014-09-03 11:06:02 +02:00
Morris Jobke 4a4f52e7a4 Add optional user ID parameter for getUseFolder
Conflicts:
	lib/private/server.php
2014-08-31 13:42:41 +02:00
Arthur Schiwon 8d786ec456 retrieve local users, groups and group members in a sorted way 2014-08-31 11:59:57 +02:00
Thomas Müller 9c4fe0bc3a Merge pull request #10694 from owncloud/allow_empty_hostname_and_dots_in_service_name_for_oracle_autosetup
allow empty hostname and dots in service name for oracle autosetup
2014-08-29 17:07:21 +02:00
Jörn Friedrich Dreyer 25524e03c4 allow empty hostname and dots in service name for oracle autosetup 2014-08-28 15:54:28 +02:00
blizzz da1d4bf4fd Merge pull request #10631 from owncloud/fixWizardTest_stable6
fix wizard test, adjust to changed parameters of the tested method, intr...
2014-08-28 11:33:42 +02:00
Lukas Reschke 1d5a664dc0 Escape error messages 2014-08-28 09:37:38 +02:00
Jörn Friedrich Dreyer 4a3e6dd528 Merge pull request #10660 from owncloud/use_notification_to_show_error_on_new_via_web_stable6
use notification to show error on new via web
2014-08-27 11:46:08 +02:00
Jörn Friedrich Dreyer c2e7c19c49 use notification to shw error on new via web 2014-08-27 10:44:10 +02:00
Thomas Müller f3d335b7c1 unit tests for specific image type output added 2014-08-26 19:39:46 +02:00
Georg Ehrke 6da05d0ca4 excerpt code changes from 79ba930ef9 2014-08-26 19:39:30 +02:00
Georg Ehrke c82f158c16 OC_Image::_output() - throw exception instead of falling back to png 2014-08-26 19:36:54 +02:00
Georg Ehrke f2b072bceb remove image/pjpeg from OC_Image::_output 2014-08-26 19:36:40 +02:00
Georg Ehrke ee8ded88b3 don't change mimetype of whole image object 2014-08-26 19:36:28 +02:00
Georg Ehrke 3c65a503b2 always output a png 2014-08-26 19:36:18 +02:00
Georg Ehrke 8f45e8107a make it possible to influence output type of \OC_Image
Conflicts:
	lib/private/image.php
2014-08-26 19:35:53 +02:00
Frank Karlitschek 30098c34ad 6.0.5 2014-08-26 12:04:32 +02:00
Arthur Schiwon e895f06165 fix wizard test, adjust to changed parameters of the tested method, introduced by 9caa354cfc 2014-08-26 10:50:00 +02:00
Jörn Friedrich Dreyer 96430a99f9 Merge pull request #10448 from owncloud/check_quota_on_new_via_web_stable6
check quota when trying to download a file via new -> web
2014-08-25 15:17:37 +02:00
Frank Karlitschek eb276df08c 6.0.5 RC1 2014-08-21 05:37:53 +02:00
Lukas Reschke d9ecfa3bd4 Also encode > and ' 2014-08-20 19:20:12 +02:00
Jörn Friedrich Dreyer a5aa04ce19 properly encode groups as json, not ',' separated 2014-08-19 11:29:09 +02:00
Bjoern Schiessle 1e692e56e1 set incognitoMode to true, getUser should always return false during public upload 2014-08-19 10:16:07 +02:00
Lukas Reschke 663daf4bc7 Merge pull request #10146 from owncloud/fix-8578-stable6
Update 3rdparty to replace fpassthru() in Sabre.
2014-08-17 19:11:10 +02:00
Jörn Friedrich Dreyer 8f0d89a986 check quota when trying to download a file via new -> web 2014-08-15 16:47:50 +02:00
Clark Tomlinson 6d6dfe2329 Merge pull request #10440 from owncloud/enforce-debug
Remove ability to trigger DEBUG mode via cookie
2014-08-15 09:18:33 -04:00
Lukas Reschke b067848509 Merge pull request #10034 from owncloud/remove-es_MX-from-stable6
Remove es mx from stable6
2014-08-15 14:07:52 +02:00
Bjoern Schiessle ca33b2af72 we need the recipient as a additional parameter to know for which share the notification was send 2014-08-14 17:51:16 +02:00
Vincent Petry f82aed0075 Fix Upload button does not disappear
Tipsy tooltip must be hidden when the upload starts. Otherwise it covers
the progress bar and stays in DOM.

Backport of fa28c089fa and
90839b784f from master
2014-08-14 13:57:39 +02:00
Volkan Gezer 5e85790f5e Minor changes in config.sample
* appcodechecker accepts boolean.
* using different ports in trusted domains

Partially fixes #330
2014-08-13 22:57:06 +02:00
Bjoern Schiessle ffe3bd1429 fix broken variable name, recoveryPasswordSupported is now recoveryEnabledForUser 2014-08-12 19:28:05 +02:00
Bjoern Schiessle 851d478691 add unit tests 2014-08-12 18:10:49 +02:00
Bjoern Schiessle 74a994c561 fix detection of system wide mount points 2014-08-12 17:59:21 +02:00
Lukas Reschke 534336162e Merge pull request #10344 from owncloud/backport-10096-stable6
in case $_POST['itemSourceName'] does not exist we simply default it to...
2014-08-11 21:31:53 +02:00
Thomas Müller 274de5af86 in case $_POST['itemSourceName'] does not exist we simply default it to null 2014-08-11 17:56:36 +02:00
Jean-Louis Dupond 2a34f530b2 backport of #9848
Fix memberOf detection. Fixes: #9835

Conflicts:
	apps/user_ldap/lib/wizard.php

Fix remarks in #9848

Conflicts:
	apps/user_ldap/lib/wizard.php

Fix initializing in #9848

do not change var names here
2014-08-11 17:29:48 +02:00
Frank Karlitschek d046527409 Merge pull request #10315 from owncloud/clarify-encryption-descripti
clearify the use-case of this app
2014-08-10 17:11:31 -04:00
Lukas Reschke e7f9c21fb3 clearify the use-case of this app
Backport of https://github.com/owncloud/core/commit/8a24e1eb9624 to stable7
2014-08-09 22:59:42 +02:00
Jörn Friedrich Dreyer e1a77bdcc9 Merge pull request #9675 from owncloud/stable6-9647
[stable6] Add unit test for multi-user configuration loading
2014-08-09 02:41:33 +02:00
Robin McCorkell 6b38c1de68 Add unit test for multi-user configuration loading 2014-08-08 15:52:22 +02:00
Robin Appelman be07def0af Prevent folder upload causing unexpected behavior 2014-08-07 15:43:38 +02:00
Andreas Fischer 66cccd4e4e Update 3rdparty to replace fpassthru() in Sabre. 2014-08-04 15:15:55 +02:00
Georg Ehrke 2c192a1b76 don't preload videos on public sharing, fixes #10042 2014-07-30 21:12:02 +02:00
Morris Jobke ca29c8bab1 Fix template rendering for 'blank' templates 2014-07-30 10:34:13 +02:00
Thomas Müller f00563c652 remove l10n folder - sync script and transifex config are no longer required on a stable branch 2014-07-29 22:51:15 +02:00
Thomas Müller 3368af82aa remove language es_MX 2014-07-29 22:48:21 +02:00
Vincent Petry a66b2f56b9 Merge pull request #9575 from owncloud/fix-7038
Hack to avoid Agent DN + Password being overwritten by some ugly browser...
2014-07-22 18:25:45 +02:00
Thomas Müller 8d5081f58f Merge pull request #9776 from owncloud/backport-9738-stable6
Backport 9738 stable6
2014-07-22 16:42:31 +02:00
Lukas Reschke f99f48e26a Remove uneeded strip_tags
This `strip_tags` seems to be completely unneeded and will cause problems with passwords containing stripped characters. (e.g. `<` or `>`)

Needs https://github.com/owncloud/core/pull/9735 to be merged first.
2014-07-22 15:43:52 +02:00
Andreas Fischer 6fb60e9d4a Extract Auth Header logic into new function handleAuthHeaders().
Conflicts:
	lib/base.php
2014-07-22 15:43:47 +02:00
Andreas Fischer e8be18a8d8 Deduplicate user/password extraction from alternative HTTP headers. 2014-07-22 15:40:50 +02:00
Vincent Petry 3a27cc5221 Merge pull request #9109 from owncloud/stable6-extstorage-multiplemountpointconfig
[6.0.5] Fix merging of external storage configurations
2014-07-22 15:28:00 +02:00
Vincent Petry a47aad8628 Merge pull request #9717 from owncloud/backport_9668
[encryption] update keys recursively if a folder was moved (oc6 backport)
2014-07-18 15:03:17 +02:00
Andreas Fischer 3e2e766f64 login() must be called after getServerPublicHostKey(). 2014-07-18 13:32:46 +02:00
Bjoern Schiessle 51185c1b53 make sure that we don't connect hooks multiple times 2014-07-18 12:12:32 +02:00
Bjoern Schiessle 6ef2acb82b check that the file proxies are enabled after each test 2014-07-18 10:57:16 +02:00
Bjoern Schiessle 304cf0b90c update keys recursively if a folder was moved 2014-07-18 10:57:16 +02:00
Arthur Schiwon add4ce4319 Hack to avoid Agent DN + Password being overwritten by some ugly browsers with stored site credentials 2014-07-16 19:26:24 +02:00
Vincent Petry 68fa6e6620 Merge pull request #9511 from owncloud/stable6-download-button-public-folder
[stable6] Bring back the download button public folder
2014-07-15 17:36:45 +02:00
Vincent Petry e4b4c6ce6f Merge pull request #9635 from owncloud/stable6-files_external_fix_readData
[stable6 backport] Permit personal mount points to be used for sharing
2014-07-15 17:11:49 +02:00
Robin McCorkell 82be3674c9 Permit personal mount points to be used for sharing
An issue existed where `readData` used `OCP\User::getUser()` to get the user
for personal mount points, which worked in all situations apart from when a
personal mount point was used for sharing, so the return from `getUser()` is
not the user that owns the share. As such, any personal mount points would not
work correctly when shared.

`readData` and `writeData` have been changed from using a `$isPersonal`
boolean to using a `$user` string|null. `$isPersonal = false` can now be
written as `$user = NULL` (or left out in the case of `readData`), and
`$isPersonal = true` can be written as `$user = OCP\User::getUser()`.

Backport of abfd7ec from master
2014-07-15 13:33:23 +02:00
Vincent Petry c3c87b012a Merge pull request #9618 from owncloud/fix_8345
throw exception if file is to large for trash bin
2014-07-15 12:15:25 +02:00
Thomas Müller 2aabe31cb5 append file extension to the temporary file which contains the downloaded archive - in case of zip files fileinfo doesn't seem to return anything reliable 2014-07-14 20:12:40 +02:00
Bjoern Schiessle afa8006d7c throw exception if file is to large for trash bin 2014-07-14 17:29:19 +02:00
blizzz c83c1749ce Merge pull request #9581 from owncloud/backport-9500
Backport of #9500 to stable6
2014-07-11 13:30:22 +02:00
Arthur Schiwon 0477d56f5b do not write to appconfig or preference tables if the value is unchanged 2014-07-11 00:13:52 +02:00
Arthur Schiwon b77298b76d don't trigger update from checkPassword, it is already called by userExists, this is enough. 2014-07-10 23:48:38 +02:00
Vincent Petry d5d55412e1 Merge pull request #9523 from owncloud/stable6-fix-9302-master
[stable6] Upload abortion is now detected within the  OC_Connector_Sabre_File::put...
2014-07-09 17:58:54 +02:00
Thomas Müller a8ec0a7ccc Upload abortion is now detected within the OC_Connector_Sabre_File::put()
OC_Connector_Sabre_AbortedUploadDetectionPlugin is pointless

Adding unit test testUploadAbort()

Backport of ea269f0 from master
2014-07-08 17:28:16 +02:00
Christopher T. Johnson 3c3ebd5cf9 Fix Signiture Does Not Match when mounting Amazon S3 external storage
For some reason the aws-sdk-php package does not caclulate the
signiture correctly when accessing an object in a bucket with a name of
'.'.

When we are at the top of a S3 bucket there is a need(?) to have a directory
name.  Per standard Unix the name picked was '.' (dot or period).  This
choice exercises the aws-sdk bug.

This fix is to add a field to the method to store the name to use instead of
'.' which at this point is hard coded to '<root>'.  We also add a private
function 'cleanKey()' which will test for the '.' name and replace it with
the variable.  Finally all calls to manipulate objects where the path is
not obviously not '.' are processed through cleanKey().

An example where we don't process through clean key would be
	'Key' => $path.'/',

Use correct relationship operator

Per feed back use === instead of ==

use '/' instead of '<root>'
2014-07-08 14:37:55 +02:00
Thomas Müller fca5af206f disable download button if zip download is disabled
Backport of 6e75b37
2014-07-08 10:44:35 +02:00
Jan-Christoph Borchardt bfe76fa9e2 fix position and look of public download button
Backport of 899c7c0 from master
2014-07-08 10:40:50 +02:00
Jan-Christoph Borchardt d9e9191248 remove unneeded header-right details styles
Backport a280a69
2014-07-08 10:39:41 +02:00
Thomas Müller bbc997aa5e remove file name from upper right button
Backport of 003049e from master
2014-07-08 10:26:10 +02:00
Thomas Müller 114ce30153 reintroduce download button on public shares
Backport of df32254 from master
2014-07-08 10:24:14 +02:00
Arthur Schiwon 3bec0dc4f1 Backport of #9156 2014-07-04 15:17:20 +02:00
Björn Schießle b87591a537 Merge pull request #9250 from owncloud/enc_check_if_file_exists_oc6
[encryption] check if file exists (OC6)
2014-07-01 11:15:21 +02:00
Bjoern Schiessle 46ade71b5a improved error message 2014-06-30 16:32:20 +02:00
Bjoern Schiessle 22cef86b91 unit tests 2014-06-27 23:13:28 +02:00
Bjoern Schiessle cf46391f7c check if file exists before deleting keys, and add debug output for every
delete operation
2014-06-27 23:13:28 +02:00
Vincent Petry ff8cd422b5 Merge pull request #9251 from owncloud/enc_always_find_mount_point
[encryption] make sure that we always detect the system wide mount point
2014-06-27 16:49:01 +02:00
Bjoern Schiessle e8167999dc normalize path before comparison to make sure that we always find the mount point 2014-06-27 12:20:29 +02:00
Björn Schießle e14e4f1dc4 Merge pull request #9173 from owncloud/enc_always_use_oc_filesview_oc6
[encryption] always use oc filesview, backport for OC6
2014-06-26 15:11:55 +02:00
Morris Jobke 28eabc15bf Merge pull request #9219 from owncloud/stable6-trashwarning
[stable6] Fix trashbin warnings in logs
2014-06-26 13:40:33 +02:00
Vincent Petry a609d5e031 Do not retrieve storage stats for trash bin 2014-06-26 10:56:18 +02:00
Vincent Petry da7641c232 Remove etag warning in trashbin
When previews are available, the etag attribute is used for the icon.
But when none is set, a warning is shown.

This fix uses the timestamp as a dummy etag.
2014-06-26 10:50:59 +02:00
Morris Jobke 2e264b3a02 Merge pull request #9197 from owncloud/fix_dir_seperator_oc6
always use '/' as dir seperator
2014-06-25 11:03:29 +02:00
Bjoern Schiessle 9a44862979 always use '/' as dir seperator 2014-06-24 18:45:22 +02:00
Frank Karlitschek e4fb6d536b 6.0.4 2014-06-24 09:44:53 -04:00
Bjoern Schiessle 46cc6f5747 always use a \OC\Files\View 2014-06-23 22:06:50 +02:00
Bjoern Schiessle b66d3632ea always use oc filesystem for rename operation 2014-06-23 17:44:05 +02:00
Frank Karlitschek feca3d0ea9 Merge pull request #9075 from owncloud/autosetup-trusteddomains
trusted domains shall not be ignored on autosetup
2014-06-20 16:56:37 -04:00
Arthur Schiwon 6eb39f2194 Backport subset of #4179, re-established Oracle compatibility for LDAP 2014-06-20 20:47:51 +02:00
Vincent Petry 26ded10052 Fix merging of external storage configurations
Merging of configurations is whenever the same config is available for
multiple users/groups, in which case the config is considered as a
single one by the UI, and shows multiple users/groups selected.

Fixed merging logic to make sure that class, mount point and options are
the same before merging them.

Fixed merging to work correctly when the same mount point path is used
for separate users and configs. These are now correctly shows in the UI
as separate entries.

Backport of e002b72 from master
2014-06-19 18:26:12 +02:00
Arthur Schiwon 267c0ff567 trusted domains shall not be ignored on autosetup 2014-06-17 23:15:32 +02:00
blizzz 4b843dfcd1 Merge pull request #9002 from owncloud/ldap_wizard_pagedsearch
LDAP Wizard: get correct total no of users, groups and complete list of groups on big setups
2014-06-17 10:04:57 +02:00
Frank Karlitschek 508d84dcd8 6.0.4 beta 1 2014-06-17 08:48:46 +02:00
Arthur Schiwon 58d04d1772 remove unused vars; increase scrutinizer happiness 2014-06-16 17:52:12 +02:00
Arthur Schiwon 9caa354cfc simplify two methods a bit, because they are not used for group search anymore 2014-06-16 17:52:12 +02:00
Arthur Schiwon 0ba9a6b73d make all this work in an early configuration state in the wizard by marking the config active and ignoring the validation state. 2014-06-16 17:51:31 +02:00
Arthur Schiwon c491fa272e Wizard: get really all groups from LDAP by power of Paged Search 2014-06-16 17:51:31 +02:00
Arthur Schiwon e23e459c41 fix PHPdoc 2014-06-16 17:51:31 +02:00
Arthur Schiwon 78feb6514b consolidate requirement check 2014-06-16 17:51:31 +02:00
Arthur Schiwon 1c634ab772 LDAP Wizard: count users and groups with the power of paged search 2014-06-16 17:51:31 +02:00
Arthur Schiwon 53e036e5c0 add method to count groups on LDAP 2014-06-16 17:51:31 +02:00
Arthur Schiwon f56a9c08f8 fix PHPdoc 2014-06-16 17:51:31 +02:00
blizzz 659a3d4a37 Merge pull request #8623 from owncloud/fix-8457
LDAP: fix possible infinite loop, that causes hanging wizard, fixes #8457
2014-06-16 17:42:46 +02:00
Lukas Reschke 3d26896431 Merge pull request #9033 from owncloud/validate-dire
Add deprecation notice to load* functions
2014-06-16 16:20:21 +02:00
Vincent Petry f6c970e214 Merge pull request #9008 from owncloud/repair-parent-stable6
Repair broken parent link in the scanner - stable6
2014-06-16 15:00:22 +02:00
Robin Appelman 84222e30a7 Fix unit test 2014-06-16 13:37:08 +02:00
Lukas Reschke 81fc7cfb21 Add deprecation notice to load* functions
This functions are deprecated and/or removed since ownCloud 7. Additionally a issubdirectory check has been added here to prevent developers to use this function in a potentially insecure way.

Please review @karlitschek and others. Backport to stable5 and master requested.
2014-06-14 11:05:12 +02:00
Morris Jobke 04817fb0f3 Merge pull request #9015 from owncloud/stable6-downloadwithdisabledzip
[stable6] Fix public download link when zip download is disabled
2014-06-13 13:09:41 +02:00
Vincent Petry bca536eb3d Merge pull request #8988 from owncloud/stable6_fix_encryption
Stable6 fix encryption
2014-06-13 10:31:18 +02:00
Morris Jobke 64534546be Merge pull request #9016 from owncloud/stable6-maxheartbeatinterval
[stable6] Added max heartbeat interval to prevent integer overflow
2014-06-13 00:19:36 +02:00
Vincent Petry 00ec5fc193 Added max heartbeat interval to prevent integer overflow
When using big session timeout values, the interval value might overflow
and cause the setInterval() call to ping the server in a loop without
any delay.

This fix adds a maximum ping interval of 24 hours.
2014-06-12 18:27:21 +02:00
Vincent Petry 8ef1542ad0 Fix public download link when zip download is disabled
When zip download is disabled, the public download action defined in
public.js is overridden by the one in fileactions.js because of the JS
loading order.

This quick fix prevents the override to happen when a download action is
already defined.

There are additional changes that were required to make the download
action icon work when registered from the public page.
2014-06-12 17:29:55 +02:00
Robin Appelman eeca726d28 remove unused argument 2014-06-12 15:07:05 +02:00
Robin Appelman e793a87954 add some comments 2014-06-12 15:06:01 +02:00
Robin Appelman 6e0a218d11 Repair broken parent link in the scanner 2014-06-12 15:05:45 +02:00
Jörn Friedrich Dreyer b2fae8a8b7 Fix copy conflict dialog translation
backport of fileexist template translations
with minor fixes
2014-06-11 20:25:10 +02:00
Bjoern Schiessle 193d237b56 fix rename of encryption keys 2014-06-11 18:38:20 +02:00
Vincent Petry 4bc091965f Merge pull request #8970 from owncloud/cache-change-propagator-stable6
Cache change propagator stable6
2014-06-10 17:17:35 +02:00
Robin Appelman 3ea94a7930 Fix unit tests 2014-06-10 16:32:46 +02:00
Robin Appelman 129bfad204 Fix size calculation during recursive scan 2014-06-10 16:24:08 +02:00
Robin Appelman 4d7e1c568c Fix unit tests 2014-06-10 16:24:00 +02:00
Robin Appelman f36e354a42 Fix recursive scanning 2014-06-10 16:20:59 +02:00
Robin Appelman 81f6e78c0c propagate changes in the scanner 2014-06-10 16:20:51 +02:00
Robin Appelman a543f46699 Split of cache writes in the scanner to their own methods 2014-06-10 16:20:48 +02:00
Robin Appelman 2895261102 Add a change propagator class to handle propagating etag and mtime changes 2014-06-10 16:16:46 +02:00
Thomas Müller 2911906586 Merge pull request #8885 from owncloud/flock-stable6
[stable6][WIP] Move Flock basics into stable6
2014-06-06 17:58:08 +02:00
Thomas Müller 909913d581 fix failing unit test 2014-06-06 15:48:02 +02:00
Jan-Christoph Borchardt edced60ed4 keep long file names in one line to not overflow download button on mobile 2014-06-06 15:35:12 +02:00
Jan-Christoph Borchardt 45d165405f add max-width to directLink input to prevent overflow 2014-06-06 15:34:36 +02:00
Robin Appelman e98627d6ab Dont backport unit tests for code that isn't backported 2014-06-05 16:48:04 +02:00
Thomas Müller a4c422a6da added missing LockNotAcquiredException 2014-06-05 16:48:03 +02:00
ringmaster 6ec29711fc Continued flock work.
add actual locking and log changes necessary for debugging.

Simpler log unique id.

Respect locked files, surface correct exception.

Conflicts:
	lib/private/connector/sabre/file.php

Remove unused methods.

Conflicts:
	lib/private/files/storage/local.php

Fix typo

Fix typo

Removed unused vars/declarations, update PHPDoc.

Don't error out on console.

Move Lock to private namespace, add interface. Update PHPDoc.

Restore the reference to this used exception class.

make sure to close the stream at the end of each test

Normalize lock exception messages.

don't ask for fileInfo if we already have one

Conflicts:
	apps/files_encryption/lib/proxy.php

name the storage wrapper to make sure that we don't apply the wrapper multiple times

Conflicts:
	lib/private/util.php

fix unit test after adding the additional parameter to addStorageWrapper()

only lock if unlink is called for a file

Can't use assertInstanceOf on wrapped storage; use assertTrue(instanceOfStorage() instead.

Conflicts:
	tests/lib/files/filesystem.php

Use ->instanceOfStorage() not instanceof for Storage instances.

Conflicts:
	lib/private/helper.php

get the storage from the view

Conflicts:
	apps/files_encryption/tests/webdav.php

workaround to get the unit test going

Conflicts:
	apps/files_encryption/hooks/hooks.php

Added isLocal() method to storage, used for xsendfile

Added isLocal() method to Storage to find out whether the storage is
local or not.
This method is used for the x-sendfile logic to find out whether to add
the headers.

Conflicts:
	lib/private/files.php

Add ->instanceOfStorage to handle instanceof for storage wrappers

Conflicts:
	lib/private/files/storage/common.php
	lib/private/files/storage/wrapper/wrapper.php
	lib/public/files/storage.php

Use instanceOfStorage instead of instanceof

Conflicts:
	lib/private/files.php

Fix storage wrapper being called with null

Pass any methods custom to specific storage implementations to the wrapped storage

remove duplicate declaration of isLocal()

remove file locking - code will continue to live in it's own app
2014-06-05 16:47:37 +02:00
Vincent Petry 49f2955119 Merge pull request #8870 from owncloud/storage-instanceof-stable6
Add storage->instanceOfStorage() - stable6
2014-06-05 11:16:08 +02:00
Robin Appelman b62ba9808a Pass any methods custom to specific storage implementations to the wrapped storage 2014-06-04 14:30:40 +02:00
Robin Appelman f814b9a23c Fix storage wrapper being called with null 2014-06-04 14:30:17 +02:00
Robin Appelman b3c8b574df Use instanceOfStorage instead of instanceof 2014-06-04 14:29:55 +02:00
Robin Appelman 79b953a920 Add ->instanceOfStorage to handle instanceof for storage wrappers 2014-06-04 14:17:52 +02:00
Thomas Müller d3445d9668 Merge pull request #8847 from owncloud/stable6_backport_8557
Stable6 backport of #8557
2014-06-04 10:26:59 +02:00
Thomas Müller e5dcec75ba Merge pull request #8850 from owncloud/stable6_backport_8607
[backport] [stable6] Skip filescan but execute hooks
2014-06-04 09:34:39 +02:00
ringmaster a908e281e7 [backport] [stable6] Skip filescan but execute hooks
Backport of #8607
2014-06-03 10:52:12 -04:00
ringmaster 2910486979 Allow apps to create custom session handlers. 2014-06-03 10:20:42 -04:00
blizzz 58b6b89ec4 Merge pull request #8579 from owncloud/ldap_nail_filter_on_upgrade
LDAP: fix filter can be reset and broken after upgrade from OC 5
2014-06-02 12:02:15 +02:00
Frank Karlitschek 8758b66fc4 Merge pull request #8672 from owncloud/stable6-obfuscatepasswords
[backport] [stable6] Added password obfuscation for external storage config
2014-06-02 11:56:36 +02:00
Thomas Müller 8429dde4d9 Merge pull request #8692 from owncloud/fix_unit_tests_oc6
fix failing unit tests on OC6
2014-05-28 17:44:40 +02:00
Arthur Schiwon 37ef48d9f4 simpler and better readable assignment 2014-05-28 17:24:04 +02:00
Thomas Müller 776d656ea9 Merge pull request #8683 from owncloud/log-upload-error-stable6
Log upload error stable6
2014-05-28 13:07:18 +02:00
Thomas Müller d17335d7a8 fix expectation - same as in master 2014-05-27 23:44:09 +02:00
Jan-Christoph Borchardt 84b239f123 reduce multiselect max-width from 400 to 200px to not take too much space 2014-05-27 14:32:23 +02:00
Bjoern Schiessle ab3b713c23 don't expect depreciated OC_FilesystemView 2014-05-23 15:13:59 +02:00
Thomas Müller 1eedab7f6e php upload errors are written to log 2014-05-23 11:45:35 +02:00
Vincent Petry 9a5da34721 Added password obfuscation for external storage config
Added obfuscation for all "password" options from external storages.
Added more ext storage unit tests config.
Added unit tests for reading/writing the configuration.
Added IV for ext storage password encryption
Moved the mounting code for external storage from
OC\Filesystem::initMountPoint to files_external using the post_initMountPoints hook
Fixed ext storage unit test for groups

Squashed backport of 2c561c9c50 from
master.
2014-05-22 12:29:15 +02:00
Bjoern Schiessle 6f29e1c67b only start migration if the encryption was initialized; allow to overwrite keys if no files exists 2014-05-21 17:36:39 +02:00
Arthur Schiwon 516f75fc6b add unit test to make sure the infinite loop never comes back 2014-05-16 18:03:40 +02:00
Arthur Schiwon 9f405339d6 set result entry identifier earlier, i.e. before a continue for the same level can happen. otherwise will always get the same value and we end up in an infinite loop 2014-05-16 18:03:15 +02:00
tomneedham 419e0354d5 Only accept success as 100 like the OCS spec does 2014-05-14 19:24:08 +00:00
Arthur Schiwon 313324a7b4 bump version and don't overwrite values on next update if not necessary 2014-05-14 13:27:23 +02:00
Arthur Schiwon c18f2943d5 get the correct version number for compare -.- 2014-05-14 12:01:41 +02:00
Vincent Petry 0c355cb1fb Fixed getAbsolutePath case when path is "0"
Make sure to correctly check for string emptiness when the passed path
is "0".

Backport of bab8c1f from master
2014-05-13 21:17:33 +02:00
Arthur Schiwon 68434510bd LDAP: set filter mode to raw, so filters will not be changed and broken after upgrade from oc5, when visiting the LDAP settings and opening filter tabs 2014-05-13 17:47:00 +02:00
Lukas Reschke 1e6b4576c2 Harden issubdirectory()
realpath() may return false in case the directory does not exist since we can not be sure how different PHP versions may behave here we do an additional check whether realpath returned false
2014-05-12 09:10:35 +02:00
Vincent Petry 8c1eff8f52 Merge pull request #8521 from owncloud/stable6-shareextstoragemountpointfix
[stable6] Fix sharing of ext storage mount points
2014-05-09 16:57:53 +02:00
Vincent Petry 37e29169e0 Fix getPathById for Oracle
Added extra code to handle the case of Oracle which saves empty strings
as null values.

Backport of 05dc694 from master
2014-05-09 14:37:26 +02:00
Vincent Petry b91e3be5de Added unit test for sharing ext storage mount points
Backport of f73a168 from master
2014-05-09 14:37:16 +02:00
Vincent Petry 113cd404c0 Fix sharing of ext storage mount points
When sharing an ext storage mount point, it will now use the name of the
mount point instead of an empty string for the target path.

Backport of 28f0e63 from master
2014-05-09 14:37:07 +02:00
Robin Appelman d2dbab21fb Fix getPath for storage roots 2014-05-07 21:51:10 +02:00
Vincent Petry a152f3a50f Added PostgreSQL version warning + log on upgrade
Backport of 3cd09f2, a25b86a, 6bfeb34 from master
2014-05-07 12:15:55 +02:00
Morris Jobke c341a971f8 fix getUserFolder() of server container 2014-05-05 23:09:06 +02:00
Georg Ehrke 1d2dc9b685 fix issue with spamming logging files when loading cached thumbnail
Conflicts:
	lib/private/preview.php
2014-05-05 16:04:05 +02:00
Bjoern Schiessle 4e1d57e815 always encrypt files to owner 2014-05-05 12:05:36 +02:00
Fabian Henze 76cdd85cd9 Add unit tests for OC_Helper::phpFileSize function 2014-05-03 13:04:10 +02:00
Fabian Henze 6f8a24c2cd Fix setting the max-upload-size for really large values.
php can only parse filesize units up to gigabytes, not terabytes or petabytes.
2014-05-03 13:03:59 +02:00
Frank Karlitschek 835025e569 6.0.3 2014-04-29 02:38:18 +02:00
Lukas Reschke 821ad6ad41 Merge pull request #8389 from owncloud/reset-3rdparty-stable6
Update 3rdparty
2014-04-28 22:25:43 +02:00
Thomas Müller 3fe45b1d4c Update 3rdparty 2014-04-28 20:38:48 +02:00
Thomas Müller 86757cdb45 Merge pull request #8384 from owncloud/kill_office_fallback_stable6
backport b68098ebba to stable6
2014-04-28 20:29:06 +02:00
Volkan Gezer 65ea07fc54 Update outdated comment 2014-04-28 20:24:17 +02:00
Georg Ehrke a3d93f0ba1 backport b68098ebba to stable6 2014-04-28 15:42:48 +02:00
Lukas Reschke 283a8b9624 Clarify the trusted_domain error page
Backport of https://github.com/owncloud/core/pull/8372
2014-04-27 18:34:35 +02:00
Lukas Reschke dacacacc4f Revert "Clarify the trusted_domain error page"
This reverts commit 4f9a5c9d3c.
2014-04-27 18:33:50 +02:00
Lukas Reschke 4f9a5c9d3c Clarify the trusted_domain error page
Conflicts:
	lib/base.php
2014-04-27 18:32:28 +02:00
Lukas Reschke e5def25f40 Add another example to the trusted_domains config
Users often ask in IRC or the forum how to add another domain.
Hopefully they will be able to find it out on their own if we have an example with two domains.
2014-04-26 23:13:48 +02:00
Morris Jobke 2c92ef9e64 Merge pull request #8365 from owncloud/stable6-external-storage-css-fix
fix layout of external storage config table
2014-04-26 10:34:36 +02:00
Morris Jobke 16ae62f246 fix layout of external storage config table
Conflicts:
	apps/files_external/css/settings.css
2014-04-26 00:45:45 +02:00
Frank Karlitschek 53df9c93c4 6.0.3 RC1 2014-04-23 16:49:44 +02:00
blizzz 14c95086a9 Merge pull request #7745 from owncloud/fix_6946_stable6
Group Database backend must not gather user details itself but ask user backends, fixes #6946 in stable6
2014-04-23 16:30:26 +02:00
Lukas Reschke 4696b06060 Merge pull request #8261 from owncloud/stable6-backport-8182
Backport of #8182
2014-04-23 14:37:07 +02:00
Arthur Schiwon 0a9487ec80 fix after rebase 2014-04-23 13:55:21 +02:00
Arthur Schiwon fcffccf018 keep the constant to not provoke PHP warnings 2014-04-23 13:35:01 +02:00
Arthur Schiwon 72b90816fa trim must not be used in empty in PHP < 5.5 2014-04-23 13:35:00 +02:00
Arthur Schiwon 6aeb5996b6 test for group manager's displayNamesInGroup 2014-04-23 13:35:00 +02:00
Arthur Schiwon af45da94b3 adjust user manager tests 2014-04-23 13:35:00 +02:00
Arthur Schiwon f93ab1105f implement getDisplayNames in group manager 2014-04-23 13:35:00 +02:00
Arthur Schiwon 637aa56197 remove now unnecessary test 2014-04-23 13:34:56 +02:00
Arthur Schiwon 649233e54c clean up group backends 2014-04-23 13:34:56 +02:00
Arthur Schiwon 8d00f1ca1f LDAP: getDisplayNamesInGroup is not an option for group backends anymore 2014-04-23 13:34:56 +02:00
Arthur Schiwon 60edf98c15 remove OC_GROUP_BACKEND_GET_DISPLAYNAME option for group backends 2014-04-23 13:34:56 +02:00
Thomas Müller 1041617a4e Merge pull request #8260 from owncloud/stable6-backport-8183-and-co
Backport of #8183 and #8197
2014-04-23 12:04:09 +02:00
ben-denham a314508543 Backport of #8164
Added improved version of patch by @blizzz in https://github.com/owncloud/core/issues/6651#issuecomment-32261257 to stop filter settings from being reset under a race condition.

Moved LdapFilter into a separate js file in user_ldap.

Changed conditions in user_ldap's ldapFilter.js to use ===, fixed indentation.

fix comparison in determineMode, fixes problems with restoring the filter mode (assisted or manually) on page refresh

Give hint when composing filter failed

fixing some JSHint warnings
2014-04-23 11:21:28 +02:00
Thomas Müller 74241140d2 Update 3rdparty submodule 2014-04-22 23:59:03 +02:00
Lukas Reschke d3a15b6b07 Check whether the user has permissions to add personal storage backends
Quick’n dirty back port of #8182 - master has a better fix but that
should be good enough…

missing return - OCP\JSON::success does not terminate the PHP process - which is good ;-)

Use error instead of success

Revert "Use error instead of success"

This reverts commit e2d5535a5aa436c3896e46f0b9e8ff1bd5640d4d.

Use error instead of success
2014-04-22 23:20:32 +02:00
blizzz 1403a85950 Merge pull request #8232 from owncloud/fix_8135
LDAP: optimize retrieval of displaynames, fixes #8135
2014-04-22 18:35:47 +02:00
Bernhard Posselt 130f2419f5 Merge pull request #8265 from owncloud/appframework-fix-backports
Appframework fix backports
2014-04-18 22:29:57 +02:00
Bernhard Posselt a53ec9ebeb merge middleware string registration 2014-04-18 16:17:58 +02:00
Bernhard Posselt 33bdab1618 use references for middleware to fix problems on 5.3 2014-04-18 16:14:46 +02:00
Bernhard Posselt 3405342ab6 merge dicontainer 2014-04-18 16:14:44 +02:00
Bernhard Posselt 980b11f096 default to GET request when no method is set to fix unittests, also set parsed json parameters on the post attribute 2014-04-18 16:13:10 +02:00
Bernhard Posselt 22485fe743 Correctly process request parameters other than GET or POST, dont use globals in the class but inject it 2014-04-18 16:13:01 +02:00
Lukas Reschke a7bc716b95 Merge pull request #8259 from owncloud/backport-7682-6
Backport #7682
2014-04-18 11:36:59 +02:00
Lukas Reschke 9b36224bd4 Backport of #8197 to stable6
This extends mimetypes.list.php to be a white-list of known secure mime
types as well as offering secure alternatives for know potentially
malicious mime types.
I kept this in the OC_Helper and OC\Files\Type\Detection classes as
each backend has its own way of detecting mime types.

This supersedes #8184 as discussed in owncloud/security-tracker#56
2014-04-18 11:19:47 +02:00
Lukas Reschke 9f1788f202 Backport of #8183 to stable6
Some headers were currently only added to the templates but not to
other components (e.g. SabreDAV / JSON / etc...)
The migration to base.php ensures that the headers are served to all
requests passing base.php
2014-04-18 11:13:47 +02:00
Lukas Reschke a30040411c Backport of #7682 to stable6 2014-04-18 10:36:04 +02:00
Lukas Reschke c4d4065dc2 Use JS as content-type due to mimesniffing 2014-04-17 17:15:35 +02:00
Robin Appelman d4be12ab21 Verify that a file exists before we share it 2014-04-17 12:32:52 +02:00
Arthur Schiwon 02de48e1ba add additional comments, PHPdoc and check whether it's really applicable 2014-04-16 17:16:51 +02:00
Arthur Schiwon 97d6db966c LDAP: cache display names immediately on retrieval, saves tens of unecessary queries to LDAP server in the share dialog for example 2014-04-16 12:56:08 +02:00
Arthur Schiwon cf2fc58c65 Backport of PR #7815, correct LDAP user count on setup with many users
(occ user:report)

LDAP: make sure cache key for paged result cookie matches when limit or offset is null or 0

LDAP: fix user report i.e. count for LDAP servers with really many users

initialize variable

var count is assigned in the inner loop so it must be checked inside there to be properly used as part of the exit condition of the outer loop

Put inner loop into own method, let's see whether it makes scrutinizer happier
2014-04-16 11:15:16 +02:00
Arthur Schiwon e1b1ce684d adjust tests accordingly 2014-04-15 19:16:02 +02:00
Arthur Schiwon 793f20d728 Remove limit and offset manipulation when getting users or groups, because it does not work when more than one user or group backend. Fixing it would be too costly performancewise, so we switch back to the model used in OC 5: limit and offset are effective per backend, and not a general constraint 2014-04-15 19:15:55 +02:00
blizzz 15ebb4b8ad Merge pull request #8166 from owncloud/ldap_update_email
Also check for email address on userExists (next to Avatar and Quota)
2014-04-14 10:23:57 +02:00
Arthur Schiwon 80a294b334 LDAP: fetch email from LDAP on userExists check as well (along to Quota and Avatar) 2014-04-11 18:33:58 +02:00
Thomas Müller 6636c14c2a Merge pull request #8150 from owncloud/backport-8138-stable6
To isolate the variable scope used inside the $file it is required in i...
2014-04-11 12:30:18 +02:00
Bernhard Posselt bf898f90bc Merge pull request #8151 from owncloud/backport-8137-stable6
add requirements to routing
2014-04-10 21:34:57 +02:00
Bernhard Posselt de7a3861f3 Merge pull request #8119 from Raydiation/stable6
Remove dependency on container, removing service locator antipattern
2014-04-10 19:41:10 +02:00
Vincent Petry d4951c68f3 Fixed Sabre Node implementation to correctly return timestamps as int
Negative timestamps were returned as string and were confusing other

Sabre API like Sabre_DAV_Property_GetLastModified.

This fix makes sure the timestamp is returned as int when defined.

Backport of 4f11786 from master
2014-04-10 17:46:36 +02:00
Vincent Petry 85e90c33fc Merge pull request #8148 from owncloud/backport-6676-stable6
Disabled internet checking as mentioned when in proxy mode
2014-04-10 17:28:00 +02:00
Bernhard Posselt 22632a227c Update controller.php
Backwards compability fix for faster merge ;)
2014-04-10 16:43:57 +02:00
Bernhard Posselt fc8004d335 add requirements to routing
Conflicts:
	tests/lib/appframework/routing/RoutingTest.php
2014-04-10 16:25:44 +02:00
Thomas Müller 2149670328 fix code formatting 2014-04-10 16:20:42 +02:00
Thomas Müller 2741eb1fe3 To isolate the variable scope used inside the $file it is required in it's own method - refs #8138 2014-04-10 16:15:04 +02:00
Joan b09614b61b Disabled internet checking as mentioned when in proxy mode 2014-04-10 15:48:04 +02:00
Morris Jobke 2257ae987f Merge pull request #8123 from owncloud/fix_filename_closing_tag
fix double closing </a> for filenames
2014-04-09 13:41:08 +02:00
Arthur Schiwon 88949d7f94 Backport of PR #7837 to stable6
LDAP Wizard: when determining objectclasses, we realy do not need to look at every entry. Fixes #7530

Conflicts:
	apps/user_ldap/lib/wizard.php

Fix wildcard handling and check even less DNs per filter, enough will be looked at anyway

Use the LDAP wrapper for checking resources, needs for proper testing

fix potential infinite loop when the DN of the first entry was already read.

add tests for cumulativeSearchOnAttribute

make tests work on systems without php5_ldap

define var

add comment to clearify when a skip in the foreach happens
2014-04-09 12:45:36 +02:00
Jörn Friedrich Dreyer e34d00a958 fix double closing </a> for filenames 2014-04-09 11:23:57 +02:00
Bernhard Posselt 6b15731bfe Remove dependency on container, removing service locator antipattern 2014-04-08 22:48:57 +02:00
Vincent Petry be30728bc2 Fixed chunking and insufficient storage check
- fixed free space detection based on the already uploaded chunks
- now deleting chunks as soon as it is read out before writing it into
  the part file, which reduces the space needed when assembling part
files

Backport of 4033eba from master
2014-04-07 09:48:07 +02:00
Vincent Petry d34e1b524a Do not expire chunks while checking for their existence
The expiration should be done by the gc() function on login, not while
isComplete() is calling hasKey() for every chunk.

Backport of ab56f69416 from master
2014-04-04 17:17:53 +02:00
blizzz 3debb33346 Merge pull request #8038 from owncloud/fix_8028
Meanwhile, the quota value is stored human-readable in the DB
2014-04-04 16:34:48 +02:00
Robin Appelman 79635ccb41 Add bindParam to statement wrapper 2014-04-04 15:12:51 +02:00
Robin Appelman d8097b48ea fix unit tests 2014-04-04 13:07:14 +02:00
Thomas Müller 1116455b3f Merge pull request #8037 from owncloud/fix-7216
authentication apps need to be loaded in any case - fixes #7216
2014-04-03 23:05:41 +02:00
Arthur Schiwon 09802ac217 Meanwhile, the quota value is stored human-readable in the DB 2014-04-03 20:51:05 +02:00
Thomas Müller 984586c20a authentication apps need to be loaded in any case - fixes #7216 2014-04-03 20:47:38 +02:00
Robin Appelman a591160c32 use a non-recursive chmod on the datadir 2014-04-03 13:42:35 +02:00
Robin Appelman 6dd3215eae Improve phpdoc 2014-04-03 13:27:09 +02:00
Robin Appelman e96c365054 Implement getPath for shared files 2014-04-03 13:27:01 +02:00
Robin Appelman 2150cac956 Give storages the option to implement the getById behaviour for View->getPath 2014-04-03 13:26:54 +02:00
blizzz 096b4d8b1b Merge pull request #7931 from owncloud/fix_7785_stable6
LDAP: Read email and quota when mapping user, fixes #7785
2014-04-02 19:24:22 +02:00
Volkan Gezer 47e3e73c8f Fix admin-dir_permissions redirection when cannot write warning
is shown.
2014-04-02 14:51:06 +02:00
Arthur Schiwon 519ab3a9c8 more precise php doc 2014-04-02 11:01:29 +02:00
Arthur Schiwon 5df99d3e61 add PHP docs 2014-04-01 21:57:01 +02:00
Jan-Christoph Borchardt bd5eec7bb7 general styles for the content area 2014-04-01 18:55:37 +02:00
Rodrigo Hjort 2086e80e4d Correction: failure on sharing when user ID was prefixed by zero
Backport of 51b727c from master
2014-04-01 18:42:10 +02:00
Vincent Petry f84168253b Merge pull request #7976 from owncloud/fix-7973-stable6-2
remove pl_PL - fixes #7973
2014-04-01 18:41:33 +02:00
Thomas Müller a390bd2e73 Revert "remove Sabre_DAV_Browser_Plugin"
This reverts commit e4104e63d9.
2014-04-01 13:42:58 +02:00
Thomas Müller 456f02b476 remove pl_PL - fixes #7973 2014-03-31 18:10:12 +02:00
Bjoern Schiessle 027de54558 don't write file if opening a stream to encrypt the data fails 2014-03-28 15:00:27 +01:00
Arthur Schiwon 7dd34b1212 LDAP: Read email and quota when mapping user, fixes #7785 2014-03-28 12:18:24 +01:00
Jörn Friedrich Dreyer 24274acd6a don't block php session while download is in progress 2014-03-28 11:41:58 +01:00
Morris Jobke 5099caa55a Merge pull request #7901 from owncloud/fixed_position_ocdialogdim
prevent dimmed ocdialog div from scrolling
2014-03-28 02:43:08 +01:00
Vincent Petry 17e5c03a02 Fix swift touch operation
The touch() operation now uses "UpdateMetadata()" instead of "Update()"
which doesn't clear the object's contents.

This fixes syncing, as the sync client needs to use touch to update the
object's mtime.

Backport of 2a08e35 from master
2014-03-27 18:39:57 +01:00
Vincent Petry a31b37e733 Fixed mtime reading from OpenStack API
The API seems to return floating point values, which prevents
the hasUpdated() check to work and causes the scanner to rescan
everything every time.

Backport of fa00a18 from master
2014-03-27 17:59:39 +01:00
Jörn Friedrich Dreyer 35e4784202 prevent dimmed ocdialog div from scrolling 2014-03-26 17:48:33 +01:00
Thomas Tanghus f464620a65 Fix 'Undefined variable: message' in OCP\Util::logException 2014-03-25 18:07:07 +01:00
Arthur Schiwon 2d639b83ab add test for cloning and keeping configuration seperate 2014-03-21 18:03:05 +01:00
Arthur Schiwon 406747ab30 Use array_key_exists instead of isset, because the latter returns false if the assigned value is null 2014-03-21 18:02:59 +01:00
Arthur Schiwon b41c1d7655 On clone create a new instance of the Configuration
To avide effects on the original instance of Connection when the clone
is modified, for instance on authentication checks.
2014-03-21 18:02:53 +01:00
Vincent Petry b10b8a470b Fixed warning when browsing Shared folder
The virtual "Shared" folder doesn't have an unencrypted_size field.
This fix adds a check to prevent warnings in the log.

Backport of 022d76c from master
2014-03-21 17:56:56 +01:00
Thomas Müller 23ffdcc314 Merge pull request #7840 from owncloud/fix/7839
fixing wrong html close tags
2014-03-21 12:54:55 +01:00
Vincent Petry ffdbdf7496 Merge pull request #7834 from owncloud/stable6-quota-usequotaevenwhenfreespaceunknown
[stable6] [backport] Still return quota value when free space is unknown
2014-03-21 12:29:19 +01:00
Thomas Müller df636371a7 fixing wrong html close tags 2014-03-21 12:15:02 +01:00
Robin McCorkell ceff4dae61 Fix duplicate ipauniqueid 2014-03-21 11:30:00 +01:00
Robin McCorkell 540d4af8a7 Add FreeIPA UUID compatibility, fixes #7796
Ability to use ipauniqueid for the UUID of a user
2014-03-21 11:29:50 +01:00
Vincent Petry bb995c53c5 Still return quota value when free space is unknown
Fixed the quota storage wrapper to correctly return the quota value
when the free space is not known (which usually happens when the
disk_free_space function is disabled)

Backport of 66bc0f0 from master
2014-03-21 10:25:43 +01:00
Vincent Petry eacb4b3f3e Return unencrypted_size of folder when queried
This fixes the "used space" to be based on the unencrypted size, not
encrypted size, to be consistent with how quota/space is handled when
encryption is enabled
2014-03-21 10:23:56 +01:00
Vincent Petry a70b99ff62 Propagate unencrypted_size up to the file cache root 2014-03-21 10:23:48 +01:00
Vincent Petry 2c2fd5f3a0 Merge pull request #7819 from owncloud/stable6-datafolderexistence
[stable6] [backport] Added .ocdata file to check for data folder validity
2014-03-20 15:28:33 +01:00
Vincent Petry 288c40e2a6 Increase version to trigger upgrade related to .ocdata 2014-03-20 11:51:54 +01:00
Vincent Petry d85d3a4493 Return 503 when a config/data dir error exists
Backport of b619ff6 from master
2014-03-20 11:51:14 +01:00
Vincent Petry a1c0c5e1a2 Added .ocdata file to check for data folder validity
In environments where the data folder is mount from another partition,
it is important to check that the data folder we see is actually the
real one. If the mount failed for some reasons, this fix will make
ownCloud temporarily unavailable instead of causing unpredictable
behavior.

Backport of 3c46dcd from master
2014-03-20 11:50:53 +01:00
Robin McCorkell 6ccc8173d3 Fix smb4php to work with home shares
Stat'ing a share with url_stat now checks if the user can run 'ls' in that share rather than checking if the share is listed by the server. This means that OwnCloud can now mount user home shares, which are never listed by the server.
2014-03-18 21:37:14 +01:00
Vincent Petry 2cb342c3b8 Display admin option for public upload with encryption enabled
Now that public upload works with encryption, the admin option to toggle
it must be made visible.

Backport of b75ca9f from master
2014-03-18 13:15:50 +01:00
Vincent Petry 58db31e61e Added warning for trusted_domains after CLI upgrade
If trusted_domains is not set after a CLI upgrade, show a warning in the
output.

Backport of 1a11682 from master
2014-03-17 14:27:19 +01:00
Bjoern Schiessle 30cca2524f finally fix the paths for the OCS Share API 2014-03-13 20:28:08 +01:00
Vincent Petry 53ad7ebfea Merge pull request #7690 from owncloud/backport-7683-stable6
Backport 7683 stable6
2014-03-13 11:41:46 +01:00
Thomas Müller bff2c20fce Merge pull request #7701 from owncloud/backport-7681-stable6
remove Sabre_DAV_Browser_Plugin
2014-03-13 09:42:28 +01:00
Thomas Müller e4104e63d9 remove Sabre_DAV_Browser_Plugin 2014-03-12 23:56:28 +01:00
Vincent Petry bc5145e267 Merge pull request #7698 from owncloud/backport_7631
only enable drag&drop upload if public upload is allowed
2014-03-12 23:51:45 +01:00
Vincent Petry 544495563f Merge pull request #7280 from owncloud/tune_legacy_cache_webdav_properties_prefixing_stable6
Concatenate string in SQL instead of PHP, use doctrine to construct concat expression
2014-03-12 18:55:11 +01:00
Bjoern Schiessle 112a277998 only enable drag&drop upload if public upload is allowed, backport of #7631 2014-03-12 17:50:26 +01:00
Thomas Müller 46657ad8a6 fixing method names 2014-03-12 15:40:54 +01:00
Thomas Müller 14b9eba428 set content-type on ocs exceptions 2014-03-12 15:40:54 +01:00
Frank Karlitschek 6a31fecca3 increase version number 2014-03-11 19:11:07 +01:00
Bjoern Schiessle 3ccbc25dba add 'received_from' info to the share, so that every share can have a different value 2014-03-11 17:16:04 +01:00
Bjoern Schiessle c3c255b0ca fix path creation for re-shares, issue #7662 2014-03-11 17:15:56 +01:00
Thomas Müller 2e42b0555a Merge pull request #7672 from owncloud/backport-7659-stable6-2
Backport 7659 stable6 2
2014-03-11 16:26:28 +01:00
Thomas Müller c1c6ce22e8 remove magic handling of recipient lists by exploding the string - this functionality is nowhere used this way and nowhere documented - and broken because only $toaddress will be exploded not $toname 2014-03-11 14:41:36 +01:00
Thomas Müller a3bc3bbf2d backport #7659 2014-03-11 14:40:51 +01:00
Victor Dubiniuk 37e19534f1 Reset time of last update feed polling 2014-03-11 15:36:08 +03:00
Morris Jobke d290f44fc7 Merge pull request #7608 from owncloud/stable6-publicpagedownloadall
[stable6] Fixed "select all" + download on public page
2014-03-11 10:29:08 +01:00
Vincent Petry 4966d632ae Disable XML entities when parsing XML 2014-03-10 20:41:40 +01:00
Thomas Müller a5871c1811 Merge pull request #7653 from owncloud/backport-7646-stable6
we need the file_source to delete a share successfully
2014-03-10 17:55:27 +01:00
Bjoern Schiessle 0f40acb9a8 we need the file_source to delete a share successfully 2014-03-10 16:44:58 +01:00
Thomas Müller cf2af3ce4d Merge pull request #7633 from owncloud/fix-7582-stable6
Fix 7582 stable6
2014-03-10 15:10:07 +01:00
Thomas Müller d54f314c93 fixing ident 2014-03-07 20:05:11 +01:00
Thomas Müller ff078db8cb we first shall check if the current session is valid - otherwise the session-id will be regenerated on login via basic auth 2014-03-07 20:03:51 +01:00
Björn Schießle acc35849af Merge pull request #7586 from owncloud/dont_create_shared_folder_stable6
[oc6] don't allow to create a file or folder named 'Shared' in the root folder
2014-03-07 10:31:08 +01:00
Frank Karlitschek c9c91c7e15 Merge pull request #7609 from owncloud/fix-updater-6
Use $installedVersion instead of $currentVersion
2014-03-06 23:19:11 +01:00
Lukas Reschke ce5f8d72a4 Use $installedVersion instead of $currentVersion
Additionally use 6.00.4 as the internal version has been changed
2014-03-06 22:43:08 +01:00
Vincent Petry b4c10eea60 Fixed "select all" + download on public page
When a user has lots of files, selecting all and downloading would send
the whole list of files to the server.

This fix makes it use the simpler default download URL in such cases
(the one that was used by the "Download" button that is now removed on
the public page)
2014-03-06 20:32:27 +01:00
Vincent Petry c358373dfa Merge pull request #7578 from owncloud/introduce-generateUrl-stable6
adding new javascript function OC.generateUrl(url, params)
2014-03-06 17:26:17 +01:00
Frank Karlitschek 95ddadd146 increase the version number 2014-03-06 16:52:44 +01:00
Morris Jobke 91392c5a87 add dprecated warning for OC.Router 2014-03-06 15:17:55 +01:00
Jan-Christoph Borchardt 26b70bce28 fix noise not repeating 2014-03-06 14:55:04 +01:00
Bjoern Schiessle 7f81b14eff don't allow to create a file or folder named 'Shared' in the root folder, also exclude all combinations of lower and upper case letters 2014-03-06 12:09:32 +01:00
Thomas Müller 87d385303f adding new javascript function OC.generateUrl(url, params) 2014-03-06 00:28:11 +01:00
Lukas Reschke eaf96335ad Merge pull request #7565 from owncloud/stable6-trusteddomainerrorpage
[stable6] Show warning page when accessing server from an untrusted domain
2014-03-05 21:04:11 +01:00
Vincent Petry d7163c9b5a Fixed X-Forwarded-Host parsing 2014-03-05 20:06:05 +01:00
Vincent Petry 98ff74a70e Added unit tests for serverHost and other related functions 2014-03-05 20:06:04 +01:00
Vincent Petry f1b948d4dc Added localhost as trusted domain 2014-03-05 18:59:34 +01:00
Vincent Petry 9b6b02af6d Show warning page when accessing server from an untrusted domain
Added early check for the requested domain host and show a warning
page if the domain is not trusted.
2014-03-05 18:59:34 +01:00
Jan-Christoph Borchardt 6b45835ecf add hover/focus states for star icons to hint at action 2014-03-05 15:29:52 +01:00
Bjoern Schiessle c02c815603 don't create files folder, let ownCloud core handle it 2014-03-05 14:32:25 +01:00
Vincent Petry 5bf9aab464 Fixed configkey casing for PostgreSQL
Backport of fd5dec0 from master
2014-03-04 17:59:48 +01:00
Vincent Petry 722b81627c Merge pull request #7464 from owncloud/enc_fseek_fallback_stable6
Enc fseek fallback stable6
2014-03-04 12:53:08 +01:00
Vincent Petry 7e2659f017 Fix mail template to use p() for colors
Now using p() instead of print_unescaped() for colors.

Backport of 25251d4 from master
2014-03-03 17:43:52 +01:00
Frank Karlitschek 52b3187962 Merge pull request #7510 from owncloud/stable6-theme-mailtemplate
[stable6] Enable theming of the mail template header
2014-03-03 17:21:53 +01:00
Jan-Christoph Borchardt b3c5aaa1ca make mail notification header color themable 2014-03-03 16:50:05 +01:00
Jan-Christoph Borchardt ea62d23cb3 compress mail notification logo 2014-03-03 16:50:01 +01:00
Jan-Christoph Borchardt 289f64b191 mail template: remove off-white background color to better blend into mail client 2014-03-03 16:49:54 +01:00
Jan-Christoph Borchardt 5878d27068 remove border from log in input fields, simpler and works better with themes 2014-03-03 16:19:49 +01:00
Frank Karlitschek 071e371803 increasing the internal verison one more 2014-03-03 14:59:34 +01:00
Björn Schießle ccf2bf74ea Merge pull request #7501 from owncloud/stable6-libxmlfixsubmoduleupdate
Updated submodule for libxml entity fixes
2014-03-03 13:04:05 +01:00
Vincent Petry 9e439305fd Updated submodule for libxml entity fixes 2014-03-03 12:58:18 +01:00
Björn Schießle dadd67e7bd Merge pull request #7498 from owncloud/stable6-dbschemaxmlentityfix
Allow XML entity loader for MDB2 schema loader
2014-03-03 12:55:38 +01:00
Vincent Petry 762b0d9510 Allow XML entity loader for MDB2 schema loader 2014-03-03 12:15:51 +01:00
Frank Karlitschek dc0a7428bd 6.0.2 2014-02-28 22:59:59 +01:00
Thomas Müller 7534fae9bc Merge pull request #7462 from owncloud/ldap_proxy_access
Ldap proxy access
2014-02-28 21:51:37 +01:00
Jan-Christoph Borchardt 68a9ceacbb Merge pull request #7472 from owncloud/stable6-icons.css-updates
stable6 icons.css backports
2014-02-28 15:24:56 +01:00
Jan-Christoph Borchardt 8a3a5a2ff1 icons: automatically show delete hover instead of using explicit class 2014-02-28 11:37:00 +01:00
jbtbnl 8995c81103 Remove necessity of icon class
Only the icon specific class is needed
2014-02-28 11:36:51 +01:00
jbtbnl 095f9114dd Add white color variant of checkmark icon 2014-02-28 11:36:39 +01:00
Arthur Schiwon 470a0ad611 remove remaining testing artefact 2014-02-28 10:58:51 +01:00
Bjoern Schiessle 9661001af1 remember original fopen access type in pre-proxy because sometimes they change
during the fopen call, e.g. 'r' becomes 'r+' if we open an URL
2014-02-28 10:38:58 +01:00
Vincent Petry 17f869b2fb Merge pull request #7459 from owncloud/deletestorage-legacy
Also delete legacy storages when deleting a user
2014-02-28 10:30:52 +01:00
Vincent Petry 162ba722f6 Merge pull request #7468 from owncloud/stable6-enc-fixfieldnametypo
[stable6] Fixed wrong field name
2014-02-27 23:52:20 +01:00
Vincent Petry 4756d18a14 Fixed wrong field name
This re-fixes an issue where the unencrypted size isn't updated
correctly when saving a text file in the UI multiple times.

Fixes #7467
2014-02-27 19:50:16 +01:00
Bjoern Schiessle 9cff832282 add test for the stream wrapper to read encrypted files from the system folder /tmp 2014-02-27 18:02:13 +01:00
Bjoern Schiessle 7ced22ccc6 test for isEncryptedPath() 2014-02-27 18:02:05 +01:00
Bjoern Schiessle 6455722f29 extend the encryption stream wrapper to handle local files and add a fall back for file size calculation if the storage doesn't support fseek 2014-02-27 18:01:58 +01:00
Bjoern Schiessle 8b3d99308c implement ftell stream wrapper and fix return value from fseek stream wrapper 2014-02-27 18:01:51 +01:00
Bjoern Schiessle f87319f834 fall back to getLocalFile if storage doesn't support fseek 2014-02-27 18:01:45 +01:00
Arthur Schiwon 4605c2cc2d intendetion. where did the whitespaces come from? 2014-02-27 16:20:53 +01:00
Arthur Schiwon 49e567a5cc LDAP: let proxy for multiple server access methods from Access 2014-02-27 16:18:03 +01:00
Robin Appelman 7580518bd8 Also delete legacy storages when deleting a user 2014-02-27 14:52:36 +01:00
Jörn Friedrich Dreyer d93b5af265 Merge pull request #7430 from owncloud/stable6-quote-oldcolumname
[stable6] Also quote old column name during DB migration
2014-02-27 13:12:32 +01:00
Bjoern Schiessle 9a0c78b831 close encryption session after decryption was finished 2014-02-27 11:48:29 +01:00
Jan-Christoph Borchardt 61a37331ce disable autocomplete for shared link password input, fix #7419 2014-02-26 22:21:36 +01:00
Thomas Müller d265d290c3 Merge pull request #7426 from owncloud/stable6-fixmailnotificationtranslation
[stable6] Backported incorrect translation texts for German
2014-02-26 22:18:42 +01:00
Thomas Müller aff7594ef3 let's name the column 'select' because this is a keyword on all platforms 2014-02-26 22:14:44 +01:00
Thomas Müller 5e586995a8 adding test for migrations on columns using keywords 2014-02-26 22:14:44 +01:00
Vincent Petry 1d0e45e179 Also quote old column name during DB migration
This fixes alter table commands that didn't quote the old column name
2014-02-26 16:30:38 +01:00
Vincent Petry cab94eb719 Fix German message for "Enter new" 2014-02-26 15:50:02 +01:00
Vincent Petry c1cc4df26e Fixed German shared notification message 2014-02-26 15:49:44 +01:00
Bjoern Schiessle b4f154f9b4 fix path in sharing results if it is a file in the Shared folder 2014-02-26 15:22:20 +01:00
Bjoern Schiessle ac3f1d6f61 only add "received_from" if a share was found 2014-02-26 14:49:41 +01:00
Morris Jobke d27f2929d2 Merge pull request #7402 from owncloud/stable6-ie9-navigation
Stable6 IE9 navigation bar width
2014-02-26 13:49:03 +01:00
Vincent Petry 6aee04bba4 Merge pull request #7397 from owncloud/stable6-scrollperformance
Users list scrolling performance / improvements
2014-02-26 13:19:27 +01:00
Thomas Müller a88b253c78 introduce new theme function to allow full creation of documentation links: buildDocLinkToKey() 2014-02-26 12:52:49 +01:00
Jan-Christoph Borchardt 751c1b0418 manual backport of IE9 navigation bar pull request #6808, fix #7321 2014-02-26 09:19:02 +01:00
Vincent Petry a0feffb2a7 Added loading spinner to users list on scroll 2014-02-25 19:37:33 +01:00
Vincent Petry 34d17e6168 Improve users list scrolling performance
- fixed JS error when avatar mode is disabled
- added spinner at the bottom of the table
- scroll detection now happens earlier
- single/multiselect init is deferred so that the new rows are first appended
  into the list (more responsive) and initialized afterwards
- disabled users sorting after add (assuming they are always sorted on
  the server side)
2014-02-25 19:37:23 +01:00
Owen Winkler c30377392b Merge pull request #7394 from owncloud/backport-7344
Allow apps to add/modify config js output via hook.
2014-02-25 10:37:33 -05:00
ringmaster 0d2482a1a9 Allow apps to add/modify config js output via hook. 2014-02-25 09:16:38 -05:00
Vincent Petry 149814d95b Replace deleteAll call with unlink call
The method deleteAll() doesn't officially exist on the Storage class as
it's not defined on the interface, which means it fails on the Quota
storage wrapper and might fail on some external storage classes.
Also, this here is the only use case for that one method.
2014-02-25 15:01:38 +01:00
Frank Karlitschek 16e24dc4c5 Merge branch 'stable6' of https://github.com/owncloud/core into stable6 2014-02-25 13:56:30 +01:00
Frank Karlitschek dc11b87a1d 6.0.2 RC1 2014-02-25 13:56:06 +01:00
Bjoern Schiessle c8d34eaf9c add test case if a file gets moved out from the shared folder 2014-02-25 12:42:34 +01:00
Bjoern Schiessle 9183ade655 don't overwrite keys if rename was done by a stream copy 2014-02-25 12:36:06 +01:00
Vincent Petry 678afc4906 Merge pull request #7386 from owncloud/stable6-fixhostnamewithport
Fix case where port is missing
2014-02-25 12:32:41 +01:00
Vincent Petry 6d3b5b24fd Fix case where port is missing 2014-02-25 11:22:53 +01:00
icewind1991 4286eeb531 Merge pull request #7369 from owncloud/stable6-smbmissingfiles
[stable6] Fixed missing files on SMB storage
2014-02-24 13:57:57 +01:00
Vincent Petry 0187537a2e Fixed missing files on SMB storage
Files with attribute "N" weren't parsed out of the file list returned by
smbclient. It seems that these files appear when created on a Linux SMB
mount directly and that have no executable bit.
2014-02-24 09:22:02 +01:00
Vincent Petry 928947f1c3 Added extra checks for ext storage class 2014-02-22 08:13:11 +01:00
Lukas Reschke fb1ebf13c6 Adjust version for stable6 2014-02-22 08:09:49 +01:00
Lukas Reschke ed7e9be7cd Add overwritehost config on setup and upgrade 2014-02-22 07:59:39 +01:00
Bjoern Schiessle e903c8b57b fix test so that it doesn't depend on the array order 2014-02-21 15:53:11 +01:00
Bjoern Schiessle 210832ddf1 fix usersPath and add unit tests 2014-02-21 15:53:03 +01:00
Vincent Petry 96ebefc597 Updated submodule
Includes XML fixes
2014-02-21 15:49:08 +01:00
Bjoern Schiessle 5348e2eb54 fix sharing unit tests 2014-02-21 14:44:09 +01:00
Bjoern Schiessle f6e6f465f2 add unit test for \OC\URLGenerator::getAbsoluteURL to verify #6935 2014-02-21 13:49:11 +01:00
Thomas Müller ce87f933a4 Merge pull request #7349 from owncloud/backport-7347
Backport of #7347 to stable6
2014-02-21 11:21:06 +01:00
Arthur Schiwon a04af7854d LDAP: fix and extend tests 2014-02-21 10:15:09 +01:00
Arthur Schiwon 75c7fd2886 LDAP: improve compilation of filters 2014-02-21 10:15:00 +01:00
Lukas Reschke 92b4d52079 Fix "headers are already sent" introduced with #6519
Backport of #7347
2014-02-21 10:05:05 +01:00
Thomas Tanghus 91b4045791 Test if $url is already prefixed by '/' 2014-02-20 18:19:05 +01:00
Thomas Tanghus 0f87a0248f Add missing slash in URLGenerator::getAbsoluteURL(). Refs. #6840 2014-02-20 18:18:54 +01:00
Arthur Schiwon 3c9421381b LDAP: prevent other configuration from being deleted when deleting the first one which has an empty prefix for historical reasons 2014-02-20 16:25:50 +01:00
nhirokinet 2d946d2766 Update user.php to fix duplicate session-duplicate 2014-02-20 14:31:28 +01:00
NARUKAWA Hiroki a422f19fac Security Update: session fixation
Previous version is vulnerable to session fixation attack in some situations, guessing non-apache-module-php5 environment. Regeneration of session id should be done here.
2014-02-20 14:31:23 +01:00
Lukas Reschke ebb1a70abc Check whether the app is set 2014-02-20 11:26:55 +01:00
Lukas Reschke b9d013e3ce Check whether the Key is set 2014-02-20 11:26:47 +01:00
Lukas Reschke b044ec0420 An admin should not be able to add remote and public services on its own. This should only be possible programmatically.
This change is due the fact that an admin may not be expected to execute arbitrary code in every environment.
2014-02-20 11:26:41 +01:00
Jörn Friedrich Dreyer 3520529430 Concatenate string in SQL instead of PHP, use doctrine to construct concat expression 2014-02-19 12:06:04 +01:00
Joas Schilling 864f0342af Make google drive client secret and dropbox api secret a password field
Fix issue #5794

Backport of 828985d
2014-02-18 18:33:13 +01:00
Joas Schilling 5a2e99c975 External FTP Storage should request hostname instead of URL
Fix issue #6277

Backport of 658af62
2014-02-18 18:15:19 +01:00
Lukas Reschke d07f459409 Use the proper content-type
We should use the proper content-type `application/xml` instead of the default `text/html` here.

Backport requested.
2014-02-18 11:45:05 +01:00
Vincent Petry 3d5d6b5ad1 Now using PHP session lifetime as default value for the JS config
This will fix the heartbeat when the session_lifetime config parameter
hasn't been set explicitly.

Backport of f9763e1fc5
2014-02-18 10:53:35 +01:00
Vincent Petry 80dcec773a Merge pull request #7225 from owncloud/enc_improved_error_handling_oc6
[encryption] improved error handling (OC6)
2014-02-17 11:26:21 +01:00
Bjoern Schiessle 43738dacfb don't block login forever if we are stuck in the middle of the initial encryption 2014-02-17 10:24:04 +01:00
Bjoern Schiessle 78b10de7d6 catch errors during decryption
Conflicts:
	apps/files_encryption/tests/util.php
2014-02-17 10:23:48 +01:00
Bjoern Schiessle 37db8a13d4 catch errors during initial encryption 2014-02-17 10:21:16 +01:00
Joas Schilling eb8b2210cd Send correct path on file upload when using public app
Fix issue #7152
2014-02-14 12:27:34 +01:00
Robin Appelman 118033cac6 Also clean up the filecache table when deleting a storage entry 2014-02-12 14:03:30 +01:00
Robin Appelman b0ba69ff31 Also remove the user's home storage from the storage table when deleting a user 2014-02-12 14:03:30 +01:00
Thomas Müller c1241b1691 Load authentication apps to get users from all backends - fixes #7019 2014-02-11 18:42:09 +01:00
Vincent Petry ad813da7b1 Merge pull request #7157 from owncloud/stable6-xsendfilequotacheck
Fix xsendfile local storage detection with quota
2014-02-11 17:03:55 +01:00
Vincent Petry b4f04c18db Fix xsendfile local storage detection with quota 2014-02-11 15:04:17 +01:00
blizzz 23985428ea Merge pull request #6778 from owncloud/fix_6430
on filtering the share box users and groups whose name begins with the s...
2014-02-11 10:38:04 +01:00
Bjoern Schiessle 018fed6014 getData() always needs to return an array 2014-02-10 15:16:58 +01:00
Arthur Schiwon 3be50224ff intendation 2014-02-10 14:53:59 +01:00
Arthur Schiwon 0213928735 fix DI 2014-02-10 14:53:59 +01:00
Arthur Schiwon 1cf599d494 Inject logger 2014-02-10 14:53:59 +01:00
Arthur Schiwon 8a4dbdedcf wrong tld 2014-02-10 14:53:59 +01:00
Arthur Schiwon 35b316f93f test for share dialoge sorter 2014-02-10 14:53:59 +01:00
Arthur Schiwon 7e451a24bc sort following entries in alphabetical order 2014-02-10 14:53:59 +01:00
Arthur Schiwon f8620704d4 move sorter into a class 2014-02-10 14:53:58 +01:00
Arthur Schiwon c6687e159b respect coding guidelines 2014-02-10 14:53:58 +01:00
Arthur Schiwon 8227bc41cd on filtering the share box users and groups whose name begins with the search term shall appear on top, fixes #6430 2014-02-10 14:53:58 +01:00
Bjoern Schiessle 6f5caaa87a refuse login as long as the initial encryption is running 2014-02-10 14:51:34 +01:00
blizzz e5dac9fa24 Merge pull request #7124 from owncloud/fix_6541
LDAP: also try MS AD's thumbnailPhoto when looking for an avatar image
2014-02-10 14:44:43 +01:00
Joas Schilling 48bb8aeb01 Only add files to file list when uploading to current directory
Fix Issue #6683
2014-02-10 12:41:45 +01:00
blizzz fd32501fe0 Merge pull request #7081 from owncloud/fix_6670
LDAP: Wizard cannot determine Base DN in some cases, fixes #6670
2014-02-10 11:27:31 +01:00
Arthur Schiwon 0a475bdab3 LDAP: improve debug message 2014-02-10 10:19:37 +01:00
Arthur Schiwon 3d6ab2b53b LDAP: also try MS AD's thumbnailPhoto when looking for an avatar image 2014-02-10 10:19:37 +01:00
Björn Schießle 5e315495c2 Merge pull request #7130 from owncloud/enc_fix_unit_tests
name users after test
2014-02-07 17:56:21 +01:00
Thomas Müller b353637e45 Merge pull request #7129 from owncloud/ldap_info_doc
LDAP: add documentation info in info.xml
2014-02-07 17:13:45 +01:00
Thomas Müller fb6290c87a Merge pull request #7083 from owncloud/backport_6777_stable6
Backport 6777 stable6
2014-02-07 17:08:25 +01:00
Bjoern Schiessle 76cb5a50c0 name users after test 2014-02-07 17:01:02 +01:00
Arthur Schiwon 5c40ef090a LDAP: add documentation info in info.xml 2014-02-07 15:55:35 +01:00
Bjoern Schiessle 9c9b161f51 replace 'size' with 'unencrypted_size' if encryption is enabled 2014-02-07 15:26:21 +01:00
Bjoern Schiessle 9b257ad862 change order of issubdirectory() calls to avoid error messages for non-apps 2014-02-07 14:48:01 +01:00
Thomas Müller 5edc4c95bc Merge branch 'stable6' into backport_6777_stable6
Conflicts:
	apps/files_sharing/css/public.css
	apps/files_sharing/templates/public.php
2014-02-07 14:21:10 +01:00
Vincent Petry f9bd4c5d24 Fixed searchByMime in shared cache
- searchByMime now correctly returns files recursively search through
  all the dirs
- added unit test for searchByMime

Backport of fa5ddc3 to stable6
2014-02-06 16:23:15 +01:00
Thomas Müller 88a5f7d994 remove css files from rewrite rule - there is no need to rewrite css any more 2014-02-06 15:13:23 +01:00
Jan-Christoph Borchardt 04b4c7c042 remove %webroot from files_sharing app 2014-02-06 14:28:26 +01:00
Jan-Christoph Borchardt 87d06bae85 remove %webroot% from files app 2014-02-06 14:28:17 +01:00
Jan-Christoph Borchardt c096c6edc3 add icons.css file, first step to get rid of %webroot% 2014-02-06 14:28:08 +01:00
Bjoern Schiessle 713c5c4275 use appstoreenabled config switch 2014-02-05 16:52:18 +01:00
Jan-Christoph Borchardt e48c7675b9 do not show 'Add app' and 'More apps' for themed ownCloud 2014-02-05 16:52:15 +01:00
Bjoern Schiessle f824986742 add function to extract filename from sharekey name + tests 2014-02-05 14:32:32 +01:00
Bjoern Schiessle 5e788ae1fa added tests for the delete hooks if the trash bin is disabled 2014-02-05 14:32:13 +01:00
Bjoern Schiessle 78b390da31 don't expect OC_FilesystemView, this is depreciated 2014-02-05 14:31:47 +01:00
Bjoern Schiessle b3257a315d better error detection and don't use glob() 2014-02-05 14:31:34 +01:00
Bjoern Schiessle fc1763dc6b move unlink proxy to a hook which handles pre and post conditions 2014-02-05 14:31:13 +01:00
Vincent Petry 7b948b0580 Added session_keepalive setting
When session_keepalive is true (default) the heartbeat will be send as
often as the half of the session timeout value.

Backport of 912da8d to stable6
2014-02-05 13:46:49 +01:00
Jörn Friedrich Dreyer 379ddd88d6 make header scroll up for single shares, more view of content on small screens 2014-02-05 11:39:02 +01:00
Jörn Friedrich Dreyer 23c015ba52 adding class to header div: share-folder or share-file 2014-02-05 11:38:21 +01:00
Jörn Friedrich Dreyer 0f97d9555c adjust file type icon placement for when no preview can be generated 2014-02-05 11:37:23 +01:00
Jörn Friedrich Dreyer 0992a77cfb permanently show download action on mobile, only icon 2014-02-05 11:33:43 +01:00
Jörn Friedrich Dreyer 4b1f93b61c fix horizontal scrollbar appearing when footer is too long, footer wraps now 2014-02-05 11:30:54 +01:00
Jörn Friedrich Dreyer 916122b166 fix multiselect bar being too short on big displays 2014-02-05 11:29:39 +01:00
Jörn Friedrich Dreyer a3b351738a Instead of 'No preview available for ...' we simple display the mime-type icon 2014-02-05 11:27:46 +01:00
Jörn Friedrich Dreyer 37f8607a88 remove background and width from multiselect bar, fix Download button not showing on mobile 2014-02-05 11:24:34 +01:00
Jörn Friedrich Dreyer a4895e4df1 focus link text only on click in the input field - closes #6817 2014-02-05 11:17:04 +01:00
Jörn Friedrich Dreyer a9a92892be remove unused variable 2014-02-05 11:15:04 +01:00
Jörn Friedrich Dreyer d8770d1284 fix input element closing tag 2014-02-05 11:13:31 +01:00
Jörn Friedrich Dreyer e3d8758a32 make sure there's enough room for the file actions 2014-02-05 11:12:01 +01:00
Jörn Friedrich Dreyer 5a5496f4e7 restrict zooming on mobile devices for the publicly accessible, optimized pages 2014-02-05 11:10:30 +01:00
Jörn Friedrich Dreyer b33cfce2fa add icons for file list and picture view toggles 2014-02-05 11:08:34 +01:00
Jörn Friedrich Dreyer 025ab0dabb on mobile, show single shared image at full width without margin 2014-02-05 11:06:42 +01:00
Jörn Friedrich Dreyer 63b078b550 fix public share download button width 2014-02-05 11:02:21 +01:00
Jörn Friedrich Dreyer fa1288c6b3 tweak color and position of username in public share 2014-02-05 10:59:52 +01:00
Jörn Friedrich Dreyer 9f9466d001 improvements to public files mobile view 2014-02-05 10:57:26 +01:00
Jörn Friedrich Dreyer 249df3864b remove min-width rule to fix mobile views 2014-02-05 10:53:54 +01:00
Jörn Friedrich Dreyer 615f0c4a1c first mobile style rules, hide extra columns in files view and scroll header 2014-02-05 10:52:25 +01:00
Jörn Friedrich Dreyer a096f19bb2 add download button on single file share page 2014-02-05 10:49:57 +01:00
Arthur Schiwon a967acee4c Rephrase and clarify log message 2014-02-05 10:33:44 +01:00
Arthur Schiwon 2801edc451 Wizard: enable base DN for editing, if not base DN could have been detected. Also part of fix for #6670 2014-02-05 10:30:56 +01:00
Arthur Schiwon acebc3f41e Wizard: disable LDAP referrals, fixes #6670 2014-02-05 10:29:09 +01:00
Vincent Petry 9404389d83 Allow getting info or renaming part files through WebDAV
When mounting an ownCloud (backend OC) inside another ownCloud (frontend
OC), the frontend OC will use WebDAV to upload file, which will create
part files. These part files need to be accessible for the frontend OC
to rename them to the actual file name.

This fix leaves the file cache untouched but gives direct access to part
file info when requested.

This means that part file can be accessed only when their path and name
are known. These won't appear in file listtings.

Fixes #6068
2014-02-05 10:11:28 +01:00
Arthur Schiwon 60b75b25f8 throw an info message, when base dn test failed 2014-02-04 19:37:40 +01:00
Arthur Schiwon 608fe55889 LDAP: extend LDAP wrapper search method for sizelimit, improves performance in wizard 2014-02-04 17:56:53 +01:00
Jörn Friedrich Dreyer 37d2c0a4be remove unused js code and css rules 2014-02-04 16:32:39 +01:00
Jörn Friedrich Dreyer 3ccbc984f4 no new menu on public upload 2014-02-04 16:29:59 +01:00
Jörn Friedrich Dreyer 8bd3ce2fe2 fixing preview generation 2014-02-04 16:28:51 +01:00
Jörn Friedrich Dreyer ebcbf85396 reuse file upload as used within files app - remove public upload button 2014-02-04 16:25:23 +01:00
Bjoern Schiessle 44a6d2a98c add test for password remove method 2014-02-04 14:42:41 +01:00
Bjoern Schiessle 8ee368ddad remove needless element tag 2014-02-03 17:03:30 +01:00
Bjoern Schiessle 34069e00c4 also load error handler if debugging is enabled 2014-02-03 17:00:30 +01:00
Bjoern Schiessle 88542819f0 remove passwords in URLs from all log messages 2014-02-03 17:00:17 +01:00
Vincent Petry 8a66c30895 Fixed image preview in trashbin subdirs 2014-01-31 16:35:23 +01:00
Bjoern Schiessle e6579a3c0a public upload is also possible with encryption enabled, since OC6 2014-01-29 11:51:50 +01:00
Bjoern Schiessle 9016093b4c use more accurate error codes 2014-01-28 16:46:58 +01:00
Vincent Petry 301e4988a1 Added exception logger plugin for sabre connector
Whenever an exception occurs in the sabre connector code or code called
by it, it will be logged.

This plugin approach is needed because Sabre already catches exceptions
to return them to the client in the XML response, so they don't appear
logged in the web server log.

This will make it much easier to debug syncing issues.

Backport of 11ef12a to stable6
2014-01-28 14:19:13 +01:00
Otto Sabart e6391d84a1 Add check for apc.enabled option
Sometimes it's not possible to disable APC entirely and some of
apc_functions are disabled. Only thing which is possible is
to disable apc.enable option.
2014-01-27 23:33:39 +03:00
Bjoern Schiessle 4c305ef459 disable button and input field during decryption 2014-01-27 14:23:56 +01:00
Bjoern Schiessle 72e308788f remove the form, it isn't needed here 2014-01-27 14:23:43 +01:00
Bjoern Schiessle f1dc6e1441 use localised date in notification mails 2014-01-27 14:18:10 +01:00
Bjoern Schiessle 33801c311e only update file cache with the unenecrypted size when the file was written 2014-01-27 10:39:11 +01:00
Jan-Christoph Borchardt 0cd68cfedc prevent autofill for password change settings, prevent leak of existing password, fix #6552 2014-01-26 20:04:24 +01:00
Bjoern Schiessle e00f483238 add expire date to link share if possible 2014-01-24 16:57:18 +01:00
Bjoern Schiessle 5cc8df3723 increase size of mimetype column 2014-01-24 16:09:22 +01:00
Bjoern Schiessle 08bf128255 added website field 2014-01-24 13:58:51 +01:00
Bjoern Schiessle 3979508dae distinguish app links from doc links 2014-01-24 13:58:43 +01:00
Bjoern Schiessle a5a2fe9180 show link to app documentation 2014-01-24 13:58:29 +01:00
Bjoern Schiessle 29d63893ff add link to documentation 2014-01-24 13:58:18 +01:00
Vincent Petry 39354eaaf1 Fixed sharing results to include the correct permissions
Passing $includeCollections would return more than one entry which gives
mixed up file permissions.

Added a method getFile() that doesn't set $includeCollections to make
sure we only get one result which is the file itself.

Fixes #6265
2014-01-23 15:31:14 +01:00
Bjoern Schiessle 2e8418b362 fix infinite loop if folder and subfolder has the same name 2014-01-23 13:36:33 +01:00
Bjoern Schiessle 1a93891222 add path relative to the files folder of the currently logged in user to the output of getFolderContent() 2014-01-23 13:36:22 +01:00
Vincent Petry 099ccfa254 Fixed isPreviewAvailable warnings in log
isPreviewAvailable wasn't always set as the files formatting code is
slightly different than the one from the files app.

Fixes #6423

Backport of f4c198b to stable6
2014-01-23 12:32:10 +01:00
Björn Schießle d41b2c5401 Merge pull request #6891 from owncloud/version_fix_array_order_stable6
Version fix array order stable6
2014-01-22 03:21:50 -08:00
Myles McNamara 5f7bc2cf4d change publicUploadButtonMock to public_upload
Changed jQuery selector for public preview to public_upload to correctly show preview
2014-01-22 11:36:47 +01:00
Myles McNamara 6d330e8a3f change em to px 2014-01-22 11:36:42 +01:00
Myles McNamara 72b680ca2d modify js to move upload wrapper, modify css to match core values 2014-01-22 11:36:38 +01:00
Myles McNamara 5e1c3732e5 remove extra upload controls 2014-01-22 11:36:29 +01:00
Myles McNamara 7251c65996 fix upload button layout 2014-01-22 11:36:24 +01:00
Bjoern Schiessle fea0ba84c5 fix size calculation 2014-01-22 11:28:09 +01:00
Bjoern Schiessle cdfc6ff5d5 fix array ordering issue 2014-01-22 11:25:19 +01:00
Björn Schießle 50721da77b Merge pull request #6874 from owncloud/versioning_expire_fixes_stable6
selective backport of the bug fixes from pr #6863
2014-01-22 02:21:55 -08:00
Frank Karlitschek 14cbec6d6b 6.0.1 2014-01-22 09:28:41 +01:00
Thomas Müller ea334cfa18 fixing comment + adding unit test for checkPasswordProtectedShare 2014-01-21 20:52:16 +01:00
Thomas Müller c10af30381 in case no share is found for the given token we can return right away 2014-01-21 20:52:16 +01:00
Thomas Müller 4351609df9 adding password protection check to getShareByToken() 2014-01-21 20:52:16 +01:00
Thomas Müller c430fe6612 Merge pull request #6869 from owncloud/fix-setupfs-only-for-existing-users-stable6
Fix setupfs only for existing users stable6
2014-01-21 10:18:29 -08:00
Tigran Mkrtchyan 3501007074 webdav: return SPACE_UNKNOWN if server do not support quota
Backport of a78dc11732 to stable6
2014-01-21 18:15:14 +01:00
Bjoern Schiessle 603828366f selective backport of the bug fixes from pr #6863 2014-01-21 17:49:56 +01:00
Vincent Petry e46df97c3a Replaced time() with uniqid() to make sure the file name is unique
The cache isn't cleared properly because unlink() doesn't remove the
cache entry which caused side-effects when reusing the same file name
(which randomly happens when time() returns the same value)

This fix first makes sure the unit tests don't fail any more.
The unlink() case with the cache will be investigated separately.

Backport of f09c19c to stable6
2014-01-21 17:47:46 +01:00
Björn Schießle 180bb9fa9f Merge pull request #6867 from owncloud/protect-versions-preview-stable6
don't use the user id within the versions preview call as it could be us...
2014-01-21 07:46:37 -08:00
Thomas Müller 81f1c04b85 Merge pull request #6456 from owncloud/fix_home_storage_quota_stable6
Fix home storage quota stable6
2014-01-21 07:42:35 -08:00
Thomas Müller b722ce6cc3 OC_Util::setupFS($user) will create a data dir for the given string - no matter if the user really exists - OCP\JSON::checkUserExists($owner); introduces a ready to use check which will bail out with an JSON error
Conflicts:
	lib/public/json.php
2014-01-21 16:39:31 +01:00
Jörn Friedrich Dreyer 65fa896bc2 add getOwner impementation to Home Storage 2014-01-21 15:18:46 +01:00
Thomas Müller 464b31157e don't use the user id within the versions preview call as it could be used to access previews of another user 2014-01-21 15:18:36 +01:00
Thomas Müller a9f7764879 Merge pull request #6865 from owncloud/fix_user_ldap_sql_on_oracle_stable6
user workarount to compare CLOB column with CHAR value
2014-01-21 06:15:02 -08:00
Jörn Friedrich Dreyer 047ae7fb23 user workarount to compare CLOB column with CHAR value 2014-01-21 14:03:51 +01:00
Thomas Müller 98db90ba70 Merge pull request #6862 from owncloud/neutral_download_zip_default_name_stable6
use 'download.zip' as default name for zip downloads instead of 'owncloud.zip'
2014-01-21 04:20:02 -08:00
Jörn Friedrich Dreyer 0b11762b1c use 'download.zip' as default name for zip downloads instead of 'owncloud.zip' 2014-01-21 12:43:43 +01:00
Vincent Petry 127ab3cb47 When reading the size of "files" mountpoints need to be excluded
The versions and trashbin app are now passing "includeMountPoints=false"
to "getFileInfo()" to make sure that the calculated total size doesn't
include mount points like Shared or external storage.

This is because the default call (legacy) used to return the size of
mount points as well.

Fixes #6731

Backport of ca57a84 to stable6
2014-01-20 18:29:27 +01:00
Vincent Petry 09cc0c5cc9 Fixed quota wrapper to not wrap failed fopen streams
When calling fopen() on some storage types, these return false instead
of throwing an exception.

This fix makes sure that in case the stream wasn't opened (for example
when a file doesn't exist any more) the stream isn't wrapped.

Also added 'rb' as another case that doesn't need to be wrapped.

Fixes #6832
2014-01-20 14:32:57 +01:00
rnveach c4c5e34110 added trigger to redo selection text on a directory change 2014-01-20 13:03:40 +01:00
rnveach 89d60a2680 fixed selector string and removed all checkbox if it was selected 2014-01-20 13:03:34 +01:00
Thomas Müller 369ec65d12 Merge pull request #6828 from owncloud/dont_add_queuedtasks_during_upgrade
add needUpgrade() check to addQueuedTask()
2014-01-18 03:46:31 -08:00
Jörn Friedrich Dreyer 40c2f47cd9 add needUpgrade() check to addQueuedTask() 2014-01-17 19:50:37 +01:00
Vincent Petry bc22799160 Fix array access syntax for older PHP
There was a syntax error when running tests in PHP 5.3.10.
2014-01-17 14:39:49 +01:00
Bjoern Schiessle 4c1510b729 updated description of the files encryption app 2014-01-17 12:56:58 +01:00
Vincent Petry d44b98d3dd Fix to not destroy draggable when no draggable was set
When a dir has no delete permission, the draggable isn't initialized on
files. This fix makes sure we don't try to destroy a draggable when it
wasn't inited in the first place.

Fixes #6254

Backport of 8135828 to stable6
2014-01-16 17:50:07 +01:00
Frank Karlitschek a4e842f19a 6.0.1 RC1 2014-01-16 17:09:54 +01:00
Volkan Gezer aec0f06501 Fix untranslated text when deleting user
This should fix issue #6728
2014-01-16 12:23:34 +01:00
ben-denham f9e4d0a5e2 updated the unit test for OCP\Share::unshareAll() to verify that shares by all users are removed for an item. 2014-01-16 12:14:53 +01:00
ben-denham 3093c63024 Unshare all will now delete all shares for the item, instead of only for a single owner. 2014-01-16 12:14:37 +01:00
Thomas Müller b0edbd8ebd Merge pull request #6783 from owncloud/backport-6530-stable6
Backport 6530 stable6
2014-01-15 11:01:47 -08:00
Vincent Petry 5dd20db05f Fixed Dropbox/Google storage async save call
When clicking "Grant access", the settings for Dropbox/Google were saved
through a call that gets cancelled when redirecting to the grant page
(for example in Firefox)

This fix makes sure the "save settings" call finished before redirecting
to the grant page.

Fixes #6176

Backport of e13be94 to stable6
2014-01-15 16:41:54 +01:00
Thomas Müller 0c140d5f6e in order to work properly with encryption ocTransferId is added to the file path - questionable usage of magic string 2014-01-15 16:37:23 +01:00
Thomas Müller 49969825ad Adding a random postfix to the part file. 2014-01-15 16:37:23 +01:00
Bjoern Schiessle 3b21499b34 extended test to also check the status messages 2014-01-15 16:10:31 +01:00
Bjoern Schiessle 3fde29ead4 keep response message 2014-01-15 16:10:22 +01:00
Bjoern Schiessle afe35ca12d call getFileInfo to enforce a file cache entry for the new version, fix #6286 2014-01-15 16:01:48 +01:00
Bjoern Schiessle a83e37c799 remove old code 2014-01-15 15:59:04 +01:00
Bjoern Schiessle 3c7541e97c don't try to encrypt/decrypt cache chunks or files in the trash bin 2014-01-15 15:58:56 +01:00
Bjoern Schiessle 3ec3ebb3db copy files to owner trash recursively 2014-01-15 15:58:48 +01:00
Morris Jobke 3e71827bea Merge pull request #6293 from owncloud/stable6-legacy-settings-popup
Stable6 legacy settings popup
2014-01-15 02:12:27 -08:00
Robin Appelman 6adac6a673 Use storage_mtime when determining if we can reuse cached data while scanning
Backport to stable6 of the following commits, in order:
- 203d5d0
- 4113042
- 7e4c80f
- 16b898d
2014-01-15 10:36:32 +01:00
Vincent Petry 88dc71381f Fix calculated folder size to use unencrypted size
The encrypted size was used when calculating folder sizes.
This fix now also sums up the unencrypted size and shows that one when
available.

Backport of 4faba49 to stable6
2014-01-14 16:37:48 +01:00
icewind1991 c6ca9be406 Merge pull request #6612 from owncloud/user-no-change-displayname-stable
Backport: Re-add the config options to remove the ability for users to change their displayname
2014-01-14 07:13:21 -08:00
Bjoern Schiessle 7dddf59942 it is not an urgent error... a DEBUG message is enough at this point 2014-01-14 15:09:26 +01:00
Vincent Petry 8ef32821be Fixed timezone issue with SMB storage
Now forcing smbclient to also run on UTC

Backport of 1eb5ebd to stable6
2014-01-14 15:04:41 +01:00
Thomas Müller 1e9f0409c3 Merge pull request #6408 from owncloud/ldap_fix_tls_detection
LDAP fix TLS detection
2014-01-14 05:01:08 -08:00
Andreas Fischer bcec9cea78 Merge pull request #6756 from owncloud/remove-ru_RU-stable6
remove ru_RU - it's almost untranslated

* owncloud/remove-ru_RU-stable6:
  remove ru_RU - it's almost untranslated
2014-01-14 00:45:55 +01:00
Björn Schießle 87cfbb3a2b Merge pull request #6753 from owncloud/no_unshare_on_delete
don't unshare on delete
2014-01-13 07:48:22 -08:00
Thomas Müller 3b1396b538 remove ru_RU - it's almost untranslated 2014-01-13 16:44:03 +01:00
Carlos Cerrillo ce1a1996f7 Fixing Issue #6301 on master branch
Added private var $certPath to store the user root cert

Move logic to determine the $certPath path to the constructor and modify to get the path from OC_User::getHome()

Add curl options to use the certificate to avoid certificate errors with self-signed certicates in the downdload/upload method so we don't get blank files

Only set SSL things when ```$this->secure``` is ```true```

Fix ```createCertificateBundle``` and  ```getCertificates``` methods
from ```OC_Mount_config``` to use ```OC_User::getHome``` to get the
path

Backport of 7c264c88fe,
b245e2e3d8 and
c06844c374 to stable6 (squashed)
2014-01-13 16:38:30 +01:00
st3so 5f2e8f7723 fixing typo in redirection query string
Backport of a2cae551f3 to stable6
2014-01-13 15:58:29 +01:00
Bjoern Schiessle 54cd174f61 don't unshare on delete 2014-01-13 15:25:59 +01:00
Vincent Petry 28be8496a9 Fixed various file name escaping issues in core apps
- Refactored file tr lookup into FileList.findFileEl that uses
  filterAttr to avoid escaping issues in jQuery selectors
- Fixed versions and sharing app to properly escape file names in
  attributes

Backport to stable6 of 1042733
2014-01-12 13:29:54 +01:00
Georg Ehrke 3ae7bfc298 fix preview for reshared file 2014-01-11 11:31:43 +01:00
Vincent Petry 1cbe1896e7 Prevent deleting storage root
Storage mount points are not deletable, so make sure that the unlink
operation and its hooks aren't run in such cases.

Note that some storages might recursively delete their contents when
calling unlink on their root. This fix prevents that as well.

Backport of f642ad3 to stable6
2014-01-10 16:50:26 +01:00
Arthur Schiwon ebe3872c64 Infowarning about 32bit 2014-01-09 17:00:35 +01:00
Arthur Schiwon f1ea0bcafc add tests for user counting 2014-01-09 17:00:28 +01:00
Arthur Schiwon cf8fc2294e if backends have the same class name, sum their users up instead of overwriting 2014-01-09 17:00:21 +01:00
Arthur Schiwon 1636c6dbd8 LDAP: add tests for countUsers 2014-01-09 17:00:14 +01:00
Arthur Schiwon 59ff8388ea remove unnecessary line 2014-01-09 17:00:06 +01:00
Arthur Schiwon 1c58d8b226 LDAP: implement userCount action. This required to (finally) clean up and refactor the search method, which will have a positive performance impact on paged search. 2014-01-09 16:59:58 +01:00
Arthur Schiwon 0f58bd02c1 Add command line tool to show numbers of users and user directories 2014-01-09 16:59:47 +01:00
Arthur Schiwon 4b4901519d Introduce user count action to user management 2014-01-09 16:59:39 +01:00
Vincent Petry a711d4e39a Removed special handling of part files in shared storage rename
This fixes the issue introduced by the transfer id which itself wasn't
taken into account by the shortcut code for part file in the shared
storage class.

Backport of 8eaa39f to stable6
2014-01-09 15:23:55 +01:00
Thomas Müller 52dc90d5fd Merge pull request #6696 from owncloud/backport-6693-stable6
Backport 6693 stable6
2014-01-09 04:56:26 -08:00
Thomas Müller 9a1cbabdd6 rename user-id to loginname to stay consistent 2014-01-09 12:34:19 +01:00
Thomas Müller 596ab7552e set login name within apache auth backend 2014-01-09 12:34:19 +01:00
Thomas Müller ea23a09c05 fixing PHPDoc and use cameCase names 2014-01-09 12:34:19 +01:00
Arthur Schiwon 394bd17251 typo, grammar 2014-01-08 19:55:28 +01:00
Thomas Müller 627612c9e0 Merge pull request #6679 from owncloud/backport-6675-stable6
Backport 6675 stable6
2014-01-08 04:33:40 -08:00
Thomas Müller c6fa2dd8e2 turn off mod_pagespeed 2014-01-08 12:19:30 +01:00
Thomas Müller 8d38228c98 Merge pull request #6678 from owncloud/backport-6660-stable6
Backport 6660 stable6
2014-01-08 02:50:15 -08:00
Thomas Müller bbba8fd09d trimming all array elements 2014-01-08 10:45:37 +01:00
Thomas Müller 5e928fc988 we shall explode on ',' only 2014-01-08 10:45:37 +01:00
Thomas Müller 7e36763631 reuse existing helper function OC_Helper::is_function_enabled 2014-01-08 10:45:37 +01:00
Vincent Petry 542cf79595 Now also preventing to override "files" dir size with -1
Fixes #6526

Backport of 5be4af9 to stable6
2014-01-08 09:56:00 +01:00
Vincent Petry 2ea3765359 Added isUserAgent() method to request
- added isUserAgent() method to OC_Request which makes it possible to
  test it
- OC_Response::setContentDisposition now uses OC_Request::isUserAgent()
2014-01-07 22:11:39 +01:00
Vincent Petry b7aaebf94f Added workaround for Android content disposition
Fixes #5807
2014-01-07 22:11:30 +01:00
Vincent Petry c9cb258616 Moved content disposition code+workarounds to OCP\Response
Added new OC\Response API called setContentDispositionHeader() that
contains the needed workarounds for UTF8 and IE.

Refactored download code to use the new API.

Removed unused trashbin download file.
2014-01-07 22:11:22 +01:00
Thomas Müller 697ad1ca9e Merge pull request #6666 from ogasser/decimal_precision_scale_stable6_bp
DB: Support DECIMAL(precision,scale) syntax in XML
2014-01-07 11:11:32 -08:00
Thomas Müller 6a838718df Merge pull request #6664 from owncloud/fix_empty_mimetypes_stable6
remove duplicate exe mimetype, add correct msi mimetype
2014-01-07 07:31:29 -08:00
Oliver Gasser 6a21922854 DB: Support DECIMAL(precision,scale) syntax in XML
Add support for specifying the precision and scale of a decimal data
type to the XML description language. Added new unit tests and adapted
existing ones.

See owncloud/core#6475

Backported from owncloud/core#6476
2014-01-07 16:07:54 +01:00
Jörn Friedrich Dreyer c81a05cbb1 remove duplicate exe mimetype, add correct msi mimetype 2014-01-07 15:54:33 +01:00
Robin Appelman 956a4419d8 Fix APCIterator syntax in \OC\Memcache\APCU::clear
see http://www.php.net/manual/en/apciterator.construct.php
2014-01-03 14:31:19 +01:00
Robin Appelman f356ef90d7 Return SPACE_UNKNOWN if disk_free_space is disabled when getting the free space on a local storage 2014-01-02 17:30:39 +01:00
Robin Appelman a8fd55d90d Pass config object in testGetHomeNotSupported 2014-01-02 16:58:30 +01:00
Robin Appelman 208037b56a Replace static usage of OC_Config and OC_Preferences with the injected \OC\ConfigAll 2014-01-02 16:58:12 +01:00
Robin Appelman 62887c67ab fix the config option to remove the ability for users to set their displayname 2014-01-02 16:58:05 +01:00
Robin Appelman 9960596f4e fix fallback overwriting result of getHome 2014-01-02 16:57:52 +01:00
Robin Appelman b5ef21b22d cache the home folder of a User 2014-01-02 16:57:45 +01:00
Robin Appelman 44fb817a4e Also add default to the \OCP\IConfig interface 2014-01-02 16:54:44 +01:00
Robin Appelman 2c54dcda89 add default parameter for AllConfig->get*Value() 2014-01-02 16:54:39 +01:00
Frank Karlitschek 0bb7202ff7 Merge pull request #6562 from syncloud/stable6
Made admin password field required on client side
2013-12-25 03:36:00 -08:00
Vladimir Sapronov 75eaea1dff Made password field required on client side
Fix for case described in https://github.com/syncloud/owncloud-setup/issues/19
2013-12-23 21:39:14 -05:00
Andreas Fischer 93b6c83814 Backport of PR #4378: Don't use xcache in case admin auth is enabled. 2013-12-20 17:15:48 +01:00
Andreas Fischer d9df271113 Do not use xcache variable cache if cache size is 0.
This is possible because it is possible to only use xcache as an opcode cache
but not a variable cache.
2013-12-20 16:50:18 +01:00
Bjoern Schiessle 13461698e4 tests added 2013-12-19 20:10:42 +01:00
Bjoern Schiessle eaa5dd0282 we can also have a path user/cache/... 2013-12-19 20:10:29 +01:00
Bjoern Schiessle 672cbc5378 check if the old owner and the old path is available 2013-12-19 19:20:29 +01:00
Bjoern Schiessle 2f568c9766 fix rename of shared files 2013-12-19 19:20:17 +01:00
Vincent Petry c4c972fd2f Merge pull request #6498 from owncloud/stable6-oracleencryptiontestfix
[stable6] Trying to fix failing encryption tests on Oracle
2013-12-19 06:45:37 -08:00
Thomas Müller 6de259e0ac Merge pull request #6291 from owncloud/ldap_doc_link
LDAP: Adjust help link to documentation
2013-12-19 02:56:34 -08:00
Vincent Petry 1f93b4e842 Removed numRows usage from encryption app
numRows on Oracle always seem to return 0.

This fix removes numRows usage from the encryption and sharing app.

This fixes unit tests and potentially the encryption app itself
(migration status) when running on Oracle
2013-12-18 21:14:26 +01:00
Robin Appelman 4c2d2f4dc9 check if a $_SESSION entry exists before we try to remove it 2013-12-18 14:26:27 +01:00
Robin Appelman 148c16bf70 preserve 3rd party values in in the Session destructor 2013-12-18 14:26:21 +01:00
Vincent Petry 77af1a7127 Fixed JS plural function to be per app
Some apps might not define the same "nplural" value.
To avoid conflicts, the plural function is now generated per app.

Fixes #6427
2013-12-18 12:13:22 +01:00
Bjoern Schiessle 2f0ec8256f reliable detect encrypted files 2013-12-17 18:14:36 +01:00
Frank Karlitschek 913df0c5ed clarifying license 2013-12-17 17:30:57 +01:00
Bjoern Schiessle c88109a496 always show home breadcrumb in files view 2013-12-17 11:02:02 +01:00
Bjoern Schiessle 8f5dfd0920 always show 'Deleted Files' breadcrumb 2013-12-17 11:01:43 +01:00
Vincent Petry ae58a385b7 Do not use L10n when logging exceptions
In some specific situations, the L10N bundle isn't loadable yet (for
example when there is an issue with the app_config table). In such case,
we still want to be able to log the real exception.

This fixes errors that say "OC_L10N_String::__toString must not throw
exceptions"
2013-12-17 10:56:02 +01:00
Bjoern Schiessle 3160b23291 update file cache for target file 2013-12-16 17:49:14 +01:00
Bjoern Schiessle 73a0b690e9 only remove encryption keys if a real file gets deleted, skip this method if a file outside of /data/user/files was deleted 2013-12-16 17:49:05 +01:00
Bjoern Schiessle bdb4890d04 call set password hook because it doesn't get triggered during test execution and fix paths 2013-12-16 17:48:52 +01:00
Bjoern Schiessle 9091dd7833 enable more tests 2013-12-16 17:48:44 +01:00
Thomas Tanghus a8a35f4d07 Use DEBUG instead of ERROR when favourites not found. Fix #6419 2013-12-16 17:31:03 +01:00
Frank Karlitschek 0d24b22485 6.0.0a 2013-12-14 20:40:17 +01:00
Frank Karlitschek e8a696cff9 Merge pull request #6389 from owncloud/ignore_comments_on_columns
ignore comments on schema as a quickfix for oc6
2013-12-14 11:31:20 -08:00
Vincent Petry 811ef19ada Removed comments in database schema of encryption app 2013-12-14 11:18:48 +01:00
Jörn Friedrich Dreyer db696a2dda ignore comments on schema as a quickfix for oc6 2013-12-13 19:21:14 +01:00
Arthur Schiwon 3d81009347 LDAP: only read config from database, if configID is given. Not what we want to do when on-the-fly-testing settings from the admin page 2013-12-13 18:01:42 +01:00
Vincent Petry 0b665700b5 Merge pull request #6406 from owncloud/stable6-no-backgroundjobs-during-upgrade
dont try to register background jobs if we haven't upgraded yet
2013-12-13 08:58:50 -08:00
Arthur Schiwon 1e407482be remove unused variables 2013-12-13 17:52:43 +01:00
Arthur Schiwon d343c66f85 LDAP: fix TLS detection 2013-12-13 17:52:19 +01:00
Robin Appelman 0a0d89296b dont try to register background jobs if we haven't upgraded yet 2013-12-13 17:13:18 +01:00
blizzz fede36d515 Merge pull request #6308 from owncloud/fix_webdav_session_login_user_comparison
Fix webdav session login user comparison
2013-12-13 07:56:28 -08:00
Vincent Petry 527a16852e Merge pull request #6367 from owncloud/fix_expiration_date_conversion
rely only on php DateTime to parse the db datetime string
2013-12-13 07:36:30 -08:00
blizzz aab7c187f2 Merge pull request #6372 from owncloud/ldap_fix_setConfig
LDAP: fix method behind save button on advancend and expert tabs, fixes ...
2013-12-13 07:28:44 -08:00
Vincent Petry dd7b074dfa Fix webroot for update page
On the update page, config.js was missing which caused oc_webroot to not
be available. That would trigger the faulty oc_webroot fallback that
didn't take URLs like "/owncloud/index.php/files/apps" into account.

This fix adds config.js in the update page and also a fix for the
oc_webroot fallback, in case it is used elsewhere.

Backport of df1a404
2013-12-13 14:36:35 +01:00
Robin Appelman 71e93c2b79 remove unneeded ; in comment 2013-12-13 13:52:39 +01:00
Robin Appelman ca161e2a96 Add test for having utf8 filenames in the cache 2013-12-13 13:52:32 +01:00
Arthur Schiwon ab8691d84b adjust test 2013-12-13 12:56:06 +01:00
Thomas Müller a48cf28e17 Merge pull request #6364 from owncloud/backport-6302-stable6
Send "SET NAMES utf8" to MySQL for PHP below 5.3.6
2013-12-13 00:56:28 -08:00
Thomas Müller cd7c974fb6 Updated 3rdparty ref 2013-12-13 00:03:20 +01:00
Arthur Schiwon 3b5d032dd5 LDAP: fix method behind save button on advancend and expert tabs, fixes at least Home Folder setinng 2013-12-12 23:09:31 +01:00
Jörn Friedrich Dreyer f8088ecd29 rely only on php DateTime to parse the db datetime string 2013-12-12 19:09:21 +01:00
Bjoern Schiessle e83ff69465 toggle select all checkbox 2013-12-12 18:47:31 +01:00
Andreas Fischer 66af605697 Send "SET NAMES utf8" to MySQL for PHP below 5.3.6 2013-12-12 12:26:17 -05:00
Jörn Friedrich Dreyer 71dc81d420 update 3rdparty 2013-12-12 17:59:46 +01:00
blizzz 02c9bb76ff Merge pull request #6350 from owncloud/ldap_dont_autofill
LDAP: the browser shall not autofill userdn and password, usually login ...
2013-12-12 05:14:44 -08:00
Arthur Schiwon 7b388eb4a8 LDAP: the browser shall not autofill userdn and password, usually login credentials are inserted. fixes #6283 2013-12-12 14:04:10 +01:00
Arthur Schiwon c770089b50 coding style 2013-12-11 14:01:48 +01:00
Arthur Schiwon afaac05f61 coding style 2013-12-11 13:57:02 +01:00
Arthur Schiwon aba8199a82 On webdav sesssions, loginname was compared to username which does not need to match necessarily 2013-12-11 13:56:45 +01:00
Arthur Schiwon 0134b1ebfa LDAP: adjust documentation URL for OC 6 2013-12-10 17:45:03 +01:00
Jan-Christoph Borchardt 339e073399 fix shadow size and arrow position 2013-12-10 14:39:23 +01:00
Jan-Christoph Borchardt 4feafda822 fix the legacy popup to make calendar settings look nicer 2013-12-10 14:39:15 +01:00
Andreas Fischer 5ac339b866 Document memcached settings in config.sample.php 2013-12-09 14:35:20 +01:00
Morris Jobke 95c90ddbc4 fix wrong test data in l10n 2013-12-09 10:41:57 +01:00
Morris Jobke 2417c8a49e fix plural translation - fixes #6226 2013-12-09 10:41:51 +01:00
Frank Karlitschek 26d0adf2fe 6.0.0 2013-12-06 21:20:22 +01:00
Frank Karlitschek 734fdbddea RC4 2013-12-06 21:06:42 +01:00
Robin Appelman 33144941a9 add test case for removing background jobs that are throwing exceptions 2013-12-06 20:58:12 +01:00
Robin Appelman f309920bef Dont use exceptions for the backgroundjob test cases 2013-12-06 20:58:06 +01:00
Robin Appelman e78a309111 remove background jobs if they are failing 2013-12-06 20:57:58 +01:00
Robin Appelman 46a4ad4f3c Catch exceptions from background jobs and log them 2013-12-06 20:57:52 +01:00
Frank Karlitschek 3842c0d766 Merge pull request #6225 from owncloud/stable6-backgroundscan-reuse-etag
Stable6 backgroundscan reuse etag
2013-12-06 11:55:23 -08:00
Robin Appelman 8369c1f05b get rid of failing test that don't cause additional downloads 2013-12-06 19:19:10 +01:00
Robin Appelman cadf1c232e extend test case for etag preservation 2013-12-06 19:19:10 +01:00
Robin Appelman 713651738c reuse etags when doing a background scan 2013-12-06 19:19:10 +01:00
Bart Visscher 1475245465 XSendfile and encryption don't work together
The file on disk is encrypted, and not readable on client systems
2013-12-06 19:07:22 +01:00
Bart Visscher 281bbf4bd4 Don't try to encrypt a file when the temp file isn't created 2013-12-06 19:07:11 +01:00
Bart Visscher a2bbbb1448 Users of getFolderContent are mostly interested in the unecrypted file size 2013-12-06 19:06:42 +01:00
root 87a28957aa correctly propagate the return value of ldap_set_option
otherwise LDAP_OPT_REFERRALS won't be set to 0 and in turn
active directory paging will stop working
(Operations error on ldap_control_paged_result_response)
2013-12-06 18:01:42 +01:00
Bjoern Schiessle 01de6c565a set unencrypted_size to 0 after decryption... so that the unencrypted_size gets re-calculated if encryption was enabled again 2013-12-06 17:08:17 +01:00
Bjoern Schiessle f3e341edac add a optional parameter to skip check for expired files, this is necessary to find out to whom a file was shared after it was expired. 2013-12-06 14:42:09 +01:00
Bjoern Schiessle c5d6af3c5a get owner from share item, if we expire a share while the user updates his /Shared folder than the owner is different from the currently logged in user 2013-12-06 14:41:59 +01:00
Bjoern Schiessle cc1577054d it is not possible to unshare files 2013-12-06 12:36:31 +01:00
Björn Schießle 3e6b18b2d0 Merge pull request #6208 from owncloud/enc_only_create_new_key_if_no_other_key_exists
[Encryption] Only create new key if no other key exists
2013-12-06 03:07:52 -08:00
Nico Kaiser 7eb505e6dd Fix user's displayName being overwritten by (old) cookie 2013-12-05 20:56:41 +01:00
Bjoern Schiessle 91ca1cf985 fix typo 2013-12-05 20:02:41 +01:00
Bjoern Schiessle f8a4bcdd50 only create new key on password change if a recovery key exists or if the user don't have any private/public keys 2013-12-05 19:41:01 +01:00
Bjoern Schiessle 418d401bf9 show change password form if key couldn't be decrypted 2013-12-05 18:50:52 +01:00
Bjoern Schiessle d0afd774b7 add method to check if users private/public key exists 2013-12-05 18:49:55 +01:00
Morris Jobke 0af65cae37 fix appearance of error message - .errors is outdated 2013-12-05 16:11:52 +01:00
Frank Karlitschek 4d50fe5f12 ownCloud 6 RC3 2013-12-05 12:02:53 +01:00
Vincent Petry f24aca61a9 Merge pull request #6180 from owncloud/fix_6143
fixes checkboxes in Advanced Tab don't save unchecked state anymore, #6143
2013-12-04 08:33:12 -08:00
Bjoern Schiessle d3e2226b38 config switch to disable auto expire for the trash bin 2013-12-04 16:55:07 +01:00
Arthur Schiwon 73fa6259be LDAP Wizard: avoid a manually deactivated LDAP configuration is enabled by just opening the admin page 2013-12-04 14:01:31 +01:00
Morris Jobke dffc2a8b1c Revert "Adjust files_encryption requirements to the new core requirement (PHP 5.3.8)."
This reverts commit efbf18652c.
2013-12-04 13:26:59 +01:00
Vincent Petry fd634fdec8 Added unit test for the test() method
This is to make sure that method isn't broken
2013-12-04 13:22:25 +01:00
Arthur Schiwon 328ebaefde LDAP: make unsetting checkboxes from Advanced tab work again, fixes #6143 2013-12-04 13:15:17 +01:00
Thomas Müller 4de8c4e5db Merge pull request #6175 from owncloud/fix_6142
LDAP Wizard: make sure auto-detected suggestions are really applied initially, fixes #6142
2013-12-04 02:54:07 -08:00
Frank Karlitschek 8dc3cb2ffb lower required php version to 5.3.3 2013-12-04 10:51:12 +01:00
Arthur Schiwon c67ece0f6b LDAP Wizard: don't generate filter when not allowed 2013-12-03 20:50:46 +01:00
Arthur Schiwon 6640e120b7 some equals are more equal than other equals 2013-12-03 20:45:05 +01:00
Thomas Mueller 6f7b394d99 fixing PHPDoc and spelling 2013-12-03 17:49:37 +01:00
Andreas Fischer 91f47645b0 Use getLastError() everywhere. 2013-12-03 17:49:37 +01:00
Andreas Fischer 18903cc8f7 Add getLastError() 2013-12-03 17:49:37 +01:00
Andreas Fischer 7e467484a8 No function as oci_last_error. It's oci_error. 2013-12-03 17:49:37 +01:00
Andreas Fischer 21bf6abd41 There is no property such as dbusername. It's 'dbuser'. 2013-12-03 17:49:37 +01:00
Andreas Fischer 401728b2a2 Correct property name. It's 'dbpassword', with the 'db' prefix. 2013-12-03 17:49:37 +01:00
Andreas Fischer bfd0dc3314 Correct property name. It's just 'tableprefix', without the 'db' prefix. 2013-12-03 17:49:37 +01:00
Jan-Christoph Borchardt ad92b12559 fix time input field properly, details 2013-12-03 17:42:03 +01:00
Morris Jobke 4391992b8c fix public page - gallery view issues 2013-12-03 17:20:29 +01:00
Morris Jobke 728e6d735a fix trashbin and pbulic page controls 2013-12-03 17:20:23 +01:00
Morris Jobke 66df8c3bb3 fix and cleanup CSS for public page 2013-12-03 17:20:17 +01:00
Jan-Christoph Borchardt ca08d21da0 change different shades of grey for public share page to white 2013-12-03 17:20:08 +01:00
Jan-Christoph Borchardt 7d0f458f11 remove app specific code 2013-12-03 17:20:00 +01:00
Jan-Christoph Borchardt f15aeb3bbc fix details for buttons in header and controls bar 2013-12-03 17:19:53 +01:00
Jan-Christoph Borchardt 9333244925 account for shift of controls bar due to app navigation, do not shift on public page 2013-12-03 17:19:38 +01:00
Vincent Petry 50f5ab8515 Merge pull request #6173 from owncloud/stable6-extstorage-s3fixes
Backport of S3 ext storage fixes to stable6
2013-12-03 08:16:10 -08:00
Arthur Schiwon 4df0d2e7e8 LDAP Wizard: return correct var 2013-12-03 16:37:11 +01:00
Vincent Petry f2e17a0b68 Fixed placeholder after page reload
The placeholder somehow had too many characters stripping from it...
2013-12-03 15:55:24 +01:00
Vincent Petry e372971f2b Fixed test function for S3
Fixes #5752
2013-12-03 15:55:15 +01:00
Vincent Petry 3bf30377b8 Fixed Amazon S3 ext storage config UI
Optional parameters are now really optional

Fixes #5861
2013-12-03 15:55:08 +01:00
Arthur Schiwon 67b67b6d66 LDAP Wizard: make sure auto-detected suggestions are really applied initially. Also make initial filter compilation and user counting robust against race conditions. 2013-12-03 13:27:45 +01:00
Arthur Schiwon b8390f15d4 LDAP: on testing configuration, set active property to true, otherwise inactive connections cannot be tested properly 2013-12-03 13:21:55 +01:00
Robin Appelman 5ac3f9bfa5 check if a directory exists before we try to remove it 2013-12-03 12:45:41 +01:00
Arthur Schiwon 02fe013d2f LDAP: set default value for login filter to empty, otherwise the wizard signals completed configuration too early when it might be not correct, i.e. login won't work 2013-12-03 12:11:43 +01:00
Bjoern Schiessle 5e5e4fe3a4 make it possible to select folders 2013-12-02 22:23:51 +01:00
Arthur Schiwon d49e4e53fd LDAP Wizard: don't send ldap_tls change back to the interface as the element was removed, for it is detected fully automatically. Resolves an JS error and thus an ever-spinning spinner 2013-12-02 21:11:20 +01:00
Bjoern Schiessle 2d11290121 check explicitely all possible dir values 2013-12-02 16:06:51 +01:00
Bjoern Schiessle 1a197292da set delete all to true if a complete folder was deleted 2013-12-02 16:06:36 +01:00
Bjoern Schiessle 3b59979746 fix delete files from trash bin 2013-12-02 16:06:24 +01:00
Bjoern Schiessle 259d619af3 fix restore from files in sub-folders 2013-12-02 16:06:14 +01:00
9637 changed files with 281010 additions and 1092838 deletions
-3
View File
@@ -1,3 +0,0 @@
{
"directory": "core/vendor"
}
-12
View File
@@ -1,12 +0,0 @@
codecov:
branch: master
coverage:
precision: 2
round: down
range: "70...100"
status:
project: off
patch: off
comment: off
-699
View File
@@ -1,699 +0,0 @@
clone:
git:
image: plugins/git
depth: 1
pipeline:
jsunit:
image: nextcloudci/jsunit:jsunit-5
commands:
- ./autotest-js.sh
- curl -o codecov.sh https://codecov.io/bash
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5; fi"
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5; fi"
when:
matrix:
TESTS: jsunit
checkers:
image: nextcloudci/php7.0:php7.0-16
commands:
- ./autotest-checkers.sh
when:
matrix:
TESTS: checkers
syntax-php5.6:
image: nextcloudci/php5.6:php5.6-8
commands:
- composer install
- ./lib/composer/bin/parallel-lint --exclude lib/composer/jakub-onderka/ --exclude 3rdparty/symfony/polyfill-php70/Resources/stubs/ --exclude 3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/ --exclude 3rdparty/paragonie/random_compat/lib/ --exclude lib/composer/composer/autoload_static.php --exclude 3rdparty/composer/autoload_static.php .
when:
matrix:
TESTS: syntax-php5.6
syntax-php7.0:
image: nextcloudci/php7.0:php7.0-16
commands:
- composer install
- ./lib/composer/bin/parallel-lint --exclude lib/composer/jakub-onderka/ --exclude 3rdparty/symfony/polyfill-php70/Resources/stubs/ --exclude 3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/ --exclude 3rdparty/paragonie/random_compat/lib/ --exclude lib/composer/composer/autoload_static.php --exclude 3rdparty/composer/autoload_static.php .
when:
matrix:
TESTS: syntax-php7.0
syntax-php7.1:
image: nextcloudci/php7.1:php7.1-15
commands:
- composer install
- ./lib/composer/bin/parallel-lint --exclude lib/composer/jakub-onderka/ --exclude 3rdparty/symfony/polyfill-php70/Resources/stubs/ --exclude 3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/ --exclude 3rdparty/paragonie/random_compat/lib/ --exclude lib/composer/composer/autoload_static.php --exclude 3rdparty/composer/autoload_static.php .
when:
matrix:
TESTS: syntax-php7.1
litmus-v1:
image: nextcloudci/litmus-php7.0:litmus-php7.0-6
commands:
- bash tests/travis/install.sh sqlite
- bash apps/dav/tests/travis/litmus-v1/script.sh
when:
matrix:
TESTS: litmus-v1
litmus-v2:
image: nextcloudci/litmus-php7.0:litmus-php7.0-6
commands:
- bash tests/travis/install.sh sqlite
- bash apps/dav/tests/travis/litmus-v2/script.sh
when:
matrix:
TESTS: litmus-v2
caldavtester-new-endpoint:
image: nextcloudci/litmus-php7.0:litmus-php7.0-6
commands:
- bash tests/travis/install.sh sqlite
- bash apps/dav/tests/travis/caldav/install.sh
- bash apps/dav/tests/travis/caldav/script-new-endpoint.sh
when:
matrix:
TESTS: caldavtester-new-endpoint
caldavtester-old-endpoint:
image: nextcloudci/litmus-php7.0:litmus-php7.0-6
commands:
- bash tests/travis/install.sh sqlite
- bash apps/dav/tests/travis/caldav/install.sh
- bash apps/dav/tests/travis/caldav/script-old-endpoint.sh
when:
matrix:
TESTS: caldavtester-old-endpoint
carddavtester-new-endpoint:
image: nextcloudci/litmus-php7.0:litmus-php7.0-6
commands:
- bash tests/travis/install.sh sqlite
- bash apps/dav/tests/travis/carddav/install.sh
- bash apps/dav/tests/travis/carddav/script-new-endpoint.sh
when:
matrix:
TESTS: carddavtester-new-endpoint
carddavtester-old-endpoint:
image: nextcloudci/litmus-php7.0:litmus-php7.0-6
commands:
- bash tests/travis/install.sh sqlite
- bash apps/dav/tests/travis/carddav/install.sh
- bash apps/dav/tests/travis/carddav/script-old-endpoint.sh
when:
matrix:
TESTS: carddavtester-old-endpoint
sqlite-php7.0-samba-native:
image: nextcloudci/samba-native-php7.0:samba-native-php7.0-3
commands:
- smbd -D -FS &
- ./autotest-external.sh sqlite smb-linux
- wget https://codecov.io/bash -O codecov.sh
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite.xml; fi"
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite.xml; fi"
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite-smb-linux.xml; fi"
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite-smb-linux.xml; fi"
when:
matrix:
TESTS: sqlite-php7.0-samba-native
sqlite-php7.0-samba-non-native:
image: nextcloudci/samba-non-native-php7.0:samba-non-native-php7.0-4
commands:
- smbd -D -FS &
- ./autotest-external.sh sqlite smb-linux
- wget https://codecov.io/bash -O codecov.sh
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite.xml; fi"
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite.xml; fi"
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite-smb-linux.xml; fi"
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite-smb-linux.xml; fi"
when:
matrix:
TESTS: sqlite-php7.0-samba-non-native
sqlite-php7.0-webdav-apache:
image: nextcloudci/webdav-apache-php7.0
commands:
- apache2
- ./autotest-external.sh sqlite webdav-apachedrone
- wget https://codecov.io/bash -O codecov.sh
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite.xml; fi"
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite.xml; fi"
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite-webdav-apachedrone.xml; fi"
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-external-clover-sqlite-webdav-apachedrone.xml; fi"
when:
matrix:
TESTS: sqlite-php7.0-webdav-apache
nodb-php5.6:
image: nextcloudci/php5.6:php5.6-8
commands:
- NOCOVERAGE=true TEST_SELECTION=NODB ./autotest.sh sqlite
when:
matrix:
DB: NODB
PHP: 5.6
nodb-php7.0:
image: nextcloudci/php7.0:php7.0-16
commands:
- NOCOVERAGE=true TEST_SELECTION=NODB ./autotest.sh sqlite
when:
matrix:
DB: NODB
PHP: "7.0"
nodb-php7.1:
image: nextcloudci/php7.1:php7.1-15
commands:
- NOCOVERAGE=true TEST_SELECTION=NODB ./autotest.sh sqlite
when:
matrix:
DB: NODB
PHP: 7.1
sqlite-php5.6:
image: nextcloudci/php5.6:php5.6-8
commands:
- NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh sqlite
when:
matrix:
DB: sqlite
PHP: 5.6
sqlite-php7.0:
image: nextcloudci/php7.0:php7.0-16
commands:
- NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh sqlite
when:
matrix:
DB: sqlite
PHP: "7.0"
sqlite-php7.1:
image: nextcloudci/php7.1:php7.1-15
commands:
- NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh sqlite
when:
matrix:
DB: sqlite
PHP: 7.1
mysql-php5.6:
image: nextcloudci/php5.6:php5.6-8
commands:
- NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysql
when:
matrix:
DB: mysql
PHP: 5.6
postgres-php5.6:
image: nextcloudci/php5.6:php5.6-8
commands:
- sleep 10 # gives the database enough time to initialize
- POSTGRES=${POSTGRES} NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh pgsql
when:
matrix:
DB: postgres
PHP: 5.6
mysqlmb4-php5.6:
image: nextcloudci/php5.6:php5.6-8
commands:
- NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysqlmb4
when:
matrix:
DB: mysqlmb4
PHP: 5.6
integration-capabilities_features:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh capabilities_features/capabilities.feature
when:
matrix:
TESTS: integration-capabilities_features
integration-federation_features:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh federation_features/federated.feature
when:
matrix:
TESTS: integration-federation_features
integration-auth:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh features/auth.feature
when:
matrix:
TESTS: integration-auth
integration-maintenance-mode:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh features/maintenance-mode.feature
when:
matrix:
TESTS: integration-maintenance-mode
integration-ratelimiting:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- ./occ config:system:set redis host --value=cache
- ./occ config:system:set redis port --value=6379 --type=integer
- ./occ config:system:set redis timeout --value=0 --type=integer
- ./occ config:system:set --type string --value "\\OC\\Memcache\\Redis" memcache.local
- ./occ config:system:set --type string --value "\\OC\\Memcache\\Redis" memcache.distributed
- ./occ app:enable testing
- cd build/integration
- ./run.sh features/ratelimiting.feature
when:
matrix:
TESTS: integration-ratelimiting
integration-carddav:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh features/carddav.feature
when:
matrix:
TESTS: integration-carddav
integration-dav-v2:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh features/dav-v2.feature
when:
matrix:
TESTS: integration-dav-v2
integration-ocs-v1:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh features/ocs-v1.feature
when:
matrix:
TESTS: integration-ocs-v1
integration-sharing-v1:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh features/sharing-v1.feature
when:
matrix:
TESTS: integration-sharing-v1
integration-sharing-v1-part2:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh features/sharing-v1-part2.feature
when:
matrix:
TESTS: integration-sharing-v1-part2
integration-sharing-v1-part3:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh features/sharing-v1-part3.feature
when:
matrix:
TESTS: integration-sharing-v1-part3
integration-checksums-v1:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh features/checksums.feature
when:
matrix:
TESTS: integration-checksums
integration-external-storage:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh features/external-storage.feature
when:
matrix:
TESTS: integration-external-storage
integration-provisioning-v1:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh features/provisioning-v1.feature
when:
matrix:
TESTS: integration-provisioning-v1
integration-tags:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh features/tags.feature
when:
matrix:
TESTS: integration-tags
integration-caldav:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh features/caldav.feature
when:
matrix:
TESTS: integration-caldav
integration-comments:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh features/comments.feature
when:
matrix:
TESTS: integration-comments
integration-favorites:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh features/favorites.feature
when:
matrix:
TESTS: integration-favorites
integration-provisioning-v2:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh features/provisioning-v2.feature
when:
matrix:
TESTS: integration-provisioning-v2
integration-webdav-related:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh features/webdav-related.feature
when:
matrix:
TESTS: integration-webdav-related
integration-sharees-features:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh sharees_features/sharees.feature
when:
matrix:
TESTS: integration-sharees-features
integration-sharees-v2-features:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh sharees_features/sharees_provisioningapiv2.feature
when:
matrix:
TESTS: integration-sharees-v2-features
integration-setup-features:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- cd build/integration
- ./run.sh setup_features/setup.feature
when:
matrix:
TESTS: integration-setup-features
integration-filesdrop-features:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh filesdrop_features/filesdrop.feature
when:
matrix:
TESTS: integration-filesdrop-features
integration-transfer-ownership-features:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh features/transfer-ownership.feature
when:
matrix:
TESTS: integration-transfer-ownership-features
integration-ldap-features:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- ./occ app:enable user_ldap
- cd build/integration
- ./run.sh ldap_features/ldap-ocs.feature
when:
matrix:
TESTS: integration-ldap-features
integration-trashbin:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
- ./run.sh features/trashbin.feature
when:
matrix:
TESTS: integration-trashbin
acceptance-access-levels:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-access-levels --selenium-server selenium:4444 allow-git-repository-modifications features/access-levels.feature
when:
matrix:
TESTS-ACCEPTANCE: access-levels
acceptance-app-files:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-app-files --selenium-server selenium:4444 allow-git-repository-modifications features/app-files.feature
when:
matrix:
TESTS-ACCEPTANCE: app-files
acceptance-app-theming:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-app-theming --selenium-server selenium:4444 allow-git-repository-modifications features/app-theming.feature
when:
matrix:
TESTS-ACCEPTANCE: app-theming
acceptance-login:
image: nextcloudci/integration-php7.0:integration-php7.0-6
commands:
- tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-login --selenium-server selenium:4444 allow-git-repository-modifications features/login.feature
when:
matrix:
TESTS-ACCEPTANCE: login
nodb-codecov:
image: nextcloudci/php7.0:php7.0-16
commands:
- phpenmod xdebug
- TEST_SELECTION=NODB ./autotest.sh sqlite
- wget https://codecov.io/bash -O codecov.sh
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
when:
matrix:
TESTS: nodb-codecov
db-codecov:
image: nextcloudci/php7.0:php7.0-16
commands:
- phpenmod xdebug
- TEST_SELECTION=QUICKDB ./autotest.sh sqlite
- wget https://codecov.io/bash -O codecov.sh
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
when:
matrix:
TESTS: db-codecov
object-store:
image: nextcloudci/php7.0:php7.0-16
commands:
- phpenmod xdebug
- TEST_SELECTION=PRIMARY-${OBJECT_STORE} ./autotest.sh sqlite
- wget https://codecov.io/bash -O codecov.sh
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
when:
matrix:
TESTS: object-store
memcache-memcached:
image: nextcloudci/php7.0-memcached:php7.0-memcached-8
commands:
- phpenmod xdebug
- service memcached restart
- ./autotest.sh sqlite tests/lib/Memcache/MemcachedTest.php
- wget https://codecov.io/bash -O codecov.sh
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
when:
matrix:
TEST: memcache-memcached
memcache-redis-cluster:
image: nextcloudci/php7.0:php7.0-17
commands:
- phpenmod xdebug
- sleep 20
- ./autotest.sh sqlite tests/lib/Memcache/RedisTest.php
- wget https://codecov.io/bash -O codecov.sh
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
when:
matrix:
TEST: memcache-redis-cluster
matrix:
include:
- TESTS: checkers
- TESTS: nodb-codecov
ENABLE_REDIS: true
- TESTS: db-codecov
ENABLE_REDIS: true
- TESTS: integration-capabilities_features
- TESTS: integration-federation_features
- TESTS: integration-maintenance-mode
- TESTS: integration-ratelimiting
ENABLE_REDIS: true
- TESTS: integration-auth
- TESTS: integration-carddav
- TESTS: integration-dav-v2
- TESTS: integration-ocs-v1
- TESTS: integration-sharing-v1
- TESTS: integration-sharing-v1-part2
- TESTS: integration-sharing-v1-part3
- TESTS: integration-checksums
- TESTS: integration-external-storage
- TESTS: integration-provisioning-v1
- TESTS: integration-tags
- TESTS: integration-caldav
- TESTS: integration-comments
- TESTS: integration-favorites
- TESTS: integration-provisioning-v2
- TESTS: integration-webdav-related
- TESTS: integration-sharees-features
- TESTS: integration-sharees-v2-features
- TESTS: integration-setup-features
- TESTS: integration-filesdrop-features
- TESTS: integration-transfer-ownership-features
- TESTS: integration-ldap-features
- TESTS: integration-trashbin
- TESTS: acceptance
TESTS-ACCEPTANCE: access-levels
- TESTS: acceptance
TESTS-ACCEPTANCE: app-files
- TESTS: acceptance
TESTS-ACCEPTANCE: app-theming
- TESTS: acceptance
TESTS-ACCEPTANCE: login
- TESTS: jsunit
- TESTS: syntax-php5.6
- TESTS: syntax-php7.0
- TESTS: syntax-php7.1
- TESTS: litmus-v1
- TESTS: litmus-v2
- TESTS: caldavtester-old-endpoint
- TESTS: caldavtester-new-endpoint
- TESTS: carddavtester-new-endpoint
- TESTS: carddavtester-old-endpoint
- TESTS: object-store
OBJECT_STORE: s3
- TESTS: sqlite-php7.0-samba-native
- TESTS: sqlite-php7.0-samba-non-native
- TEST: memcache-memcached
- TEST: memcache-redis-cluster
ENABLE_REDIS_CLUSTER: true
- TESTS: sqlite-php7.0-webdav-apache
ENABLE_REDIS: true
- DB: NODB
PHP: 5.6
ENABLE_REDIS: true
- DB: NODB
PHP: 7.0
ENABLE_REDIS: true
- DB: NODB
PHP: 7.1
ENABLE_REDIS: true
- DB: sqlite
PHP: 5.6
ENABLE_REDIS: true
- DB: sqlite
PHP: 7.0
ENABLE_REDIS: true
- DB: sqlite
PHP: 7.1
ENABLE_REDIS: true
- DB: mysql
PHP: 5.6
ENABLE_REDIS: true
- DB: postgres
PHP: 5.6
ENABLE_REDIS: true
- DB: mysqlmb4
PHP: 5.6
ENABLE_REDIS: true
services:
cache:
image: redis
when:
matrix:
ENABLE_REDIS: true
cache-cluster:
image: morrisjobke/redis-cluster
when:
matrix:
ENABLE_REDIS_CLUSTER: true
postgres:
image: postgres:9
environment:
- POSTGRES_USER=oc_autotest
- POSTGRES_DB=oc_autotest_dummy
- POSTGRES_PASSWORD=owncloud
tmpfs:
- /var/lib/postgresql/data
when:
matrix:
DB: postgres
mysql:
image: mysql:5.7.22
environment:
- MYSQL_ROOT_PASSWORD=owncloud
- MYSQL_USER=oc_autotest
- MYSQL_PASSWORD=owncloud
- MYSQL_DATABASE=oc_autotest
tmpfs:
- /var/lib/mysql
when:
matrix:
DB: mysql
mysqlmb4:
image: mysql:5.7.22
environment:
- MYSQL_ROOT_PASSWORD=owncloud
- MYSQL_USER=oc_autotest
- MYSQL_PASSWORD=owncloud
- MYSQL_DATABASE=oc_autotest
command: [ "--innodb_large_prefix=true", "--innodb_file_format=barracuda", "--innodb_file_per_table=true" ]
tmpfs:
- /var/lib/mysql
when:
matrix:
DB: mysqlmb4
fake-s3:
image: lphoward/fake-s3
when:
matrix:
OBJECT_STORE: s3
selenium:
image: selenium/standalone-firefox:2.53.1-beryllium
environment:
# Reduce default log level for Selenium server (INFO) as it is too
# verbose.
- JAVA_OPTS=-Dselenium.LOGGER.level=WARNING
when:
matrix:
TESTS: acceptance
branches: [ master, stable* ]
+6 -49
View File
@@ -2,50 +2,29 @@
/data
/owncloud
/config/config.php
/config/*.config.php
/config/mimetype*.json
/config/mount.php
/apps/inc.php
/assets
/.htaccess
/translationfiles
/translationtool.phar
# ignore all apps except core ones
/apps*/*
!/apps/comments
!/apps/dav
!/apps/files
!/apps/federation
!/apps/federatedfilesharing
!/apps/sharebymail
!/apps/encryption
!/apps/files_encryption
!/apps/files_external
!/apps/files_sharing
!/apps/files_trashbin
!/apps/files_versions
!/apps/lookup_server_connector
!/apps/user_ldap
!/apps/oauth2
!/apps/provisioning_api
!/apps/systemtags
!/apps/testing
!/apps/admin_audit
!/apps/updatenotification
!/apps/theming
!/apps/twofactor_backupcodes
!/apps/workflowengine
!/apps/user_webdavauth
/apps/files_external/3rdparty/irodsphp/PHPUnitTest
/apps/files_external/3rdparty/irodsphp/web
/apps/files_external/3rdparty/irodsphp/prods/test
/apps/files_external/3rdparty/irodsphp/prods/tutorials
/apps/files_external/3rdparty/irodsphp/prods/test*
/apps/files_external/tests/config.*.php
# ignore themes except the example and the README
# ignore themes except the README
/themes/*
!/themes/example
!/themes/README
# just sane ignores
@@ -76,7 +55,7 @@ RCS/*
.project
.settings
# netbeans
# netbeans
nbproject
# phpStorm
@@ -92,10 +71,7 @@ nbproject
# vim ex mode
.vimrc
# ack(-grep)
.ackrc
# Mac OS
.DS_Store
@@ -109,29 +85,10 @@ nbproject
# Node Modules
/build/node_modules/
# nodejs
/build/bin
/build/lib/
/build/jsdocs/
/npm-debug.log
/PhantomJS_*
# puphpet
puphpet
# vagrant
.vagrant
Vagrantfile
# Tests - auto-generated files
/data-autotest
/tests/coverage*
/tests/css
/tests/karma-coverage
/tests/autoconfig*
/tests/autotest*
/tests/data/lorem-copy.txt
/tests/data/testimage-copy.png
/config/config-autotest-backup.php
/config/autoconfig.php
clover.xml
+1 -1
View File
@@ -1,3 +1,3 @@
[submodule "3rdparty"]
path = 3rdparty
url = https://github.com/nextcloud/3rdparty.git
url = git://github.com/owncloud/3rdparty.git
Regular → Executable
+29 -66
View File
@@ -1,80 +1,43 @@
<IfModule mod_fcgid.c>
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
<IfModule mod_setenvif.c>
<IfModule mod_fcgid.c>
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
</IfModule>
<IfModule mod_proxy_fcgi.c>
SetEnvIfNoCase Authorization "(.+)" HTTP_AUTHORIZATION=$1
</IfModule>
</IfModule>
<IfModule mod_env.c>
# Add security and privacy related headers
Header set X-Content-Type-Options "nosniff"
Header set X-XSS-Protection "1; mode=block"
Header set X-Robots-Tag "none"
Header set X-Download-Options "noopen"
Header set X-Permitted-Cross-Domain-Policies "none"
SetEnv modHeadersAvailable true
</IfModule>
# Add cache control for static resources
<FilesMatch "\.(css|js|svg|gif)$">
Header set Cache-Control "max-age=15778463"
</FilesMatch>
# Let browsers cache WOFF files for a week
<FilesMatch "\.woff$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
</IfModule>
</IfModule>
</IfModule>
ErrorDocument 403 /core/templates/403.php
ErrorDocument 404 /core/templates/404.php
<IfModule mod_php5.c>
php_value upload_max_filesize 511M
php_value post_max_size 511M
php_value memory_limit 512M
php_value mbstring.func_overload 0
php_value always_populate_raw_post_data -1
php_value default_charset 'UTF-8'
php_value output_buffering 0
<IfModule mod_env.c>
SetEnv htaccessWorking true
</IfModule>
php_value upload_max_filesize 513M
php_value post_max_size 513M
php_value memory_limit 512M
php_value mbstring.func_overload 0
<IfModule env_module>
SetEnv htaccessWorking true
</IfModule>
<IfModule mod_php7.c>
php_value upload_max_filesize 511M
php_value post_max_size 511M
php_value memory_limit 512M
php_value mbstring.func_overload 0
php_value default_charset 'UTF-8'
php_value output_buffering 0
<IfModule mod_env.c>
SetEnv htaccessWorking true
</IfModule>
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} DavClnt
RewriteRule ^$ /remote.php/webdav/ [L,R=302]
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteRule ^\.well-known/host-meta /public.php?service=host-meta [QSA,L]
RewriteRule ^\.well-known/host-meta\.json /public.php?service=host-meta-json [QSA,L]
RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
RewriteRule ^remote/(.*) remote.php [QSA,L]
RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
RewriteCond %{REQUEST_URI} !^/.well-known/(acme-challenge|pki-validation)/.*
RewriteRule ^(?:\.|autotest|occ|issue|indie|db_|console).* - [R=404,L]
RewriteEngine on
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteRule ^.well-known/host-meta /public.php?service=host-meta [QSA,L]
RewriteRule ^.well-known/host-meta.json /public.php?service=host-meta-json [QSA,L]
RewriteRule ^.well-known/carddav /remote.php/carddav/ [R]
RewriteRule ^.well-known/caldav /remote.php/caldav/ [R]
RewriteRule ^apps/calendar/caldav.php remote.php/caldav/ [QSA,L]
RewriteRule ^apps/contacts/carddav.php remote.php/carddav/ [QSA,L]
RewriteRule ^apps/([^/]*)/(.*\.(php))$ index.php?app=$1&getfile=$2 [QSA,L]
RewriteRule ^remote/(.*) remote.php [QSA,L]
</IfModule>
<IfModule mod_mime.c>
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
</IfModule>
<IfModule mod_dir.c>
DirectoryIndex index.php index.html
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
AddDefaultCharset utf-8
Options -Indexes
<IfModule pagespeed_module>
ModPagespeed Off
ModPagespeed Off
</IfModule>
-52
View File
@@ -1,52 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectCodeStyleSettingsManager">
<option name="PER_PROJECT_SETTINGS">
<value>
<option name="RIGHT_MARGIN" value="80" />
<PHPCodeStyleSettings>
<option name="PHPDOC_BLANK_LINE_BEFORE_TAGS" value="true" />
<option name="LOWER_CASE_BOOLEAN_CONST" value="true" />
<option name="LOWER_CASE_NULL_CONST" value="true" />
</PHPCodeStyleSettings>
<XML>
<option name="XML_KEEP_BLANK_LINES" value="1" />
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
</XML>
<codeStyleSettings language="CSS">
<indentOptions>
<option name="USE_TAB_CHARACTER" value="true" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="HTML">
<indentOptions>
<option name="USE_TAB_CHARACTER" value="true" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="JavaScript">
<option name="SPACE_BEFORE_METHOD_PARENTHESES" value="true" />
<indentOptions>
<option name="USE_TAB_CHARACTER" value="true" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="PHP">
<option name="CLASS_BRACE_STYLE" value="1" />
<option name="METHOD_BRACE_STYLE" value="1" />
<option name="DOWHILE_BRACE_FORCE" value="3" />
<option name="WHILE_BRACE_FORCE" value="3" />
<option name="FOR_BRACE_FORCE" value="3" />
<indentOptions>
<option name="USE_TAB_CHARACTER" value="true" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="XML">
<indentOptions>
<option name="USE_TAB_CHARACTER" value="true" />
</indentOptions>
</codeStyleSettings>
</value>
</option>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</component>
</project>
-34
View File
@@ -1,34 +0,0 @@
{
"camelcase": true,
"eqeqeq": true,
"immed": true,
"latedef": false,
"noarg": true,
"nonbsp": true,
"undef": true,
"unused": true,
"trailing": true,
"maxparams": 5,
"curly": true,
"jquery": true,
"maxlen": 120,
"indent": 4,
"browser": true,
"laxbreak": true,
"globals": {
"console": true,
"it": true,
"xit": true,
"expect": true,
"describe": true,
"beforeEach": true,
"afterEach": true,
"sinon": true,
"fakeServer": true,
"_": true,
"OC": true,
"OCA": true,
"t": true,
"n": true
}
}
-2
View File
@@ -1,2 +0,0 @@
pattern = "(?i):shipit:|:\\+1:|LGTM|👍"
self_approval_off = true
-418
View File
@@ -1,418 +0,0 @@
Aamir Khan <ak4u2009@gmail.com>
Aaron Reichman <areichman.kde@gmail.com>
Adam Williamson <awilliam@redhat.com>
Aditya Patawari <adimania@gmail.com>
Administrator <Administrator@WINDOWS-2012>
adrien <adrien.waksberg@believedigital.com>
Aldo "xoen" Giambelluca <xoen@xoen.org>
Alessandro Cosentino <cosenal@gmail.com>
Alexander Bergolth <leo@strike.wu.ac.at> root <leo@strike.wu.ac.at>
Alexander Bogdanov <syn@li.ru>
Alexander Wigen <alex@wigen.net>
Aloisio Almeida Jr <aloisio.almeida@openbossa.org>
Anders Nor Berle <anders@berle.cc>
Andreas Fischer <bantu@owncloud.com>
Andreas Schönebeck <aschoenebeck@web.de>
Andreas Ergenzinger <andreas.ergenzinger@gmx.de> AndreasErgenzinger <andreas.ergenzinger@gmx.de>
Andrew Brown <andrew@casabrown.com>
André Gaul <gaul@web-yard.de>
Arthur Schiwon <blizzz@arthur-schiwon.de> Arthur Schiwon <blizzz@owncloud.com>
Arthur Schiwon <blizzz@arthur-schiwon.de> blizzz <blizzz@owncloud.com>
Artur Duque de Souza <asouza@kde.org>
Axel Roenn <axel@mpim-bonn.mpg.de>
Bagera <victor@baquero-wihlborg.se>
Bart Visscher <bartv@thisnet.nl> Bart Visscher <bart@thisnet.nl>
Bart Visscher <bartv@thisnet.nl> Bart Visscher <github@thisnet.nl>
Bartek Przybylski <bart.p.pl@gmail.com>
Bastien Ho <bastienho@urbancube.fr>
ben-denham <bend@catalyst.net.nz>
Benjamin Diele <benjamin@diele.be>
Benjamin Liles <benliles@arch.tamu.edu>
Bernhard Posselt <dev@bernhard-posselt.com> Bernhard Posselt <nukeawhale@gmail.com>
Bernhard Posselt <dev@bernhard-posselt.com> Bernhard Posselt <Raydiation@users.noreply.github.com>
Bernhard Posselt <dev@bernhard-posselt.com> Bernhard Posselt <BernhardPosselt@users.noreply.github.com>
Bernhard Reiter <ockham@raz.or.at>
Birk Borkason <daniel.niccoli@gmail.com>
Björn Schießle <bjoern@schiessle.org> Bjoern Schiessle <schiesbn@woody.(none)>
Björn Schießle <bjoern@schiessle.org> Björn Schießle <schiessle@owncloud.com>
Björn Schießle <bjoern@schiessle.org> Björn Schießle <schiesbn@potato.(none)>
Björn Schießle <bjoern@schiessle.org> Björn Schiessle <schiessle@owncloud.com>
Björn Schießle <bjoern@schiessle.org> Bjoern Schießle <schiessle@owncloud.com>
Björn Schießle <bjoern@schiessle.org> Bjoern Schiessle <schiessle@owncloud.com>
Björn Schießle <bjoern@schiessle.org> Björn Schießle <schiessle@owncloud.com>
BlackEagle <ike.devolder@gmail.com>
Boris Rybalkin <ribalkin@gmail.com>
Borjan Tchakaloff <borjan@tchakaloff.fr>
Brice Maron <brice@bmaron.net>
brumsel <brumsel@losecatcher.de> brumsoel <brumsel@losecatcher.de>
Byron Marohn <combustible@live.com> eMerzh <brice@bmaron.net>
Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
Carla Schroder <carla@owncloud.com>
Carlos Cerrillo <ccerrillo@gmail.com>
cbhp <cbhp@users.noreply.github.com>
cbojar <chris@cbojar.net>
Ceri Davies <ceri@submonkey.net>
cetra3 <peter@parashift.com.au>
Charles-Edouard Coste <contact@ccoste.fr>
CharlyCoste <contact@ccoste.fr>
chli1 <chli1@users.noreply.github.com>
Chris Kankiewicz <Chris@ChrisKankiewicz.com>
Chris LeBlanc <chris@leblaaanc.com>
Chris Wilson <chris+github@qwirx.com>
Christian Berendt <berendt@b1-systems.de>
Christian Kampka <christian@kampka.net>
Christian Koch <koch.chris@gmail.com>
Christian Reiner <github@christian-reiner.info> Christian Reiner <arkascha@balder.site>
Christoph Wurst <christoph@owncloud.com> Christoph Wurst <ChristophWurst@users.noreply.github.com>
Christoph Wurst <christoph@owncloud.com> Christoph Wurst <christoph@winzerhof-wurst.at>
Christopher Bunn <b11.chris@gmail.com>
Christopher Schäpers <kondou@ts.unde.re> Christopher <kondou@ts.unde.re>
Christopher Schäpers <kondou@ts.unde.re> kondou <kondou@ts.unde.re>
Christopher Schäpers <kondou@ts.unde.re> root <kondou@ts.unde.re>
Christopher T. Johnson <ctjctj@gmail.com>
Clark Tomlinson <fallen013@gmail.com>
Cloud Dumper <clouddumper@gmail.com>
cmeh <cmeh@users.noreply.github.com>
Cornelius Schumacher <schumacher@kde.org>
Craig Morrissey <craig@owncloud.com>
Côme BERNIGAUD <come.bernigaud@laposte.net>
dampfklon <me@dampfklon.de>
Dan Bartram <daneybartram@gmail.com>
Dan Callahan <dan.callahan@gmail.com>
Dan Jones <dan@danneh.org>
Daniel <daniel@mars.(none)>
Daniel Hansson <enoch85@gmail.com>
Daniel Köb <daniel.koeb@peony.at>
Daniel Molkentin <daniel@molkentin.de>
Daniele E. Domenichelli <daniele.domenichelli@gmail.com>
David <davidventura>
David Iwanowitsch <david+git@unclouded.de> David Iwanowitsch <diw@gmx.de>
David Prévot <taffit@debian.org>
David Reagan <reagand@lanecc.edu>
davidak <davidak@gmx.de>
davidgumberg <davidnoizgumberg@gmail.com>
Dawid Opis <ncore@ncore.com.pl>
Deepak Mittal <dpac.mittal2@gmail.com>
DeLtAfOx <edo@ravers.it>
denis-b <denis.bonnenfant@diderot.org>
Der-Jan <de@r-jan.de>
derkostka <sebastian.kostka@gmail.com>
Diederik de Haas <diederik@cknow.org>
Dominik Schmidt <dev@dominik-schmidt.de>
Donald Buczek <buczek@molgen.mpg.de>
Doug Neiner <doug@pixelgraphics.us>
drarko <drarko@users.noreply.github.com>
dratini0 <dratini0@gmail.com>
Duane Johnson <duane.johnson@gmail.com>
eduardo <eduardo@vnexu.net>
elchi <niklas1b@yahoo.de>
Elias Probst <mail@eliasprobst.eu>
Florian <ente@baer.rwth-aachen.de> ente <ente@baer.rwth-aachen.de>
Erik Sargent <esthepiking@gmail.com>
Evgeni Golov <evgeni@golov.de>
fabian <fabian@web2.0-apps.de>
Fabian Henze <flyser42@gmx.de>
Felix Böhm <felixboehm@gmx.de> felixboehm <felixboehm@gmx.de>
Felix Eckhofer <felix@eckhofer.com>
Felix Moeller <mail@felixmoeller.de>
Felix Niklas <mrflix@gmail.com>
Fernando Rodriguez Sela <frsela@tid.es>
fibsifan <fi@volans.uberspace.de>
Florian Hülsmann <fh@cbix.de>
Florian Jacob <fjacob@lavabit.com>
Florian Preinstorfer <nblock@archlinux.us>
Florian Pritz <bluewind@xinu.at>
Florian Scholz <FlorianScholz@bgstyle.de> Florian Scholz <work@bgstyle.de>
Florian Vichot <florian.vichot@gmail.com>
Florin Peter <github@florin-peter.de> Florin Peter <fp@datawerk.de>
Florin Peter <github@florin-peter.de> FlorinPeter <github@florin-peter.de>
Francesco Piraneo G. <fpiraneo@iface.ch>
Frank Karlitschek <frank@karlitschek.de> Frank Karlitschek <frank@dev.(none)>
Frank Karlitschek <frank@karlitschek.de> Frank Karlitschek <frank@devel.(none)>
Frank Karlitschek <frank@karlitschek.de> Frank Karlitschek <frank@oc.(none)>
Frank Karlitschek <frank@karlitschek.de> Frank Karlitschek <frank@owncloud.org>
Frank Karlitschek <frank@karlitschek.de> Frank Karlitschek <karlitschek@kde.org>
François Kubler <francois@kubler.org>
Frédéric Fortier <frederic.fortier@oronospolytechnique.com> Frédéric Fortier <frederic.fortier@polymtl.ca>
Frederik Gladhorn <gladhorn@kde.org>
Gadzy <dev@gadzy.fr>
ganomi <ganomi@gmail.com>
Gaël Beaudoin <gaboo@home.gaboo.org>
geez0x1 <geez0x1@users.noreply.github.com>
gekmihesg <markus@gekmihesg.de>
Georg Ehrke <georg@owncloud.com> Georg Ehrke <dev@georgswebsite.de>
Georg Ehrke <georg@owncloud.com> Georg Ehrke <developer@georgehrke.com>
Georg Ehrke <georg@owncloud.com> Georg Ehrke <georg.stefan.germany@googlemail.com>
Georg Ehrke <georg@owncloud.com> Georg Ehrke <ownclouddev@georgswebsite.de>
Georg Ehrke <georg@owncloud.com> Georg Ehrke <devgeorg@ownCloud.com>
Georg Ehrke <georg@owncloud.com> Georg Ehrke <georg@ownCloud.com>
Golnaz Nilieh <g382nilieh@gmail.com>
Grundik <grundik@ololo.cc>
Guillaume AMAT <guillaume.amat@informatique-libre.com>
Hans Bakker <hansmbakker@gmail.com>
helix84 <helix84@centrum.sk>
Hendrik Langer <hendrik.langer@gmx.de>
Henning Becker <h.becker@oedenstockach.de>
Henning Oschwald <h.oschwald@gmx.de>
Henrik Kjölhede <hkjolhede@gmail.com>
herbrechtsmeier <stefan@herbrechtsmeier.net>
hkjolhede <hkjolhede@gmail.com>
IchEben <andreas@reichster.de>
ideaship <ideaship@users.noreply.github.com>
Ignacio Daniel Rostagno <ignaciorostagno@vijona.com.ar>
infoneo <infoneo@yahoo.pl>
Insanemal <insanemal@gmail.com>
Tobias Ramforth <tobias@ramforth.com> Tobias Ramforth <tobias.ramforth@udo.edu>
Tobias Ramforth <tobias@ramforth.com> irgsmirx <tobias.ramforth@udo.edu>
Isaac Rosenberg <irosenb7@gmail.com>
itheiss <ingo.theiss@i-matrixx.de>
j-ed <juergen@eisfair.org>
Jake Wilson <jakew@huebnerpetersen.com>
Jakob Sack <mail@jakobsack.de> Jakob Sack <kde@jakobsack.de>
jamesryanbell <james@james-bell.co.uk>
Jamie McClelland <jm@mayfirst.org>
Jan-Christoph Borchardt <hey@jancborchardt.net> Jan-Christoph Borchardt <jan@unhosted.org>
Jan-Christoph Borchardt <hey@jancborchardt.net> Jan-Christoph Borchardt <JanCBorchardt@fsfe.org>
jbtbnl <jbtbnl@users.noreply.github.com>
Jean-Louis Dupond <jean-louis@dupond.be>
Jenkins for ownCloud <owncloud-bot@tmit.eu> Jenkins for ownCloud <thomas.mueller@tmit.eu>
Jens-Christian Fischer <jens-christian.fischer@switch.ch>
Jernej Virag <jernej.virag@gmail.com>
Jesus Macias Portela <jesus.macias.portela@gmail.com>
Jesús Macias <jmacias@solidgear.es> Jesus Macias <jmacias@full-on-net.com>
jknockaert <jasper@knockaert.nl>
Joan <aseques@gmail.com>
Joar Wandborg <git@wandborg.com>
Joas Schilling <coding@schilljs.com> Joas Schilling <nickvergessen@gmx.de>
Joas Schilling <coding@schilljs.com> Joas Schilling <nickvergessen@owncloud.com>
joel hansson <joel.hansson@gmail.com>
Johan Björk <johanimon@gmail.com>
Johannes Twittmann <github.com@deryo.de>
Johannes Willnecker <johannes@willnecker.com>
John Kristensen <John.Kristensen@dpipwe.tas.gov.au>
Jonathan Riddell <jriddell@ubuntu.com>
Jonny007-MKD <1-23-4-5@web.de>
josh4trunks <joshruehlig@gmail.com>
Joshua Medeiros <Jammerx2@gmail.com>
Juan Carlos Cornejo <jc2@paintblack.com>
Julian Müller <julian.mueller.ffb@kabelmail.de>
Jörn Friedrich Dreyer <jfd@butonic.de> jfd <jfd@lance>
Jörn Friedrich Dreyer <jfd@butonic.de> jfd <jfd@underverse>
Kamil Domanski <kdomanski@kdemail.net>
Kees Huiberts <snowy@derideal.com>
Klaas Freitag <freitag@owncloud.com> Klaas Freitag <freitag@suse.de>
Konstantin Popov <konstantin.popov@globalpointagency.comv> Konstantin.Popov <konstantin.popov@globalpointagency.comv>
krzaczek <pawel@freshmind.pl>
Kshitij Parajuli <kshitijparajuli@gmail.com>
Kunal Ghosh <kunal.t2@gmail.com>
Tobia De Koninck <tobia@ledfan.be> LEDfan <tobia@ledfan.be>
Lennart Rosam <lennart.rosam@medien-systempartner.de>
Sebastian Döll <sebastian.doell@libasys.de> libasys <sebastian.doell@libasys.de>
Lode Hoste <zillode@zillode.be>
lolozere <laurent@chedanne.pro>
Lorenzo M. Catucci <lorenzo@sancho.ccd.uniroma2.it>
Lukas Reschke <lukas@statuscode.ch> Lukas Reschke <lukas@owncloud.com>
Lukas Reschke <lukas@statuscode.ch> Lukas Reschke <lukas@owncloud.org>
Luke Policinski <lpolicinski@gmail.com>
Lyonel Vincent <lyonel@ezix.org>
macjohnny <estebanmarin@gmx.ch>
maelzx <maelzx@gmail.com>
marc0s <marcos@tenak.net>
Marco B <beinbrech@solutica.de>
Marco Michelino <michelinux@gmail.com>
Markus Goetz <markus@woboq.com>
Markus Kalkbrenner <markus.kalkbrenner@bio.logis.de>
Martial Saunois <saunois.martial@gmail.com>
Martin Mattel <martin.mattel@diemattels.at> Martin <martin.mattel@diemattels.at>
Martin Mattel <martin.mattel@diemattels.at> root <martin.mattel@diemattels.at>
Martin Grohmann <martin@medi-inf.org>
# TODO: the same person
Martin Konrad <info@martin-konrad.net>
Martin Konrad <konrad@frib.msu.edu>
Martin Sandsmark <martin.sandsmark@kde.org> Martin T. H. Sandsmark <sandsmark@samfundet.no>
Marvin Thomas Rabe <mrabe@marvinrabe.de> Marvin Thomas Rabe <m.rabe@echtzeitraum.de>
Masaki Kawabata Neto <masaki.kawabata@gmail.com> Masaki <masaki.kawabata@gmail.com>
Mat Lipe <mat@lipeimagination.info>
Matthew Caron <matt@mattcaron.net>
Matthew Dawson <matthew@mjdsystems.ca>
Matthias Rieber <matthias@zu-con.org>
Maximilian Ruta <mr@xtain.net>
mh <mh@immerda.ch>
Michael Gapczynski <GapczynskiM@gmail.com> Michael Gapczynski <mtgap@owncloud.com>
Michael Göhler <somebody.here@gmx.de>
Michael Kent <mike@draftx.net>
Michael Kuhn <suraia@ikkoku.de>
Michael Monreal <michael.monreal@gmail.com>
Michael Roitzsch <reactorcontrol@icloud.com>
michag86 <micha_g@arcor.de>
Michiel de Jong <michiel@unhosted.org> Michiel@unhosted <michiel@unhosted.org>
Miguel Prokop <miguel.prokop@vtu.com>
miicha <pfitzner@physik.hu-berlin.de>
Miquel Rodríguez Telep / Michael Rodríguez-Torrent <miquel@designunbound.co.uk>
Morris Jobke <hey@morrisjobke.de> Morris Jobke <morris.jobke@gmail.com>
MTRichards <matt@owncloud.com>
mvn23 <schopdiedwaas@gmail.com>
Myles McNamara <myles@hostt.net> Myles McNamara <myles@smyl.es>
NARUKAWA Hiroki <nhirokinet@nhiroki.net>
Nathan Dauber <nathan@radialogica.com>
Nazar Mokrynskyi <nazar@mokrynskyi.com>
nhirokinet <nhirokinet@nhiroki.net>
Nico Kaiser <nico.kaiser@boerse-go.de>
Nicolai Ehemann <en@enlightened.de>
Nicolas Stamm <nicolas.stamm@gmail.com>
NIEK Antoine <antoineniek@gmail.com>
Niklas Sombert <niklas1b@yahoo.de>
Nils Jansen <nilsjansen@gmail.com>
nishiki <nishiki@yaegashi.fr>
Nmz <nemesiz@nmz.lt>
Normal Ra <normalraw@gmail.com> Normal Ra <NormalRa@users.noreply.github.com>
Oliver Gasser <oliver.gasser@gmail.com> Oliver Gasser <oliver@flowriver.net>
Oliver Kohl D.Sc. <oliver@kohl.bz>
Olivier Paroz <github@oparoz.com> Olivier Paroz <oparoz@users.noreply.github.com>
Olivier Tétard <olivier.tetard@miskin.fr>
Aaron Larisch <aaron.larisch@gmx.de> OpenLarry <aaron.larisch@gmx.de>
opensaucesystems <ashley@opensaucesystems.com>
Oskar Hollmann <oskarhollmann@gmail.com>
Otto Sabart <ottosabart@seberm.com>
Owen Winkler <a_github@midnightcircus.com> Owen Winkler <epithet@gmail.com>
Owen Winkler <a_github@midnightcircus.com> ringmaster <epithet@gmail.com>
Pascal de Bruijn <pmjdebruijn@pcode.nl>
Patrick Paysant <ppaysant@linagora.com>
Patrick Stricker <stricker@hera.dev.iks-hagen.de>
Paul Brown <paul90brown@gmail.com>
pdessauw <pdessauw@gmail.com>
Pellaeon Lin <nfsmwlin@gmail.com>
Pete McFarlane <peterjohnmcfarlane@gmail.com> petemcfarlane <peterjohnmcfarlane@gmail.com>
Philipp Kapfer <philipp.kapfer@gmx.at>
Philipp Knechtges <philipp-dev@knechtges.com>
Philipp Roggan <philipp.roggan@newsletter4free.de>
Philipp Schmitt <philipp@schmitt.co>
Philippe Jung <phil.jung@free.fr>
Philippe Kueck <pk@plusline.de>
prcrst <prcrst@hush.com>
pzy <pzy@d1sturbed.org>
Qingping Hou <dave2008713@gmail.com>
Raghu Nayyar <me@iraghu.com> Raghu Nayyar <raghu.nayyar.007@gmail.com>
Raghu Nayyar <me@iraghu.com> raghunayyar <me@iraghu.com>
Raimund Schlüßler <raimund.schluessler@googlemail.com>
Ramiro Aparicio <rapariciog@gmail.com>
Randolph Carter <RandolphCarter@fantasymail.de>
RealRancor <Fisch.666@gmx.de>
Remco Brenninkmeijer <requist1@starmail.nl>
Riccardo Iaconelli <riccardo@kde.org>
Richard Clarkson <robert@trash-mail.com>
rnveach <rveach02@gmail.com>
Robert Jäckel <rjaeckel@users.noreply.github.com>
Robin Appelman <robin@icewind.nl> icewind1991 <icewind1991@gmail.com>
Robin Appelman <robin@icewind.nl> icewind1991 <robin@icewind.nl>
Robin Appelman <robin@icewind.nl> Robin <Robin Appelman icewind1991@gmail.com>
Robin Appelman <robin@icewind.nl> Robin <robin@Amaya.(none)>
Robin Appelman <robin@icewind.nl> Robin Appelman <icewind1991@gmail.com>
Robin Appelman <robin@icewind.nl> Robin Appelman <icewind1991@gmail>
Robin Appelman <robin@icewind.nl> Robin Appelman <icewind@owncloud.com>
Robin McCorkell <robin@mccorkell.me.uk> Robin McCorkell <rmccorkell@karoshi.org.uk>
Robin McCorkell <robin@mccorkell.me.uk> Robin McCorkell <rmccorkell@owncloud.com>
Rodrigo Hjort <rodrigo.hjort@gmail.com>
Roeland Jago Douma <roeland@famdouma.nl> Roeland Jago Douma <rullzer@owncloud.com>
Roeland Jago Douma <roeland@famdouma.nl> Roeland Douma <rullzer@users.noreply.github.com>
rok <brejktru@gmail.com>
Roland Hager <roland.hager@tu-berlin.de>
Roland van Laar <roland@micite.net>
rolandgeider <roland@geider.net>
Roman Geber <rgeber@owncloudapps.com>
root <root@asterisk03.ceschia.de>
root <root@dev.(none)>
root <root@oc.(none)>
root <root@plug.(none)>
Ross Nicoll <jrn@jrn.me.uk>
runky <philipp.boersteken@googlemail.com>
Sam Tuke <mail@samtuke.com> Sam Tuke <sam@donttravelempty.com>
Sam Tuke <mail@samtuke.com> Sam Tuke <samtuke@jack-laptop.(none)>
Sam Tuke <mail@samtuke.com> Sam Tuke <samtuke@owncloud.com>
Sander <brantje@gmail.com>
Sandro Knauß <bugs@sandroknauss.de> Sandro <hefee@taurin.(none)>
Sascha Schmidt <realriot@realriot.de>
Sascha Schneider <development@suntsu.org>
scambra <sergio@entrecables.com>
scolebrook <scolebrook@mac.com>
Scott Arciszewski <scott@arciszewski.me>
Scott Barnett <scott.n.barnett@gmail.com>
Scott Shambarger <gitorious@shambarger.net>
Scrutinizer Auto-Fixer <auto-fixer@scrutinizer-ci.com>
Sean Comeau <sean@ftlnetworks.ca>
Sean Leonard <meanderingcode@silverleafstudios.net>
Sebastian Bolt <sebastian.bolt@gmx.de>
Serge Martin <edb@sigluy.net>
Sergei Shuykov <n1nj4p0w3r@gmail.com>
Sergi Almacellas Abellana <sergi@koolpi.com>
sherbrecher <oss@herbrecher.de>
shkdee <louis.traynard@m4x.org>
Simon Birnbach <simon@simon-birnbach.de>
Simon Könnecke <simonkoennecke@gmail.com>
Simon Whittaker <simon@swbh.net>
Sjors van der Pluijm <sjors@desjors.nl> Sjors van der Pluijm <sjors@youngguns.nl>
st3so <st3so@server.fake>
Stefan <mu.stefan@googlemail.com>
Stefan Göckeritz <admin@s-goecker.de>
Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
Stefan Rado <owncloud@sradonia.net>
Stefan Seidel <android@stefanseidel.info>
Steffen Lindner <mail@steffen-lindner.de> Steffen Lindner <gomez@flexiabel.de>
Stephan Arts <stephan@xfce.org>
Stephan Bergemann <st.bergemann@htw-berlin.de>
Stephan Peijnik <speijnik@anexia-it.com>
Stephane Martin <stef.martin@gmail.com> Stephane Martin <stephane.martin@vesperal.eu>
Stephane V <stephane@vergeylen.eu>
Stephen Rees-Carter <stephen@rees-carter.net>
Steven <wokste@gmail.com>
Steven <wokste@Komkommer.(none)>
Steven <wwjd2@web.de>
Sugaroverdose <n1nj4p0w3r@gmail.com>
Susinthiran Sithamparanathan <chesusin@gmail.com>
tbelau666 <thomas.belau@gmx.de>
TheSFReader <TheSFReader@gmail.com>
Thibaut GRIDEL <tgridel@free.fr>
thomas <thomas@thomas-VirtualBox.(none)>
Thomas Müller <thomas.mueller@tmit.eu> Thomas Mueller <thomas.mueller@tmit.eu>
Thomas Müller <thomas.mueller@tmit.eu> Thomas Müller <DeepDiver1975@users.noreply.github.com>
Thomas Olsen <tol@tanghus>
Thomas Schmidt <tschmidt@suse.de>
Thomas Tanghus <thomas@tanghus.net>
Thomas Zander <zander@kde.org>
tiezdne <oswald.84@t-online.de>
Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Tobias Kaminsky <tobias@kaminsky.me> tobiasKaminsky <tobias@kaminsky.me>
Tom Needham <tom@owncloud.com> Tom Needham <needham.thomas@gmail.com>
Tom Needham <tom@owncloud.com> Tom Needham <tom@tre.tomneedham.com>
Tom Needham <tom@owncloud.com> tomneedham <needham.thomas@gmail.com>
Tom Needham <tom@owncloud.com> tomneedham <tom@owncloud.com>
Tony Zelenoff <antonz@parallels.com>
tsumi <mail@tsumi.it>
twood8 <ted.wood@gtri.gatech.edu>
Türker Sezer <turkersezer@tsdesign.info>
unclejamal3000 <andreas.pramhaas@posteo.de>
unknown <Alain@Alain-PC.(none)>
unknown <pnd@.nist.gov>
Valerio Ponte <valerio.ponte@gmail.com>
Victor Dubiniuk <dubiniuk@owncloud.com> Victor Dubiniuk <victor.dubiniuk@gmail.com>
Victor Dubiniuk <dubiniuk@owncloud.com> VicDeo <dubiniuk@owncloud.com>
Victor Dubiniuk <dubiniuk@owncloud.com> VicDeo <victor.dubiniuk@gmail.com>
Vincent Cloutier <vincent1cloutier@gmail.com>
Vincent Petry <pvince81@owncloud.com> Vincent Petry <PVince81@yahoo.fr>
Vincent Petry <pvince81@owncloud.com> Vincent Petry <vincent@vvortex.site>
Vitaly Kuznetsov <vitty@altlinux.ru>
Vladimir Sapronov <vladimir.sapronov@gmail.com>
Volkan Gezer <volkangezer@gmail.com> Volkan Gezer <wakeup@users.noreply.github.com>
Volker E. <open@temporaer.net>
voxsim <Simon Vocella>
vsapronov <vladimir.sapronov@gmail.com>
Vsevolod Kukol <v.kukol@rubologic.de>
Weng Xuetian <wengxt@gmail.com>
Wikinaut <mail@tgries.de>
Willi Ballenthin <willi.ballenthin@gmail.com>
windaishi <manuel.strider@web.de>
Witali Rott <info@hlop.eu>
Yann VERRY <yann@verry.org>
yannickoo <github@yannickoo.de>
zafi <zafirakis.daniel@gmail.com>
zombiehugs <gerdsen@gmail.com>
-34
View File
@@ -1,34 +0,0 @@
{
"maxReviewers": 3,
"numFilesToCheck": 5,
"alwaysNotifyForPaths": [
{
"name": "nickvergessen",
"files": [
"lib/private/Activity/**",
"lib/private/Notification/**",
"lib/public/Activity/**",
"lib/public/Notification/**"
]
},
{
"name": "Xenopathic",
"files": [
"apps/files_external/**"
]
}
],
"userBlacklist": [
"DeepDiver1975",
"nextcloud-bot",
"owncloud-bot",
"PVince81",
"scrutinizer-auto-fixer",
"th3fallen",
"zander",
"luckydonald",
"jancborchardt"
],
"createReviewRequest": true,
"createComment": false
}
-27
View File
@@ -1,27 +0,0 @@
before_commands:
- 'git submodule update --init --recursive'
filter:
excluded_paths:
- '3rdparty/*'
- 'apps/*/3rdparty/*'
- 'apps/*/vendor/*'
- 'l10n/*'
- 'core/l10n/*'
- 'apps/*/l10n/*'
- 'apps/*/tests/*'
- 'lib/l10n/*'
- 'core/vendor/*'
- 'core/js/tests/lib/*.js'
- 'core/js/tests/specs/*.js'
- 'core/js/jquery-showpassword.js'
- 'core/js/jquery-tipsy.js'
- 'core/js/placeholders.js'
- 'settings/l10n/*'
- 'tests/*'
- 'build/*'
- 'lib/composer/*'
imports:
- javascript
- php
-1
View File
@@ -1 +0,0 @@
$Format:%H$
-129
View File
@@ -1,129 +0,0 @@
[main]
host = https://www.transifex.com
lang_map = bg_BG: bg, cs_CZ: cs, fi_FI: fi, hu_HU: hu, nb_NO: nb, sk_SK: sk, th_TH: th, ja_JP: ja
[nextcloud.core]
file_filter = translationfiles/<lang>/core.po
source_file = translationfiles/templates/core.pot
source_lang = en
type = PO
[nextcloud.files]
file_filter = translationfiles/<lang>/files.po
source_file = translationfiles/templates/files.pot
source_lang = en
type = PO
[nextcloud.settings-1]
file_filter = translationfiles/<lang>/settings.po
source_file = translationfiles/templates/settings.pot
source_lang = en
type = PO
[nextcloud.lib]
file_filter = translationfiles/<lang>/lib.po
source_file = translationfiles/templates/lib.pot
source_lang = en
type = PO
[nextcloud.dav]
file_filter = translationfiles/<lang>/dav.po
source_file = translationfiles/templates/dav.pot
source_lang = en
type = PO
[nextcloud.files_encryption]
file_filter = translationfiles/<lang>/encryption.po
source_file = translationfiles/templates/encryption.pot
source_lang = en
type = PO
[nextcloud.files_external]
file_filter = translationfiles/<lang>/files_external.po
source_file = translationfiles/templates/files_external.pot
source_lang = en
type = PO
[nextcloud.files_sharing]
file_filter = translationfiles/<lang>/files_sharing.po
source_file = translationfiles/templates/files_sharing.pot
source_lang = en
type = PO
[nextcloud.files_trashbin]
file_filter = translationfiles/<lang>/files_trashbin.po
source_file = translationfiles/templates/files_trashbin.pot
source_lang = en
type = PO
[nextcloud.files_versions]
file_filter = translationfiles/<lang>/files_versions.po
source_file = translationfiles/templates/files_versions.pot
source_lang = en
type = PO
[nextcloud.user_ldap]
file_filter = translationfiles/<lang>/user_ldap.po
source_file = translationfiles/templates/user_ldap.pot
source_lang = en
type = PO
[nextcloud.comments]
file_filter = translationfiles/<lang>/comments.po
source_file = translationfiles/templates/comments.pot
source_lang = en
type = PO
[nextcloud.federatedfilesharing]
file_filter = translationfiles/<lang>/federatedfilesharing.po
source_file = translationfiles/templates/federatedfilesharing.pot
source_lang = en
type = PO
[nextcloud.federation]
file_filter = translationfiles/<lang>/federation.po
source_file = translationfiles/templates/federation.pot
source_lang = en
type = PO
[nextcloud.oauth2]
file_filter = translationfiles/<lang>/oauth2.po
source_file = translationfiles/templates/oauth2.pot
source_lang = en
type = PO
[nextcloud.sharebymail]
file_filter = translationfiles/<lang>/sharebymail.po
source_file = translationfiles/templates/sharebymail.pot
source_lang = en
type = PO
[nextcloud.systemtags]
file_filter = translationfiles/<lang>/systemtags.po
source_file = translationfiles/templates/systemtags.pot
source_lang = en
type = PO
[nextcloud.updatenotification]
file_filter = translationfiles/<lang>/updatenotification.po
source_file = translationfiles/templates/updatenotification.pot
source_lang = en
type = PO
[nextcloud.theming]
file_filter = translationfiles/<lang>/theming.po
source_file = translationfiles/templates/theming.pot
source_lang = en
type = PO
[nextcloud.twofactor_backupcodes]
file_filter = translationfiles/<lang>/twofactor_backupcodes.po
source_file = translationfiles/templates/twofactor_backupcodes.pot
source_lang = en
type = PO
[nextcloud.workflowengine]
file_filter = translationfiles/<lang>/workflowengine.po
source_file = translationfiles/templates/workflowengine.pot
source_lang = en
type = PO
-7
View File
@@ -1,7 +0,0 @@
upload_max_filesize=511M
post_max_size=511M
memory_limit=512M
mbstring.func_overload=0
always_populate_raw_post_data=-1
default_charset='UTF-8'
output_buffering=0
+25 -216
View File
@@ -1,222 +1,31 @@
Nextcloud is written by:
- AW-UC <git@a-wesemann.de>
- Aaron Wood <aaronjwood@gmail.com>
- Achim Königs <garfonso@tratschtante.de>
- Adam Williamson <awilliam@redhat.com>
- Administrator <Administrator@WINDOWS-2012>
- Aldo "xoen" Giambelluca <xoen@xoen.org>
- Alex Weirig <alex.weirig@technolink.lu>
- Alexander Bergolth <leo@strike.wu.ac.at>
- Andreas Fischer <bantu@owncloud.com>
- Andrew Brown <andrew@casabrown.com>
- André Gaul <gaul@web-yard.de>
- Arthur Schiwon <blizzz@arthur-schiwon.de>
- Bart Visscher <bartv@thisnet.nl>
- Bartek Przybylski <bart.p.pl@gmail.com>
- Bastien Ho <bastienho@urbancube.fr>
- Benjamin Diele <benjamin@diele.be>
- Benjamin Liles <benliles@arch.tamu.edu>
- Bernhard Posselt <dev@bernhard-posselt.com>
- Bernhard Reiter <ockham@raz.or.at>
- Birk Borkason <daniel.niccoli@gmail.com>
- Bjoern Schiessle <bjoern@schiessle.org>
- Björn Schießle <bjoern@schiessle.org>
- Borjan Tchakaloff <borjan@tchakaloff.fr>
- Brice Maron <brice@bmaron.net>
- Byron Marohn <combustible@live.com>
- Carla Schroder <carla@owncloud.com>
- Carlos Cerrillo <ccerrillo@gmail.com>
- Carlos Damken <carlos@damken.com>
- Christian Berendt <berendt@b1-systems.de>
- Christian Jürges <christian@eqipe.ch>
- Christian Kampka <christian@kampka.net>
- Christian Weiske <cweiske@cweiske.de>
- Christoph Schaefer <christophł@wolkesicher.de>
- Christoph Wurst <christoph@owncloud.com>
- Christopher Schäpers <kondou@ts.unde.re>
- Christopher T. Johnson <ctjctj@gmail.com>
- Clark Tomlinson <fallen013@gmail.com>
- Craig Morrissey <craig@owncloud.com>
- Dan Bartram <daneybartram@gmail.com>
- Daniel Hansson <enoch85@gmail.com>
- Daniel Jagszent <daniel@jagszent.de>
- Daniel Molkentin <daniel@molkentin.de>
- Daniel Tosello <tosello.daniel@gmail.com>
- David Prévot <taffit@debian.org>
- David Toledo <dtoledo@solidgear.es>
- Dominik Schmidt <dev@dominik-schmidt.de>
- Fabian Henze <flyser42@gmx.de>
- Faruk Uzun <farukuzun@collabora.com>
- Felix Böhm <felixboehm@gmx.de>
- Felix Moeller <mail@felixmoeller.de>
- Florian Preinstorfer <nblock@archlinux.us>
- Florian Pritz <bluewind@xinu.at>
- Florin Peter <github@florin-peter.de>
- Francesco Rovelli <francesco.rovelli@gmail.com>
- Frank Karlitschek <frank@karlitschek.de>
- François Kubler <francois@kubler.org>
- Frédéric Fortier <frederic.fortier@oronospolytechnique.com>
- Gadzy <dev@gadzy.fr>
- Georg Ehrke <georg@owncloud.com>
- Guillaume AMAT <guillaume.amat@informatique-libre.com>
- Hasso Tepper <hasso@zone.ee>
- Hendrik Leppelsack <hendrik@leppelsack.de>
- Hugo Gonzalez Labrador <hglavra@gmail.com>
- Individual IT Services <info@individual-it.net>
- Jakob Sack <mail@jakobsack.de>
- Jan-Christoph Borchardt <hey@jancborchardt.net>
- Jarrett <JetUni@users.noreply.github.com>
- Jean-Louis Dupond <jean-louis@dupond.be>
- Jens-Christian Fischer <jens-christian.fischer@switch.ch>
- Jesús Macias <jmacias@solidgear.es>
- Joachim Bauch <bauch@struktur.de>
- Joachim Sokolowski <github@sokolowski.org>
- Joas Schilling <coding@schilljs.com>
- Johan Björk <johanimon@gmail.com>
- Johannes Ernst <jernst@indiecomputing.com>
- Johannes Willnecker <johannes@willnecker.com>
- Jonny007-MKD <1-23-4-5@web.de>
- Juan Pablo Villafáñez <jvillafanez@solidgear.es>
- Julius Haertl <jus@bitgrid.net>
- Jörn Friedrich Dreyer <jfd@butonic.de>
- Kamil Domanski <kdomanski@kdemail.net>
- Klaas Freitag <freitag@owncloud.com>
- Lars <winnetou+github@catolic.de>
- Laurens Post <Crote@users.noreply.github.com>
- Laurens Post <lkpost@scept.re>
- Lennart Rosam <hello@takuto.de>
- Lennart Rosam <lennart.rosam@medien-systempartner.de>
- Leonardo Diez <leio10@users.noreply.github.com>
- Lorenzo M. Catucci <lorenzo@sancho.ccd.uniroma2.it>
- Lukas Reschke <lukas@statuscode.ch>
- Luke Policinski <lpolicinski@gmail.com>
- Lyonel Vincent <lyonel@ezix.org>
- Manish Bisht <manish.bisht490@gmail.com>
- Mario Kolling <mario.kolling@serpro.gov.br>
- Markus Goetz <markus@woboq.com>
- Martin Konrad <info@martin-konrad.net>
- Martin Konrad <konrad@frib.msu.edu>
- Martin Mattel <martin.mattel@diemattels.at>
- Marvin Thomas Rabe <mrabe@marvinrabe.de>
- Masaki Kawabata Neto <masaki.kawabata@gmail.com>
- Michael Gapczynski <GapczynskiM@gmail.com>
- Michael Göhler <somebody.here@gmx.de>
- Michael Kuhn <suraia@ikkoku.de>
- Michael Roitzsch <reactorcontrol@icloud.com>
- Michael Roth <michael.roth@rz.uni-augsburg.de>
- Michael U <mdusher@users.noreply.github.com>
- Miguel Prokop <miguel.prokop@vtu.com>
- Mitar <mitar.git@tnode.com>
- Morris Jobke <hey@morrisjobke.de>
- Nicolai Ehemann <en@enlightened.de>
- Nicolas Grekas <nicolas.grekas@gmail.com>
- Nmz <nemesiz@nmz.lt>
- Normal Ra <normalraw@gmail.com>
- Oliver Gasser <oliver.gasser@gmail.com>
- Oliver Kohl D.Sc. <oliver@kohl.bz>
- Olivier Paroz <github@oparoz.com>
- Otto Sabart <ottosabart@seberm.com>
- Owen Winkler <a_github@midnightcircus.com>
- Pascal de Bruijn <pmjdebruijn@pcode.nl>
- Patrick Paysant <ppaysant@linagora.com>
- Pellaeon Lin <nfsmwlin@gmail.com>
- Petr Svoboda <weits666@gmail.com>
- Phiber2000 <phiber2000@gmx.de>
- Phil Davis <phil.davis@inf.org>
- Philipp Kapfer <philipp.kapfer@gmx.at>
- Philippe Jung <phil.jung@free.fr>
- Pierre Jochem <pierrejochem@msn.com>
- Pierre Ozoux <pierre@ozoux.net>
- Piotr Filiciak <piotr@filiciak.pl>
- Qingping Hou <dave2008713@gmail.com>
- Raghu Nayyar <hey@raghunayyar.com>
- Raghu Nayyar <me@iraghu.com>
- Ralph Krimmel <rkrimme1@gwdg.de>
- Ramiro Aparicio <rapariciog@gmail.com>
- Randolph Carter <RandolphCarter@fantasymail.de>
- RealRancor <Fisch.666@gmx.de>
- Remco Brenninkmeijer <requist1@starmail.nl>
- Renaud Fortier <Renaud.Fortier@fsaa.ulaval.ca>
- Robin Appelman <robin@icewind.nl>
- Robin McCorkell <robin@mccorkell.me.uk>
- Roeland Jago Douma <roeland@famdouma.nl>
- Roman Geber <rgeber@owncloudapps.com>
- Roman Kreisel <mail@romankreisel.de>
- Ross Nicoll <jrn@jrn.me.uk>
- SA <stephen@mthosting.net>
- Sam Tuke <mail@samtuke.com>
- Sander <brantje@gmail.com>
- Sean Comeau <sean@ftlnetworks.ca>
- Sebastian Döll <sebastian.doell@libasys.de>
- Senorsen <senorsen.zhang@gmail.com>
- Serge Martin <edb@sigluy.net>
- Sergio Bertolin <sbertolin@solidgear.es>
- Sergio Bertolín <sbertolin@solidgear.es>
- Simon Könnecke <simonkoennecke@gmail.com>
- Sjors van der Pluijm <sjors@desjors.nl>
- Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
- Stefan Rado <owncloud@sradonia.net>
- Stefan Weil <sw@weilnetz.de>
- Steffen Lindner <mail@steffen-lindner.de>
- Stephan Peijnik <speijnik@anexia-it.com>
- TheSFReader <TheSFReader@gmail.com>
- Thibaut GRIDEL <tgridel@free.fr>
- Thomas Citharel <tcit@tcit.fr>
- Thomas Müller <thomas.mueller@tmit.eu>
- Thomas Pulzer <t.pulzer@kniel.de>
- Thomas Tanghus <thomas@tanghus.net>
- Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
- Tim Dettrick <t.dettrick@uq.edu.au>
- Tobia De Koninck <tobia@ledfan.be>
- Tobias Kaminsky <tobias@kaminsky.me>
- Tom Needham <tom@owncloud.com>
- Torben Dannhauer <torben@dannhauer.de>
- Victor Dubiniuk <dubiniuk@owncloud.com>
- Viktor Szépe <viktor@szepe.net>
- Vincent Chan <plus.vincchan@gmail.com>
- Vincent Cloutier <vincent1cloutier@gmail.com>
- Vincent Petry <pvince81@owncloud.com>
- Volkan Gezer <volkangezer@gmail.com>
- adrien <adrien.waksberg@believedigital.com>
- alexweirig <alex.weirig@technolink.lu>
- brumsel <brumsel@losecatcher.de>
- cetra3 <peter@parashift.com.au>
- cmeh <cmeh@users.noreply.github.com>
- dampfklon <me@dampfklon.de>
- davidgumberg <davidnoizgumberg@gmail.com>
- davitol <dtoledo@solidgear.es>
- derkostka <sebastian.kostka@gmail.com>
- eduardo <eduardo@vnexu.net>
- fabian <fabian@web2.0-apps.de>
- felixboehm <felix@webhippie.de>
- goodkiller <markopraakli@gmail.com>
- helix84 <helix84@centrum.sk>
- hkjolhede <hkjolhede@gmail.com>
- ideaship <ideaship@users.noreply.github.com>
- j-ed <juergen@eisfair.org>
- jknockaert <jasper@knockaert.nl>
- josh4trunks <joshruehlig@gmail.com>
- karakayasemi <karakayasemi@itu.edu.tr>
- macjohnny <estebanmarin@gmx.ch>
- martin-rueegg <martin.rueegg@metaworx.ch>
- martin.mattel@diemattels.at <martin.mattel@diemattels.at>
- michag86 <micha_g@arcor.de>
- mmccarn <mmccarn-github@mmsionline.us>
- nishiki <nishiki@yaegashi.fr>
- oparoz <owncloud@interfasys.ch>
- root <root@oc.(none)>
- scambra <sergio@entrecables.com>
- scolebrook <scolebrook@mac.com>
- shkdee <louis.traynard@m4x.org>
- sualko <klaus@jsxc.org>
- tbartenstein <tbartenstein@users.noreply.github.com>
- tbelau666 <thomas.belau@gmx.de>
- unclejamal3000 <andreas.pramhaas@posteo.de>
- v1r0x <vinzenz.rosenkranz@gmail.com>
- voxsim <Simon Vocella>
ownCloud is written by:
Frank Karlitschek
Robin Appelman
Jakob Sack
Jan-Christoph Borchardt
Michael Gapczynski
Arthur Schiwon
Bart Visscher
Georg Ehrke
Brice Maron
Tom Needham
Marvin Thomas Rabe
Florian Pritz
Bartek Przybylski
Thomas Müller
Klaas Freitag
Sam Tuke
Simon Birnbach
Lukas Reschke
Christian Reiner
Daniel Molkentin
With help from many libraries and frameworks including:
Open Collaboration Services
SabreDAV
jQuery
"Lock” symbol from thenounproject.com collection
"Clock” symbol by Brandon Hopkins, from thenounproject.com collection
-20
View File
@@ -1,20 +0,0 @@
ChangeLog
=========
NC 11 (2016-12-13)
------------------
* PHP 5.4 and 5.5 no longer supported
* PHP 7.1 support
* OC_L10N removed use \OCP\IL10N (#1948)
* Preview handling is improved by sharing previews:
* Preview sharing (shared files/external storages)
* Previews are stored in the AppData
* Previews are served faster by not first converting them to image objects
* Core preview route changed:
* Route for the urlgenerator changed from 'core_ajax_preview' to 'core.Preview.getPreview'
* $urlGenerator->linkToRoute('core_ajax_preview', ...) => $urlGenerator->linkToRoute('core.Preview.getPreview', ...)
* Avatars are cached
* Avatars are moved to AppData
* For existing avatars this happens automatically in a background job which means that on upgrade you might
not see your avatar right away. However after the job has run it should show up again automatically.
+29 -44
View File
@@ -1,68 +1,53 @@
## Submitting issues
If you have questions about how to install or use Nextcloud, please direct these to our [forum][forum]. We are also available on [IRC][irc].
If you have questions about how to install or use ownCloud, please direct these to the [mailing list][mailinglist] or our [forum][forum]. We are also available on [IRC][irc].
### Short version
### TL;DR
* The [**issue template can be found here**][template] but be aware of the different repositories! See list below. Please always use the issue template when reporting issues.
* The [issue template can be found here][template] but be aware of the different repositories! See list below.
### Guidelines
* Please search the existing issues first, it's likely that your issue was already reported or even fixed.
- Go to one of the repositories, click "issues" and type any word in the top search/command bar.
- You can also filter by appending e. g. "state:open" to the search string.
- More info on [search syntax within github](https://help.github.com/articles/searching-issues)
* This repository ([server](https://github.com/nextcloud/server/issues)) is *only* for issues within the Nextcloud Server code. This also includes the apps: files, encryption, external storage, sharing, deleted files, versions, LDAP, and WebDAV Auth
* __SECURITY__: Report any potential security bug to us via [our HackerOne page](https://hackerone.com/nextcloud) or security@nextcloud.com following our [security policy](https://nextcloud.com/security/) instead of filing an issue in our bug tracker.
* The issues in other components should be reported in their respective repositories: You will find them in our [GitHub Organization](https://github.com/nextcloud/)
* This repository ([core](https://github.com/owncloud/core/issues)) is *only* for issues within the ownCloud core code. This also includes the apps: files, encryption, external storage, sharing, deleted files, versions, LDAP, and WebDAV Auth
* The issues in other components should be reported in their respective repositories:
- [Android client](https://github.com/owncloud/android/issues)
- [iOS client](https://github.com/owncloud/ios-issues/issues)
- [Desktop client](https://github.com/owncloud/mirall/issues)
- Apps:
- [Bookmarks](https://github.com/owncloud/bookmarks/issues)
- [Calendar](https://github.com/owncloud/calendar/issues)
- [Contacts](https://github.com/owncloud/contacts/issues)
- [Documents](https://github.com/owncloud/documents/issues)
- [Mail](https://github.com/owncloud/mail/issues)
- [Media/Music](https://github.com/owncloud/media/issues)
- [News](https://github.com/owncloud/news/issues)
- [Notes](https://github.com/owncloud/notes/issues)
- [Shorty](https://github.com/owncloud/shorty/issues)
- [All other apps](https://github.com/owncloud/apps/issues) (e.g. Pictures, Tasks, ...)
* Report the issue using our [template][template], it includes all the information we need to track down the issue.
Help us to maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues.
[template]: https://raw.githubusercontent.com/nextcloud/server/master/issue_template.md
[forum]: https://help.nextcloud.com/
[irc]: https://webchat.freenode.net/?channels=nextcloud
[template]: https://raw.github.com/owncloud/core/master/issue_template.md
[mailinglist]: https://mail.kde.org/mailman/listinfo/owncloud
[forum]: http://forum.owncloud.org/
[irc]: http://webchat.freenode.net/?channels=owncloud&uio=d4
## Contributing to Source Code
Thanks for wanting to contribute source code to Nextcloud. That's great!
Thanks for wanting to contribute source code to ownCloud. That's great!
Please read the [Developer Manuals][devmanual] to learn how to create your first application or how to test the Nextcloud code with PHPUnit.
Before we're able to merge your code into the ownCloud core, you need to sign our [Contributor Agreement][agreement].
### Tests
Please read the [Developer Manuals][devmanual] to learn how to create your first application or how to test the ownCloud code with PHPUnit.
In order to constantly increase the quality of our software we can no longer accept pull request which submit un-tested code.
It is a must have that changed and added code segments are unit tested.
In some areas unit testing is hard (aka almost impossible) as of today - in these areas refactoring WHILE fixing a bug is encouraged to enable unit testing.
### Sign your work
We use the Developer Certificate of Origin (DCO) as a additional safeguard
for the Nextcloud project. This is a well established and widely used
mechanism to assure contributors have confirmed their right to license
their contribution under the project's license.
Please read [contribute/developer-certificate-of-origin][dcofile].
If you can certify it, then just add a line to every git commit message:
````
Signed-off-by: Random J Developer <random@developer.example.org>
````
Use your real name (sorry, no pseudonyms or anonymous contributions).
If you set your `user.name` and `user.email` git configs, you can sign your
commit automatically with `git commit -s`. You can also use git [aliases](https://git-scm.com/book/tr/v2/Git-Basics-Git-Aliases)
like `git config --global alias.ci 'commit -s'`. Now you can commit with
`git ci` and the commit will be signed.
### Apply a license
In case you are not sure how to add or update the license header correctly please have a look at [contribute/HowToApplyALicense.md][applyalicense]
[devmanual]: https://docs.nextcloud.org/server/12/developer_manual/
[dcofile]: https://github.com/nextcloud/server/blob/master/contribute/developer-certificate-of-origin
[applyalicense]: https://github.com/nextcloud/server/blob/master/contribute/HowToApplyALicense.md
[agreement]: http://owncloud.org/about/contributor-agreement/
[devmanual]: http://owncloud.org/dev/
## Translations
Please submit translations via [Transifex][transifex].
[transifex]: https://www.transifex.com/nextcloud
[transifex]: https://www.transifex.com/projects/p/owncloud/
View File
+4 -4
View File
@@ -1,5 +1,5 @@
Files in Nextcloud are licensed under the Affero General Public License version 3,
the text of which can be found in COPYING, or any later version of the AGPL,
Files in ownCloud are licensed under the Affero General Public License version 3,
the text of which can be found in COPYING-AGPL, or any later version of the AGPL,
unless otherwise noted.
Licensing of components:
@@ -8,8 +8,8 @@ Licensing of components:
* MDB2: BSD style custom
* User: AGPL
* XML/RPC: MIT / PHP
* Elementary filetype icons: GPL v3+
* Silk icons: Creative Commons Attribution
All unmodified files from these and other sources retain their original copyright
and license notices: see the relevant individual files.
Attribution information for Nextcloud is contained in the AUTHORS file.
Attribution information for ownCloud is contained in the AUTHORS file.
+19 -59
View File
@@ -1,66 +1,26 @@
# Nextcloud Server
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/server/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/nextcloud/server/?branch=master)
[![codecov](https://codecov.io/gh/nextcloud/server/branch/master/graph/badge.svg)](https://codecov.io/gh/nextcloud/server)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/209/badge)](https://bestpractices.coreinfrastructure.org/projects/209)
[![irc](https://img.shields.io/badge/IRC-%23nextcloud%20on%20freenode-orange.svg)](https://webchat.freenode.net/?channels=nextcloud)
[![irc](https://img.shields.io/badge/IRC-%23nextcloud--dev%20on%20freenode-blue.svg)](https://webchat.freenode.net/?channels=nextcloud-dev)
# ownCloud
**A safe home for all your data.**
[ownCloud](http://ownCloud.org) gives you freedom and control over your own data.
A personal cloud which runs on your own server.
![](https://github.com/nextcloud/screenshots/blob/master/files/filelist.png)
### Build Status on [Jenkins CI](https://ci.owncloud.org/)
Git master: [![Build Status](https://ci.owncloud.org/buildStatus/icon?job=ownCloud-Server%28master%29)](https://ci.owncloud.org/job/ownCloud-Server%28master%29/)
## Why is this so awesome?
### Installation instructions
http://doc.owncloud.org/server/5.0/developer_manual/app/gettingstarted.html
* :file_folder: **Access your Data** You can store your files, contacts, calendars and more on a server of your choosing.
* :package: **Sync your Data** You keep your files, contacts, calendars and more synchronized amongst your devices.
* :arrows_counterclockwise: **Share your Data** …by giving others access to the stuff you want them to see or to collaborate with.
* :rocket: **Expandable with dozens of Apps** ...like [Calendar](https://github.com/nextcloud/calendar), [Contacts](https://github.com/nextcloud/contacts), [Mail](https://github.com/nextcloud/mail) and all those you can discover in our [App Store](https://apps.nextcloud.com)
* :lock: **Security** with our encryption mechanisms, [HackerOne bounty program](https://hackerone.com/nextcloud) and two-factor authentification.
### Contribution Guidelines
http://owncloud.org/dev/contribute/
*You want to learn more about how you can use Nextcloud to access, share and protect your files, calendars, contacts, communication & more at home and at your Enterprise?* [**Learn about all our Features**](https://nextcloud.com/features).
### Get in touch
* [Forum](http://forum.owncloud.org)
* [Mailing list](https://mail.kde.org/mailman/listinfo/owncloud)
* [IRC channel](https://webchat.freenode.net/?channels=owncloud)
* [Twitter](https://twitter.com/ownClouders)
## Get your Nextcloud
### Important notice on translations
Please submit translations via Transifex:
https://www.transifex.com/projects/p/owncloud/
- [**Install** a server by yourself on your own hardware or by using one of our ready to use **Appliances**](https://nextcloud.com/install/#instructions-server)
- [Buy one of the awesome **devices** coming with a preinstalled Nextcloud](https://nextcloud.com/devices/)
- [Find a service **provider** who is hosting Nextcloud for you or your company](https://nextcloud.com/providers/)
*Enterprise? Public Sector or Education user? You may want to have a look into the [**Enterprise Support Subscription**](https://nextcloud.com/enterprise/) provided by the Nextcloud GmbH*
## Get in touch
* :clipboard: [Forum](https://help.nextcloud.com)
* :busts_in_silhouette: [Facebook](https://facebook.com/nextclouders)
* :hatching_chick: [Twitter](https://twitter.com/Nextclouders)
[…learn more about how to get support for Nextcloud here!](https://nextcloud.com/support)
## Contribution Guidelines
All contributions to this repository from June, 16 2016 on are considered to be
licensed under the AGPLv3 or any later version.
Nextcloud doesn't require a CLA (Contributor License Agreement).
The copyright belongs to all the individual contributors. Therefore we recommend
that every contributor adds following line to the header of a file, if they
changed it substantially:
```
@copyright Copyright (c) <year>, <your name> (<your email address>)
```
Please read the [Code of Conduct](https://nextcloud.com/community/code-of-conduct/). This document offers some guidance to ensure Nextcloud participants can cooperate effectively in a positive and inspiring atmosphere, and to explain how together we can strengthen and support each other.
Please review the [guidelines for contributing](https://github.com/nextcloud/server/blob/master/CONTRIBUTING.md) to this repository.
More information how to contribute: [https://nextcloud.com/contribute/](https://nextcloud.com/contribute/)
## Running master checkouts
Third-party components are handled as git submodules which have to be initialized first. So aside from the regular git checkout invoking `git submodule update --init` or a similar command is needed, for details see Git documentation.
Several apps by default included in regular releases like [firstrunwizard](https://github.com/nextcloud/firstrunwizard) or [gallery](https://github.com/nextcloud/gallery) are missing in `master` and have to be installed manually as required.
That aside Git checkouts can be handled the same as release archives.
Note they should never be used on production systems.
For more detailed information about translations:
http://owncloud.org/dev/translation/
-37
View File
@@ -1,37 +0,0 @@
<?php
/**
* @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org>
* @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch>
*
* @author Bjoern Schiessle <bjoern@schiessle.org>
* @author Lukas Reschke <lukas@statuscode.ch>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
*
*/
$logger = \OC::$server->getLogger();
$userSession = \OC::$server->getUserSession();
$groupManager = \OC::$server->getGroupManager();
$eventDispatcher = \OC::$server->getEventDispatcher();
$auditLogger = new \OCA\Admin_Audit\AuditLogger(
$logger,
$userSession,
$groupManager,
$eventDispatcher
);
$auditLogger->registerHooks();
-15
View File
@@ -1,15 +0,0 @@
<?xml version="1.0"?>
<info>
<id>admin_audit</id>
<name>Auditing / Logging</name>
<description>Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.</description>
<licence>AGPL</licence>
<author>Nextcloud</author>
<version>1.2.0</version>
<dependencies>
<nextcloud min-version="12" max-version="12" />
</dependencies>
<types>
<logging/>
</types>
</info>
-88
View File
@@ -1,88 +0,0 @@
<?php
/**
* @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
*
* @author Lukas Reschke <lukas@statuscode.ch>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Admin_Audit\Actions;
use OCP\ILogger;
class Action {
/** @var ILogger */
private $logger;
/**
* @param ILogger $logger
*/
public function __construct(ILogger $logger) {
$this->logger = $logger;
}
/**
* Log a single action with a log level of info
*
* @param string $text
* @param array $params
* @param array $elements
* @param bool $obfuscateParameters
*/
public function log($text,
array $params,
array $elements,
$obfuscateParameters = false) {
foreach($elements as $element) {
if(!isset($params[$element])) {
if ($obfuscateParameters) {
$this->logger->critical(
'$params["'.$element.'"] was missing.',
['app' => 'admin_audit']
);
} else {
$this->logger->critical(
sprintf(
'$params["'.$element.'"] was missing. Transferred value: %s',
print_r($params, true)
),
['app' => 'admin_audit']
);
}
return;
}
}
$replaceArray = [];
foreach($elements as $element) {
if($params[$element] instanceof \DateTime) {
$params[$element] = $params[$element]->format('Y-m-d H:i:s');
}
$replaceArray[] = $params[$element];
}
$this->logger->info(
vsprintf(
$text,
$replaceArray
),
[
'app' => 'admin_audit'
]
);
}
}
-60
View File
@@ -1,60 +0,0 @@
<?php
/**
* @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
*
* @author Lukas Reschke <lukas@statuscode.ch>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Admin_Audit\Actions;
/**
* Class Auth logs all auth related actions
*
* @package OCA\Admin_Audit\Actions
*/
class Auth extends Action {
public function loginAttempt(array $params) {
$this->log(
'Login attempt: "%s"',
$params,
[
'uid',
],
true
);
}
public function loginSuccessful(array $params) {
$this->log(
'Login successful: "%s"',
$params,
[
'uid',
],
true
);
}
public function logout(array $params) {
$this->log(
'Logout occurred',
[],
[]
);
}
}
-164
View File
@@ -1,164 +0,0 @@
<?php
/**
* @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
*
* @author Lukas Reschke <lukas@statuscode.ch>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Admin_Audit\Actions;
/**
* Class Files logs the actions to files
*
* @package OCA\Admin_Audit\Actions
*/
class Files extends Action {
/**
* Logs file read actions
*
* @param array $params
*/
public function read(array $params) {
$this->log(
'File accessed: "%s"',
$params,
[
'path',
]
);
}
/**
* Logs rename actions of files
*
* @param array $params
*/
public function rename(array $params) {
$this->log(
'File renamed: "%s" to "%s"',
$params,
[
'oldpath',
'newpath',
]
);
}
/**
* Logs creation of files
*
* @param array $params
*/
public function create(array $params) {
if ($params['path'] === '/' || $params['path'] === '' || $params['path'] === null) {
return;
}
$this->log(
'File created: "%s"',
$params,
[
'path',
]
);
}
/**
* Logs copying of files
*
* @param array $params
*/
public function copy(array $params) {
$this->log(
'File copied: "%s" to "%s"',
$params,
[
'oldpath',
'newpath',
]
);
}
/**
* Logs writing of files
*
* @param array $params
*/
public function write(array $params) {
if ($params['path'] === '/' || $params['path'] === '' || $params['path'] === null) {
return;
}
$this->log(
'File written to: "%s"',
$params,
[
'path',
]
);
}
/**
* Logs update of files
*
* @param array $params
*/
public function update(array $params) {
$this->log(
'File updated: "%s"',
$params,
[
'path',
]
);
}
/**
* Logs deletions of files
*
* @param array $params
*/
public function delete(array $params) {
$this->log(
'File deleted: "%s"',
$params,
[
'path',
]
);
}
/**
* Logs preview access to a file
*
* @param array $params
*/
public function preview(array $params) {
$this->log(
'Preview accessed: "%s" (width: "%s", height: "%s" crop: "%s", mode: "%s")',
$params,
[
'path',
'width',
'height',
'crop',
'mode'
]
);
}
}
@@ -1,108 +0,0 @@
<?php
/**
* @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org>
*
* @author Bjoern Schiessle <bjoern@schiessle.org>
* @author Lukas Reschke <lukas@statuscode.ch>
* @author Roger Szabo <roger.szabo@web.de>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Admin_Audit\Actions;
use OCA\Admin_Audit\Actions\Action;
use OCP\IGroup;
use OCP\IUser;
/**
* Class GroupManagement logs all group manager related events
*
* @package OCA\Admin_Audit
*/
class GroupManagement extends Action {
/**
* log add user to group event
*
* @param IGroup $group
* @param IUser $user
*/
public function addUser(IGroup $group, IUser $user) {
$this->log('User "%s" added to group "%s"',
[
'group' => $group->getGID(),
'user' => $user->getUID()
],
[
'user', 'group'
]
);
}
/**
* log remove user from group event
*
* @param IGroup $group
* @param IUser $user
*/
public function removeUser(IGroup $group, IUser $user) {
$this->log('User "%s" removed from group "%s"',
[
'group' => $group->getGID(),
'user' => $user->getUID()
],
[
'user', 'group'
]
);
}
/**
* log create group to group event
*
* @param IGroup $group
*/
public function createGroup(IGroup $group) {
$this->log('Group created: "%s"',
[
'group' => $group->getGID()
],
[
'group'
]
);
}
/**
* log delete group to group event
*
* @param IGroup $group
*/
public function deleteGroup(IGroup $group) {
$this->log('Group deleted: "%s"',
[
'group' => $group->getGID()
],
[
'group'
]
);
}
}
-191
View File
@@ -1,191 +0,0 @@
<?php
/**
* @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
*
* @author Lukas Reschke <lukas@statuscode.ch>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Admin_Audit\Actions;
use OCP\Share;
/**
* Class Sharing logs the sharing actions
*
* @package OCA\Admin_Audit\Actions
*/
class Sharing extends Action {
/**
* Logs sharing of data
*
* @param array $params
*/
public function shared(array $params) {
if($params['shareType'] === Share::SHARE_TYPE_LINK) {
$this->log(
'The %s "%s" with ID "%s" has been shared via link with permissions "%s" (Share ID: %s)',
$params,
[
'itemType',
'itemTarget',
'itemSource',
'permissions',
'id',
]
);
} elseif($params['shareType'] === Share::SHARE_TYPE_USER) {
$this->log(
'The %s "%s" with ID "%s" has been shared to the user "%s" with permissions "%s" (Share ID: %s)',
$params,
[
'itemType',
'itemTarget',
'itemSource',
'shareWith',
'permissions',
'id',
]
);
} elseif($params['shareType'] === Share::SHARE_TYPE_GROUP) {
$this->log(
'The %s "%s" with ID "%s" has been shared to the group "%s" with permissions "%s" (Share ID: %s)',
$params,
[
'itemType',
'itemTarget',
'itemSource',
'shareWith',
'permissions',
'id',
]
);
}
}
/**
* Logs unsharing of data
*
* @param array $params
*/
public function unshare(array $params) {
if($params['shareType'] === Share::SHARE_TYPE_LINK) {
$this->log(
'The %s "%s" with ID "%s" has been unshared (Share ID: %s)',
$params,
[
'itemType',
'fileTarget',
'itemSource',
'id',
]
);
} elseif($params['shareType'] === Share::SHARE_TYPE_USER) {
$this->log(
'The %s "%s" with ID "%s" has been unshared from the user "%s" (Share ID: %s)',
$params,
[
'itemType',
'fileTarget',
'itemSource',
'shareWith',
'id',
]
);
} elseif($params['shareType'] === Share::SHARE_TYPE_GROUP) {
$this->log(
'The %s "%s" with ID "%s" has been unshared from the group "%s" (Share ID: %s)',
$params,
[
'itemType',
'fileTarget',
'itemSource',
'shareWith',
'id',
]
);
}
}
/**
* Logs the updating of permission changes for shares
*
* @param array $params
*/
public function updatePermissions(array $params) {
$this->log(
'The permissions of the shared %s "%s" with ID "%s" have been changed to "%s"',
$params,
[
'itemType',
'path',
'itemSource',
'permissions',
]
);
}
/**
* Logs the password changes for a share
*
* @param array $params
*/
public function updatePassword(array $params) {
$this->log(
'The password of the publicly shared %s "%s" with ID "%s" has been changed',
$params,
[
'itemType',
'token',
'itemSource',
]
);
}
/**
* Logs the expiration date changes for a share
*
* @param array $params
*/
public function updateExpirationDate(array $params) {
$this->log(
'The expiration date of the publicly shared %s with ID "%s" has been changed to "%s"',
$params,
[
'itemType',
'itemSource',
'date',
]
);
}
/**
* Logs access of shared files
*
* @param array $params
*/
public function shareAccessed(array $params) {
$this->log(
'The shared %s with the token "%s" by "%s" has been accessed.',
$params,
[
'itemType',
'token',
'uidOwner',
]
);
}
}
-42
View File
@@ -1,42 +0,0 @@
<?php
/**
* @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org>
*
* @author Bjoern Schiessle <bjoern@schiessle.org>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Admin_Audit\Actions;
class Trashbin extends Action {
public function delete($params) {
$this->log('File "%s" deleted from trash bin.',
['path' => $params['path']], ['path']
);
}
public function restore($params) {
$this->log('File "%s" restored from trash bin.',
['path' => $params['filePath']], ['path']
);
}
}
@@ -1,98 +0,0 @@
<?php
/**
* @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
*
* @author Bjoern Schiessle <bjoern@schiessle.org>
* @author Lukas Reschke <lukas@statuscode.ch>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Admin_Audit\Actions;
use OCP\IUser;
/**
* Class UserManagement logs all user management related actions.
*
* @package OCA\Admin_Audit\Actions
*/
class UserManagement extends Action {
/**
* Log creation of users
*
* @param array $params
*/
public function create(array $params) {
$this->log(
'User created: "%s"',
$params,
[
'uid',
]
);
}
/**
* Log deletion of users
*
* @param array $params
*/
public function delete(array $params) {
$this->log(
'User deleted: "%s"',
$params,
[
'uid',
]
);
}
/**
* Log enabling of users
*
* @param array $params
*/
public function change(array $params) {
if ($params['feature'] === 'enabled') {
$this->log(
$params['value'] === 'true' ? 'User enabled: "%s"' : 'User disabled: "%s"',
['user' => $params['user']->getUID()],
[
'user',
]
);
}
}
/**
* Logs changing of the user scope
*
* @param IUser $user
*/
public function setPassword(IUser $user) {
if($user->getBackendClassName() === 'Database') {
$this->log(
'Password of user "%s" has been changed',
[
'user' => $user->getUID(),
],
[
'user',
]
);
}
}
}
-47
View File
@@ -1,47 +0,0 @@
<?php
/**
* @copyright Bjoern Schiessle <bjoern@schiessle.org>
*
* @author Bjoern Schiessle <bjoern@schiessle.org>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Admin_Audit\Actions;
class Versions extends Action {
public function rollback($params) {
$this->log('Version "%s" of "%s" was restored.',
[
'version' => $params['revision'],
'path' => $params['path']
],
['version', 'path']
);
}
public function delete($params) {
$this->log('Version "%s" was deleted.',
['path' => $params['path']],
['path']
);
}
}
-209
View File
@@ -1,209 +0,0 @@
<?php
/**
* @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org>
* @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch>
*
* @author Bjoern Schiessle <bjoern@schiessle.org>
* @author Lukas Reschke <lukas@statuscode.ch>
* @author Roger Szabo <roger.szabo@web.de>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Admin_Audit;
use OC\Files\Filesystem;
use OC\Files\Node\File;
use OCA\Admin_Audit\Actions\Auth;
use OCA\Admin_Audit\Actions\Files;
use OCA\Admin_Audit\Actions\GroupManagement;
use OCA\Admin_Audit\Actions\Sharing;
use OCA\Admin_Audit\Actions\Trashbin;
use OCA\Admin_Audit\Actions\UserManagement;
use OCA\Admin_Audit\Actions\Versions;
use OCP\IGroupManager;
use OCP\ILogger;
use OCP\IPreview;
use OCP\IUserSession;
use OCP\Util;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\GenericEvent;
class AuditLogger {
/** @var ILogger */
private $logger;
/** @var IUserSession */
private $userSession;
/** @var IGroupManager */
private $groupManager;
/**
* AuditLogger constructor.
*
* @param ILogger $logger
* @param IUserSession $userSession
* @param IGroupManager $groupManager
* @param EventDispatcherInterface $eventDispatcher
*/
public function __construct(ILogger $logger,
IUserSession $userSession,
IGroupManager $groupManager,
EventDispatcherInterface $eventDispatcher) {
$this->logger = $logger;
$this->userSession = $userSession;
$this->groupManager = $groupManager;
$this->eventDispatcher = $eventDispatcher;
}
/**
* Register hooks in order to log them
*/
public function registerHooks() {
$this->userManagementHooks();
$this->groupHooks();
$this->sharingHooks();
$this->authHooks();
$this->fileHooks();
$this->trashbinHooks();
$this->versionsHooks();
}
/**
* Connect to user management hooks
*/
private function userManagementHooks() {
$userActions = new UserManagement($this->logger);
Util::connectHook('OC_User', 'post_createUser', $userActions, 'create');
Util::connectHook('OC_User', 'post_deleteUser', $userActions, 'delete');
Util::connectHook('OC_User', 'changeUser', $userActions, 'change');
$this->userSession->listen('\OC\User', 'postSetPassword', [$userActions, 'setPassword']);
}
private function groupHooks() {
$groupActions = new GroupManagement($this->logger);
$this->groupManager->listen('\OC\Group', 'postRemoveUser', [$groupActions, 'removeUser']);
$this->groupManager->listen('\OC\Group', 'postAddUser', [$groupActions, 'addUser']);
$this->groupManager->listen('\OC\Group', 'postDelete', [$groupActions, 'deleteGroup']);
$this->groupManager->listen('\OC\Group', 'postCreate', [$groupActions, 'createGroup']);
}
/**
* connect to sharing events
*/
private function sharingHooks() {
$shareActions = new Sharing($this->logger);
Util::connectHook('OCP\Share', 'post_shared', $shareActions, 'shared');
Util::connectHook('OCP\Share', 'post_unshare', $shareActions, 'unshare');
Util::connectHook('OCP\Share', 'post_update_permissions', $shareActions, 'updatePermissions');
Util::connectHook('OCP\Share', 'post_update_password', $shareActions, 'updatePassword');
Util::connectHook('OCP\Share', 'post_set_expiration_date', $shareActions, 'updateExpirationDate');
Util::connectHook('OCP\Share', 'share_link_access', $shareActions, 'shareAccessed');
}
/**
* connect to authentication event and related actions
*/
private function authHooks() {
$authActions = new Auth($this->logger);
Util::connectHook('OC_User', 'pre_login', $authActions, 'loginAttempt');
Util::connectHook('OC_User', 'post_login', $authActions, 'loginSuccessful');
Util::connectHook('OC_User', 'logout', $authActions, 'logout');
}
/**
* Connect to file hooks
*/
private function fileHooks() {
$fileActions = new Files($this->logger);
$this->eventDispatcher->addListener(
IPreview::EVENT,
function(GenericEvent $event) use ($fileActions) {
/** @var File $file */
$file = $event->getSubject();
$fileActions->preview([
'path' => substr($file->getInternalPath(), 5),
'width' => $event->getArguments()['width'],
'height' => $event->getArguments()['height'],
'crop' => $event->getArguments()['crop'],
'mode' => $event->getArguments()['mode']
]);
}
);
Util::connectHook(
Filesystem::CLASSNAME,
Filesystem::signal_post_rename,
$fileActions,
'rename'
);
Util::connectHook(
Filesystem::CLASSNAME,
Filesystem::signal_post_create,
$fileActions,
'create'
);
Util::connectHook(
Filesystem::CLASSNAME,
Filesystem::signal_post_copy,
$fileActions,
'copy'
);
Util::connectHook(
Filesystem::CLASSNAME,
Filesystem::signal_post_write,
$fileActions,
'write'
);
Util::connectHook(
Filesystem::CLASSNAME,
Filesystem::signal_post_update,
$fileActions,
'update'
);
Util::connectHook(
Filesystem::CLASSNAME,
Filesystem::signal_read,
$fileActions,
'read'
);
Util::connectHook(
Filesystem::CLASSNAME,
Filesystem::signal_delete,
$fileActions,
'delete'
);
}
public function versionsHooks() {
$versionsActions = new Versions($this->logger);
Util::connectHook('\OCP\Versions', 'rollback', $versionsActions, 'rollback');
Util::connectHook('\OCP\Versions', 'delete',$versionsActions, 'delete');
}
/**
* Connect to trash bin hooks
*/
private function trashbinHooks() {
$trashActions = new Trashbin($this->logger);
Util::connectHook('\OCP\Trashbin', 'preDelete', $trashActions, 'delete');
Util::connectHook('\OCA\Files_Trashbin\Trashbin', 'post_restore', $trashActions, 'restore');
}
}
-70
View File
@@ -1,70 +0,0 @@
<?php
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
* @author Joas Schilling <coding@schilljs.com>
* @author Vincent Petry <pvince81@owncloud.com>
*
* @license AGPL-3.0
*
* This code is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program 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, version 3,
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
$eventDispatcher = \OC::$server->getEventDispatcher();
$eventDispatcher->addListener(
'OCA\Files::loadAdditionalScripts',
function() {
\OCP\Util::addScript('oc-backbone-webdav');
\OCP\Util::addScript('comments', 'merged');
\OCP\Util::addStyle('comments', 'comments');
}
);
$eventDispatcher->addListener(\OCP\Comments\CommentsEntityEvent::EVENT_ENTITY, function(\OCP\Comments\CommentsEntityEvent $event) {
$event->addEntityCollection('files', function($name) {
$nodes = \OC::$server->getUserFolder()->getById(intval($name));
return !empty($nodes);
});
});
$notificationManager = \OC::$server->getNotificationManager();
$notificationManager->registerNotifier(
function() {
$application = new \OCP\AppFramework\App('comments');
return $application->getContainer()->query(\OCA\Comments\Notification\Notifier::class);
},
function () {
$l = \OC::$server->getL10N('comments');
return ['id' => 'comments', 'name' => $l->t('Comments')];
}
);
$commentsManager = \OC::$server->getCommentsManager();
$commentsManager->registerEventHandler(function () {
$application = new \OCP\AppFramework\App('comments');
/** @var \OCA\Comments\EventHandler $handler */
$handler = $application->getContainer()->query(\OCA\Comments\EventHandler::class);
return $handler;
});
$commentsManager->registerDisplayNameResolver('user', function($id) {
$manager = \OC::$server->getUserManager();
$user = $manager->get($id);
if(is_null($user)) {
$l = \OC::$server->getL10N('comments');
$displayName = $l->t('Unknown user');
} else {
$displayName = $user->getDisplayName();
}
return $displayName;
});
-30
View File
@@ -1,30 +0,0 @@
<?xml version="1.0"?>
<info>
<id>comments</id>
<name>Comments</name>
<description>Files app plugin to add comments to files</description>
<licence>AGPL</licence>
<author>Arthur Schiwon, Vincent Petry</author>
<default_enable/>
<version>1.2.0</version>
<dependencies>
<nextcloud min-version="12" max-version="12" />
</dependencies>
<types>
<logging/>
</types>
<activity>
<settings>
<setting>OCA\Comments\Activity\Setting</setting>
</settings>
<filters>
<filter>OCA\Comments\Activity\Filter</filter>
</filters>
<providers>
<provider>OCA\Comments\Activity\Provider</provider>
</providers>
</activity>
</info>
-28
View File
@@ -1,28 +0,0 @@
<?php
/**
* @author Arthur Schiwon <blizzz@arthur-schiwon.de>
*
* @copyright Copyright (c) 2016, ownCloud, Inc.
* @license AGPL-3.0
*
* This code is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program 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, version 3,
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
use \OCA\Comments\AppInfo\Application;
$application = new Application();
$application->registerRoutes($this, ['routes' => [
['name' => 'Notifications#view', 'url' => '/notifications/view/{id}', 'verb' => 'GET'],
]]);
-174
View File
@@ -1,174 +0,0 @@
/*
* Copyright (c) 2016
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*
*/
#commentsTabView .emptycontent {
margin-top: 0;
}
#commentsTabView .newCommentForm {
position: relative;
margin-bottom: 20px;
}
#commentsTabView .newCommentForm .message {
width: calc(100% - 81px); /* 36 (left margin) + 30 (right padding) + 15 (right padding of surrounding box) */
margin-left: 36px;
padding-right: 30px;
display: block;
}
#commentsTabView .newCommentForm .submit {
position: absolute;
bottom: 0px;
right: 8px;
width: 30px;
margin: 0;
padding: 7px 9px;
background-color: transparent;
border: none;
opacity: .3;
}
#commentsTabView .newCommentForm .submit:hover,
#commentsTabView .newCommentForm .submit:focus {
opacity: 1;
}
#commentsTabView .newCommentForm .submitLoading {
background-position: left;
}
#commentsTabView .newCommentForm .cancel {
margin-right: 6px;
}
#commentsTabView .newCommentForm textarea {
resize: none;
}
#commentsTabView .comment {
position: relative;
margin-bottom: 30px;
}
#commentsTabView .comment .avatar {
width: 32px;
height: 32px;
line-height: 32px;
}
#commentsTabView .comment .message .avatar {
display: inline-block;
}
#activityTabView li.comment.collapsed .activitymessage,
#commentsTabView .comment.collapsed .message {
white-space: pre-wrap;
}
#activityTabView li.comment.collapsed .activitymessage,
#commentsTabView .comment.collapsed .message {
max-height: 70px;
overflow: hidden;
}
#activityTabView li.comment .message-overlay,
#commentsTabView .comment .message-overlay {
display: none;
}
#activityTabView li.comment.collapsed .message-overlay,
#commentsTabView .comment.collapsed .message-overlay {
display: block;
position: absolute;
z-index: 2;
height: 50px;
pointer-events: none;
left: 0;
right: 0;
bottom: 0;
background: -moz-linear-gradient(rgba(255,255,255,0), rgba(255,255,255,1));
background: -webkit-linear-gradient(rgba(255,255,255,0), rgba(255,255,255,1));
background: -o-linear-gradient(rgba(255,255,255,0), rgba(255,255,255,1));
background: -ms-linear-gradient(rgba(255,255,255,0), rgba(255,255,255,1));
background: linear-gradient(rgba(255,255,255,0), rgba(255,255,255,1));
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00FFFFFF', endColorstr='#FFFFFFFF');
background-repeat: no-repeat;
}
#commentsTabView .authorRow>div {
display: inline-block;
vertical-align: middle;
}
#commentsTabView .authorRow>div.hidden {
display: none !important;
}
#commentsTabView .comments li .message .avatar-name-wrapper,
#commentsTabView .comment .authorRow {
position: relative;
cursor: pointer;
}
#commentsTabView .comment .author,
#commentsTabView .comment .date {
opacity: .5;
}
#commentsTabView .comment .author {
margin-left: 5px;
}
#commentsTabView .comment .date {
position: absolute;
right: 0;
top: 5px;
}
#commentsTabView .comments li .message {
padding-left: 40px;
}
#commentsTabView .comment .action {
opacity: 0;
vertical-align: middle;
display: inline-block;
}
#commentsTabView .comment:hover .action {
opacity: 0.3;
}
#commentsTabView .comment .action:hover {
opacity: 1;
}
#commentsTabView .comment .action.delete {
position: absolute;
right: 0;
}
#commentsTabView .comment.disabled {
opacity: 0.3;
}
#commentsTabView .comment.disabled .action {
visibility: hidden;
}
#commentsTabView .message.error {
color: #e9322d;
border-color: #e9322d;
-webkit-box-shadow: 0 0 6px #f8b9b7;
-moz-box-shadow: 0 0 6px #f8b9b7;
box-shadow: 0 0 6px #f8b9b7;
}
.app-files .action-comment {
padding: 16px 14px;
}
-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" height="32" width="32" viewBox="0 0 32 32"><path fill="#000" d="M16 3C7.163 3 0 7.925 0 14s7.163 11 16 11c.5 0 .98-.032 1.47-.063L26 32v-9.406c3.658-2.017 6-5.12 6-8.595 0-6.076-7.164-11-16-11z"/></svg>

Before

Width:  |  Height:  |  Size: 243 B

-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" height="32" width="32" viewBox="0 0 32 32"><path fill="#fff" d="M16 3C7.163 3 0 7.925 0 14s7.163 11 16 11c.5 0 .98-.032 1.47-.063L26 32v-9.406c3.658-2.017 6-5.12 6-8.595 0-6.076-7.164-11-16-11z"/></svg>

Before

Width:  |  Height:  |  Size: 242 B

-59
View File
@@ -1,59 +0,0 @@
/*
* @author Joas Schilling <coding@schilljs.com>
* Copyright (c) 2016
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*/
(function() {
OCA.Comments.ActivityTabViewPlugin = {
/**
* Prepare activity for display
*
* @param {OCA.Activity.ActivityModel} model for this activity
* @param {jQuery} $el jQuery handle for this activity
* @param {string} view The view that displayes this activity
*/
prepareModelForDisplay: function (model, $el, view) {
if (model.get('app') !== 'comments' || model.get('type') !== 'comments') {
return;
}
if (view === 'ActivityTabView') {
$el.addClass('comment');
if (model.get('message') && this._isLong(model.get('message'))) {
$el.addClass('collapsed');
var $overlay = $('<div>').addClass('message-overlay');
$el.find('.activitymessage').after($overlay);
$el.on('click', this._onClickCollapsedComment);
}
}
},
/*
* Copy of CommentsTabView._onClickComment()
*/
_onClickCollapsedComment: function(ev) {
var $row = $(ev.target);
if (!$row.is('.comment')) {
$row = $row.closest('.comment');
}
$row.removeClass('collapsed');
},
/*
* Copy of CommentsTabView._isLong()
*/
_isLong: function(message) {
return message.length > 250 || (message.match(/\n/g) || []).length > 1;
}
};
})();
OC.Plugins.register('OCA.Activity.RenderingPlugins', OCA.Comments.ActivityTabViewPlugin);
-20
View File
@@ -1,20 +0,0 @@
/*
* Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*
*/
(function() {
if (!OCA.Comments) {
/**
* @namespace
*/
OCA.Comments = {};
}
})();
-167
View File
@@ -1,167 +0,0 @@
/*
* Copyright (c) 2016
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*
*/
(function(OC, OCA) {
/**
* @class OCA.Comments.CommentCollection
* @classdesc
*
* Collection of comments assigned to a file
*
*/
var CommentCollection = OC.Backbone.Collection.extend(
/** @lends OCA.Comments.CommentCollection.prototype */ {
sync: OC.Backbone.davSync,
model: OCA.Comments.CommentModel,
/**
* Object type
*
* @type string
*/
_objectType: 'files',
/**
* Object id
*
* @type string
*/
_objectId: null,
/**
* True if there are no more page results left to fetch
*
* @type bool
*/
_endReached: false,
/**
* Number of comments to fetch per page
*
* @type int
*/
_limit : 20,
/**
* Initializes the collection
*
* @param {string} [options.objectType] object type
* @param {string} [options.objectId] object id
*/
initialize: function(models, options) {
options = options || {};
if (options.objectType) {
this._objectType = options.objectType;
}
if (options.objectId) {
this._objectId = options.objectId;
}
},
url: function() {
return OC.linkToRemote('dav') + '/comments/' +
encodeURIComponent(this._objectType) + '/' +
encodeURIComponent(this._objectId) + '/';
},
setObjectId: function(objectId) {
this._objectId = objectId;
},
hasMoreResults: function() {
return !this._endReached;
},
reset: function() {
this._endReached = false;
this._summaryModel = null;
return OC.Backbone.Collection.prototype.reset.apply(this, arguments);
},
/**
* Fetch the next set of results
*/
fetchNext: function(options) {
var self = this;
if (!this.hasMoreResults()) {
return null;
}
var body = '<?xml version="1.0" encoding="utf-8" ?>\n' +
'<oc:filter-comments xmlns:D="DAV:" xmlns:oc="http://owncloud.org/ns">\n' +
// load one more so we know there is more
' <oc:limit>' + (this._limit + 1) + '</oc:limit>\n' +
' <oc:offset>' + this.length + '</oc:offset>\n' +
'</oc:filter-comments>\n';
options = options || {};
var success = options.success;
options = _.extend({
remove: false,
parse: true,
data: body,
davProperties: CommentCollection.prototype.model.prototype.davProperties,
success: function(resp) {
if (resp.length <= self._limit) {
// no new entries, end reached
self._endReached = true;
} else {
// remove last entry, for next page load
resp = _.initial(resp);
}
if (!self.set(resp, options)) {
return false;
}
if (success) {
success.apply(null, arguments);
}
self.trigger('sync', 'REPORT', self, options);
}
}, options);
return this.sync('REPORT', this, options);
},
/**
* Returns the matching summary model
*
* @return {OCA.Comments.CommentSummaryModel} summary model
*/
getSummaryModel: function() {
if (!this._summaryModel) {
this._summaryModel = new OCA.Comments.CommentSummaryModel({
id: this._objectId,
objectType: this._objectType
});
}
return this._summaryModel;
},
/**
* Updates the read marker for this comment thread
*
* @param {Date} [date] optional date, defaults to now
* @param {Object} [options] backbone options
*/
updateReadMarker: function(date, options) {
options = options || {};
return this.getSummaryModel().save({
readMarker: (date || new Date()).toUTCString()
}, options);
}
});
OCA.Comments.CommentCollection = CommentCollection;
})(OC, OCA);
-93
View File
@@ -1,93 +0,0 @@
/*
* Copyright (c) 2016
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*
*/
(function(OC, OCA) {
_.extend(OC.Files.Client, {
PROPERTY_FILEID: '{' + OC.Files.Client.NS_OWNCLOUD + '}id',
PROPERTY_MESSAGE: '{' + OC.Files.Client.NS_OWNCLOUD + '}message',
PROPERTY_ACTORTYPE: '{' + OC.Files.Client.NS_OWNCLOUD + '}actorType',
PROPERTY_ACTORID: '{' + OC.Files.Client.NS_OWNCLOUD + '}actorId',
PROPERTY_ISUNREAD: '{' + OC.Files.Client.NS_OWNCLOUD + '}isUnread',
PROPERTY_OBJECTID: '{' + OC.Files.Client.NS_OWNCLOUD + '}objectId',
PROPERTY_OBJECTTYPE: '{' + OC.Files.Client.NS_OWNCLOUD + '}objectType',
PROPERTY_ACTORDISPLAYNAME: '{' + OC.Files.Client.NS_OWNCLOUD + '}actorDisplayName',
PROPERTY_CREATIONDATETIME: '{' + OC.Files.Client.NS_OWNCLOUD + '}creationDateTime',
PROPERTY_MENTIONS: '{' + OC.Files.Client.NS_OWNCLOUD + '}mentions'
});
/**
* @class OCA.Comments.CommentModel
* @classdesc
*
* Comment
*
*/
var CommentModel = OC.Backbone.Model.extend(
/** @lends OCA.Comments.CommentModel.prototype */ {
sync: OC.Backbone.davSync,
defaults: {
actorType: 'users',
objectType: 'files'
},
davProperties: {
'id': OC.Files.Client.PROPERTY_FILEID,
'message': OC.Files.Client.PROPERTY_MESSAGE,
'actorType': OC.Files.Client.PROPERTY_ACTORTYPE,
'actorId': OC.Files.Client.PROPERTY_ACTORID,
'actorDisplayName': OC.Files.Client.PROPERTY_ACTORDISPLAYNAME,
'creationDateTime': OC.Files.Client.PROPERTY_CREATIONDATETIME,
'objectType': OC.Files.Client.PROPERTY_OBJECTTYPE,
'objectId': OC.Files.Client.PROPERTY_OBJECTID,
'isUnread': OC.Files.Client.PROPERTY_ISUNREAD,
'mentions': OC.Files.Client.PROPERTY_MENTIONS
},
parse: function(data) {
return {
id: data.id,
message: data.message,
actorType: data.actorType,
actorId: data.actorId,
actorDisplayName: data.actorDisplayName,
creationDateTime: data.creationDateTime,
objectType: data.objectType,
objectId: data.objectId,
isUnread: (data.isUnread === 'true'),
mentions: this._parseMentions(data.mentions)
};
},
_parseMentions: function(mentions) {
if(_.isUndefined(mentions)) {
return {};
}
var result = {};
for(var i in mentions) {
var mention = mentions[i];
if(_.isUndefined(mention.localName) || mention.localName !== 'mention') {
continue;
}
result[i] = {};
for (var child = mention.firstChild; child; child = child.nextSibling) {
if(_.isUndefined(child.localName) || !child.localName.startsWith('mention')) {
continue;
}
result[i][child.localName] = child.textContent;
}
}
return result;
}
});
OCA.Comments.CommentModel = CommentModel;
})(OC, OCA);
-526
View File
@@ -1,526 +0,0 @@
/*
* Copyright (c) 2016
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*
*/
/* global Handlebars, escapeHTML */
(function(OC, OCA) {
var TEMPLATE =
'<ul class="comments">' +
'</ul>' +
'<div class="emptycontent hidden"><div class="icon-comment"></div>' +
'<p>{{emptyResultLabel}}</p></div>' +
'<input type="button" class="showMore hidden" value="{{moreLabel}}"' +
' name="show-more" id="show-more" />' +
'<div class="loading hidden" style="height: 50px"></div>';
var EDIT_COMMENT_TEMPLATE =
'<div class="newCommentRow comment" data-id="{{id}}">' +
' <div class="authorRow">' +
' <div class="avatar" data-username="{{actorId}}"></div>' +
' <div class="author">{{actorDisplayName}}</div>' +
'{{#if isEditMode}}' +
' <a href="#" class="action delete icon icon-delete has-tooltip" title="{{deleteTooltip}}"></a>' +
'{{/if}}' +
' </div>' +
' <form class="newCommentForm">' +
' <textarea rows="1" class="message" placeholder="{{newMessagePlaceholder}}">{{message}}</textarea>' +
' <input class="submit icon-confirm" type="submit" value="" />' +
'{{#if isEditMode}}' +
' <input class="cancel pull-right" type="button" value="{{cancelText}}" />' +
'{{/if}}' +
' <div class="submitLoading icon-loading-small hidden"></div>'+
' </form>' +
'</div>';
var COMMENT_TEMPLATE =
'<li class="comment{{#if isUnread}} unread{{/if}}{{#if isLong}} collapsed{{/if}}" data-id="{{id}}">' +
' <div class="authorRow">' +
' <div class="avatar" {{#if actorId}}data-username="{{actorId}}"{{/if}}> </div>' +
' <div class="author">{{actorDisplayName}}</div>' +
'{{#if isUserAuthor}}' +
' <a href="#" class="action edit icon icon-rename has-tooltip" title="{{editTooltip}}"></a>' +
'{{/if}}' +
' <div class="date has-tooltip live-relative-timestamp" data-timestamp="{{timestamp}}" title="{{altDate}}">{{date}}</div>' +
' </div>' +
' <div class="message">{{{formattedMessage}}}</div>' +
'{{#if isLong}}' +
' <div class="message-overlay"></div>' +
'{{/if}}' +
'</li>';
/**
* @memberof OCA.Comments
*/
var CommentsTabView = OCA.Files.DetailTabView.extend(
/** @lends OCA.Comments.CommentsTabView.prototype */ {
id: 'commentsTabView',
className: 'tab commentsTabView',
events: {
'submit .newCommentForm': '_onSubmitComment',
'click .showMore': '_onClickShowMore',
'click .action.edit': '_onClickEditComment',
'click .action.delete': '_onClickDeleteComment',
'click .cancel': '_onClickCloseComment',
'click .comment': '_onClickComment'
},
_commentMaxLength: 1000,
initialize: function() {
OCA.Files.DetailTabView.prototype.initialize.apply(this, arguments);
this.collection = new OCA.Comments.CommentCollection();
this.collection.on('request', this._onRequest, this);
this.collection.on('sync', this._onEndRequest, this);
this.collection.on('add', this._onAddModel, this);
this._commentMaxThreshold = this._commentMaxLength * 0.9;
// TODO: error handling
_.bindAll(this, '_onTypeComment');
},
template: function(params) {
if (!this._template) {
this._template = Handlebars.compile(TEMPLATE);
}
var currentUser = OC.getCurrentUser();
return this._template(_.extend({
actorId: currentUser.uid,
actorDisplayName: currentUser.displayName
}, params));
},
editCommentTemplate: function(params) {
if (!this._editCommentTemplate) {
this._editCommentTemplate = Handlebars.compile(EDIT_COMMENT_TEMPLATE);
}
var currentUser = OC.getCurrentUser();
return this._editCommentTemplate(_.extend({
actorId: currentUser.uid,
actorDisplayName: currentUser.displayName,
newMessagePlaceholder: t('comments', 'New comment …'),
deleteTooltip: t('comments', 'Delete comment'),
submitText: t('comments', 'Post'),
cancelText: t('comments', 'Cancel')
}, params));
},
commentTemplate: function(params) {
if (!this._commentTemplate) {
this._commentTemplate = Handlebars.compile(COMMENT_TEMPLATE);
}
params = _.extend({
editTooltip: t('comments', 'Edit comment'),
isUserAuthor: OC.getCurrentUser().uid === params.actorId,
isLong: this._isLong(params.message)
}, params);
if (params.actorType === 'deleted_users') {
// makes the avatar a X
params.actorId = null;
params.actorDisplayName = t('comments', '[Deleted user]');
}
return this._commentTemplate(params);
},
getLabel: function() {
return t('comments', 'Comments');
},
setFileInfo: function(fileInfo) {
if (fileInfo) {
this.model = fileInfo;
this.render();
this.collection.setObjectId(fileInfo.id);
// reset to first page
this.collection.reset([], {silent: true});
this.nextPage();
} else {
this.model = null;
this.render();
this.collection.reset();
}
},
render: function() {
this.$el.html(this.template({
emptyResultLabel: t('comments', 'No comments yet, start the conversation!'),
moreLabel: t('comments', 'More comments …')
}));
this.$el.find('.comments').before(this.editCommentTemplate({}));
this.$el.find('.has-tooltip').tooltip();
this.$container = this.$el.find('ul.comments');
this.$el.find('.avatar').avatar(OC.getCurrentUser().uid, 32);
this.delegateEvents();
this.$el.find('.message').on('keydown input change', this._onTypeComment);
autosize(this.$el.find('.newCommentRow textarea'))
},
_formatItem: function(commentModel) {
var timestamp = new Date(commentModel.get('creationDateTime')).getTime();
var data = _.extend({
timestamp: timestamp,
date: OC.Util.relativeModifiedDate(timestamp),
altDate: OC.Util.formatDate(timestamp),
formattedMessage: this._formatMessage(commentModel.get('message'), commentModel.get('mentions'))
}, commentModel.attributes);
return data;
},
_toggleLoading: function(state) {
this._loading = state;
this.$el.find('.loading').toggleClass('hidden', !state);
},
_onRequest: function(type) {
if (type === 'REPORT') {
this._toggleLoading(true);
this.$el.find('.showMore').addClass('hidden');
}
},
_onEndRequest: function(type) {
var fileInfoModel = this.model;
this._toggleLoading(false);
this.$el.find('.emptycontent').toggleClass('hidden', !!this.collection.length);
this.$el.find('.showMore').toggleClass('hidden', !this.collection.hasMoreResults());
if (type !== 'REPORT') {
return;
}
// find first unread comment
var firstUnreadComment = this.collection.findWhere({isUnread: true});
if (firstUnreadComment) {
// update read marker
this.collection.updateReadMarker(
null,
{
success: function() {
fileInfoModel.set('commentsUnread', 0);
}
}
);
}
},
_onAddModel: function(model, collection, options) {
var $el = $(this.commentTemplate(this._formatItem(model)));
if (!_.isUndefined(options.at) && collection.length > 1) {
this.$container.find('li').eq(options.at).before($el);
} else {
this.$container.append($el);
}
this._postRenderItem($el);
},
_postRenderItem: function($el) {
$el.find('.has-tooltip').tooltip();
$el.find('.avatar').each(function() {
var $this = $(this);
$this.avatar($this.attr('data-username'), 32);
});
var username = $el.find('.avatar').data('username');
if (username !== oc_current_user) {
$el.find('.authorRow .avatar, .authorRow .author').contactsMenu(
username, 0, $el.find('.authorRow'));
}
var $message = $el.find('.message');
this._postRenderMessage($message);
},
_postRenderMessage: function($el) {
$el.find('.avatar').each(function() {
var avatar = $(this);
var strong = $(this).next();
var appendTo = $(this).parent();
$.merge(avatar, strong).contactsMenu(avatar.data('user'), 0, appendTo);
});
},
/**
* Convert a message to be displayed in HTML,
* converts newlines to <br> tags.
*/
_formatMessage: function(message, mentions) {
message = escapeHTML(message).replace(/\n/g, '<br/>');
for(var i in mentions) {
var mention = '@' + mentions[i].mentionId;
var avatar = '<div class="avatar" '
+ 'data-user="' + _.escape(mentions[i].mentionId) + '"'
+' data-user-display-name="'
+ _.escape(mentions[i].mentionDisplayName) + '"></div>';
// escape possible regex characters in the name
mention = mention.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
var displayName = ''
+ '<span class="avatar-name-wrapper">'
+ avatar + ' <strong>'+ _.escape(mentions[i].mentionDisplayName)+'</strong>'
+ '</span>';
// replace every mention either at the start of the input or after a whitespace
// followed by a non-word character.
message = message.replace(new RegExp("(^|\\s)(" + mention + ")\\b", 'g'),
function(match, p1) {
// to get number of whitespaces (0 vs 1) right
return p1+displayName;
}
);
}
return message;
},
nextPage: function() {
if (this._loading || !this.collection.hasMoreResults()) {
return;
}
this.collection.fetchNext();
},
_onClickEditComment: function(ev) {
ev.preventDefault();
var $comment = $(ev.target).closest('.comment');
var commentId = $comment.data('id');
var commentToEdit = this.collection.get(commentId);
var $formRow = $(this.editCommentTemplate(_.extend({
isEditMode: true,
submitText: t('comments', 'Save')
}, commentToEdit.attributes)));
$comment.addClass('hidden').removeClass('collapsed');
// spawn form
$comment.after($formRow);
$formRow.data('commentEl', $comment);
$formRow.find('textarea').on('keydown input change', this._onTypeComment);
// copy avatar element from original to avoid flickering
$formRow.find('.avatar:first').replaceWith($comment.find('.avatar:first').clone());
$formRow.find('.has-tooltip').tooltip();
// Enable autosize
autosize($formRow.find('textarea'));
return false;
},
_onTypeComment: function(ev) {
var $field = $(ev.target);
var len = $field.val().length;
var $submitButton = $field.data('submitButtonEl');
if (!$submitButton) {
$submitButton = $field.closest('form').find('.submit');
$field.data('submitButtonEl', $submitButton);
}
$field.tooltip('hide');
if (len > this._commentMaxThreshold) {
$field.attr('data-original-title', t('comments', 'Allowed characters {count} of {max}', {count: len, max: this._commentMaxLength}));
$field.tooltip({trigger: 'manual'});
$field.tooltip('show');
$field.addClass('error');
}
var limitExceeded = (len > this._commentMaxLength);
$field.toggleClass('error', limitExceeded);
$submitButton.prop('disabled', limitExceeded);
//submits form on ctrl+Enter or cmd+Enter
if (ev.keyCode === 13 && (ev.ctrlKey || ev.metaKey)) {
$submitButton.click();
}
},
_onClickComment: function(ev) {
var $row = $(ev.target);
if (!$row.is('.comment')) {
$row = $row.closest('.comment');
}
$row.removeClass('collapsed');
},
_onClickCloseComment: function(ev) {
ev.preventDefault();
var $row = $(ev.target).closest('.comment');
$row.data('commentEl').removeClass('hidden');
$row.remove();
return false;
},
_onClickDeleteComment: function(ev) {
ev.preventDefault();
var $comment = $(ev.target).closest('.comment');
var commentId = $comment.data('id');
var $loading = $comment.find('.submitLoading');
$comment.addClass('disabled');
$loading.removeClass('hidden');
this.collection.get(commentId).destroy({
success: function() {
$comment.data('commentEl').remove();
$comment.remove();
},
error: function() {
$loading.addClass('hidden');
$comment.removeClass('disabled');
OC.Notification.showTemporary(t('comments', 'Error occurred while retrieving comment with ID {id}', {id: commentId}));
}
});
return false;
},
_onClickShowMore: function(ev) {
ev.preventDefault();
this.nextPage();
},
/**
* takes care of updating comment elements after submit (either new
* comment or edit).
*
* @param {OC.Backbone.Model} model
* @param {jQuery} $form
* @param {string|undefined} commentId
* @private
*/
_onSubmitSuccess: function(model, $form, commentId) {
var self = this;
var $submit = $form.find('.submit');
var $loading = $form.find('.submitLoading');
var $textArea = $form.find('.message');
model.fetch({
success: function(model) {
$submit.removeClass('hidden');
$loading.addClass('hidden');
var $target;
if(!_.isUndefined(commentId)) {
var $row = $form.closest('.comment');
$target = $row.data('commentEl');
$target.removeClass('hidden');
$row.remove();
} else {
$target = $('.commentsTabView .comments').find('li:first');
$textArea.val('').prop('disabled', false);
}
var $message = $target.find('.message');
$message
.html(self._formatMessage(model.get('message'), model.get('mentions')))
.find('.avatar')
.each(function () { $(this).avatar(); });
self._postRenderMessage($message);
},
error: function () {
self._onSubmitError($form, commentId);
}
});
},
_onSubmitComment: function(e) {
var self = this;
var $form = $(e.target);
var commentId = $form.closest('.comment').data('id');
var currentUser = OC.getCurrentUser();
var $submit = $form.find('.submit');
var $loading = $form.find('.submitLoading');
var $textArea = $form.find('.message');
var message = $textArea.val().trim();
e.preventDefault();
if (!message.length || message.length > this._commentMaxLength) {
return;
}
$textArea.prop('disabled', true);
$submit.addClass('hidden');
$loading.removeClass('hidden');
if (commentId) {
// edit mode
var comment = this.collection.get(commentId);
comment.save({
message: $textArea.val()
}, {
success: function(model) {
self._onSubmitSuccess(model, $form, commentId);
},
error: function() {
self._onSubmitError($form, commentId);
}
});
} else {
this.collection.create({
actorId: currentUser.uid,
actorDisplayName: currentUser.displayName,
actorType: 'users',
verb: 'comment',
message: $textArea.val(),
creationDateTime: (new Date()).toUTCString()
}, {
at: 0,
// wait for real creation before adding
wait: true,
success: function(model) {
self._onSubmitSuccess(model, $form);
},
error: function() {
self._onSubmitError($form);
}
});
}
return false;
},
/**
* takes care of updating the UI after an error on submit (either new
* comment or edit).
*
* @param {jQuery} $form
* @param {string|undefined} commentId
* @private
*/
_onSubmitError: function($form, commentId) {
$form.find('.submit').removeClass('hidden');
$form.find('.submitLoading').addClass('hidden');
$form.find('.message').prop('disabled', false);
if(!_.isUndefined(commentId)) {
OC.Notification.show(t('comments', 'Error occurred while updating comment with id {id}', {id: commentId}), {type: 'error'});
} else {
OC.Notification.show(t('comments', 'Error occurred while posting comment'), {type: 'error'});
}
},
/**
* Returns whether the given message is long and needs
* collapsing
*/
_isLong: function(message) {
return message.length > 250 || (message.match(/\n/g) || []).length > 1;
}
});
OCA.Comments.CommentsTabView = CommentsTabView;
})(OC, OCA);
-68
View File
@@ -1,68 +0,0 @@
/*
* Copyright (c) 2016
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*
*/
(function(OC, OCA) {
_.extend(OC.Files.Client, {
PROPERTY_READMARKER: '{' + OC.Files.Client.NS_OWNCLOUD + '}readMarker'
});
/**
* @class OCA.Comments.CommentSummaryModel
* @classdesc
*
* Model containing summary information related to comments
* like the read marker.
*
*/
var CommentSummaryModel = OC.Backbone.Model.extend(
/** @lends OCA.Comments.CommentSummaryModel.prototype */ {
sync: OC.Backbone.davSync,
/**
* Object type
*
* @type string
*/
_objectType: 'files',
/**
* Object id
*
* @type string
*/
_objectId: null,
davProperties: {
'readMarker': OC.Files.Client.PROPERTY_READMARKER
},
/**
* Initializes the summary model
*
* @param {string} [options.objectType] object type
* @param {string} [options.objectId] object id
*/
initialize: function(attrs, options) {
options = options || {};
if (options.objectType) {
this._objectType = options.objectType;
}
},
url: function() {
return OC.linkToRemote('dav') + '/comments/' +
encodeURIComponent(this._objectType) + '/' +
encodeURIComponent(this.id) + '/';
}
});
OCA.Comments.CommentSummaryModel = CommentSummaryModel;
})(OC, OCA);
-126
View File
@@ -1,126 +0,0 @@
/*
* Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>
*
* This file is licensed under the Affero General Public License version 3
* or later.
*
* See the COPYING-README file.
*
*/
/* global Handlebars */
(function() {
_.extend(OC.Files.Client, {
PROPERTY_COMMENTS_UNREAD: '{' + OC.Files.Client.NS_OWNCLOUD + '}comments-unread'
});
var TEMPLATE_COMMENTS_UNREAD =
'<a class="action action-comment permanent" title="{{countMessage}}" href="#">' +
'<img class="svg" src="{{iconUrl}}"/>' +
'</a>';
OCA.Comments = _.extend({}, OCA.Comments);
if (!OCA.Comments) {
/**
* @namespace
*/
OCA.Comments = {};
}
/**
* @namespace
*/
OCA.Comments.FilesPlugin = {
ignoreLists: [
'files_trashbin',
'files.public'
],
_formatCommentCount: function(count) {
if (!this._commentsUnreadTemplate) {
this._commentsUnreadTemplate = Handlebars.compile(TEMPLATE_COMMENTS_UNREAD);
}
return this._commentsUnreadTemplate({
count: count,
countMessage: n('comments', '%n unread comment', '%n unread comments', count),
iconUrl: OC.imagePath('core', 'actions/comment')
});
},
attach: function(fileList) {
var self = this;
if (this.ignoreLists.indexOf(fileList.id) >= 0) {
return;
}
fileList.registerTabView(new OCA.Comments.CommentsTabView('commentsTabView'));
var oldGetWebdavProperties = fileList._getWebdavProperties;
fileList._getWebdavProperties = function() {
var props = oldGetWebdavProperties.apply(this, arguments);
props.push(OC.Files.Client.PROPERTY_COMMENTS_UNREAD);
return props;
};
fileList.filesClient.addFileInfoParser(function(response) {
var data = {};
var props = response.propStat[0].properties;
var commentsUnread = props[OC.Files.Client.PROPERTY_COMMENTS_UNREAD];
if (!_.isUndefined(commentsUnread) && commentsUnread !== '') {
data.commentsUnread = parseInt(commentsUnread, 10);
}
return data;
});
fileList.$el.addClass('has-comments');
var oldCreateRow = fileList._createRow;
fileList._createRow = function(fileData) {
var $tr = oldCreateRow.apply(this, arguments);
if (fileData.commentsUnread) {
$tr.attr('data-comments-unread', fileData.commentsUnread);
}
return $tr;
};
// register "comment" action for reading comments
fileList.fileActions.registerAction({
name: 'Comment',
displayName: t('comments', 'Comment'),
mime: 'all',
permissions: OC.PERMISSION_READ,
type: OCA.Files.FileActions.TYPE_INLINE,
render: function(actionSpec, isDefault, context) {
var $file = context.$file;
var unreadComments = $file.data('comments-unread');
if (unreadComments) {
var $actionLink = $(self._formatCommentCount(unreadComments));
context.$file.find('a.name>span.fileactions').append($actionLink);
return $actionLink;
}
return '';
},
actionHandler: function(fileName, context) {
context.$file.find('.action-comment').tooltip('hide');
// open sidebar in comments section
context.fileList.showDetailsView(fileName, 'commentsTabView');
}
});
// add attribute to "elementToFile"
var oldElementToFile = fileList.elementToFile;
fileList.elementToFile = function($el) {
var fileInfo = oldElementToFile.apply(this, arguments);
var commentsUnread = $el.data('comments-unread');
if (commentsUnread) {
fileInfo.commentsUnread = commentsUnread;
}
return fileInfo;
};
}
};
})();
OC.Plugins.register('OCA.Files.FileList', OCA.Comments.FilesPlugin);
-9
View File
@@ -1,9 +0,0 @@
[
"app.js",
"commentmodel.js",
"commentcollection.js",
"commentsummarymodel.js",
"commentstabview.js",
"filesplugin.js",
"activitytabviewplugin.js"
]
-36
View File
@@ -1,36 +0,0 @@
OC.L10N.register(
"comments",
{
"Edit comment" : "Wysig kommentaar",
"Delete comment" : "Skrap kommentaar",
"New comment …" : "Nuwe kommentaar…",
"Post" : "Plaas",
"Cancel" : "Kanselleer",
"[Deleted user]" : "[Geskrapte gebruiker]",
"Comments" : "Kommentare",
"No comments yet, start the conversation!" : "Nog geen kommentaar, begin die gesprek!",
"More comments …" : "Nog kommentare …",
"Save" : "Bewaar",
"Allowed characters {count} of {max}" : "Toegelate karakters {telling} van {maks}",
"Error occurred while retrieving comment with ID {id}" : "n Fout het voorgekom toe kommentaar met id {id} opgehaal is",
"Error occurred while updating comment with id {id}" : "n Fout het voorgekom toe kommentaar met id {id} bygewerk is",
"Error occurred while posting comment" : "n Fout het voorgekom toe kommentaar geplaas is",
"_%n unread comment_::_%n unread comments_" : ["%n ongeleesde kommentaar","%n ongeleeste kommentare"],
"Comment" : "Kommentaar",
"You commented" : "U het kommentaar gelewer",
"%1$s commented" : "%1$s het kommentaar gelewer",
"{author} commented" : "{outeur} het kommentaar gelewer",
"You commented on %1$s" : "U het op %1$s kommentaar gelewer",
"You commented on {file}" : "U het op {lêer} kommentaar gelewer",
"%1$s commented on %2$s" : "%1$s het op %2$s kommentaar gelewer",
"{author} commented on {file}" : "{outeur} het op {lêer} kommentaar gelewer",
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> vir lêers",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Jy was genoem op “{lêer}”, in die kommentaar van 'n gebruiker wat intussen geskrap is.",
"{user} mentioned you in a comment on “{file}”" : "{gebruiker} het u in n kommentaar oor “{lêer}” genoem",
"Unknown user" : "Onbekende gebruiker",
"A (now) deleted user mentioned you in a comment on “%s”" : "n (Nou) geskrapte gebruiker het u in n kommentaar op “%s” genoem",
"A (now) deleted user mentioned you in a comment on “{file}”" : "n (Nou) geskrapte gebruiker het u in n kommentaar op “{lêer}” genoem",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s het u in n kommentaar op “%2$s” genoem",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Jy was genoem op \"%s\", in die kommentaar van 'n gebruiker wat intussen geskrap is."
},
"nplurals=2; plural=(n != 1);");
-34
View File
@@ -1,34 +0,0 @@
{ "translations": {
"Edit comment" : "Wysig kommentaar",
"Delete comment" : "Skrap kommentaar",
"New comment …" : "Nuwe kommentaar…",
"Post" : "Plaas",
"Cancel" : "Kanselleer",
"[Deleted user]" : "[Geskrapte gebruiker]",
"Comments" : "Kommentare",
"No comments yet, start the conversation!" : "Nog geen kommentaar, begin die gesprek!",
"More comments …" : "Nog kommentare …",
"Save" : "Bewaar",
"Allowed characters {count} of {max}" : "Toegelate karakters {telling} van {maks}",
"Error occurred while retrieving comment with ID {id}" : "n Fout het voorgekom toe kommentaar met id {id} opgehaal is",
"Error occurred while updating comment with id {id}" : "n Fout het voorgekom toe kommentaar met id {id} bygewerk is",
"Error occurred while posting comment" : "n Fout het voorgekom toe kommentaar geplaas is",
"_%n unread comment_::_%n unread comments_" : ["%n ongeleesde kommentaar","%n ongeleeste kommentare"],
"Comment" : "Kommentaar",
"You commented" : "U het kommentaar gelewer",
"%1$s commented" : "%1$s het kommentaar gelewer",
"{author} commented" : "{outeur} het kommentaar gelewer",
"You commented on %1$s" : "U het op %1$s kommentaar gelewer",
"You commented on {file}" : "U het op {lêer} kommentaar gelewer",
"%1$s commented on %2$s" : "%1$s het op %2$s kommentaar gelewer",
"{author} commented on {file}" : "{outeur} het op {lêer} kommentaar gelewer",
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> vir lêers",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Jy was genoem op “{lêer}”, in die kommentaar van 'n gebruiker wat intussen geskrap is.",
"{user} mentioned you in a comment on “{file}”" : "{gebruiker} het u in n kommentaar oor “{lêer}” genoem",
"Unknown user" : "Onbekende gebruiker",
"A (now) deleted user mentioned you in a comment on “%s”" : "n (Nou) geskrapte gebruiker het u in n kommentaar op “%s” genoem",
"A (now) deleted user mentioned you in a comment on “{file}”" : "n (Nou) geskrapte gebruiker het u in n kommentaar op “{lêer}” genoem",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s het u in n kommentaar op “%2$s” genoem",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Jy was genoem op \"%s\", in die kommentaar van 'n gebruiker wat intussen geskrap is."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-6
View File
@@ -1,6 +0,0 @@
OC.L10N.register(
"comments",
{
"Cancel" : "Kanselleer"
},
"nplurals=2; plural=(n != 1);");
-4
View File
@@ -1,4 +0,0 @@
{ "translations": {
"Cancel" : "Kanselleer"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-26
View File
@@ -1,26 +0,0 @@
OC.L10N.register(
"comments",
{
"Edit comment" : "تعديل التعليق",
"Delete comment" : "حذف التعليق",
"New comment …" : "تعليق جديد",
"Post" : "ارسال",
"Cancel" : "إلغاء",
"[Deleted user]" : "[مستخدم محذوف]",
"Comments" : "تعليقات",
"No comments yet, start the conversation!" : "لا يوجد تعليقات, ابدأ النقاش الآن!",
"More comments …" : "مزيد من التعليقات...",
"Save" : "حفظ",
"Allowed characters {count} of {max}" : "عدد الأحرف المسموح بها {count} من {max}",
"Error occurred while updating comment with id {id}" : "حصل خطأ أثناء تعديل التعليق رقم {id}",
"Error occurred while posting comment" : "حصل خطأ أثناء إرسال التعليق",
"Comment" : "تعليق",
"You commented" : "قمت بكتابة تعليق",
"%1$s commented" : "%1$s كتب تعليق",
"You commented on {file}" : "علقت على {file}",
"%1$s commented on %2$s" : "%1$s كتب تعليق على %2$s",
"{author} commented on {file}" : "{author} علّق على {file}",
"<strong>Comments</strong> for files" : "<strong>تعليقات</strong> على الملفات",
"Unknown user" : "مستخدم غير معروف"
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
-24
View File
@@ -1,24 +0,0 @@
{ "translations": {
"Edit comment" : "تعديل التعليق",
"Delete comment" : "حذف التعليق",
"New comment …" : "تعليق جديد",
"Post" : "ارسال",
"Cancel" : "إلغاء",
"[Deleted user]" : "[مستخدم محذوف]",
"Comments" : "تعليقات",
"No comments yet, start the conversation!" : "لا يوجد تعليقات, ابدأ النقاش الآن!",
"More comments …" : "مزيد من التعليقات...",
"Save" : "حفظ",
"Allowed characters {count} of {max}" : "عدد الأحرف المسموح بها {count} من {max}",
"Error occurred while updating comment with id {id}" : "حصل خطأ أثناء تعديل التعليق رقم {id}",
"Error occurred while posting comment" : "حصل خطأ أثناء إرسال التعليق",
"Comment" : "تعليق",
"You commented" : "قمت بكتابة تعليق",
"%1$s commented" : "%1$s كتب تعليق",
"You commented on {file}" : "علقت على {file}",
"%1$s commented on %2$s" : "%1$s كتب تعليق على %2$s",
"{author} commented on {file}" : "{author} علّق على {file}",
"<strong>Comments</strong> for files" : "<strong>تعليقات</strong> على الملفات",
"Unknown user" : "مستخدم غير معروف"
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
}
-33
View File
@@ -1,33 +0,0 @@
OC.L10N.register(
"comments",
{
"Edit comment" : "Editar comentariu",
"Delete comment" : "Desaniciar comentariu",
"New comment …" : "Comentariu nuevu...",
"Post" : "Espublizar",
"Cancel" : "Encaboxar",
"[Deleted user]" : "[Usuariu desaniciáu]",
"Comments" : "Comentarios",
"No comments yet, start the conversation!" : "Entá nun hai comentarios. ¡Entama una conversación!",
"More comments …" : "Más comentarios...",
"Save" : "Guardar",
"Allowed characters {count} of {max}" : "{count} caráuteres almitíos de {max}",
"Error occurred while updating comment with id {id}" : "Asocedió un fallu entrín s'anovaba'l comentariu cola ID {id}",
"Error occurred while posting comment" : "Asocedieron fallos entrín s'espublizaba'l comentariu",
"_%n unread comment_::_%n unread comments_" : ["%n comentariu ensin lleer","%n comentarios ensin lleer"],
"Comment" : "Comentariu",
"You commented" : "Comentesti",
"%1$s commented" : "%1$s comentó",
"{author} commented" : "{author} comentó",
"You commented on %1$s" : "Comentesti en %1$s",
"You commented on {file}" : "Comentesti en {file}",
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
"{author} commented on {file}" : "{autor} comentó en {ficheru}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> pa ficheros",
"{user} mentioned you in a comment on “{file}”" : "{user} mentóte nun comentariu de «{file}»",
"Unknown user" : "Usuariu desconocíu",
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuariu (agora) desaniciáu mentóte nun comentariu de «%s»",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuariu (agora) desaniciáu mentóte nun comentariu de «{file}»",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s mentóte nun comentariu de «%2$s»"
},
"nplurals=2; plural=(n != 1);");
-31
View File
@@ -1,31 +0,0 @@
{ "translations": {
"Edit comment" : "Editar comentariu",
"Delete comment" : "Desaniciar comentariu",
"New comment …" : "Comentariu nuevu...",
"Post" : "Espublizar",
"Cancel" : "Encaboxar",
"[Deleted user]" : "[Usuariu desaniciáu]",
"Comments" : "Comentarios",
"No comments yet, start the conversation!" : "Entá nun hai comentarios. ¡Entama una conversación!",
"More comments …" : "Más comentarios...",
"Save" : "Guardar",
"Allowed characters {count} of {max}" : "{count} caráuteres almitíos de {max}",
"Error occurred while updating comment with id {id}" : "Asocedió un fallu entrín s'anovaba'l comentariu cola ID {id}",
"Error occurred while posting comment" : "Asocedieron fallos entrín s'espublizaba'l comentariu",
"_%n unread comment_::_%n unread comments_" : ["%n comentariu ensin lleer","%n comentarios ensin lleer"],
"Comment" : "Comentariu",
"You commented" : "Comentesti",
"%1$s commented" : "%1$s comentó",
"{author} commented" : "{author} comentó",
"You commented on %1$s" : "Comentesti en %1$s",
"You commented on {file}" : "Comentesti en {file}",
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
"{author} commented on {file}" : "{autor} comentó en {ficheru}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> pa ficheros",
"{user} mentioned you in a comment on “{file}”" : "{user} mentóte nun comentariu de «{file}»",
"Unknown user" : "Usuariu desconocíu",
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuariu (agora) desaniciáu mentóte nun comentariu de «%s»",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuariu (agora) desaniciáu mentóte nun comentariu de «{file}»",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s mentóte nun comentariu de «%2$s»"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-8
View File
@@ -1,8 +0,0 @@
OC.L10N.register(
"comments",
{
"Cancel" : "Dayandır",
"Save" : "Saxla",
"Comment" : "Komentariya"
},
"nplurals=2; plural=(n != 1);");
-6
View File
@@ -1,6 +0,0 @@
{ "translations": {
"Cancel" : "Dayandır",
"Save" : "Saxla",
"Comment" : "Komentariya"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-35
View File
@@ -1,35 +0,0 @@
OC.L10N.register(
"comments",
{
"Edit comment" : "Редактирай коментра",
"Delete comment" : "Изтрий коментар",
"New comment …" : "Нов коментар...",
"Post" : "Публикация",
"Cancel" : "Отказ",
"[Deleted user]" : "[Изтрит потребител]",
"Comments" : "Коментари",
"No comments yet, start the conversation!" : "Все-още няма коментари, започни разговор!",
"More comments …" : "Още коментари...",
"Save" : "Запазване",
"Allowed characters {count} of {max}" : "Позволени символи {count} от {max}",
"Error occurred while updating comment with id {id}" : "Възникна грешка по време на обновяване на коментар с код {id}",
"Error occurred while posting comment" : "Възникна грешка по време на изпращане на коментар",
"_%n unread comment_::_%n unread comments_" : ["%n непрочетен коментар","%n непрочетени коментари"],
"Comment" : "Коментар",
"You commented" : "Вие коментирахте",
"%1$s commented" : "%1$s коментира",
"{author} commented" : "{author} коментира",
"You commented on %1$s" : "Ти коментира за %1$s",
"You commented on {file}" : "Ти коментира за {file}",
"%1$s commented on %2$s" : "%1$s коментиран за %2$s",
"{author} commented on {file}" : "{author} коментира за {file}",
"<strong>Comments</strong> for files" : "<strong>Коментари</strong> за файлове",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Бяхте споменат/а към “{file}”, в коментар от потребител, който вече е изтрит",
"{user} mentioned you in a comment on “{file}”" : "{user} те спомена в коментар за “{file}”",
"Unknown user" : "Непознат потребител",
"A (now) deleted user mentioned you in a comment on “%s”" : "(Токущо) изтрит потребител те коментира в “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "(Токущо) изтрит потребител те спомена в коментар за “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s те спомена в коментар за “%2$s”",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Бяхте споменат/а на “%s”, в коментар от потребител, който вече е изтрит"
},
"nplurals=2; plural=(n != 1);");
-33
View File
@@ -1,33 +0,0 @@
{ "translations": {
"Edit comment" : "Редактирай коментра",
"Delete comment" : "Изтрий коментар",
"New comment …" : "Нов коментар...",
"Post" : "Публикация",
"Cancel" : "Отказ",
"[Deleted user]" : "[Изтрит потребител]",
"Comments" : "Коментари",
"No comments yet, start the conversation!" : "Все-още няма коментари, започни разговор!",
"More comments …" : "Още коментари...",
"Save" : "Запазване",
"Allowed characters {count} of {max}" : "Позволени символи {count} от {max}",
"Error occurred while updating comment with id {id}" : "Възникна грешка по време на обновяване на коментар с код {id}",
"Error occurred while posting comment" : "Възникна грешка по време на изпращане на коментар",
"_%n unread comment_::_%n unread comments_" : ["%n непрочетен коментар","%n непрочетени коментари"],
"Comment" : "Коментар",
"You commented" : "Вие коментирахте",
"%1$s commented" : "%1$s коментира",
"{author} commented" : "{author} коментира",
"You commented on %1$s" : "Ти коментира за %1$s",
"You commented on {file}" : "Ти коментира за {file}",
"%1$s commented on %2$s" : "%1$s коментиран за %2$s",
"{author} commented on {file}" : "{author} коментира за {file}",
"<strong>Comments</strong> for files" : "<strong>Коментари</strong> за файлове",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Бяхте споменат/а към “{file}”, в коментар от потребител, който вече е изтрит",
"{user} mentioned you in a comment on “{file}”" : "{user} те спомена в коментар за “{file}”",
"Unknown user" : "Непознат потребител",
"A (now) deleted user mentioned you in a comment on “%s”" : "(Токущо) изтрит потребител те коментира в “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "(Токущо) изтрит потребител те спомена в коментар за “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s те спомена в коментар за “%2$s”",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Бяхте споменат/а на “%s”, в коментар от потребител, който вече е изтрит"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-39
View File
@@ -1,39 +0,0 @@
OC.L10N.register(
"comments",
{
"Comments" : "Коментари",
"Unknown user" : "Непознат потребител",
"New comment …" : "Нов коментар...",
"Delete comment" : "Изтрий коментар",
"Post" : "Публикация",
"Cancel" : "Отказ",
"Edit comment" : "Редактирай коментра",
"[Deleted user]" : "[Изтрит потребител]",
"No comments yet, start the conversation!" : "Все-още няма коментари, започни разговор!",
"More comments …" : "Още коментари...",
"Save" : "Запазване",
"Allowed characters {count} of {max}" : "Позволени символи {count} от {max}",
"Error occurred while retrieving comment with id {id}" : "Възникна грешка по време на извличане на коментар с код {id}",
"Error occurred while updating comment with id {id}" : "Възникна грешка по време на обновяване на коментар с код {id}",
"Error occurred while posting comment" : "Възникна грешка по време на изпращане на коментар",
"_%n unread comment_::_%n unread comments_" : ["%n непрочетен коментар","%n непрочетени коментари"],
"Comment" : "Коментар",
"You commented" : "Вие коментирахте",
"%1$s commented" : "%1$s коментира",
"{author} commented" : "{author} коментира",
"You commented on %1$s" : "Ти коментира за %1$s",
"You commented on {file}" : "Ти коментира за {file}",
"%1$s commented on %2$s" : "%1$s коментиран за %2$s",
"{author} commented on {file}" : "{author} коментира за {file}",
"<strong>Comments</strong> for files" : "<strong>Коментари</strong> за файлове",
"A (now) deleted user mentioned you in a comment on “%s”" : "(Токущо) изтрит потребител те коментира в “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "(Токущо) изтрит потребител те спомена в коментар за “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s те спомена в коментар за “%2$s”",
"{user} mentioned you in a comment on “{file}”" : "{user} те спомена в коментар за “{file}”",
"Type in a new comment..." : "Напиши нов коментар...",
"No other comments available" : "Няма други коментари",
"More comments..." : "Още коментари...",
"{count} unread comments" : "{count} непрочетени коментари",
"You commented on %2$s" : "Ти коментира за %2$s"
},
"nplurals=2; plural=(n != 1);");
-37
View File
@@ -1,37 +0,0 @@
{ "translations": {
"Comments" : "Коментари",
"Unknown user" : "Непознат потребител",
"New comment …" : "Нов коментар...",
"Delete comment" : "Изтрий коментар",
"Post" : "Публикация",
"Cancel" : "Отказ",
"Edit comment" : "Редактирай коментра",
"[Deleted user]" : "[Изтрит потребител]",
"No comments yet, start the conversation!" : "Все-още няма коментари, започни разговор!",
"More comments …" : "Още коментари...",
"Save" : "Запазване",
"Allowed characters {count} of {max}" : "Позволени символи {count} от {max}",
"Error occurred while retrieving comment with id {id}" : "Възникна грешка по време на извличане на коментар с код {id}",
"Error occurred while updating comment with id {id}" : "Възникна грешка по време на обновяване на коментар с код {id}",
"Error occurred while posting comment" : "Възникна грешка по време на изпращане на коментар",
"_%n unread comment_::_%n unread comments_" : ["%n непрочетен коментар","%n непрочетени коментари"],
"Comment" : "Коментар",
"You commented" : "Вие коментирахте",
"%1$s commented" : "%1$s коментира",
"{author} commented" : "{author} коментира",
"You commented on %1$s" : "Ти коментира за %1$s",
"You commented on {file}" : "Ти коментира за {file}",
"%1$s commented on %2$s" : "%1$s коментиран за %2$s",
"{author} commented on {file}" : "{author} коментира за {file}",
"<strong>Comments</strong> for files" : "<strong>Коментари</strong> за файлове",
"A (now) deleted user mentioned you in a comment on “%s”" : "(Токущо) изтрит потребител те коментира в “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "(Токущо) изтрит потребител те спомена в коментар за “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s те спомена в коментар за “%2$s”",
"{user} mentioned you in a comment on “{file}”" : "{user} те спомена в коментар за “{file}”",
"Type in a new comment..." : "Напиши нов коментар...",
"No other comments available" : "Няма други коментари",
"More comments..." : "Още коментари...",
"{count} unread comments" : "{count} непрочетени коментари",
"You commented on %2$s" : "Ти коментира за %2$s"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-8
View File
@@ -1,8 +0,0 @@
OC.L10N.register(
"comments",
{
"Cancel" : "বাতিল",
"Save" : "সংরক্ষণ",
"Comment" : "মন্তব্য"
},
"nplurals=2; plural=(n != 1);");
-6
View File
@@ -1,6 +0,0 @@
{ "translations": {
"Cancel" : "বাতিল",
"Save" : "সংরক্ষণ",
"Comment" : "মন্তব্য"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-7
View File
@@ -1,7 +0,0 @@
OC.L10N.register(
"comments",
{
"Cancel" : "বাতিল করা",
"Save" : "সেভ"
},
"nplurals=2; plural=(n != 1);");
-5
View File
@@ -1,5 +0,0 @@
{ "translations": {
"Cancel" : "বাতিল করা",
"Save" : "সেভ"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-8
View File
@@ -1,8 +0,0 @@
OC.L10N.register(
"comments",
{
"Cancel" : "Odustani",
"Save" : "Spremi",
"Comment" : "Komentar"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
-6
View File
@@ -1,6 +0,0 @@
{ "translations": {
"Cancel" : "Odustani",
"Save" : "Spremi",
"Comment" : "Komentar"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
}
-35
View File
@@ -1,35 +0,0 @@
OC.L10N.register(
"comments",
{
"Edit comment" : "Editar comentari",
"Delete comment" : "Esborrar comentari",
"New comment …" : "Nou comentari...",
"Post" : "Publica",
"Cancel" : "Cancel·la",
"[Deleted user]" : "[usuari Esborrat]",
"Comments" : "Comentaris",
"No comments yet, start the conversation!" : "Encara no hi ha comentaris. Comenceu la conversa!",
"More comments …" : "Més comentaris...",
"Save" : "Desa",
"Allowed characters {count} of {max}" : "{count} caràcters permesos de {max}",
"Error occurred while updating comment with id {id}" : "Hi ha hagut un error en actualitzar el comentari amb id {id}",
"Error occurred while posting comment" : "Hi ha hagut un error en publicar el comentari",
"_%n unread comment_::_%n unread comments_" : ["%n comentari no llegit","%n comentaris no llegits"],
"Comment" : "Comentari",
"You commented" : "Heu comentat",
"%1$s commented" : "%1$s ha comentat",
"{author} commented" : "{author} ha comentat",
"You commented on %1$s" : "Heu comentat a %1$s",
"You commented on {file}" : "Heu comentat a {file}",
"%1$s commented on %2$s" : "%1$s ha comentat a %2$s",
"{author} commented on {file}" : "{author} ha comentat a {file}",
"<strong>Comments</strong> for files" : "<strong>Comentaris</strong> per arxius",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Has estat mencionat a \"{file}\" en un comentari d'un usuari que ja no existeix",
"{user} mentioned you in a comment on “{file}”" : "{user} us ha nomenat en un comentari de “{file}”",
"Unknown user" : "Usuari desconegut",
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuari (ara) esborrat us ha nomenat en un comentari a “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuari (ara) esborrat us ha nomenat en un comentari de “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s us ha nomenat en un comentari a “%2$s”",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Has estat mencionat a \"%s\" en un comentari d'un usuari que ja no existeix"
},
"nplurals=2; plural=(n != 1);");
-33
View File
@@ -1,33 +0,0 @@
{ "translations": {
"Edit comment" : "Editar comentari",
"Delete comment" : "Esborrar comentari",
"New comment …" : "Nou comentari...",
"Post" : "Publica",
"Cancel" : "Cancel·la",
"[Deleted user]" : "[usuari Esborrat]",
"Comments" : "Comentaris",
"No comments yet, start the conversation!" : "Encara no hi ha comentaris. Comenceu la conversa!",
"More comments …" : "Més comentaris...",
"Save" : "Desa",
"Allowed characters {count} of {max}" : "{count} caràcters permesos de {max}",
"Error occurred while updating comment with id {id}" : "Hi ha hagut un error en actualitzar el comentari amb id {id}",
"Error occurred while posting comment" : "Hi ha hagut un error en publicar el comentari",
"_%n unread comment_::_%n unread comments_" : ["%n comentari no llegit","%n comentaris no llegits"],
"Comment" : "Comentari",
"You commented" : "Heu comentat",
"%1$s commented" : "%1$s ha comentat",
"{author} commented" : "{author} ha comentat",
"You commented on %1$s" : "Heu comentat a %1$s",
"You commented on {file}" : "Heu comentat a {file}",
"%1$s commented on %2$s" : "%1$s ha comentat a %2$s",
"{author} commented on {file}" : "{author} ha comentat a {file}",
"<strong>Comments</strong> for files" : "<strong>Comentaris</strong> per arxius",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Has estat mencionat a \"{file}\" en un comentari d'un usuari que ja no existeix",
"{user} mentioned you in a comment on “{file}”" : "{user} us ha nomenat en un comentari de “{file}”",
"Unknown user" : "Usuari desconegut",
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuari (ara) esborrat us ha nomenat en un comentari a “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuari (ara) esborrat us ha nomenat en un comentari de “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s us ha nomenat en un comentari a “%2$s”",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Has estat mencionat a \"%s\" en un comentari d'un usuari que ja no existeix"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-37
View File
@@ -1,37 +0,0 @@
OC.L10N.register(
"comments",
{
"Edit comment" : "Upravit komentář",
"Delete comment" : "Smazat komentář",
"New comment …" : "Nový komentář…",
"Post" : "Zveřejnit",
"Cancel" : "Storno",
"[Deleted user]" : "[Smazaný uživatel]",
"Comments" : "Komentáře",
"No comments yet, start the conversation!" : "Zatím bez komentářů, začněte konverzaci!",
"More comments …" : "Více komentářů…",
"Save" : "Uložit",
"Allowed characters {count} of {max}" : "Povolených znaků {count} z {max}",
"Error occurred while retrieving comment with ID {id}" : "Došlo k chybě při načítání komentáře s ID {id}",
"Error occurred while updating comment with id {id}" : "Došlo k chybě při aktualizování komentáře s id {id}",
"Error occurred while posting comment" : "Došlo k chybě při zveřejňování komentáře",
"_%n unread comment_::_%n unread comments_" : ["%n nepřečtený komentář","%n nepřečtené komentáře","%n nepřečtených komentářů","%n nepřečtených komentářů"],
"Comment" : "Komentář",
"You commented" : "Okomentovali jste",
"%1$s commented" : "%1$s okomentován",
"{author} commented" : "{author} okomentoval(a)",
"You commented on %1$s" : "Okomentovali jste %1$s",
"You commented on {file}" : "Okomentovali jste {file}",
"%1$s commented on %2$s" : "%1$s okomentoval %2$s",
"{author} commented on {file}" : "{author} okomentoval(a) {file}",
"<strong>Comments</strong> for files" : "<strong>Komentáře</strong> souborů",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Byli jste zmíněni v souboru “{file}”, v komentáři od uživatele, který byl později smazán",
"{user} mentioned you in a comment on “{file}”" : "{user} vás zmínil(a) v komentáři u „{file}“",
"Files app plugin to add comments to files" : "Zásuvný modul do aplikace Soubory pro přidávání komentářů k souborům",
"Unknown user" : "Neznámý uživatel",
"A (now) deleted user mentioned you in a comment on “%s”" : "(Nyní) už smazaný uživatel vás zmínil v komentáři na „%s“.",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Nyní už smazaný uživatel vás zmínil v komentáři u „{file}“",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s vás zmínil(a) v komentáři u %2$s",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Byli jste zmíněni v „%s“, v komentáři od uživatele, který byl později smazán"
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
-35
View File
@@ -1,35 +0,0 @@
{ "translations": {
"Edit comment" : "Upravit komentář",
"Delete comment" : "Smazat komentář",
"New comment …" : "Nový komentář…",
"Post" : "Zveřejnit",
"Cancel" : "Storno",
"[Deleted user]" : "[Smazaný uživatel]",
"Comments" : "Komentáře",
"No comments yet, start the conversation!" : "Zatím bez komentářů, začněte konverzaci!",
"More comments …" : "Více komentářů…",
"Save" : "Uložit",
"Allowed characters {count} of {max}" : "Povolených znaků {count} z {max}",
"Error occurred while retrieving comment with ID {id}" : "Došlo k chybě při načítání komentáře s ID {id}",
"Error occurred while updating comment with id {id}" : "Došlo k chybě při aktualizování komentáře s id {id}",
"Error occurred while posting comment" : "Došlo k chybě při zveřejňování komentáře",
"_%n unread comment_::_%n unread comments_" : ["%n nepřečtený komentář","%n nepřečtené komentáře","%n nepřečtených komentářů","%n nepřečtených komentářů"],
"Comment" : "Komentář",
"You commented" : "Okomentovali jste",
"%1$s commented" : "%1$s okomentován",
"{author} commented" : "{author} okomentoval(a)",
"You commented on %1$s" : "Okomentovali jste %1$s",
"You commented on {file}" : "Okomentovali jste {file}",
"%1$s commented on %2$s" : "%1$s okomentoval %2$s",
"{author} commented on {file}" : "{author} okomentoval(a) {file}",
"<strong>Comments</strong> for files" : "<strong>Komentáře</strong> souborů",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Byli jste zmíněni v souboru “{file}”, v komentáři od uživatele, který byl později smazán",
"{user} mentioned you in a comment on “{file}”" : "{user} vás zmínil(a) v komentáři u „{file}“",
"Files app plugin to add comments to files" : "Zásuvný modul do aplikace Soubory pro přidávání komentářů k souborům",
"Unknown user" : "Neznámý uživatel",
"A (now) deleted user mentioned you in a comment on “%s”" : "(Nyní) už smazaný uživatel vás zmínil v komentáři na „%s“.",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Nyní už smazaný uživatel vás zmínil v komentáři u „{file}“",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s vás zmínil(a) v komentáři u %2$s",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Byli jste zmíněni v „%s“, v komentáři od uživatele, který byl později smazán"
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
}
-39
View File
@@ -1,39 +0,0 @@
OC.L10N.register(
"comments",
{
"Comments" : "Komentáře",
"Unknown user" : "Neznámý uživatel",
"New comment …" : "Nový komentář ...",
"Delete comment" : "Smazat komentář",
"Post" : "Zveřejnit",
"Cancel" : "Zrušit",
"Edit comment" : "Upravit komentář",
"[Deleted user]" : "[Smazaný uživatel]",
"No comments yet, start the conversation!" : "Zatím bez komentářů, začněte konverzaci!",
"More comments …" : "Více komentářů ...",
"Save" : "Uložit",
"Allowed characters {count} of {max}" : "Povolených znaků {count} z {max}",
"Error occurred while retrieving comment with id {id}" : "Došlo k chybě při načítání komentáře s id {id}",
"Error occurred while updating comment with id {id}" : "Došlo k chybě při aktualizování komentáře s id {id}",
"Error occurred while posting comment" : "Došlo k chybě při zveřejňování komentáře",
"_%n unread comment_::_%n unread comments_" : ["%n nepřečtený komentář","%n nepřečtené komentáře","%n nepřečtených komentářů"],
"Comment" : "Komentář",
"You commented" : "Okomentoval(a) jsi",
"%1$s commented" : "%1$s okomentován",
"{author} commented" : "{author} okomentoval(a)",
"You commented on %1$s" : "Okomentoval(a) jste %1$s",
"You commented on {file}" : "Okomentoval(a) jste {file}",
"%1$s commented on %2$s" : "%1$s okomentoval %2$s",
"{author} commented on {file}" : "{author} okomentoval(a) {file}",
"<strong>Comments</strong> for files" : "<strong>Komentáře</strong> souborů",
"A (now) deleted user mentioned you in a comment on “%s”" : "A (now) deleted user mentioned you in a comment on “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Nyní již smazaný uživatel vás zmínil v komentáři u \"{file}\"",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s vás zmínil(a) v komentáři u %2$s",
"{user} mentioned you in a comment on “{file}”" : "{user} vás zmínil v komentáři u “{file}”",
"Type in a new comment..." : "Zadat nový komentář...",
"No other comments available" : "Nejsou dostupné žádné další komentáře",
"More comments..." : "Více komentářů...",
"{count} unread comments" : "{count} nepřečtených komentářů",
"You commented on %2$s" : "Okomentoval(a) jsi %2$s"
},
"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
-37
View File
@@ -1,37 +0,0 @@
{ "translations": {
"Comments" : "Komentáře",
"Unknown user" : "Neznámý uživatel",
"New comment …" : "Nový komentář ...",
"Delete comment" : "Smazat komentář",
"Post" : "Zveřejnit",
"Cancel" : "Zrušit",
"Edit comment" : "Upravit komentář",
"[Deleted user]" : "[Smazaný uživatel]",
"No comments yet, start the conversation!" : "Zatím bez komentářů, začněte konverzaci!",
"More comments …" : "Více komentářů ...",
"Save" : "Uložit",
"Allowed characters {count} of {max}" : "Povolených znaků {count} z {max}",
"Error occurred while retrieving comment with id {id}" : "Došlo k chybě při načítání komentáře s id {id}",
"Error occurred while updating comment with id {id}" : "Došlo k chybě při aktualizování komentáře s id {id}",
"Error occurred while posting comment" : "Došlo k chybě při zveřejňování komentáře",
"_%n unread comment_::_%n unread comments_" : ["%n nepřečtený komentář","%n nepřečtené komentáře","%n nepřečtených komentářů"],
"Comment" : "Komentář",
"You commented" : "Okomentoval(a) jsi",
"%1$s commented" : "%1$s okomentován",
"{author} commented" : "{author} okomentoval(a)",
"You commented on %1$s" : "Okomentoval(a) jste %1$s",
"You commented on {file}" : "Okomentoval(a) jste {file}",
"%1$s commented on %2$s" : "%1$s okomentoval %2$s",
"{author} commented on {file}" : "{author} okomentoval(a) {file}",
"<strong>Comments</strong> for files" : "<strong>Komentáře</strong> souborů",
"A (now) deleted user mentioned you in a comment on “%s”" : "A (now) deleted user mentioned you in a comment on “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Nyní již smazaný uživatel vás zmínil v komentáři u \"{file}\"",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s vás zmínil(a) v komentáři u %2$s",
"{user} mentioned you in a comment on “{file}”" : "{user} vás zmínil v komentáři u “{file}”",
"Type in a new comment..." : "Zadat nový komentář...",
"No other comments available" : "Nejsou dostupné žádné další komentáře",
"More comments..." : "Více komentářů...",
"{count} unread comments" : "{count} nepřečtených komentářů",
"You commented on %2$s" : "Okomentoval(a) jsi %2$s"
},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
}
-7
View File
@@ -1,7 +0,0 @@
OC.L10N.register(
"comments",
{
"Cancel" : "Diddymu",
"Save" : "Cadw"
},
"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;");
-5
View File
@@ -1,5 +0,0 @@
{ "translations": {
"Cancel" : "Diddymu",
"Save" : "Cadw"
},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"
}
-35
View File
@@ -1,35 +0,0 @@
OC.L10N.register(
"comments",
{
"Edit comment" : "Rediger kommentar",
"Delete comment" : "Slet kommentar",
"New comment …" : "Ny kommentar ...",
"Post" : "Indlæg",
"Cancel" : "Annullér",
"[Deleted user]" : "[Slettet user]",
"Comments" : "Kommentarer",
"No comments yet, start the conversation!" : "Ingen kommentarer endnu, start samtalen!",
"More comments …" : "Flere kommentarer...",
"Save" : "Gem",
"Allowed characters {count} of {max}" : "Tilladte tegn {count} af {max}",
"Error occurred while updating comment with id {id}" : "Der opstod fejl under opdatering af kommentar med id {id}",
"Error occurred while posting comment" : "Der opstod fejl under indsendelse af kommentar",
"_%n unread comment_::_%n unread comments_" : ["%n ulæst kommentar","%n ulæste kommentarer"],
"Comment" : "Kommentér",
"You commented" : "Du kommenterede",
"%1$s commented" : "%1$s kommenterede",
"{author} commented" : "{author} kommenterede",
"You commented on %1$s" : "Du kommenterede %1$s",
"You commented on {file}" : "Du kommenterede {file}",
"%1$s commented on %2$s" : "%1$s kommenterede %2$s",
"{author} commented on {file}" : "{author} kommenterede {file}",
"<strong>Comments</strong> for files" : "<strong>Kommentarer</strong> for filer",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Du blev nævnt i \"{file}”, I en kommentar af en bruger der siden er blevet slettet",
"{user} mentioned you in a comment on “{file}”" : "{user} nævnte dig i en kommentarer på \"{file}\"",
"Unknown user" : "Ukendt bruger",
"A (now) deleted user mentioned you in a comment on “%s”" : "En (nu) slettet bruger nævnte dig i en kommentarer på “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "En (nu) slettet bruger nævnte dig i en kommentarer på \"{file}\"",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s nævnte dig i en kommentarer på “%2$s”",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Du blev nævnt i \"%s”, I en kommentar af en bruger der er blevet slettet efterfølgende"
},
"nplurals=2; plural=(n != 1);");
-33
View File
@@ -1,33 +0,0 @@
{ "translations": {
"Edit comment" : "Rediger kommentar",
"Delete comment" : "Slet kommentar",
"New comment …" : "Ny kommentar ...",
"Post" : "Indlæg",
"Cancel" : "Annullér",
"[Deleted user]" : "[Slettet user]",
"Comments" : "Kommentarer",
"No comments yet, start the conversation!" : "Ingen kommentarer endnu, start samtalen!",
"More comments …" : "Flere kommentarer...",
"Save" : "Gem",
"Allowed characters {count} of {max}" : "Tilladte tegn {count} af {max}",
"Error occurred while updating comment with id {id}" : "Der opstod fejl under opdatering af kommentar med id {id}",
"Error occurred while posting comment" : "Der opstod fejl under indsendelse af kommentar",
"_%n unread comment_::_%n unread comments_" : ["%n ulæst kommentar","%n ulæste kommentarer"],
"Comment" : "Kommentér",
"You commented" : "Du kommenterede",
"%1$s commented" : "%1$s kommenterede",
"{author} commented" : "{author} kommenterede",
"You commented on %1$s" : "Du kommenterede %1$s",
"You commented on {file}" : "Du kommenterede {file}",
"%1$s commented on %2$s" : "%1$s kommenterede %2$s",
"{author} commented on {file}" : "{author} kommenterede {file}",
"<strong>Comments</strong> for files" : "<strong>Kommentarer</strong> for filer",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Du blev nævnt i \"{file}”, I en kommentar af en bruger der siden er blevet slettet",
"{user} mentioned you in a comment on “{file}”" : "{user} nævnte dig i en kommentarer på \"{file}\"",
"Unknown user" : "Ukendt bruger",
"A (now) deleted user mentioned you in a comment on “%s”" : "En (nu) slettet bruger nævnte dig i en kommentarer på “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "En (nu) slettet bruger nævnte dig i en kommentarer på \"{file}\"",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s nævnte dig i en kommentarer på “%2$s”",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Du blev nævnt i \"%s”, I en kommentar af en bruger der er blevet slettet efterfølgende"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-37
View File
@@ -1,37 +0,0 @@
OC.L10N.register(
"comments",
{
"Edit comment" : "Kommentar bearbeiten",
"Delete comment" : "Kommentar löschen",
"New comment …" : "Neuer Kommentar …",
"Post" : "Speichern",
"Cancel" : "Abbrechen",
"[Deleted user]" : "[Gelöschter Benutzer]",
"Comments" : "Kommentare",
"No comments yet, start the conversation!" : "Keine Kommentare bisher. Beginne die Diskussion!",
"More comments …" : "Weitere Kommentare…",
"Save" : "Speichern",
"Allowed characters {count} of {max}" : "Erlaubte Zeichen {count} von {max}",
"Error occurred while retrieving comment with ID {id}" : "Es ist ein Fehler beim Empfangen des Kommentars mit der ID {id} aufgetreten",
"Error occurred while updating comment with id {id}" : "Es ist ein Fehler beim Aktualisieren des Kommentars mit der ID {id} aufgetreten",
"Error occurred while posting comment" : "Es ist ein Fehler beim Veröffentlichen des Kommentars aufgetreten",
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"],
"Comment" : "Kommentar",
"You commented" : "Von Dir kommentiert",
"%1$s commented" : "%1$s kommentierte",
"{author} commented" : "{author} kommentierte",
"You commented on %1$s" : "Du hast %1$s kommentiert",
"You commented on {file}" : "Du hast {file} kommentiert",
"%1$s commented on %2$s" : "%1$s kommentierte %2$s",
"{author} commented on {file}" : "{author} hat {file} kommentiert",
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Nutzer erwähnt",
"{user} mentioned you in a comment on “{file}”" : "{user} hat Dich in einem Kommentar zu “{file}” erwähnt ",
"Files app plugin to add comments to files" : "Ein Plugin für die Dateien-App zum Kommentieren von Dateien",
"Unknown user" : "Unbekannter Benutzer",
"A (now) deleted user mentioned you in a comment on “%s”" : "Ein (nun) gelöschter Benutzer hat Dich in einem Kommentar zu \"%s\" erwähnt",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Ein (nun) gelöschter Benutzer hat Dich in einem Kommentar zu “{file}” erwähnt",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s hat Dich in einem Kommentar zu “%2$s” erwähnt ",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"%s\" von einem bereits gelöschten Nutzer erwähnt"
},
"nplurals=2; plural=(n != 1);");
-35
View File
@@ -1,35 +0,0 @@
{ "translations": {
"Edit comment" : "Kommentar bearbeiten",
"Delete comment" : "Kommentar löschen",
"New comment …" : "Neuer Kommentar …",
"Post" : "Speichern",
"Cancel" : "Abbrechen",
"[Deleted user]" : "[Gelöschter Benutzer]",
"Comments" : "Kommentare",
"No comments yet, start the conversation!" : "Keine Kommentare bisher. Beginne die Diskussion!",
"More comments …" : "Weitere Kommentare…",
"Save" : "Speichern",
"Allowed characters {count} of {max}" : "Erlaubte Zeichen {count} von {max}",
"Error occurred while retrieving comment with ID {id}" : "Es ist ein Fehler beim Empfangen des Kommentars mit der ID {id} aufgetreten",
"Error occurred while updating comment with id {id}" : "Es ist ein Fehler beim Aktualisieren des Kommentars mit der ID {id} aufgetreten",
"Error occurred while posting comment" : "Es ist ein Fehler beim Veröffentlichen des Kommentars aufgetreten",
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"],
"Comment" : "Kommentar",
"You commented" : "Von Dir kommentiert",
"%1$s commented" : "%1$s kommentierte",
"{author} commented" : "{author} kommentierte",
"You commented on %1$s" : "Du hast %1$s kommentiert",
"You commented on {file}" : "Du hast {file} kommentiert",
"%1$s commented on %2$s" : "%1$s kommentierte %2$s",
"{author} commented on {file}" : "{author} hat {file} kommentiert",
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Nutzer erwähnt",
"{user} mentioned you in a comment on “{file}”" : "{user} hat Dich in einem Kommentar zu “{file}” erwähnt ",
"Files app plugin to add comments to files" : "Ein Plugin für die Dateien-App zum Kommentieren von Dateien",
"Unknown user" : "Unbekannter Benutzer",
"A (now) deleted user mentioned you in a comment on “%s”" : "Ein (nun) gelöschter Benutzer hat Dich in einem Kommentar zu \"%s\" erwähnt",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Ein (nun) gelöschter Benutzer hat Dich in einem Kommentar zu “{file}” erwähnt",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s hat Dich in einem Kommentar zu “%2$s” erwähnt ",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"%s\" von einem bereits gelöschten Nutzer erwähnt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-7
View File
@@ -1,7 +0,0 @@
OC.L10N.register(
"comments",
{
"Cancel" : "Abbrechen",
"Save" : "Speichern"
},
"nplurals=2; plural=(n != 1);");
-5
View File
@@ -1,5 +0,0 @@
{ "translations": {
"Cancel" : "Abbrechen",
"Save" : "Speichern"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-37
View File
@@ -1,37 +0,0 @@
OC.L10N.register(
"comments",
{
"Edit comment" : "Kommentar bearbeiten",
"Delete comment" : "Kommentar löschen",
"New comment …" : "Neuer Kommentar …",
"Post" : "Speichern",
"Cancel" : "Abbrechen",
"[Deleted user]" : "[gelöschter Benutzer]",
"Comments" : "Kommentare",
"No comments yet, start the conversation!" : "Keine Kommentare bisher. Beginnen Sie die Diskussion!",
"More comments …" : "Weitere Kommentare …",
"Save" : "Speichern",
"Allowed characters {count} of {max}" : "{count} von {max} Zeichen benutzt",
"Error occurred while retrieving comment with ID {id}" : "Es ist ein Fehler beim Empfangen des Kommentars mit der ID {id} aufgetreten",
"Error occurred while updating comment with id {id}" : "Es ist ein Fehler beim Aktualisieren des Kommentars mit der ID {id} aufgetreten",
"Error occurred while posting comment" : "Es ist ein Fehler beim Veröffentlichen des Kommentars aufgetreten",
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"],
"Comment" : "Kommentar",
"You commented" : "Sie haben kommentiert",
"%1$s commented" : "%1$s kommentierte",
"{author} commented" : "{author} kommentierte",
"You commented on %1$s" : "Sie haben %1$s kommentiert",
"You commented on {file}" : "Sie haben {file} kommentiert",
"%1$s commented on %2$s" : "%1$s kommentierte %2$s",
"{author} commented on {file}" : "{author} hat {file} kommentiert",
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Nutzer erwähnt",
"{user} mentioned you in a comment on “{file}”" : "{user} hat Sie in einem Kommentar zu “{file}” erwähnt",
"Files app plugin to add comments to files" : "Ein Plugin für die Dateien-App zum Kommentieren von Dateien",
"Unknown user" : "Unbekannter Benutzer",
"A (now) deleted user mentioned you in a comment on “%s”" : "Ein (nun) gelöschter Benutzer hat Sie in einem Kommentar zu \"%s\" erwähnt",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Ein (nun) gelöschter Benutzer hat Sie in einem Kommentar zu “{file}” erwähnt",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s hat Sie in einem Kommentar zu “%2$s” erwähnt.",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"%s\" von einem bereits gelöschten Nutzer erwähnt"
},
"nplurals=2; plural=(n != 1);");
-35
View File
@@ -1,35 +0,0 @@
{ "translations": {
"Edit comment" : "Kommentar bearbeiten",
"Delete comment" : "Kommentar löschen",
"New comment …" : "Neuer Kommentar …",
"Post" : "Speichern",
"Cancel" : "Abbrechen",
"[Deleted user]" : "[gelöschter Benutzer]",
"Comments" : "Kommentare",
"No comments yet, start the conversation!" : "Keine Kommentare bisher. Beginnen Sie die Diskussion!",
"More comments …" : "Weitere Kommentare …",
"Save" : "Speichern",
"Allowed characters {count} of {max}" : "{count} von {max} Zeichen benutzt",
"Error occurred while retrieving comment with ID {id}" : "Es ist ein Fehler beim Empfangen des Kommentars mit der ID {id} aufgetreten",
"Error occurred while updating comment with id {id}" : "Es ist ein Fehler beim Aktualisieren des Kommentars mit der ID {id} aufgetreten",
"Error occurred while posting comment" : "Es ist ein Fehler beim Veröffentlichen des Kommentars aufgetreten",
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"],
"Comment" : "Kommentar",
"You commented" : "Sie haben kommentiert",
"%1$s commented" : "%1$s kommentierte",
"{author} commented" : "{author} kommentierte",
"You commented on %1$s" : "Sie haben %1$s kommentiert",
"You commented on {file}" : "Sie haben {file} kommentiert",
"%1$s commented on %2$s" : "%1$s kommentierte %2$s",
"{author} commented on {file}" : "{author} hat {file} kommentiert",
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Nutzer erwähnt",
"{user} mentioned you in a comment on “{file}”" : "{user} hat Sie in einem Kommentar zu “{file}” erwähnt",
"Files app plugin to add comments to files" : "Ein Plugin für die Dateien-App zum Kommentieren von Dateien",
"Unknown user" : "Unbekannter Benutzer",
"A (now) deleted user mentioned you in a comment on “%s”" : "Ein (nun) gelöschter Benutzer hat Sie in einem Kommentar zu \"%s\" erwähnt",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Ein (nun) gelöschter Benutzer hat Sie in einem Kommentar zu “{file}” erwähnt",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s hat Sie in einem Kommentar zu “%2$s” erwähnt.",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"%s\" von einem bereits gelöschten Nutzer erwähnt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-33
View File
@@ -1,33 +0,0 @@
OC.L10N.register(
"comments",
{
"Edit comment" : "Επεξεργασία σχολίου",
"Delete comment" : "Διαγραφή σχολίου",
"New comment …" : "Νέο σχόλιο ...",
"Post" : "Δημοσίευση",
"Cancel" : "Ακύρωση",
"[Deleted user]" : "[Διαγραμμένος χρήστης]",
"Comments" : "Σχόλια",
"No comments yet, start the conversation!" : "Δεν υπάρχουν σχόλια, ξεκινήστε την συζήτηση!",
"More comments …" : "Περισσότερα σχόλια ...",
"Save" : "Αποθήκευση",
"Allowed characters {count} of {max}" : "Επιτρεπόμενοι χαρακτήρες {count} από {max}",
"Error occurred while updating comment with id {id}" : "Ένα σφάλμα προέκυψε κατά την ενημέρωση του σχολίου με το αναγνωριστικό {id}",
"Error occurred while posting comment" : "Ένα σφάλμα προέκυψε κατά την δημοσίευση σχολίου",
"_%n unread comment_::_%n unread comments_" : ["%n αδιάβαστο σχόλιο","%n αδιάβαστα σχόλια"],
"Comment" : "Σχόλιο",
"You commented" : "Σχολιάσατε",
"%1$s commented" : "%1$s σχολίασε",
"{author} commented" : "Ο {author} σχολίασε",
"You commented on %1$s" : "Σχολιάσατε στο %1$s",
"You commented on {file}" : "Σχολιάσατε στο {file}",
"%1$s commented on %2$s" : "%1$s σχολίασε στο %2$s",
"{author} commented on {file}" : "Ο {author} σχολίασε στο {file}",
"<strong>Comments</strong> for files" : "<strong>Σχόλια</strong> για αρχεία",
"{user} mentioned you in a comment on “{file}”" : "Ο {user} σας ανέφερε σε σχόλιο στο “{file}”",
"Unknown user" : "Άγνωστος χρήστης",
"A (now) deleted user mentioned you in a comment on “%s”" : "Ο (πρόσφατα) διεγραμμένος χρήστης σας ανέφερε σε σχόλιο στο “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Ο (πρόσφατα) διεγραμμένος χρήστης σας ανέφερε σε σχόλιο στο “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s σας ανέφερε σε σχόλιο στο “%2$s”"
},
"nplurals=2; plural=(n != 1);");
-31
View File
@@ -1,31 +0,0 @@
{ "translations": {
"Edit comment" : "Επεξεργασία σχολίου",
"Delete comment" : "Διαγραφή σχολίου",
"New comment …" : "Νέο σχόλιο ...",
"Post" : "Δημοσίευση",
"Cancel" : "Ακύρωση",
"[Deleted user]" : "[Διαγραμμένος χρήστης]",
"Comments" : "Σχόλια",
"No comments yet, start the conversation!" : "Δεν υπάρχουν σχόλια, ξεκινήστε την συζήτηση!",
"More comments …" : "Περισσότερα σχόλια ...",
"Save" : "Αποθήκευση",
"Allowed characters {count} of {max}" : "Επιτρεπόμενοι χαρακτήρες {count} από {max}",
"Error occurred while updating comment with id {id}" : "Ένα σφάλμα προέκυψε κατά την ενημέρωση του σχολίου με το αναγνωριστικό {id}",
"Error occurred while posting comment" : "Ένα σφάλμα προέκυψε κατά την δημοσίευση σχολίου",
"_%n unread comment_::_%n unread comments_" : ["%n αδιάβαστο σχόλιο","%n αδιάβαστα σχόλια"],
"Comment" : "Σχόλιο",
"You commented" : "Σχολιάσατε",
"%1$s commented" : "%1$s σχολίασε",
"{author} commented" : "Ο {author} σχολίασε",
"You commented on %1$s" : "Σχολιάσατε στο %1$s",
"You commented on {file}" : "Σχολιάσατε στο {file}",
"%1$s commented on %2$s" : "%1$s σχολίασε στο %2$s",
"{author} commented on {file}" : "Ο {author} σχολίασε στο {file}",
"<strong>Comments</strong> for files" : "<strong>Σχόλια</strong> για αρχεία",
"{user} mentioned you in a comment on “{file}”" : "Ο {user} σας ανέφερε σε σχόλιο στο “{file}”",
"Unknown user" : "Άγνωστος χρήστης",
"A (now) deleted user mentioned you in a comment on “%s”" : "Ο (πρόσφατα) διεγραμμένος χρήστης σας ανέφερε σε σχόλιο στο “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Ο (πρόσφατα) διεγραμμένος χρήστης σας ανέφερε σε σχόλιο στο “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s σας ανέφερε σε σχόλιο στο “%2$s”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-36
View File
@@ -1,36 +0,0 @@
OC.L10N.register(
"comments",
{
"Edit comment" : "Edit comment",
"Delete comment" : "Delete comment",
"New comment …" : "New comment …",
"Post" : "Post",
"Cancel" : "Cancel",
"[Deleted user]" : "[Deleted user]",
"Comments" : "Comments",
"No comments yet, start the conversation!" : "No comments yet, start the conversation!",
"More comments …" : "More comments …",
"Save" : "Save",
"Allowed characters {count} of {max}" : "Allowed characters: {count} of {max}",
"Error occurred while retrieving comment with ID {id}" : "Error occurred while retrieving comment with ID {id}",
"Error occurred while updating comment with id {id}" : "Error occurred while updating comment with id {id}",
"Error occurred while posting comment" : "Error occurred while posting comment",
"_%n unread comment_::_%n unread comments_" : ["%n unread comment","%n unread comments"],
"Comment" : "Comment",
"You commented" : "You commented",
"%1$s commented" : "%1$s commented",
"{author} commented" : "{author} commented",
"You commented on %1$s" : "You commented on %1$s",
"You commented on {file}" : "You commented on {file}",
"%1$s commented on %2$s" : "%1$s commented on %2$s",
"{author} commented on {file}" : "{author} commented on {file}",
"<strong>Comments</strong> for files" : "<strong>Comments</strong> for files",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "You were mentioned on “{file}”, in a comment by a user that has since been deleted",
"{user} mentioned you in a comment on “{file}”" : "{user} mentioned you in a comment on “{file}”",
"Unknown user" : "Unknown user",
"A (now) deleted user mentioned you in a comment on “%s”" : "A (now) deleted user mentioned you in a comment on “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "A (now) deleted user mentioned you in a comment on “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s mentioned you in a comment on “%2$s”",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "You were mentioned on “%s”, in a comment by a user that has since been deleted"
},
"nplurals=2; plural=(n != 1);");
-34
View File
@@ -1,34 +0,0 @@
{ "translations": {
"Edit comment" : "Edit comment",
"Delete comment" : "Delete comment",
"New comment …" : "New comment …",
"Post" : "Post",
"Cancel" : "Cancel",
"[Deleted user]" : "[Deleted user]",
"Comments" : "Comments",
"No comments yet, start the conversation!" : "No comments yet, start the conversation!",
"More comments …" : "More comments …",
"Save" : "Save",
"Allowed characters {count} of {max}" : "Allowed characters: {count} of {max}",
"Error occurred while retrieving comment with ID {id}" : "Error occurred while retrieving comment with ID {id}",
"Error occurred while updating comment with id {id}" : "Error occurred while updating comment with id {id}",
"Error occurred while posting comment" : "Error occurred while posting comment",
"_%n unread comment_::_%n unread comments_" : ["%n unread comment","%n unread comments"],
"Comment" : "Comment",
"You commented" : "You commented",
"%1$s commented" : "%1$s commented",
"{author} commented" : "{author} commented",
"You commented on %1$s" : "You commented on %1$s",
"You commented on {file}" : "You commented on {file}",
"%1$s commented on %2$s" : "%1$s commented on %2$s",
"{author} commented on {file}" : "{author} commented on {file}",
"<strong>Comments</strong> for files" : "<strong>Comments</strong> for files",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "You were mentioned on “{file}”, in a comment by a user that has since been deleted",
"{user} mentioned you in a comment on “{file}”" : "{user} mentioned you in a comment on “{file}”",
"Unknown user" : "Unknown user",
"A (now) deleted user mentioned you in a comment on “%s”" : "A (now) deleted user mentioned you in a comment on “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "A (now) deleted user mentioned you in a comment on “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s mentioned you in a comment on “%2$s”",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "You were mentioned on “%s”, in a comment by a user that has since been deleted"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-20
View File
@@ -1,20 +0,0 @@
OC.L10N.register(
"comments",
{
"Type in a new comment..." : "Tajpu novan komenton...",
"Delete comment" : "Forigi komenton",
"Post" : "Afiŝi",
"Cancel" : "Nuligi",
"Edit comment" : "Redakti komenton",
"[Deleted user]" : "[Forigita uzanto]",
"Comments" : "Komentoj",
"No other comments available" : "Neniu alia komento disponeblas",
"More comments..." : "Pli da komentoj...",
"Save" : "Konservi",
"Allowed characters {count} of {max}" : "Permesataj karakteroj: {count} el {max}",
"{count} unread comments" : "{count} nelegitaj komentoj",
"Comment" : "Komento",
"%1$s commented" : "%1$s komentis",
"%1$s commented on %2$s" : "%1$s komentis %2$s"
},
"nplurals=2; plural=(n != 1);");
-18
View File
@@ -1,18 +0,0 @@
{ "translations": {
"Type in a new comment..." : "Tajpu novan komenton...",
"Delete comment" : "Forigi komenton",
"Post" : "Afiŝi",
"Cancel" : "Nuligi",
"Edit comment" : "Redakti komenton",
"[Deleted user]" : "[Forigita uzanto]",
"Comments" : "Komentoj",
"No other comments available" : "Neniu alia komento disponeblas",
"More comments..." : "Pli da komentoj...",
"Save" : "Konservi",
"Allowed characters {count} of {max}" : "Permesataj karakteroj: {count} el {max}",
"{count} unread comments" : "{count} nelegitaj komentoj",
"Comment" : "Komento",
"%1$s commented" : "%1$s komentis",
"%1$s commented on %2$s" : "%1$s komentis %2$s"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-37
View File
@@ -1,37 +0,0 @@
OC.L10N.register(
"comments",
{
"Edit comment" : "Editar comentario",
"Delete comment" : "Borrar comentario",
"New comment …" : "Nuevo comentario",
"Post" : "Publicar",
"Cancel" : "Cancelar",
"[Deleted user]" : "[Usuario eliminado]",
"Comments" : "Comentarios",
"No comments yet, start the conversation!" : "¡No hay comentarios, empieza la conversación!",
"More comments …" : "Más comentarios ...",
"Save" : "Guardar",
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with ID {id}" : "Se ha producido un error al obtener el comentario con ID {id}",
"Error occurred while updating comment with id {id}" : "Se ha producido un error al actualizar el comentario con ID {id}",
"Error occurred while posting comment" : "Se ha producido un error al enviar el comentario",
"_%n unread comment_::_%n unread comments_" : ["%n comentario sin leer","%nComentarios no leídos"],
"Comment" : "Comentar",
"You commented" : "Has comentado",
"%1$s commented" : "%1$s comentados",
"{author} commented" : "{author} comentó",
"You commented on %1$s" : "Has comentado en %1$s",
"You commented on {file}" : "Has comentado en {file}",
"%1$s commented on %2$s" : "%1$s comentados en %2$s",
"{author} commented on {file}" : "{author} comentó en {file}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> para archivos",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te han mencionado en \"{file}\", en un comentario de un usuario que después ha sido eliminado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
"Files app plugin to add comments to files" : "Plugin de la app de Archivos para añadir comentarios a archivos.",
"Unknown user" : "Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) eliminado, te mencionó en un comentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) eliminado, te mencionó en un comentario en “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te han mencionado en \"%s\", en un comentario por un usuario que después ha sido eliminado"
},
"nplurals=2; plural=(n != 1);");
-35
View File
@@ -1,35 +0,0 @@
{ "translations": {
"Edit comment" : "Editar comentario",
"Delete comment" : "Borrar comentario",
"New comment …" : "Nuevo comentario",
"Post" : "Publicar",
"Cancel" : "Cancelar",
"[Deleted user]" : "[Usuario eliminado]",
"Comments" : "Comentarios",
"No comments yet, start the conversation!" : "¡No hay comentarios, empieza la conversación!",
"More comments …" : "Más comentarios ...",
"Save" : "Guardar",
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with ID {id}" : "Se ha producido un error al obtener el comentario con ID {id}",
"Error occurred while updating comment with id {id}" : "Se ha producido un error al actualizar el comentario con ID {id}",
"Error occurred while posting comment" : "Se ha producido un error al enviar el comentario",
"_%n unread comment_::_%n unread comments_" : ["%n comentario sin leer","%nComentarios no leídos"],
"Comment" : "Comentar",
"You commented" : "Has comentado",
"%1$s commented" : "%1$s comentados",
"{author} commented" : "{author} comentó",
"You commented on %1$s" : "Has comentado en %1$s",
"You commented on {file}" : "Has comentado en {file}",
"%1$s commented on %2$s" : "%1$s comentados en %2$s",
"{author} commented on {file}" : "{author} comentó en {file}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> para archivos",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te han mencionado en \"{file}\", en un comentario de un usuario que después ha sido eliminado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
"Files app plugin to add comments to files" : "Plugin de la app de Archivos para añadir comentarios a archivos.",
"Unknown user" : "Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) eliminado, te mencionó en un comentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) eliminado, te mencionó en un comentario en “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te han mencionado en \"%s\", en un comentario por un usuario que después ha sido eliminado"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-35
View File
@@ -1,35 +0,0 @@
OC.L10N.register(
"comments",
{
"Edit comment" : "Editar comentario",
"Delete comment" : "Borrar comentario",
"New comment …" : "Comentario nuevo ...",
"Post" : "Publicar",
"Cancel" : "Cancelar",
"[Deleted user]" : "[Usuario borrado]",
"Comments" : "Comentarios",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"More comments …" : "Más comentarios ...",
"Save" : "Guardar",
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
"Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment" : "Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You commented" : "Comentaste",
"%1$s commented" : "%1$s comentó",
"{author} commented" : "{author} comentó",
"You commented on %1$s" : "Usted comentó en %1$s",
"You commented on {file}" : "Hiciste un comentario de {file}",
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
"{author} commented on {file}" : "{author} comentó en {file}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
"Unknown user" : "Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) borrado te mencionó en un commentario en “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado"
},
"nplurals=2; plural=(n != 1);");
-33
View File
@@ -1,33 +0,0 @@
{ "translations": {
"Edit comment" : "Editar comentario",
"Delete comment" : "Borrar comentario",
"New comment …" : "Comentario nuevo ...",
"Post" : "Publicar",
"Cancel" : "Cancelar",
"[Deleted user]" : "[Usuario borrado]",
"Comments" : "Comentarios",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"More comments …" : "Más comentarios ...",
"Save" : "Guardar",
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
"Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment" : "Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You commented" : "Comentaste",
"%1$s commented" : "%1$s comentó",
"{author} commented" : "{author} comentó",
"You commented on %1$s" : "Usted comentó en %1$s",
"You commented on {file}" : "Hiciste un comentario de {file}",
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
"{author} commented on {file}" : "{author} comentó en {file}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
"Unknown user" : "Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) borrado te mencionó en un commentario en “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-33
View File
@@ -1,33 +0,0 @@
OC.L10N.register(
"comments",
{
"Edit comment" : "Editar comentario",
"Delete comment" : "Borrar comentario",
"New comment …" : "Nuevo comentario ...",
"Post" : "Post",
"Cancel" : "Cancelar",
"[Deleted user]" : "[Usuario borrado]",
"Comments" : "Comentarios",
"No comments yet, start the conversation!" : "No hay comentarios aún, iniciar la conversación!",
"More comments …" : "Más comentarios ...",
"Save" : "Guardar",
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} of {max}",
"Error occurred while updating comment with id {id}" : "Se ha producido un error al actualizar el comentario con id {id}",
"Error occurred while posting comment" : "Se ha producido un error al publicar un comentario",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentar",
"You commented" : "Ud. ha comentado",
"%1$s commented" : "%1$s comentados",
"{author} commented" : "{author} comentó",
"You commented on %1$s" : "Ud. ah comentado en %1$s",
"You commented on {file}" : "Ud. ha comentado en {file}",
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
"{author} commented on {file}" : "{author} comentó en {file}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> en archivos",
"{user} mentioned you in a comment on “{file}”" : "{user} te ha mencionado en un comentario en “{file}”",
"Unknown user" : "Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”" : "Un (now) usuario borrado te ha mencionado en un comentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un (now) usuario borrado the ha mencionado en un comentario en “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te ha mencionado en un comentario en “%2$s”"
},
"nplurals=2; plural=(n != 1);");
-31
View File
@@ -1,31 +0,0 @@
{ "translations": {
"Edit comment" : "Editar comentario",
"Delete comment" : "Borrar comentario",
"New comment …" : "Nuevo comentario ...",
"Post" : "Post",
"Cancel" : "Cancelar",
"[Deleted user]" : "[Usuario borrado]",
"Comments" : "Comentarios",
"No comments yet, start the conversation!" : "No hay comentarios aún, iniciar la conversación!",
"More comments …" : "Más comentarios ...",
"Save" : "Guardar",
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} of {max}",
"Error occurred while updating comment with id {id}" : "Se ha producido un error al actualizar el comentario con id {id}",
"Error occurred while posting comment" : "Se ha producido un error al publicar un comentario",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentar",
"You commented" : "Ud. ha comentado",
"%1$s commented" : "%1$s comentados",
"{author} commented" : "{author} comentó",
"You commented on %1$s" : "Ud. ah comentado en %1$s",
"You commented on {file}" : "Ud. ha comentado en {file}",
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
"{author} commented on {file}" : "{author} comentó en {file}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> en archivos",
"{user} mentioned you in a comment on “{file}”" : "{user} te ha mencionado en un comentario en “{file}”",
"Unknown user" : "Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”" : "Un (now) usuario borrado te ha mencionado en un comentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un (now) usuario borrado the ha mencionado en un comentario en “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te ha mencionado en un comentario en “%2$s”"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-36
View File
@@ -1,36 +0,0 @@
OC.L10N.register(
"comments",
{
"Edit comment" : "Editar comentario",
"Delete comment" : "Borrar comentario",
"New comment …" : "Comentario nuevo ...",
"Post" : "Publicar",
"Cancel" : "Cancelar",
"[Deleted user]" : "[Usuario borrado]",
"Comments" : "Comentarios",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"More comments …" : "Más comentarios ...",
"Save" : "Guardar",
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with ID {id}" : "Se presentó un error al recuperar el comentario con ID {id}",
"Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment" : "Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You commented" : "Comentaste",
"%1$s commented" : "%1$s comentó",
"{author} commented" : "{author} comentó",
"You commented on %1$s" : "Usted comentó en %1$s",
"You commented on {file}" : "Hiciste un comentario de {file}",
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
"{author} commented on {file}" : "{author} comentó en {file}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
"Unknown user" : "Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) borrado te mencionó en un commentario en “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado"
},
"nplurals=2; plural=(n != 1);");
-34
View File
@@ -1,34 +0,0 @@
{ "translations": {
"Edit comment" : "Editar comentario",
"Delete comment" : "Borrar comentario",
"New comment …" : "Comentario nuevo ...",
"Post" : "Publicar",
"Cancel" : "Cancelar",
"[Deleted user]" : "[Usuario borrado]",
"Comments" : "Comentarios",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"More comments …" : "Más comentarios ...",
"Save" : "Guardar",
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with ID {id}" : "Se presentó un error al recuperar el comentario con ID {id}",
"Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment" : "Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You commented" : "Comentaste",
"%1$s commented" : "%1$s comentó",
"{author} commented" : "{author} comentó",
"You commented on %1$s" : "Usted comentó en %1$s",
"You commented on {file}" : "Hiciste un comentario de {file}",
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
"{author} commented on {file}" : "{author} comentó en {file}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
"Unknown user" : "Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) borrado te mencionó en un commentario en “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-36
View File
@@ -1,36 +0,0 @@
OC.L10N.register(
"comments",
{
"Edit comment" : "Editar comentario",
"Delete comment" : "Borrar comentario",
"New comment …" : "Comentario nuevo ...",
"Post" : "Publicar",
"Cancel" : "Cancelar",
"[Deleted user]" : "[Usuario borrado]",
"Comments" : "Comentarios",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"More comments …" : "Más comentarios ...",
"Save" : "Guardar",
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with ID {id}" : "Se presentó un error al recuperar el comentario con ID {id}",
"Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment" : "Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You commented" : "Comentaste",
"%1$s commented" : "%1$s comentó",
"{author} commented" : "{author} comentó",
"You commented on %1$s" : "Usted comentó en %1$s",
"You commented on {file}" : "Hiciste un comentario de {file}",
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
"{author} commented on {file}" : "{author} comentó en {file}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
"Unknown user" : "Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) borrado te mencionó en un commentario en “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado"
},
"nplurals=2; plural=(n != 1);");
-34
View File
@@ -1,34 +0,0 @@
{ "translations": {
"Edit comment" : "Editar comentario",
"Delete comment" : "Borrar comentario",
"New comment …" : "Comentario nuevo ...",
"Post" : "Publicar",
"Cancel" : "Cancelar",
"[Deleted user]" : "[Usuario borrado]",
"Comments" : "Comentarios",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"More comments …" : "Más comentarios ...",
"Save" : "Guardar",
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with ID {id}" : "Se presentó un error al recuperar el comentario con ID {id}",
"Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment" : "Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You commented" : "Comentaste",
"%1$s commented" : "%1$s comentó",
"{author} commented" : "{author} comentó",
"You commented on %1$s" : "Usted comentó en %1$s",
"You commented on {file}" : "Hiciste un comentario de {file}",
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
"{author} commented on {file}" : "{author} comentó en {file}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
"Unknown user" : "Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) borrado te mencionó en un commentario en “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-36
View File
@@ -1,36 +0,0 @@
OC.L10N.register(
"comments",
{
"Edit comment" : "Editar comentario",
"Delete comment" : "Borrar comentario",
"New comment …" : "Comentario nuevo ...",
"Post" : "Publicar",
"Cancel" : "Cancelar",
"[Deleted user]" : "[Usuario borrado]",
"Comments" : "Comentarios",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"More comments …" : "Más comentarios ...",
"Save" : "Guardar",
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with ID {id}" : "Se presentó un error al recuperar el comentario con ID {id}",
"Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment" : "Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
"Comment" : "Comentario",
"You commented" : "Comentaste",
"%1$s commented" : "%1$s comentó",
"{author} commented" : "{author} comentó",
"You commented on %1$s" : "Usted comentó en %1$s",
"You commented on {file}" : "Hiciste un comentario de {file}",
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
"{author} commented on {file}" : "{author} comentó en {file}",
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
"Unknown user" : "Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) borrado te mencionó en un commentario en “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado"
},
"nplurals=2; plural=(n != 1);");

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