Browse Source

Merge pull request #18788 from nextcloud/fix/18782/translate-busy-in-caldav

Translate 'Busy' in CalDAV
tags/v19.0.0beta1
Christoph Wurst 4 years ago
parent
commit
3e338c9075
No account linked to committer's email address

+ 7
- 3
apps/dav/lib/CalDAV/Calendar.php View File

@@ -48,6 +48,9 @@ class Calendar extends \Sabre\CalDAV\Calendar implements IShareable {
/** @var IConfig */
private $config;

/** @var IL10N */
protected $l10n;

/**
* Calendar constructor.
*
@@ -68,6 +71,7 @@ class Calendar extends \Sabre\CalDAV\Calendar implements IShareable {
}

$this->config = $config;
$this->l10n = $l10n;
}

/**
@@ -289,7 +293,7 @@ class Calendar extends \Sabre\CalDAV\Calendar implements IShareable {

$obj['acl'] = $this->getChildACL();

return new CalendarObject($this->caldavBackend, $this->calendarInfo, $obj);
return new CalendarObject($this->caldavBackend, $this->l10n, $this->calendarInfo, $obj);

}

@@ -302,7 +306,7 @@ class Calendar extends \Sabre\CalDAV\Calendar implements IShareable {
continue;
}
$obj['acl'] = $this->getChildACL();
$children[] = new CalendarObject($this->caldavBackend, $this->calendarInfo, $obj);
$children[] = new CalendarObject($this->caldavBackend, $this->l10n, $this->calendarInfo, $obj);
}
return $children;

@@ -317,7 +321,7 @@ class Calendar extends \Sabre\CalDAV\Calendar implements IShareable {
continue;
}
$obj['acl'] = $this->getChildACL();
$children[] = new CalendarObject($this->caldavBackend, $this->calendarInfo, $obj);
$children[] = new CalendarObject($this->caldavBackend, $this->l10n, $this->calendarInfo, $obj);
}
return $children;


+ 13
- 3
apps/dav/lib/CalDAV/CalendarObject.php View File

@@ -2,9 +2,11 @@
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
* @copyright Copyright (c) 2017, Georg Ehrke
* @copyright Copyright (c) 2020, Gary Kim <gary@garykim.dev>
*
* @author Georg Ehrke <oc.list@georgehrke.com>
* @author Thomas Müller <thomas.mueller@tmit.eu>
* @author Gary Kim <gary@garykim.dev>
*
* @license AGPL-3.0
*
@@ -25,26 +27,34 @@
namespace OCA\DAV\CalDAV;


use OCP\IL10N;
use Sabre\VObject\Component;
use Sabre\VObject\Property;
use Sabre\VObject\Reader;

class CalendarObject extends \Sabre\CalDAV\CalendarObject {

/** @var IL10N */
protected $l10n;

/**
* CalendarObject constructor.
*
* @param CalDavBackend $caldavBackend
* @param IL10N $l10n
* @param array $calendarInfo
* @param array $objectData
*/
public function __construct(CalDavBackend $caldavBackend, array $calendarInfo,
public function __construct(CalDavBackend $caldavBackend, IL10N $l10n,
array $calendarInfo,
array $objectData) {
parent::__construct($caldavBackend, $calendarInfo, $objectData);

if ($this->isShared()) {
unset($this->objectData['size']);
}

$this->l10n = $l10n;
}

/**
@@ -84,7 +94,7 @@ class CalendarObject extends \Sabre\CalDAV\CalendarObject {
* @param Component\VCalendar $vObject
* @return void
*/
private static function createConfidentialObject(Component\VCalendar $vObject) {
private function createConfidentialObject(Component\VCalendar $vObject) {
/** @var Component $vElement */
$vElement = null;
if(isset($vObject->VEVENT)) {
@@ -109,7 +119,7 @@ class CalendarObject extends \Sabre\CalDAV\CalendarObject {
case 'UID':
break;
case 'SUMMARY':
$property->setValue('Busy');
$property->setValue($this->l10n->t('Busy'));
break;
default:
$vElement->__unset($property->name);

+ 3
- 3
apps/dav/lib/CalDAV/PublicCalendar.php View File

@@ -44,7 +44,7 @@ class PublicCalendar extends Calendar {
}
$obj['acl'] = $this->getChildACL();

return new PublicCalendarObject($this->caldavBackend, $this->calendarInfo, $obj);
return new PublicCalendarObject($this->caldavBackend, $this->l10n, $this->calendarInfo, $obj);
}

/**
@@ -58,7 +58,7 @@ class PublicCalendar extends Calendar {
continue;
}
$obj['acl'] = $this->getChildACL();
$children[] = new PublicCalendarObject($this->caldavBackend, $this->calendarInfo, $obj);
$children[] = new PublicCalendarObject($this->caldavBackend, $this->l10n, $this->calendarInfo, $obj);
}
return $children;
}
@@ -75,7 +75,7 @@ class PublicCalendar extends Calendar {
continue;
}
$obj['acl'] = $this->getChildACL();
$children[] = new PublicCalendarObject($this->caldavBackend, $this->calendarInfo, $obj);
$children[] = new PublicCalendarObject($this->caldavBackend, $this->l10n, $this->calendarInfo, $obj);
}
return $children;
}

+ 24
- 1
apps/dav/tests/unit/CalDAV/CalendarTest.php View File

@@ -1,12 +1,14 @@
<?php
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
* @copyright Copyright (c) 2020, Gary Kim <gary@garykim.dev>
*
* @author Georg Ehrke <oc.list@georgehrke.com>
* @author Joas Schilling <coding@schilljs.com>
* @author Morris Jobke <hey@morrisjobke.de>
* @author Roeland Jago Douma <roeland@famdouma.nl>
* @author Thomas Müller <thomas.mueller@tmit.eu>
* @author Gary Kim <gary@garykim.dev>
*
* @license AGPL-3.0
*
@@ -73,7 +75,7 @@ class CalendarTest extends TestCase {
$c->delete();
}

public function testDeleteFromGroup() {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);

@@ -427,6 +429,27 @@ EOD;
} else {
$this->assertEquals('Test Event', $event->VEVENT->SUMMARY->getValue());
}

// Test l10n
$l10n = $this->createMock(IL10N::class);
if ($isShared) {
$l10n->expects($this->once())
->method('t')
->with('Busy')
->willReturn("Translated busy");
} else {
$l10n->expects($this->never());
}
$c = new Calendar($backend, $calendarInfo, $l10n, $this->config);

$calData = $c->getChild('event-1')->get();
$event = Reader::read($calData);

if ($isShared) {
$this->assertEquals('Translated busy', $event->VEVENT->SUMMARY->getValue());
} else {
$this->assertEquals('Test Event', $event->VEVENT->SUMMARY->getValue());
}
}

public function providesConfidentialClassificationData() {

Loading…
Cancel
Save