Compare commits

...

15 Commits

Author SHA1 Message Date
Julius Härtl
5435200152 Bump version to 0.2.8
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2017-11-26 11:12:44 +01:00
Julius Härtl
37b1f8303c AppInfo: NC13 will be supported in >0.3.x only
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2017-11-17 08:59:51 +01:00
Julius Härtl
ffb6a2de9c Bump version to 0.2.7
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2017-11-10 14:05:26 +01:00
Julius Härtl
13332ecef6 Add default for injected value since out app container is not queried during update
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2017-11-10 14:04:20 +01:00
Julius Härtl
4f090c5b6e Bump version to 0.2.6
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2017-11-10 12:02:00 +01:00
Julius Härtl
4dd9ad2fa3 Card: Set dbtype when updating
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2017-11-10 09:29:37 +01:00
Julius Härtl
1c4cc0f963 Bump version to 0.2.5
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2017-11-08 19:49:28 +01:00
Julius Härtl
a5b566edd0 Fix mysql datetime format
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2017-10-10 17:52:18 +02:00
Julius Härtl
3bd32e6c0d Update appstore building excludes
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2017-10-08 11:51:37 +02:00
Julius Härtl
1633be74ca Bump release to 0.2.4
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2017-10-08 11:47:09 +02:00
Julius Härtl
1ede06fe45 Fix create card issue on NC12
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2017-10-08 11:45:17 +02:00
Julius Härtl
4e4d412717 Fix card action menu
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2017-10-03 15:26:30 +02:00
Julius Härtl
d590e9972b Bump version to 0.2.3
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2017-09-23 16:42:52 +02:00
Julius Härtl
91fb1533e6 Fix card positioning when draging them around
fixes #293

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2017-09-19 14:24:14 +02:00
Julius Härtl
04f17aad68 Acl: Fix wrong permission type being set
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2017-09-19 14:23:53 +02:00
10 changed files with 107 additions and 21 deletions

5
.gitignore vendored
View File

@@ -1,7 +1,10 @@
js/node_modules/* js/node_modules/*
js/vendor/ js/vendor/
build/
js/public/ js/public/
js/package-lock.json
build/
css/style.css css/style.css
tests/integration/vendor/ tests/integration/vendor/
tests/integration/composer.lock tests/integration/composer.lock
vendor/
*.lock

View File

@@ -1,9 +1,40 @@
# Changelog # Changelog
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
## 0.2.8 - 2017-11-26
### Fixed
- Drop support for NC 13, since that will only be supported by the next version of Deck
## 0.2.7 - 2017-11-10
### Fixed
- Fix bug that caused update to fail
## 0.2.6 - 2017-11-10
### Fixed
- Fix duedates not being updated with MySQL databases
## 0.2.5 - 2017-11-08
### Fixed
- Fix duedates not being saved with MySQL databases
## 0.2.4 - 2017-10-08
### Fixed
- Fix card action menu not being accessible
## 0.2.3 - 2017-09-23
### Fixed
- Fix delete stack button being not available
- Fix acl issues with PostgreSQL
## 0.2.2 - 2017-09-07 ## 0.2.2 - 2017-09-07
## Fixed ### Fixed
- Various frontend fixes - Various frontend fixes
- Fix sidebar drag issues - Fix sidebar drag issues
- Improvements for IE11 - Improvements for IE11

View File

@@ -51,6 +51,7 @@ appstore: clean-build build
--exclude="../$(app_name)/js/tests" \ --exclude="../$(app_name)/js/tests" \
--exclude="../$(app_name)/js/test" \ --exclude="../$(app_name)/js/test" \
--exclude="../$(app_name)/js/*.log" \ --exclude="../$(app_name)/js/*.log" \
--exclude="../$(app_name)/js/package-lock.json" \
--exclude="../$(app_name)/js/package.json" \ --exclude="../$(app_name)/js/package.json" \
--exclude="../$(app_name)/js/bower.json" \ --exclude="../$(app_name)/js/bower.json" \
--exclude="../$(app_name)/js/karma.*" \ --exclude="../$(app_name)/js/karma.*" \
@@ -60,7 +61,9 @@ appstore: clean-build build
--exclude="../$(app_name)/karma.*" \ --exclude="../$(app_name)/karma.*" \
--exclude="../$(app_name)/protractor\.*" \ --exclude="../$(app_name)/protractor\.*" \
--exclude="../$(app_name)/.*" \ --exclude="../$(app_name)/.*" \
--exclude="../$(app_name)/*.lock" \
--exclude="../$(app_name)/js/.*" \ --exclude="../$(app_name)/js/.*" \
--exclude="../$(app_name)/vendor" \
--exclude-vcs \ --exclude-vcs \
../$(app_name) ../$(app_name)

View File

@@ -16,7 +16,7 @@
💥 This is still alpha software: it may not be stable enough for production! 💥 This is still alpha software: it may not be stable enough for production!
</description> </description>
<version>0.2.2</version> <version>0.2.8</version>
<licence>agpl</licence> <licence>agpl</licence>
<author>Julius Härtl</author> <author>Julius Härtl</author>
<namespace>Deck</namespace> <namespace>Deck</namespace>
@@ -27,7 +27,7 @@
<screenshot>https://download.bitgrid.net/nextcloud/deck/screenshots/Deck_Board.png</screenshot> <screenshot>https://download.bitgrid.net/nextcloud/deck/screenshots/Deck_Board.png</screenshot>
<screenshot>https://download.bitgrid.net/nextcloud/deck/screenshots/Deck_Details.png</screenshot> <screenshot>https://download.bitgrid.net/nextcloud/deck/screenshots/Deck_Details.png</screenshot>
<dependencies> <dependencies>
<nextcloud min-version="11" max-version="13" /> <nextcloud min-version="11" max-version="12" />
</dependencies> </dependencies>
<background-jobs> <background-jobs>
<job>OCA\Deck\Cron\DeleteCron</job> <job>OCA\Deck\Cron\DeleteCron</job>

View File

@@ -85,11 +85,16 @@ input.input-inline {
.app-navigation-entry-edit { .app-navigation-entry-edit {
height: auto; height: auto;
.colorselect div{
height: 32px;
}
form { form {
display: flex; display: flex;
flex-wrap: wrap;
}
.colorselect {
width: 100%;
div{
height: 32px;
}
} }
} }
@@ -139,6 +144,12 @@ input.input-inline {
width: 100%; width: 100%;
bottom: 0px; bottom: 0px;
top: 44px; top: 44px;
&.as-sortable-un-selectable {
.card-list {
min-height: 96px;
}
}
} }
#innerBoard { #innerBoard {
@@ -309,13 +320,18 @@ input.input-inline {
width: 100%; width: 100%;
} }
.card-list { .as-sortable-placeholder {
padding-bottom: 100px; margin: 10px 10px 20px 10px;
padding-top: 40px; border: 1px dashed $color-darkgrey;
margin-top:-40px;
&:last-child {
margin: 10px;
}
} }
} }
.card { .card {
background-color: $color-main-background; background-color: $color-main-background;
margin: 10px 10px 20px 10px; margin: 10px 10px 20px 10px;
@@ -324,6 +340,10 @@ input.input-inline {
opacity: 1.0; opacity: 1.0;
-webkit-box-shadow: 0 0 5px $color-darkgrey; -webkit-box-shadow: 0 0 5px $color-darkgrey;
&:last-child {
margin: 10px;
}
&.archived .card-upper { &.archived .card-upper {
opacity: 0.5; opacity: 0.5;
} }
@@ -408,7 +428,6 @@ input.input-inline {
text-align: center; text-align: center;
padding: 10px; padding: 10px;
margin: 10px; margin: 10px;
margin-top: -90px;
border: none; border: none;
overflow: hidden; overflow: hidden;
-webkit-box-shadow: none; -webkit-box-shadow: none;
@@ -462,11 +481,6 @@ input.input-inline {
} }
} }
.as-sortable-placeholder {
margin: 10px 10px 20px 10px;
border: 1px dashed $color-darkgrey;
}
.info { .info {
padding-left: 5px; padding-left: 5px;
padding-right: 5px; padding-right: 5px;
@@ -1093,6 +1107,9 @@ input.input-inline {
h2 button { h2 button {
display: none; display: none;
} }
h2:hover button {
display: inline-flex;
}
} }
} }

View File

@@ -53,6 +53,10 @@ class Application extends App {
}); });
$container->registerMiddleware('SharingMiddleware'); $container->registerMiddleware('SharingMiddleware');
$container->registerService('databaseType', function($container) {
return $container->getServer()->getConfig()->getSystemValue('dbtype', 'sqlite');
});
// Delete user/group acl entries when they get deleted // Delete user/group acl entries when they get deleted
/** @var IUserManager $userManager */ /** @var IUserManager $userManager */
$userManager = $server->getUserManager(); $userManager = $server->getUserManager();

View File

@@ -82,6 +82,9 @@ class Acl extends RelationalEntity implements \JsonSerializable {
} }
public function setType($type) { public function setType($type) {
if(is_numeric($type)) {
return parent::setType($type);
}
// FIXME: Remove when all javascript uses numeric types // FIXME: Remove when all javascript uses numeric types
if ($type === 'group' || $type === '1') { if ($type === 'group' || $type === '1') {
$typeInt = Acl::PERMISSION_TYPE_GROUP; $typeInt = Acl::PERMISSION_TYPE_GROUP;

View File

@@ -42,6 +42,8 @@ class Card extends RelationalEntity implements JsonSerializable {
protected $archived = false; protected $archived = false;
protected $duedate = null; protected $duedate = null;
private $databaseType = 'sqlite';
const DUEDATE_FUTURE = 0; const DUEDATE_FUTURE = 0;
const DUEDATE_NEXT = 1; const DUEDATE_NEXT = 1;
const DUEDATE_NOW = 2; const DUEDATE_NOW = 2;
@@ -58,10 +60,17 @@ class Card extends RelationalEntity implements JsonSerializable {
$this->addResolvable('owner'); $this->addResolvable('owner');
} }
public function getDuedate() { public function setDatabaseType($type) {
$this->databaseType = $type;
}
public function getDuedate($isoFormat = false) {
if($this->duedate === null) if($this->duedate === null)
return null; return null;
$dt = new DateTime($this->duedate); $dt = new DateTime($this->duedate);
if (!$isoFormat && $this->databaseType === 'mysql') {
return $dt->format('Y-m-d H:i:s');
}
return $dt->format('c'); return $dt->format('c');
} }
@@ -91,7 +100,7 @@ class Card extends RelationalEntity implements JsonSerializable {
$json['overdue'] = self::DUEDATE_OVERDUE; $json['overdue'] = self::DUEDATE_OVERDUE;
} }
} }
$json['duedate'] = $this->getDuedate(); $json['duedate'] = $this->getDuedate(true);
return $json; return $json;
} }

View File

@@ -32,20 +32,29 @@ class CardMapper extends DeckMapper implements IPermissionMapper {
private $labelMapper; private $labelMapper;
private $userManager; private $userManager;
private $databaseType;
public function __construct(IDBConnection $db, LabelMapper $labelMapper, IUserManager $userManager) { public function __construct(
IDBConnection $db,
LabelMapper $labelMapper,
IUserManager $userManager,
$databaseType = 'sqlite'
) {
parent::__construct($db, 'deck_cards', '\OCA\Deck\Db\Card'); parent::__construct($db, 'deck_cards', '\OCA\Deck\Db\Card');
$this->labelMapper = $labelMapper; $this->labelMapper = $labelMapper;
$this->userManager = $userManager; $this->userManager = $userManager;
$this->databaseType = $databaseType;
} }
public function insert(Entity $entity) { public function insert(Entity $entity) {
$entity->setDatabaseType($this->databaseType);
$entity->setCreatedAt(time()); $entity->setCreatedAt(time());
$entity->setLastModified(time()); $entity->setLastModified(time());
return parent::insert($entity); return parent::insert($entity);
} }
public function update(Entity $entity) { public function update(Entity $entity) {
$entity->setDatabaseType($this->databaseType);
$entity->setLastModified(time()); $entity->setLastModified(time());
return parent::update($entity); return parent::update($entity);
} }
@@ -141,4 +150,4 @@ class CardMapper extends DeckMapper implements IPermissionMapper {
} }
} }

View File

@@ -99,4 +99,11 @@ class CardTest extends \PHPUnit_Framework_TestCase {
], $card->jsonSerialize()); ], $card->jsonSerialize());
} }
public function testMysqlDateFallback() {
$date = new DateTime();
$card = new Card();
$card->setDuedate($date->format('c'));
$card->setDatabaseType('mysql');
$this->assertEquals($date->format('Y-m-d H:i:s'), $card->getDuedate(false));
}
} }