summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/files/src/components/BreadCrumbs.vue19
-rw-r--r--apps/files_sharing/lib/Controller/ShareAPIController.php5
-rw-r--r--apps/files_sharing/tests/ApiTest.php20
-rw-r--r--apps/files_sharing/tests/CapabilitiesTest.php4
-rw-r--r--apps/files_sharing/tests/Controller/ShareAPIControllerTest.php2
-rw-r--r--apps/settings/lib/Controller/AppSettingsController.php2
-rw-r--r--apps/settings/lib/Controller/UsersController.php2
-rw-r--r--apps/settings/tests/Controller/AppSettingsControllerTest.php4
8 files changed, 44 insertions, 14 deletions
diff --git a/apps/files/src/components/BreadCrumbs.vue b/apps/files/src/components/BreadCrumbs.vue
index 0975f1a6446..fe4fe2b9098 100644
--- a/apps/files/src/components/BreadCrumbs.vue
+++ b/apps/files/src/components/BreadCrumbs.vue
@@ -26,6 +26,7 @@
:aria-label="t('files', 'Current directory path')">
<!-- Current path sections -->
<NcBreadcrumb v-for="(section, index) in sections"
+ v-show="shouldShowBreadcrumbs"
:key="section.dir"
v-bind="section"
dir="auto"
@@ -60,6 +61,8 @@ import { defineComponent } from 'vue'
import { useFilesStore } from '../store/files.ts'
import { usePathsStore } from '../store/paths.ts'
+import { useUploaderStore } from '../store/uploader.ts'
+import filesListWidthMixin from '../mixins/filesListWidth.ts'
export default defineComponent({
name: 'BreadCrumbs',
@@ -78,12 +81,19 @@ export default defineComponent({
},
},
+ mixins: [
+ filesListWidthMixin,
+ ],
+
setup() {
const filesStore = useFilesStore()
const pathsStore = usePathsStore()
+ const uploaderStore = useUploaderStore()
+
return {
filesStore,
pathsStore,
+ uploaderStore,
}
},
@@ -113,6 +123,15 @@ export default defineComponent({
}
})
},
+
+ isUploadInProgress(): boolean {
+ return this.uploaderStore.queue.length !== 0
+ },
+
+ // Hide breadcrumbs if an upload is ongoing on arrow screens
+ shouldShowBreadcrumbs(): boolean {
+ return this.filesListWidth < 768 && !this.isUploadInProgress
+ },
},
methods: {
diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php
index 5bb1581b6ab..ea124382d9a 100644
--- a/apps/files_sharing/lib/Controller/ShareAPIController.php
+++ b/apps/files_sharing/lib/Controller/ShareAPIController.php
@@ -240,6 +240,7 @@ class ShareAPIController extends OCSController {
$expiration = $share->getExpirationDate();
if ($expiration !== null) {
+ $expiration->setTimezone($this->dateTimeZone->getTimeZone());
$result['expiration'] = $expiration->format('Y-m-d 00:00:00');
}
@@ -1696,12 +1697,14 @@ class ShareAPIController extends OCSController {
private function parseDate(string $expireDate): \DateTime {
try {
$date = new \DateTime(trim($expireDate, "\""), $this->dateTimeZone->getTimeZone());
+ // Make sure it expires at midnight in owner timezone
+ $date->setTime(0, 0, 0);
} catch (\Exception $e) {
throw new \Exception('Invalid date. Format must be YYYY-MM-DD');
}
+ // Use server timezone to store the date
$date->setTimezone(new \DateTimeZone(date_default_timezone_get()));
- $date->setTime(0, 0, 0);
return $date;
}
diff --git a/apps/files_sharing/tests/ApiTest.php b/apps/files_sharing/tests/ApiTest.php
index 7e916f621aa..98f87c96f31 100644
--- a/apps/files_sharing/tests/ApiTest.php
+++ b/apps/files_sharing/tests/ApiTest.php
@@ -124,6 +124,7 @@ class ApiTest extends TestCase {
$userStatusManager = $this->createMock(IUserStatusManager::class);
$previewManager = $this->createMock(IPreview::class);
$dateTimeZone = $this->createMock(IDateTimeZone::class);
+ $dateTimeZone->method('getTimeZone')->willReturn(new \DateTimeZone(date_default_timezone_get()));
return new ShareAPIController(
self::APP_NAME,
@@ -1060,10 +1061,9 @@ class ApiTest extends TestCase {
$config->setAppValue('core', 'shareapi_enforce_expire_date', 'yes');
$dateWithinRange = new \DateTime();
- $dateWithinRange->setTime(0, 0, 0);
- $dateWithinRange->add(new \DateInterval('P5D'));
+ $dateWithinRange->add(new \DateInterval('P6D'));
+
$dateOutOfRange = new \DateTime();
- $dateOutOfRange->setTime(0, 0, 0);
$dateOutOfRange->add(new \DateInterval('P8D'));
// update expire date to a valid value
@@ -1074,6 +1074,8 @@ class ApiTest extends TestCase {
$share1 = $this->shareManager->getShareById($share1->getFullId());
// date should be changed
+ $dateWithinRange->setTime(0, 0, 0);
+ $dateWithinRange->setTimezone(new \DateTimeZone(date_default_timezone_get()));
$this->assertEquals($dateWithinRange, $share1->getExpirationDate());
// update expire date to a value out of range
@@ -1287,12 +1289,14 @@ class ApiTest extends TestCase {
public function datesProvider() {
$date = new \DateTime();
+ $date->setTime(0, 0);
$date->add(new \DateInterval('P5D'));
+ $date->setTimezone(new \DateTimeZone(date_default_timezone_get()));
return [
- [$date->format('Y-m-d'), true],
+ [$date->format('Y-m-d H:i:s'), true],
['abc', false],
- [$date->format('Y-m-d') . 'xyz', false],
+ [$date->format('Y-m-d H:i:s') . 'xyz', false],
];
}
@@ -1318,7 +1322,7 @@ class ApiTest extends TestCase {
$data = $result->getData();
$this->assertTrue(is_string($data['token']));
- $this->assertEquals($date, substr($data['expiration'], 0, 10));
+ $this->assertEquals(substr($date, 0, 10), substr($data['expiration'], 0, 10));
// check for correct link
$url = \OC::$server->getURLGenerator()->getAbsoluteURL('/index.php/s/' . $data['token']);
@@ -1326,7 +1330,7 @@ class ApiTest extends TestCase {
$share = $this->shareManager->getShareById('ocinternal:'.$data['id']);
- $this->assertEquals($date, $share->getExpirationDate()->format('Y-m-d'));
+ $this->assertEquals($date, $share->getExpirationDate()->format('Y-m-d H:i:s'));
$this->shareManager->deleteShare($share);
}
@@ -1350,7 +1354,7 @@ class ApiTest extends TestCase {
$data = $result->getData();
$this->assertTrue(is_string($data['token']));
- $this->assertEquals($date->format('Y-m-d') . ' 00:00:00', $data['expiration']);
+ $this->assertEquals($date->format('Y-m-d 00:00:00'), $data['expiration']);
// check for correct link
$url = \OC::$server->getURLGenerator()->getAbsoluteURL('/index.php/s/' . $data['token']);
diff --git a/apps/files_sharing/tests/CapabilitiesTest.php b/apps/files_sharing/tests/CapabilitiesTest.php
index 1a3c416b10c..d7c3f218d9f 100644
--- a/apps/files_sharing/tests/CapabilitiesTest.php
+++ b/apps/files_sharing/tests/CapabilitiesTest.php
@@ -36,6 +36,7 @@ use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\IRootFolder;
use OCP\Files\Mount\IMountManager;
use OCP\IConfig;
+use OCP\IDateTimeZone;
use OCP\IGroupManager;
use OCP\IL10N;
use OCP\IURLGenerator;
@@ -96,7 +97,8 @@ class CapabilitiesTest extends \Test\TestCase {
$this->createMock(IEventDispatcher::class),
$this->createMock(IUserSession::class),
$this->createMock(KnownUserService::class),
- $this->createMock(ShareDisableChecker::class)
+ $this->createMock(ShareDisableChecker::class),
+ $this->createMock(IDateTimeZone::class),
);
$cap = new Capabilities($config, $shareManager);
$result = $this->getFilesSharingPart($cap->getCapabilities());
diff --git a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
index caa121932f9..731650d8aee 100644
--- a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
@@ -845,6 +845,7 @@ class ShareAPIControllerTest extends TestCase {
$this->groupManager->method('get')->willReturnMap([
['group', $group],
]);
+ $this->dateTimeZone->method('getTimezone')->willReturn(new \DateTimeZone('UTC'));
$d = $ocs->getShare($share->getId())->getData()[0];
@@ -4647,6 +4648,7 @@ class ShareAPIControllerTest extends TestCase {
$this->rootFolder->method('getUserFolder')
->with($this->currentUser)
->willReturnSelf();
+ $this->dateTimeZone->method('getTimezone')->willReturn(new \DateTimeZone('UTC'));
if (!$exception) {
$this->rootFolder->method('getById')
diff --git a/apps/settings/lib/Controller/AppSettingsController.php b/apps/settings/lib/Controller/AppSettingsController.php
index 6e1850001fb..407cd6d9b6a 100644
--- a/apps/settings/lib/Controller/AppSettingsController.php
+++ b/apps/settings/lib/Controller/AppSettingsController.php
@@ -97,7 +97,7 @@ class AppSettingsController extends Controller {
$policy = new ContentSecurityPolicy();
$policy->addAllowedImageDomain('https://usercontent.apps.nextcloud.com');
- $templateResponse = new TemplateResponse('settings', 'settings/empty', ['pageTitle' => $this->l10n->t('Apps')]);
+ $templateResponse = new TemplateResponse('settings', 'settings/empty', ['pageTitle' => $this->l10n->t('Settings')]);
$templateResponse->setContentSecurityPolicy($policy);
\OCP\Util::addStyle('settings', 'settings');
diff --git a/apps/settings/lib/Controller/UsersController.php b/apps/settings/lib/Controller/UsersController.php
index c74fbde6871..dbf86db20ac 100644
--- a/apps/settings/lib/Controller/UsersController.php
+++ b/apps/settings/lib/Controller/UsersController.php
@@ -237,7 +237,7 @@ class UsersController extends Controller {
\OCP\Util::addStyle('settings', 'settings');
\OCP\Util::addScript('settings', 'vue-settings-apps-users-management');
- return new TemplateResponse('settings', 'settings/empty', ['pageTitle' => $this->l10n->t('Users')]);
+ return new TemplateResponse('settings', 'settings/empty', ['pageTitle' => $this->l10n->t('Settings')]);
}
/**
diff --git a/apps/settings/tests/Controller/AppSettingsControllerTest.php b/apps/settings/tests/Controller/AppSettingsControllerTest.php
index fd22d176075..198e5fc4ec4 100644
--- a/apps/settings/tests/Controller/AppSettingsControllerTest.php
+++ b/apps/settings/tests/Controller/AppSettingsControllerTest.php
@@ -203,7 +203,7 @@ class AppSettingsControllerTest extends TestCase {
$expected = new TemplateResponse('settings',
'settings/empty',
[
- 'pageTitle' => 'Apps'
+ 'pageTitle' => 'Settings'
],
'user');
$expected->setContentSecurityPolicy($policy);
@@ -236,7 +236,7 @@ class AppSettingsControllerTest extends TestCase {
$expected = new TemplateResponse('settings',
'settings/empty',
[
- 'pageTitle' => 'Apps'
+ 'pageTitle' => 'Settings'
],
'user');
$expected->setContentSecurityPolicy($policy);