summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/comments/l10n/nb.js1
-rw-r--r--apps/comments/l10n/nb.json1
-rw-r--r--apps/dav/l10n/fr.js1
-rw-r--r--apps/dav/l10n/fr.json1
-rw-r--r--apps/dav/lib/CalDAV/CalDavBackend.php2
-rw-r--r--apps/dav/tests/unit/CalDAV/CalDavBackendTest.php80
-rw-r--r--apps/encryption/lib/Crypto/Encryption.php1
-rw-r--r--apps/federation/lib/SyncJob.php2
-rw-r--r--apps/files/appinfo/routes.php50
-rw-r--r--apps/files/js/navigation.js95
-rw-r--r--apps/files/l10n/sq.js2
-rw-r--r--apps/files/l10n/sq.json2
-rw-r--r--apps/files/lib/Controller/ApiController.php139
-rw-r--r--apps/files_external/3rdparty/composer.json2
-rw-r--r--apps/files_external/3rdparty/composer.lock12
-rw-r--r--apps/files_external/3rdparty/composer/autoload_classmap.php9
-rw-r--r--apps/files_external/3rdparty/composer/autoload_static.php9
-rw-r--r--apps/files_external/3rdparty/composer/installed.json12
-rw-r--r--apps/files_external/3rdparty/icewind/streams/.travis.yml7
-rw-r--r--apps/files_external/3rdparty/icewind/streams/README.md4
-rw-r--r--apps/files_external/3rdparty/icewind/streams/src/CountWrapper.php106
-rw-r--r--apps/files_external/3rdparty/icewind/streams/src/Wrapper.php14
-rw-r--r--apps/files_external/l10n/fr.js2
-rw-r--r--apps/files_external/l10n/fr.json2
-rw-r--r--apps/files_sharing/l10n/nb.js1
-rw-r--r--apps/files_sharing/l10n/nb.json1
-rw-r--r--apps/twofactor_backupcodes/l10n/nb.js1
-rw-r--r--apps/twofactor_backupcodes/l10n/nb.json1
-rw-r--r--apps/workflowengine/js/requestuseragentplugin.js19
-rw-r--r--apps/workflowengine/l10n/nb.js1
-rw-r--r--apps/workflowengine/l10n/nb.json1
-rw-r--r--apps/workflowengine/l10n/zh_CN.js4
-rw-r--r--apps/workflowengine/l10n/zh_CN.json4
33 files changed, 253 insertions, 336 deletions
diff --git a/apps/comments/l10n/nb.js b/apps/comments/l10n/nb.js
index dcfb4102174..766a1367f11 100644
--- a/apps/comments/l10n/nb.js
+++ b/apps/comments/l10n/nb.js
@@ -29,6 +29,7 @@ OC.L10N.register(
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Du ble nevnte på \"{file}\", i en kommentar av en bruker som siden har blitt slettet",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s nevnte deg i en kommentar på “%2$s”",
"{user} mentioned you in a comment on “{file}”" : "{user} nevnte deg i en kommentar på “{file}”",
+ "Files app plugin to add comments to files" : "Program tillegg til filer for å legge til kommentarer for en fil",
"Unknown user" : "Ukjent bruker",
"A (now) deleted user mentioned you in a comment on “%s”" : "En (now) slettet bruker nevnte deg i en kommentar til “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "A (now) slettet bruker nevnte deg i en kommentar til “{file}”"
diff --git a/apps/comments/l10n/nb.json b/apps/comments/l10n/nb.json
index 26a3bd76d51..1902da75024 100644
--- a/apps/comments/l10n/nb.json
+++ b/apps/comments/l10n/nb.json
@@ -27,6 +27,7 @@
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Du ble nevnte på \"{file}\", i en kommentar av en bruker som siden har blitt slettet",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s nevnte deg i en kommentar på “%2$s”",
"{user} mentioned you in a comment on “{file}”" : "{user} nevnte deg i en kommentar på “{file}”",
+ "Files app plugin to add comments to files" : "Program tillegg til filer for å legge til kommentarer for en fil",
"Unknown user" : "Ukjent bruker",
"A (now) deleted user mentioned you in a comment on “%s”" : "En (now) slettet bruker nevnte deg i en kommentar til “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "A (now) slettet bruker nevnte deg i en kommentar til “{file}”"
diff --git a/apps/dav/l10n/fr.js b/apps/dav/l10n/fr.js
index acc1bcc0b0a..5ba33435d9f 100644
--- a/apps/dav/l10n/fr.js
+++ b/apps/dav/l10n/fr.js
@@ -70,6 +70,7 @@ OC.L10N.register(
"Tentative" : "Provisoire",
"Save" : "Sauvegarder",
"Your attendance was updated successfully." : "Votre présence a été mise à jour avec succès.",
+ "Calendar server" : "Serveur de calendrier",
"Send invitations to attendees" : "Envoyer des invitations aux participants",
"Please make sure to properly set up the email settings above." : "Merci de vérifier d'avoir correctement configuré les paramètres de courriel ci-dessus",
"Automatically generate a birthday calendar" : "Générer automatiquement un agenda d'anniversaire",
diff --git a/apps/dav/l10n/fr.json b/apps/dav/l10n/fr.json
index cdd00da03cf..3079607e595 100644
--- a/apps/dav/l10n/fr.json
+++ b/apps/dav/l10n/fr.json
@@ -68,6 +68,7 @@
"Tentative" : "Provisoire",
"Save" : "Sauvegarder",
"Your attendance was updated successfully." : "Votre présence a été mise à jour avec succès.",
+ "Calendar server" : "Serveur de calendrier",
"Send invitations to attendees" : "Envoyer des invitations aux participants",
"Please make sure to properly set up the email settings above." : "Merci de vérifier d'avoir correctement configuré les paramètres de courriel ci-dessus",
"Automatically generate a birthday calendar" : "Générer automatiquement un agenda d'anniversaire",
diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php
index de46dfeb244..df10b62fc5b 100644
--- a/apps/dav/lib/CalDAV/CalDavBackend.php
+++ b/apps/dav/lib/CalDAV/CalDavBackend.php
@@ -1986,7 +1986,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
$query->insert('schedulingobjects')
->values([
'principaluri' => $query->createNamedParameter($principalUri),
- 'calendardata' => $query->createNamedParameter($objectData),
+ 'calendardata' => $query->createNamedParameter($objectData, IQueryBuilder::PARAM_LOB),
'uri' => $query->createNamedParameter($objectUri),
'lastmodified' => $query->createNamedParameter(time()),
'etag' => $query->createNamedParameter(md5($objectData)),
diff --git a/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php b/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php
index fd048240467..26439df4a01 100644
--- a/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php
+++ b/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php
@@ -562,8 +562,84 @@ EOD;
$this->assertCount(0, $subscriptions);
}
- public function testScheduling() {
- $this->backend->createSchedulingObject(self::UNIT_TEST_USER, 'Sample Schedule', '');
+ public function providesSchedulingData() {
+ $data =<<<EOS
+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Sabre//Sabre VObject 3.5.0//EN
+CALSCALE:GREGORIAN
+METHOD:REQUEST
+BEGIN:VTIMEZONE
+TZID:Europe/Warsaw
+BEGIN:DAYLIGHT
+TZOFFSETFROM:+0100
+TZOFFSETTO:+0200
+TZNAME:CEST
+DTSTART:19700329T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
+END:DAYLIGHT
+BEGIN:STANDARD
+TZOFFSETFROM:+0200
+TZOFFSETTO:+0100
+TZNAME:CET
+DTSTART:19701025T030000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+CREATED:20170320T131655Z
+LAST-MODIFIED:20170320T135019Z
+DTSTAMP:20170320T135019Z
+UID:7e908a6d-4c4e-48d7-bd62-59ab80fbf1a3
+SUMMARY:TEST Z pg_escape_bytea
+ORGANIZER;RSVP=TRUE;PARTSTAT=ACCEPTED;ROLE=CHAIR:mailto:k.klimczak@gromar.e
+ u
+ATTENDEE;RSVP=TRUE;CN=Zuzanna Leszek;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICI
+ PANT:mailto:z.leszek@gromar.eu
+ATTENDEE;RSVP=TRUE;CN=Marcin Pisarski;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTIC
+ IPANT:mailto:m.pisarski@gromar.eu
+ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:klimcz
+ ak.k@gmail.com
+ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:k_klim
+ czak@tlen.pl
+DTSTART;TZID=Europe/Warsaw:20170325T150000
+DTEND;TZID=Europe/Warsaw:20170325T160000
+TRANSP:OPAQUE
+DESCRIPTION:Magiczna treść uzyskana za pomocą magicznego proszku.\n\nę
+ żźćńłóÓŻŹĆŁĘ€śśśŚŚ\n \,\,))))))))\;\,\n
+ __))))))))))))))\,\n \\|/ -\\(((((''''((((((((.\n -*-==///
+ ///(('' . `))))))\,\n /|\\ ))| o \;-. '(((((
+ \,(\,\n ( `| / ) \;))))'
+ \,_))^\;(~\n | | | \,))((((_ _____-
+ -----~~~-. %\,\;(\;(>'\;'~\n o_)\; \; )))(((` ~---
+ ~ `:: \\ %%~~)(v\;(`('~\n \; ''''````
+ `: `:::|\\\,__\,%% )\;`'\; ~\n | _
+ ) / `:|`----' `-'\n ______/\\/~ |
+ / /\n /~\;\;.____/\;\;' / ___--\
+ ,-( `\;\;\;/\n / // _\;______\;'------~~~~~ /\;\;/\\ /\n
+ // | | / \; \\\;\;\,\\\n (<_ | \;
+ /'\,/-----' _>\n \\_| ||_
+ //~\;~~~~~~~~~\n `\\_| (\,~~ -Tua Xiong\n
+ \\~\\\n
+ ~~\n\n
+SEQUENCE:1
+X-MOZ-GENERATION:1
+END:VEVENT
+END:VCALENDAR
+EOS;
+
+ return [
+ 'no data' => [''],
+ 'failing on postgres' => [$data]
+ ];
+ }
+
+ /**
+ * @dataProvider providesSchedulingData
+ * @param $objectData
+ */
+ public function testScheduling($objectData) {
+ $this->backend->createSchedulingObject(self::UNIT_TEST_USER, 'Sample Schedule', $objectData);
$sos = $this->backend->getSchedulingObjects(self::UNIT_TEST_USER);
$this->assertCount(1, $sos);
diff --git a/apps/encryption/lib/Crypto/Encryption.php b/apps/encryption/lib/Crypto/Encryption.php
index bd75e4ae10c..3f6001cab74 100644
--- a/apps/encryption/lib/Crypto/Encryption.php
+++ b/apps/encryption/lib/Crypto/Encryption.php
@@ -254,7 +254,6 @@ class Encryption implements IEncryptionModule {
public function end($path, $position = 0) {
$result = '';
if ($this->isWriteOperation) {
- $this->keyManager->setVersion($path, $this->version + 1, new View());
// in case of a part file we remember the new signature versions
// the version will be set later on update.
// This way we make sure that other apps listening to the pre-hooks
diff --git a/apps/federation/lib/SyncJob.php b/apps/federation/lib/SyncJob.php
index 6eaaf13944d..9709f5ca29d 100644
--- a/apps/federation/lib/SyncJob.php
+++ b/apps/federation/lib/SyncJob.php
@@ -50,7 +50,7 @@ class SyncJob extends TimedJob {
if ($ex instanceof \Exception) {
$this->logger->logException($ex, [
'message' => "Error while syncing $url.",
- 'level' => ILogger::ERROR,
+ 'level' => ILogger::INFO,
'app' => 'fed-sync',
]);
}
diff --git a/apps/files/appinfo/routes.php b/apps/files/appinfo/routes.php
index 44663d185d1..1147bdf9c4f 100644
--- a/apps/files/appinfo/routes.php
+++ b/apps/files/appinfo/routes.php
@@ -81,56 +81,6 @@ $application->registerRoutes(
'url' => '/api/v1/toggleShowFolder/{key}',
'verb' => 'POST'
],
- [
- 'name' => 'API#getShowQuickaccessSettings',
- 'url' => '/api/v1/quickaccess/showsettings',
- 'verb' => 'GET',
- ],
- [
- 'name' => 'API#setShowQuickaccessSettings',
- 'url' => '/api/v1/quickaccess/set/showsettings',
- 'verb' => 'GET',
- ],
- [
- 'name' => 'API#setSortingStrategy',
- 'url' => '/api/v1/quickaccess/set/SortingStrategy',
- 'verb' => 'GET',
- ],
- [
- 'name' => 'API#setReverseQuickaccess',
- 'url' => '/api/v1/quickaccess/set/ReverseList',
- 'verb' => 'GET',
- ],
- [
- 'name' => 'API#getSortingStrategy',
- 'url' => '/api/v1/quickaccess/get/SortingStrategy',
- 'verb' => 'GET',
- ],
- [
- 'name' => 'API#getReverseQuickaccess',
- 'url' => '/api/v1/quickaccess/get/ReverseList',
- 'verb' => 'GET',
- ],
- [
- 'name' => 'API#getFavoritesFolder',
- 'url' => '/api/v1/quickaccess/get/FavoriteFolders/',
- 'verb' => 'GET'
- ],
- [
- 'name' => 'API#setSortingOrder',
- 'url' => '/api/v1/quickaccess/set/CustomSortingOrder',
- 'verb' => 'GET',
- ],
- [
- 'name' => 'API#getSortingOrder',
- 'url' => '/api/v1/quickaccess/get/CustomSortingOrder',
- 'verb' => 'GET',
- ],
- [
- 'name' => 'API#getNodeType',
- 'url' => '/api/v1/quickaccess/get/NodeType',
- 'verb' => 'GET',
- ],
]
]
);
diff --git a/apps/files/js/navigation.js b/apps/files/js/navigation.js
index 8ce976a6f53..7a89159c1f0 100644
--- a/apps/files/js/navigation.js
+++ b/apps/files/js/navigation.js
@@ -40,18 +40,6 @@
$currentContent: null,
/**
- * Strategy by which the quickaccesslist is sorted
- *
- * Possible Strategies:
- * customorder
- * datemodified
- * date
- * alphabet
- *
- */
- $sortingStrategy: 'alphabet',
-
- /**
* Key for the quick-acces-list
*/
$quickAccessListKey: 'sublist-favorites',
@@ -67,12 +55,7 @@
this.$currentContent = null;
this._setupEvents();
- var scope=this;
- $.get(OC.generateUrl("/apps/files/api/v1/quickaccess/get/SortingStrategy"), function (data, status) {
- scope.$sortingStrategy=data;
- scope.setInitialQuickaccessSettings();
- });
-
+ this.setInitialQuickaccessSettings();
},
/**
@@ -198,56 +181,12 @@
* Sort initially as setup of sidebar for QuickAccess
*/
setInitialQuickaccessSettings: function () {
-
- var quickAccesKey = this.$quickAccessListKey;
- var list = document.getElementById(quickAccesKey).getElementsByTagName('li');
-
- var sort = true;
- var reverse = false;
- if (this.$sortingStrategy === 'datemodified') {
- sort = false;
- reverse = false;
-
- var scope = this;
- $.get(OC.generateUrl("/apps/files/api/v1/quickaccess/get/FavoriteFolders/"), function (data, status) {
- for (var i = 0; i < data.favoriteFolders.length; i++) {
- for (var j = 0; j < list.length; j++) {
- if (scope.getCompareValue(list, j, 'alphabet').toLowerCase() === data.favoriteFolders[i].name.toLowerCase()) {
- list[j].setAttribute("mtime", data.favoriteFolders[i].mtime);
- }
- }
- }
- scope.QuickSort(list, 0, list.length - 1);
- scope.reverse(list);
- });
-
- } else if (this.$sortingStrategy === 'alphabet') {
- sort = true;
- } else if (this.$sortingStrategy === 'date') {
- sort = true;
- } else if (this.$sortingStrategy === 'customorder') {
- var scope = this;
- $.get(OC.generateUrl("/apps/files/api/v1/quickaccess/get/CustomSortingOrder"), function (data, status) {
- var ordering = JSON.parse(data);
- for (var i = 0; i < ordering.length; i++) {
- for (var j = 0; j < list.length; j++) {
- if (scope.getCompareValue(list, j, 'alphabet').toLowerCase() === ordering[i].name.toLowerCase()) {
- list[j].setAttribute("folderPosition", ordering[i].id);
- }
- }
- }
- scope.QuickSort(list, 0, list.length - 1);
- });
- sort = false;
- }
-
- if (sort) {
+ var quickAccessKey = this.$quickAccessListKey;
+ var quickAccessMenu = document.getElementById(quickAccessKey)
+ if (quickAccessMenu) {
+ var list = quickAccessMenu.getElementsByTagName('li');
this.QuickSort(list, 0, list.length - 1);
}
- if (reverse) {
- this.reverse(list);
- }
-
},
/**
@@ -296,21 +235,7 @@
* This method allows easy access to the element which is sorted by.
*/
getCompareValue: function (nodes, int, strategy) {
-
- if ((typeof strategy === 'undefined')) {
- strategy = this.$sortingStrategy;
- }
-
- if (strategy === 'alphabet') {
return nodes[int].getElementsByTagName('a')[0].innerHTML.toLowerCase();
- } else if (strategy === 'date') {
- return nodes[int].getAttribute('folderPosition').toLowerCase();
- } else if (strategy === 'datemodified') {
- return nodes[int].getAttribute('mtime');
- } else if (strategy === 'customorder') {
- return nodes[int].getAttribute('folderPosition');
- }
- return nodes[int].getElementsByTagName('a')[0].innerHTML.toLowerCase();
},
/**
@@ -320,16 +245,6 @@
swap: function (list, j, i) {
list[i].before(list[j]);
list[j].before(list[i]);
- },
-
- /**
- * Reverse QuickAccess-List
- */
- reverse: function (list) {
- var len = list.length - 1;
- for (var i = 0; i < len / 2; i++) {
- this.swap(list, i, len - i);
- }
}
};
diff --git a/apps/files/l10n/sq.js b/apps/files/l10n/sq.js
index 5322d81eed6..7adc990703d 100644
--- a/apps/files/l10n/sq.js
+++ b/apps/files/l10n/sq.js
@@ -126,9 +126,11 @@ OC.L10N.register(
"Files and folders you mark as favorite will show up here" : "Këtu do të duken kartelat dhe dosjet që i shënoni si të parapëlqyera",
"Tags" : "Etiketë",
"Deleted files" : "Skedar të fshirë",
+ "Shares" : "Shpërndarjet",
"Shared with others" : "E ndarë me të tjerët",
"Shared with you" : "E ndarë me ju",
"Shared by link" : "E ndarë me lidhje",
+ "Deleted shares" : "Fshi shpërndarjet",
"Text file" : "Kartelë tekst",
"New text file.txt" : "Kartelë e re file.txt"
},
diff --git a/apps/files/l10n/sq.json b/apps/files/l10n/sq.json
index 7c79b3b62d0..9d08c1174bb 100644
--- a/apps/files/l10n/sq.json
+++ b/apps/files/l10n/sq.json
@@ -124,9 +124,11 @@
"Files and folders you mark as favorite will show up here" : "Këtu do të duken kartelat dhe dosjet që i shënoni si të parapëlqyera",
"Tags" : "Etiketë",
"Deleted files" : "Skedar të fshirë",
+ "Shares" : "Shpërndarjet",
"Shared with others" : "E ndarë me të tjerët",
"Shared with you" : "E ndarë me ju",
"Shared by link" : "E ndarë me lidhje",
+ "Deleted shares" : "Fshi shpërndarjet",
"Text file" : "Kartelë tekst",
"New text file.txt" : "Kartelë e re file.txt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/files/lib/Controller/ApiController.php b/apps/files/lib/Controller/ApiController.php
index fd63d545151..d71b998ffb1 100644
--- a/apps/files/lib/Controller/ApiController.php
+++ b/apps/files/lib/Controller/ApiController.php
@@ -200,30 +200,6 @@ class ApiController extends Controller {
}
/**
- * Returns a list of favorites modifed folder.
- *
- * @NoAdminRequired
- *
- * @return DataResponse
- */
- public function getFavoritesFolder() {
- $nodes = $this->userFolder->searchByTag('_$!<Favorite>!$_', $this->userSession->getUser()->getUID());
-
- $favorites = [];
- $i = 0;
- foreach ($nodes as &$node) {
-
- $favorites[$i]['id'] = $node->getId();
- $favorites[$i]['name'] = $node->getName();
- $favorites[$i]['path'] = $node->getInternalPath();
- $favorites[$i]['mtime'] = $node->getMTime();
- $i++;
- }
-
- return new DataResponse(['favoriteFolders' => $favorites]);
- }
-
- /**
* Return a list of share types for outgoing shares
*
* @param Node $node file node
@@ -315,120 +291,5 @@ class ApiController extends Controller {
return $response;
}
- /**
- * quickaccess-sorting-strategy
- *
- * @NoAdminRequired
- *
- * @param string $strategy
- * @return Response
- */
- public function setSortingStrategy($strategy) {
- $this->config->setUserValue($this->userSession->getUser()->getUID(), 'files', 'quickaccess_sorting_strategy', (String)$strategy);
- return new Response();
- }
-
- /**
- * Get reverse-state for quickaccess-list
- *
- * @NoAdminRequired
- *
- * @return String
- */
- public function getSortingStrategy() {
- return $this->config->getUserValue($this->userSession->getUser()->getUID(), 'files', 'quickaccess_sorting_strategy', 'alphabet');
- }
-
- /**
- * Toggle for reverse quickaccess-list
- *
- * @NoAdminRequired
- *
- * @param bool $reverse
- * @return Response
- */
- public function setReverseQuickaccess($reverse) {
- $this->config->setUserValue($this->userSession->getUser()->getUID(), 'files', 'quickaccess_reverse_list', (int)$reverse);
- return new Response();
- }
-
- /**
- * Get reverse-state for quickaccess-list
- *
- * @NoAdminRequired
- *
- * @return bool
- */
- public function getReverseQuickaccess() {
- if ($this->config->getUserValue($this->userSession->getUser()->getUID(), 'files', 'quickaccess_reverse_list', false)) {
- return true;
- }
- return false;
- }
-
- /**
- * Set state for show sorting menu
- *
- * @NoAdminRequired
- *
- * @param bool $show
- * @return Response
- */
- public function setShowQuickaccessSettings($show) {
- $this->config->setUserValue($this->userSession->getUser()->getUID(), 'files', 'quickaccess_show_settings', (int)$show);
- return new Response();
- }
-
- /**
- * Get state for show sorting menu
- *
- * @NoAdminRequired
- *
- * @return bool
- */
- public function getShowQuickaccessSettings() {
- if ($this->config->getUserValue($this->userSession->getUser()->getUID(), 'files', 'quickaccess_show_settings', false)) {
- return true;
- }
- return false;
- }
-
- /**
- * Set sorting-order for custom sorting
- *
- * @NoAdminRequired
- *
- * @param String $order
- * @return Response
- */
- public function setSortingOrder($order) {
- $this->config->setUserValue($this->userSession->getUser()->getUID(), 'files', 'quickaccess_custom_sorting_order', (String)$order);
- return new Response();
- }
-
- /**
- * Get sorting-order for custom sorting
- *
- * @NoAdminRequired
- *
- * @return String
- */
- public function getSortingOrder() {
- return $this->config->getUserValue($this->userSession->getUser()->getUID(), 'files', 'quickaccess_custom_sorting_order', "");
- }
-
- /**
- * Get sorting-order for custom sorting
- *
- * @NoAdminRequired
- *
- * @param String
- * @return String
- */
- public function getNodeType($folderpath) {
- $node = $this->userFolder->get($folderpath);
- return $node->getType();
- }
-
}
diff --git a/apps/files_external/3rdparty/composer.json b/apps/files_external/3rdparty/composer.json
index 537159bbf66..caf87983c50 100644
--- a/apps/files_external/3rdparty/composer.json
+++ b/apps/files_external/3rdparty/composer.json
@@ -8,7 +8,7 @@
"classmap-authoritative": true
},
"require": {
- "icewind/streams": "0.5.2",
+ "icewind/streams": "0.6.1",
"icewind/smb": "3.0.0"
}
}
diff --git a/apps/files_external/3rdparty/composer.lock b/apps/files_external/3rdparty/composer.lock
index 7bfcdba3d2f..2339220ffbc 100644
--- a/apps/files_external/3rdparty/composer.lock
+++ b/apps/files_external/3rdparty/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "0235b6f1a4131c9312afef7a58f3a80e",
+ "content-hash": "1465c8a4b4139e514086d5803d90af2d",
"packages": [
{
"name": "icewind/smb",
@@ -49,16 +49,16 @@
},
{
"name": "icewind/streams",
- "version": "0.5.2",
+ "version": "0.6.1",
"source": {
"type": "git",
"url": "https://github.com/icewind1991/Streams.git",
- "reference": "6bfd2fdbd99319f5e010d0a684409189a562cb1e"
+ "reference": "0a78597117d8a02937ea05206f219294449fb06e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/icewind1991/Streams/zipball/6bfd2fdbd99319f5e010d0a684409189a562cb1e",
- "reference": "6bfd2fdbd99319f5e010d0a684409189a562cb1e",
+ "url": "https://api.github.com/repos/icewind1991/Streams/zipball/0a78597117d8a02937ea05206f219294449fb06e",
+ "reference": "0a78597117d8a02937ea05206f219294449fb06e",
"shasum": ""
},
"require": {
@@ -86,7 +86,7 @@
}
],
"description": "A set of generic stream wrappers",
- "time": "2016-12-02T14:21:23+00:00"
+ "time": "2018-04-24T09:07:38+00:00"
}
],
"packages-dev": [],
diff --git a/apps/files_external/3rdparty/composer/autoload_classmap.php b/apps/files_external/3rdparty/composer/autoload_classmap.php
index d2e658d9f61..6c5f86a5796 100644
--- a/apps/files_external/3rdparty/composer/autoload_classmap.php
+++ b/apps/files_external/3rdparty/composer/autoload_classmap.php
@@ -51,14 +51,6 @@ return array(
'Icewind\\SMB\\Native\\NativeWriteStream' => $vendorDir . '/icewind/smb/src/Native/NativeWriteStream.php',
'Icewind\\SMB\\ServerFactory' => $vendorDir . '/icewind/smb/src/ServerFactory.php',
'Icewind\\SMB\\System' => $vendorDir . '/icewind/smb/src/System.php',
- 'Icewind\\SMB\\Test\\AbstractShareTest' => $vendorDir . '/icewind/smb/tests/AbstractShareTest.php',
- 'Icewind\\SMB\\Test\\NativeShareTest' => $vendorDir . '/icewind/smb/tests/NativeShareTest.php',
- 'Icewind\\SMB\\Test\\NativeStreamTest' => $vendorDir . '/icewind/smb/tests/NativeStreamTest.php',
- 'Icewind\\SMB\\Test\\NotifyHandlerTest' => $vendorDir . '/icewind/smb/tests/NotifyHandlerTest.php',
- 'Icewind\\SMB\\Test\\ParserTest' => $vendorDir . '/icewind/smb/tests/ParserTest.php',
- 'Icewind\\SMB\\Test\\ServerTest' => $vendorDir . '/icewind/smb/tests/ServerTest.php',
- 'Icewind\\SMB\\Test\\ShareTest' => $vendorDir . '/icewind/smb/tests/ShareTest.php',
- 'Icewind\\SMB\\Test\\TestCase' => $vendorDir . '/icewind/smb/tests/TestCase.php',
'Icewind\\SMB\\TimeZoneProvider' => $vendorDir . '/icewind/smb/src/TimeZoneProvider.php',
'Icewind\\SMB\\Wrapped\\Connection' => $vendorDir . '/icewind/smb/src/Wrapped/Connection.php',
'Icewind\\SMB\\Wrapped\\ErrorCodes' => $vendorDir . '/icewind/smb/src/Wrapped/ErrorCodes.php',
@@ -69,6 +61,7 @@ return array(
'Icewind\\SMB\\Wrapped\\Server' => $vendorDir . '/icewind/smb/src/Wrapped/Server.php',
'Icewind\\SMB\\Wrapped\\Share' => $vendorDir . '/icewind/smb/src/Wrapped/Share.php',
'Icewind\\Streams\\CallbackWrapper' => $vendorDir . '/icewind/streams/src/CallbackWrapper.php',
+ 'Icewind\\Streams\\CountWrapper' => $vendorDir . '/icewind/streams/src/CountWrapper.php',
'Icewind\\Streams\\Directory' => $vendorDir . '/icewind/streams/src/Directory.php',
'Icewind\\Streams\\DirectoryFilter' => $vendorDir . '/icewind/streams/src/DirectoryFilter.php',
'Icewind\\Streams\\DirectoryWrapper' => $vendorDir . '/icewind/streams/src/DirectoryWrapper.php',
diff --git a/apps/files_external/3rdparty/composer/autoload_static.php b/apps/files_external/3rdparty/composer/autoload_static.php
index 3234d89e5b9..658c947c9c2 100644
--- a/apps/files_external/3rdparty/composer/autoload_static.php
+++ b/apps/files_external/3rdparty/composer/autoload_static.php
@@ -81,14 +81,6 @@ class ComposerStaticInit98fe9b281934250b3a93f69a5ce843b3
'Icewind\\SMB\\Native\\NativeWriteStream' => __DIR__ . '/..' . '/icewind/smb/src/Native/NativeWriteStream.php',
'Icewind\\SMB\\ServerFactory' => __DIR__ . '/..' . '/icewind/smb/src/ServerFactory.php',
'Icewind\\SMB\\System' => __DIR__ . '/..' . '/icewind/smb/src/System.php',
- 'Icewind\\SMB\\Test\\AbstractShareTest' => __DIR__ . '/..' . '/icewind/smb/tests/AbstractShareTest.php',
- 'Icewind\\SMB\\Test\\NativeShareTest' => __DIR__ . '/..' . '/icewind/smb/tests/NativeShareTest.php',
- 'Icewind\\SMB\\Test\\NativeStreamTest' => __DIR__ . '/..' . '/icewind/smb/tests/NativeStreamTest.php',
- 'Icewind\\SMB\\Test\\NotifyHandlerTest' => __DIR__ . '/..' . '/icewind/smb/tests/NotifyHandlerTest.php',
- 'Icewind\\SMB\\Test\\ParserTest' => __DIR__ . '/..' . '/icewind/smb/tests/ParserTest.php',
- 'Icewind\\SMB\\Test\\ServerTest' => __DIR__ . '/..' . '/icewind/smb/tests/ServerTest.php',
- 'Icewind\\SMB\\Test\\ShareTest' => __DIR__ . '/..' . '/icewind/smb/tests/ShareTest.php',
- 'Icewind\\SMB\\Test\\TestCase' => __DIR__ . '/..' . '/icewind/smb/tests/TestCase.php',
'Icewind\\SMB\\TimeZoneProvider' => __DIR__ . '/..' . '/icewind/smb/src/TimeZoneProvider.php',
'Icewind\\SMB\\Wrapped\\Connection' => __DIR__ . '/..' . '/icewind/smb/src/Wrapped/Connection.php',
'Icewind\\SMB\\Wrapped\\ErrorCodes' => __DIR__ . '/..' . '/icewind/smb/src/Wrapped/ErrorCodes.php',
@@ -99,6 +91,7 @@ class ComposerStaticInit98fe9b281934250b3a93f69a5ce843b3
'Icewind\\SMB\\Wrapped\\Server' => __DIR__ . '/..' . '/icewind/smb/src/Wrapped/Server.php',
'Icewind\\SMB\\Wrapped\\Share' => __DIR__ . '/..' . '/icewind/smb/src/Wrapped/Share.php',
'Icewind\\Streams\\CallbackWrapper' => __DIR__ . '/..' . '/icewind/streams/src/CallbackWrapper.php',
+ 'Icewind\\Streams\\CountWrapper' => __DIR__ . '/..' . '/icewind/streams/src/CountWrapper.php',
'Icewind\\Streams\\Directory' => __DIR__ . '/..' . '/icewind/streams/src/Directory.php',
'Icewind\\Streams\\DirectoryFilter' => __DIR__ . '/..' . '/icewind/streams/src/DirectoryFilter.php',
'Icewind\\Streams\\DirectoryWrapper' => __DIR__ . '/..' . '/icewind/streams/src/DirectoryWrapper.php',
diff --git a/apps/files_external/3rdparty/composer/installed.json b/apps/files_external/3rdparty/composer/installed.json
index 3b2870a13bf..707b876e588 100644
--- a/apps/files_external/3rdparty/composer/installed.json
+++ b/apps/files_external/3rdparty/composer/installed.json
@@ -44,17 +44,17 @@
},
{
"name": "icewind/streams",
- "version": "0.5.2",
- "version_normalized": "0.5.2.0",
+ "version": "0.6.1",
+ "version_normalized": "0.6.1.0",
"source": {
"type": "git",
"url": "https://github.com/icewind1991/Streams.git",
- "reference": "6bfd2fdbd99319f5e010d0a684409189a562cb1e"
+ "reference": "0a78597117d8a02937ea05206f219294449fb06e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/icewind1991/Streams/zipball/6bfd2fdbd99319f5e010d0a684409189a562cb1e",
- "reference": "6bfd2fdbd99319f5e010d0a684409189a562cb1e",
+ "url": "https://api.github.com/repos/icewind1991/Streams/zipball/0a78597117d8a02937ea05206f219294449fb06e",
+ "reference": "0a78597117d8a02937ea05206f219294449fb06e",
"shasum": ""
},
"require": {
@@ -64,7 +64,7 @@
"phpunit/phpunit": "^4.8",
"satooshi/php-coveralls": "v1.0.0"
},
- "time": "2016-12-02T14:21:23+00:00",
+ "time": "2018-04-24T09:07:38+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
diff --git a/apps/files_external/3rdparty/icewind/streams/.travis.yml b/apps/files_external/3rdparty/icewind/streams/.travis.yml
index d2e1afaad67..68efcd2c744 100644
--- a/apps/files_external/3rdparty/icewind/streams/.travis.yml
+++ b/apps/files_external/3rdparty/icewind/streams/.travis.yml
@@ -4,11 +4,8 @@ php:
- 5.5
- 5.6
- 7.0
- - hhvm
-
-matrix:
- allow_failures:
- - php: hhvm # due to facebook/hhvm#3321
+ - 7.1
+ - 7.2
env:
global:
diff --git a/apps/files_external/3rdparty/icewind/streams/README.md b/apps/files_external/3rdparty/icewind/streams/README.md
index ca13db28e44..88ab2dd92a3 100644
--- a/apps/files_external/3rdparty/icewind/streams/README.md
+++ b/apps/files_external/3rdparty/icewind/streams/README.md
@@ -1,4 +1,4 @@
-#Streams#
+# Streams #
[![Build Status](https://travis-ci.org/icewind1991/Streams.svg?branch=master)](https://travis-ci.org/icewind1991/Streams)
[![Coverage Status](https://img.shields.io/coveralls/icewind1991/Streams.svg)](https://coveralls.io/r/icewind1991/Streams?branch=master)
@@ -6,7 +6,7 @@
Generic stream wrappers for php.
-##CallBackWrapper##
+## CallBackWrapper ##
A `CallBackWrapper` can be used to register callbacks on read, write and closing of the stream,
it wraps an existing stream and can thus be used for any stream in php
diff --git a/apps/files_external/3rdparty/icewind/streams/src/CountWrapper.php b/apps/files_external/3rdparty/icewind/streams/src/CountWrapper.php
new file mode 100644
index 00000000000..8b86ab9187c
--- /dev/null
+++ b/apps/files_external/3rdparty/icewind/streams/src/CountWrapper.php
@@ -0,0 +1,106 @@
+<?php
+/**
+ * @copyright Copyright (c) 2018 Robin Appelman <robin@icewind.nl>
+ *
+ * @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 Icewind\Streams;
+
+/**
+ * Wrapper that counts the amount of data read and written
+ *
+ * The following options should be passed in the context when opening the stream
+ * [
+ * 'callback' => [
+ * 'source' => resource
+ * 'callback' => function($readCount, $writeCount){}
+ * ]
+ * ]
+ *
+ * The callback will be called when the stream is closed
+ */
+class CountWrapper extends Wrapper {
+ /**
+ * @var int
+ */
+ protected $readCount = 0;
+
+ /**
+ * @var int
+ */
+ protected $writeCount = 0;
+
+ /**
+ * @var callable
+ */
+ protected $callback;
+
+ /**
+ * Wraps a stream with the provided callbacks
+ *
+ * @param resource $source
+ * @param callable $callback
+ * @return resource
+ *
+ * @throws \BadMethodCallException
+ */
+ public static function wrap($source, $callback) {
+ if (!is_callable($callback)) {
+ throw new \InvalidArgumentException('Invalid or missing callback');
+ }
+ $context = stream_context_create(array(
+ 'count' => array(
+ 'source' => $source,
+ 'callback' => $callback
+ )
+ ));
+ return Wrapper::wrapSource($source, $context, 'callback', '\Icewind\Streams\CountWrapper');
+ }
+
+ protected function open() {
+ $context = $this->loadContext('count');
+ $this->callback = $context['callback'];
+ return true;
+ }
+
+ public function dir_opendir($path, $options) {
+ return $this->open();
+ }
+
+ public function stream_open($path, $mode, $options, &$opened_path) {
+ return $this->open();
+ }
+
+ public function stream_read($count) {
+ $result = parent::stream_read($count);
+ $this->readCount += strlen($result);
+ return $result;
+ }
+
+ public function stream_write($data) {
+ $result = parent::stream_write($data);
+ $this->writeCount += strlen($data);
+ return $result;
+ }
+
+ public function stream_close() {
+ $result = parent::stream_close();
+ call_user_func($this->callback, $this->readCount, $this->writeCount);
+ return $result;
+ }
+}
diff --git a/apps/files_external/3rdparty/icewind/streams/src/Wrapper.php b/apps/files_external/3rdparty/icewind/streams/src/Wrapper.php
index 8e52eff9a08..babd2c1a0b3 100644
--- a/apps/files_external/3rdparty/icewind/streams/src/Wrapper.php
+++ b/apps/files_external/3rdparty/icewind/streams/src/Wrapper.php
@@ -26,12 +26,15 @@ abstract class Wrapper implements File, Directory {
protected $source;
protected static function wrapSource($source, $context, $protocol, $class) {
+ if (!is_resource($source)) {
+ throw new \BadMethodCallException();
+ }
try {
stream_wrapper_register($protocol, $class);
- if (@rewinddir($source) === false) {
- $wrapped = fopen($protocol . '://', 'r+', false, $context);
- } else {
+ if (self::isDirectoryHandle($source)) {
$wrapped = opendir($protocol . '://', $context);
+ } else {
+ $wrapped = fopen($protocol . '://', 'r+', false, $context);
}
} catch (\BadMethodCallException $e) {
stream_wrapper_unregister($protocol);
@@ -41,6 +44,11 @@ abstract class Wrapper implements File, Directory {
return $wrapped;
}
+ protected static function isDirectoryHandle($resource) {
+ $meta = stream_get_meta_data($resource);
+ return $meta['stream_type'] == 'dir';
+ }
+
/**
* Load the source from the stream context and return the context options
*
diff --git a/apps/files_external/l10n/fr.js b/apps/files_external/l10n/fr.js
index e6d2cd5da7b..cbf4c75807a 100644
--- a/apps/files_external/l10n/fr.js
+++ b/apps/files_external/l10n/fr.js
@@ -118,6 +118,7 @@ OC.L10N.register(
"Never" : "Jamais",
"Once every direct access" : "Une fois à chaque accès direct",
"Read only" : "Lecture seule",
+ "External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices. You may also allow users to mount their own external storage services." : "Le stockage externe vous permet de monter des périphériques et services externes en tant que périphériques de stockage secondaires sous Nextcloud. Vous pouvez aussi autoriser les utilisateurs à monter leurs propres services de stockage externes.",
"Folder name" : "Nom du dossier",
"External storage" : "Stockage externe",
"Authentication" : "Authentification",
@@ -127,6 +128,7 @@ OC.L10N.register(
"Add storage" : "Ajouter un support de stockage",
"Advanced settings" : "Paramètres avancés",
"Allow users to mount external storage" : "Autoriser les utilisateurs à monter des espaces de stockage externes",
+ "Global credentials can be used to authenticate with multiple external storages that have the same credentials." : "Les identifiants globaux peuvent être utilisés pour s'authentifier auprès de multiples stockages externes qui ont les mêmes identifiants.",
"Fetching request tokens failed. Verify that your app key and secret are correct." : "L'obtention des jetons de requête a échoué. Vérifiez que votre clé d'application et votre mot de passe sont corrects.",
"Fetching access tokens failed. Verify that your app key and secret are correct." : "L'obtention des jetons d'accès a échoué. Vérifiez que votre clé d'application et votre mot de passe sont corrects.",
"Step 1 failed. Exception: %s" : "L’étape 1 a échoué. Exception : %s",
diff --git a/apps/files_external/l10n/fr.json b/apps/files_external/l10n/fr.json
index 787cc7d0817..3230f4c3d47 100644
--- a/apps/files_external/l10n/fr.json
+++ b/apps/files_external/l10n/fr.json
@@ -116,6 +116,7 @@
"Never" : "Jamais",
"Once every direct access" : "Une fois à chaque accès direct",
"Read only" : "Lecture seule",
+ "External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices. You may also allow users to mount their own external storage services." : "Le stockage externe vous permet de monter des périphériques et services externes en tant que périphériques de stockage secondaires sous Nextcloud. Vous pouvez aussi autoriser les utilisateurs à monter leurs propres services de stockage externes.",
"Folder name" : "Nom du dossier",
"External storage" : "Stockage externe",
"Authentication" : "Authentification",
@@ -125,6 +126,7 @@
"Add storage" : "Ajouter un support de stockage",
"Advanced settings" : "Paramètres avancés",
"Allow users to mount external storage" : "Autoriser les utilisateurs à monter des espaces de stockage externes",
+ "Global credentials can be used to authenticate with multiple external storages that have the same credentials." : "Les identifiants globaux peuvent être utilisés pour s'authentifier auprès de multiples stockages externes qui ont les mêmes identifiants.",
"Fetching request tokens failed. Verify that your app key and secret are correct." : "L'obtention des jetons de requête a échoué. Vérifiez que votre clé d'application et votre mot de passe sont corrects.",
"Fetching access tokens failed. Verify that your app key and secret are correct." : "L'obtention des jetons d'accès a échoué. Vérifiez que votre clé d'application et votre mot de passe sont corrects.",
"Step 1 failed. Exception: %s" : "L’étape 1 a échoué. Exception : %s",
diff --git a/apps/files_sharing/l10n/nb.js b/apps/files_sharing/l10n/nb.js
index 7631cbbf496..f7d033ab9c7 100644
--- a/apps/files_sharing/l10n/nb.js
+++ b/apps/files_sharing/l10n/nb.js
@@ -4,6 +4,7 @@ OC.L10N.register(
"Shared with others" : "Delt med andre",
"Shared with you" : "Delt med deg",
"Shared by link" : "Delt med lenke",
+ "Shares" : "Delinger",
"Nothing shared with you yet" : "Ingenting er delt med deg enda",
"Files and folders others share with you will show up here" : "Filer og mapper som andre deler med deg vil bli vist her",
"Nothing shared yet" : "Ingenting er delt ennå",
diff --git a/apps/files_sharing/l10n/nb.json b/apps/files_sharing/l10n/nb.json
index bdb61d70640..55be7c7da25 100644
--- a/apps/files_sharing/l10n/nb.json
+++ b/apps/files_sharing/l10n/nb.json
@@ -2,6 +2,7 @@
"Shared with others" : "Delt med andre",
"Shared with you" : "Delt med deg",
"Shared by link" : "Delt med lenke",
+ "Shares" : "Delinger",
"Nothing shared with you yet" : "Ingenting er delt med deg enda",
"Files and folders others share with you will show up here" : "Filer og mapper som andre deler med deg vil bli vist her",
"Nothing shared yet" : "Ingenting er delt ennå",
diff --git a/apps/twofactor_backupcodes/l10n/nb.js b/apps/twofactor_backupcodes/l10n/nb.js
index 42fc5031948..0ed8a5aed84 100644
--- a/apps/twofactor_backupcodes/l10n/nb.js
+++ b/apps/twofactor_backupcodes/l10n/nb.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"Backup code" : "Sikkerhetskopi-kode",
"Use backup code" : "Bruker sikkerhetskopi-kode",
"Two factor backup codes" : "Sikkerhetskopikoder for tofaktor",
+ "A two-factor auth backup codes provider" : "En leverandør av sikkerhetskopi av to-faktor koder",
"Second-factor backup codes" : "To-trinns bekreftelse sikkerhetskopi-koder"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/nb.json b/apps/twofactor_backupcodes/l10n/nb.json
index 25927e0f6e8..cdd99ff4d7b 100644
--- a/apps/twofactor_backupcodes/l10n/nb.json
+++ b/apps/twofactor_backupcodes/l10n/nb.json
@@ -12,6 +12,7 @@
"Backup code" : "Sikkerhetskopi-kode",
"Use backup code" : "Bruker sikkerhetskopi-kode",
"Two factor backup codes" : "Sikkerhetskopikoder for tofaktor",
+ "A two-factor auth backup codes provider" : "En leverandør av sikkerhetskopi av to-faktor koder",
"Second-factor backup codes" : "To-trinns bekreftelse sikkerhetskopi-koder"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/js/requestuseragentplugin.js b/apps/workflowengine/js/requestuseragentplugin.js
index 973f66cba31..881ea4b8ac7 100644
--- a/apps/workflowengine/js/requestuseragentplugin.js
+++ b/apps/workflowengine/js/requestuseragentplugin.js
@@ -44,7 +44,7 @@
var placeholder = 'Mozilla/5.0 User Agent';
- if (check['operator'] === 'matches' || check['operator'] === '!matches') {
+ if (check.operator === 'matches' || check.operator === '!matches') {
placeholder = '/^Mozilla\\/5\\.0 (.*)$/i';
}
@@ -56,8 +56,8 @@
placement: 'bottom'
});
- if (check['operator'] === 'matches' || check['operator'] === '!matches') {
- if (this._validateRegex(check['value'])) {
+ if (check.operator === 'matches' || check.operator === '!matches') {
+ if (this._validateRegex(check.value)) {
$(element).removeClass('invalid-input');
} else {
$(element).addClass('invalid-input');
@@ -70,21 +70,22 @@
children: [
{id: 'android', text: t('workflowengine', 'Android client')},
{id: 'ios', text: t('workflowengine', 'iOS client')},
- {id: 'desktop', text: t('workflowengine', 'Desktop client')}
+ {id: 'desktop', text: t('workflowengine', 'Desktop client')},
+ {id: 'mail', text: t('workflowengine', 'Thunderbird & Outlook addons')}
]
}
];
- if (this.predefinedValues.indexOf(check['value']) === -1) {
+ if (this.predefinedValues.indexOf(check.value) === -1) {
data.unshift({
- id: check['value'],
- text: check['value']
- })
+ id: check.value,
+ text: check.value
+ });
}
$(element).select2({
data: data,
createSearchChoice: function(term) {
- if (self.predefinedValues.indexOf(check['value']) === -1) {
+ if (self.predefinedValues.indexOf(check.value) === -1) {
return {
id: term,
text: term
diff --git a/apps/workflowengine/l10n/nb.js b/apps/workflowengine/l10n/nb.js
index 6849de50d51..368013b14fe 100644
--- a/apps/workflowengine/l10n/nb.js
+++ b/apps/workflowengine/l10n/nb.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"workflowengine",
{
+ "Group list is empty" : "Gruppeliste er tom",
"Unable to retrieve the group list" : "Kunne ikke hente gruppelisten",
"Saved" : "Lagret",
"Saving failed:" : "Lagring mislyktes:",
diff --git a/apps/workflowengine/l10n/nb.json b/apps/workflowengine/l10n/nb.json
index ba9186aca27..7c47afb956b 100644
--- a/apps/workflowengine/l10n/nb.json
+++ b/apps/workflowengine/l10n/nb.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Group list is empty" : "Gruppeliste er tom",
"Unable to retrieve the group list" : "Kunne ikke hente gruppelisten",
"Saved" : "Lagret",
"Saving failed:" : "Lagring mislyktes:",
diff --git a/apps/workflowengine/l10n/zh_CN.js b/apps/workflowengine/l10n/zh_CN.js
index a980ac4827c..1cc81c40faa 100644
--- a/apps/workflowengine/l10n/zh_CN.js
+++ b/apps/workflowengine/l10n/zh_CN.js
@@ -1,8 +1,8 @@
OC.L10N.register(
"workflowengine",
{
- "Group list is empty" : "分组列表为空",
- "Unable to retrieve the group list" : "无法获取用户分组列表",
+ "Group list is empty" : "用户群组列表空",
+ "Unable to retrieve the group list" : "无法获取用户群组列表",
"Saved" : "已保存",
"Saving failed:" : "保存失败:",
"File MIME type" : "文件MIME类型",
diff --git a/apps/workflowengine/l10n/zh_CN.json b/apps/workflowengine/l10n/zh_CN.json
index 98c3f231ab1..55c6ca16773 100644
--- a/apps/workflowengine/l10n/zh_CN.json
+++ b/apps/workflowengine/l10n/zh_CN.json
@@ -1,6 +1,6 @@
{ "translations": {
- "Group list is empty" : "分组列表为空",
- "Unable to retrieve the group list" : "无法获取用户分组列表",
+ "Group list is empty" : "用户群组列表空",
+ "Unable to retrieve the group list" : "无法获取用户群组列表",
"Saved" : "已保存",
"Saving failed:" : "保存失败:",
"File MIME type" : "文件MIME类型",