Initial COmmit WIP

This commit is contained in:
Julius Haertl
2016-06-05 15:07:47 +02:00
commit e10fe82afb
55 changed files with 6366 additions and 0 deletions

43
appinfo/app.php Normal file
View File

@@ -0,0 +1,43 @@
<?php
/**
* ownCloud - deck
*
* This file is licensed under the Affero General Public License version 3 or
* later. See the COPYING file.
*
* @author Julius Härtl <jus@bitgrid.net>
* @copyright Julius Härtl 2016
*/
namespace OCA\Deck\AppInfo;
use OCP\AppFramework\App;
require_once __DIR__ . '/autoload.php';
$app = new App('deck');
$container = $app->getContainer();
$container->query('OCP\INavigationManager')->add(function () use ($container) {
$urlGenerator = $container->query('OCP\IURLGenerator');
$l10n = $container->query('OCP\IL10N');
return [
// the string under which your app will be referenced in owncloud
'id' => 'deck',
// sorting weight for the navigation. The higher the number, the higher
// will it be listed in the navigation
'order' => 10,
// the route that will be shown on startup
'href' => $urlGenerator->linkToRoute('deck.page.index'),
// the icon that will be shown in the navigation
// this file needs to exist in img/
'icon' => $urlGenerator->imagePath('deck', 'app.svg'),
// the title of your application. This will be used in the
// navigation or on the settings page of your app
'name' => $l10n->t('Deck'),
];
});

19
appinfo/autoload.php Normal file
View File

@@ -0,0 +1,19 @@
<?php
/**
* ownCloud - deck
*
* This file is licensed under the Affero General Public License version 3 or
* later. See the COPYING file.
*
* @author Julius Härtl <jus@bitgrid.net>
* @copyright Julius Härtl 2016
*/
namespace OCA\Deck\AppInfo;
use OCP\AppFramework\App;
/**
* Additional autoloader registration, e.g. registering composer autoloaders
*/
// require_once __DIR__ . '/../vendor/autoload.php';

324
appinfo/database.xml Normal file
View File

@@ -0,0 +1,324 @@
<?xml version="1.0" encoding="UTF-8" ?>
<database>
<name>*dbname*</name>
<create>true</create>
<overwrite>false</overwrite>
<charset>utf8</charset>
<table>
<name>*dbprefix*deck_boards</name>
<declaration>
<field>
<name>id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<autoincrement>1</autoincrement>
<length>4</length>
</field>
<field>
<name>title</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>owner</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>color</name>
<type>text</type>
<length>6</length>
<notnull>false</notnull>
</field>
<field>
<name>archived</name>
<type>boolean</type>
<default>false</default>
</field>
</declaration>
</table>
<table>
<name>*dbprefix*deck_stacks</name>
<declaration>
<field>
<name>id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<autoincrement>1</autoincrement>
<length>4</length>
</field>
<field>
<name>title</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>board_id</name>
<type>integer</type>
<length>8</length>
<notnull>true</notnull>
</field>
<field>
<name>order</name>
<type>integer</type>
<length>8</length>
<notnull>false</notnull>
</field>
</declaration>
</table>
<table>
<name>*dbprefix*deck_cards</name>
<declaration>
<field>
<name>id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<autoincrement>1</autoincrement>
<length>4</length>
</field>
<field>
<name>title</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>stack_id</name>
<type>integer</type>
<length>8</length>
<notnull>true</notnull>
</field>
<field>
<name>type</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>last_modified</name>
<type>integer</type>
<default></default>
<length>8</length>
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
<field>
<name>created_at</name>
<type>integer</type>
<default></default>
<length>8</length>
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
<field>
<name>owner</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>order</name>
<type>integer</type>
<length>8</length>
<notnull>false</notnull>
</field>
</declaration>
</table>
<table>
<name>*dbprefix*deck_attachment</name>
<declaration>
<field>
<name>id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<autoincrement>1</autoincrement>
<length>4</length>
</field>
<field>
<name>title</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>card_id</name>
<type>integer</type>
<length>8</length>
<notnull>true</notnull>
</field>
<field>
<name>type</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>data</name>
<type>clob</type>
</field>
<field>
<name>last_modified</name>
<type>integer</type>
<default></default>
<length>8</length>
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
<field>
<name>created_at</name>
<type>integer</type>
<default></default>
<length>8</length>
<notnull>false</notnull>
<unsigned>true</unsigned>
</field>
</declaration>
</table>
<table>
<name>*dbprefix*deck_labels</name>
<declaration>
<field>
<name>id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<autoincrement>1</autoincrement>
<length>4</length>
</field>
<field>
<name>title</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>color</name>
<type>text</type>
<length>6</length>
<notnull>false</notnull>
</field>
<field>
<name>owner</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
</declaration>
</table>
<table>
<name>*dbprefix*deck_assigned_labels</name>
<declaration>
<field>
<name>id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<autoincrement>1</autoincrement>
<length>4</length>
</field>
<field>
<name>label_id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<length>4</length>
</field>
<field>
<name>card_id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<length>4</length>
</field>
</declaration>
</table>
<table>
<name>*dbprefix*deck_acl_users</name>
<declaration>
<field>
<name>id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<autoincrement>1</autoincrement>
<length>4</length>
</field>
<field>
<name>board_id</name>
<type>integer</type>
<notnull>true</notnull>
<length>8</length>
</field>
<field>
<name>user_id</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>permission_write</name>
<type>boolean</type>
<default>false</default>
</field>
<field>
<name>permission_invite</name>
<type>boolean</type>
<default>false</default>
</field>
<field>
<name>permission_manage</name>
<type>boolean</type>
<default>false</default>
</field>
</declaration>
</table>
<table>
<name>*dbprefix*deck_acl_groups</name>
<declaration>
<field>
<name>id</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
<autoincrement>1</autoincrement>
<length>4</length>
</field>
<field>
<name>board_id</name>
<type>integer</type>
<notnull>true</notnull>
<length>8</length>
</field>
<field>
<name>group_id</name>
<type>text</type>
<notnull>true</notnull>
<length>64</length>
</field>
<field>
<name>permission_write</name>
<type>boolean</type>
<default>false</default>
</field>
<field>
<name>permission_invite</name>
<type>boolean</type>
<default>false</default>
</field>
<field>
<name>permission_manage</name>
<type>boolean</type>
<default>false</default>
</field>
</declaration>
</table>
</database>

14
appinfo/info.xml Normal file
View File

@@ -0,0 +1,14 @@
<?xml version="1.0"?>
<info>
<id>deck</id>
<name>Deck</name>
<description>My first ownCloud app</description>
<licence>AGPL</licence>
<author>Julius Härtl</author>
<version>0.0.1.7</version>
<namespace>Deck</namespace>
<category>other</category>
<dependencies>
<owncloud min-version="9.0" />
</dependencies>
</info>

51
appinfo/routes.php Normal file
View File

@@ -0,0 +1,51 @@
<?php
/**
* ownCloud - Deck
*
* This file is licensed under the Affero General Public License version 3 or
* later. See the COPYING file.
*
* @author Julius Härtl <jus@bitgrid.net>
* @copyright Julius Härtl 2016
*/
/**
* Create your routes in here. The name is the lowercase name of the controller
* without the controller part, the stuff after the hash is the method.
* e.g. page#index -> OCA\Board\Controller\PageController->index()
*
* The controller class has to be registered in the application.php file since
* it's instantiated in there
*/
return [
'routes' => [
['name' => 'page#index', 'url' => '/', 'verb' => 'GET'],
// api
['name' => 'api#index', 'url' => '/api/', 'verb' => 'GET'],
// boards
['name' => 'board#index', 'url' => '/boards/', 'verb' => 'GET'],
['name' => 'board#create', 'url' => '/boards/', 'verb' => 'POST'],
['name' => 'board#read', 'url' => '/boards/{boardId}/', 'verb' => 'GET'],
['name' => 'board#update', 'url' => '/boards/', 'verb' => 'PUT'],
['name' => 'board#delete', 'url' => '/boards/{boardId}/', 'verb' => 'DELETE'],
// stacks
['name' => 'stack#index', 'url' => '/stacks/{boardId}/', 'verb' => 'GET'],
['name' => 'stack#create', 'url' => '/stacks/', 'verb' => 'POST'],
['name' => 'stack#update', 'url' => '/stacks/', 'verb' => 'PUT'],
['name' => 'stack#delete', 'url' => '/stacks/{stackId}/', 'verb' => 'DELETE'],
// cards
['name' => 'card#index', 'url' => '/cards/{stackId}/', 'verb' => 'GET'],
['name' => 'card#create', 'url' => '/cards/', 'verb' => 'POST'],
['name' => 'card#update', 'url' => '/cards/', 'verb' => 'PUT'],
['name' => 'card#delete', 'url' => '/cards/{cardId}/', 'verb' => 'DELETE'],
// TODO: Implement public board sharing
['name' => 'public#index', 'url' => '/public/board/:hash', 'verb' => 'GET'],
['name' => 'public#board', 'url' => '/public/board/ajax/:hash', 'verb' => 'GET'],
// TODO: API for external access
// ['name' => 'note_api#preflighted_cors', 'url' => '/api/v1/{path}/', 'verb' => 'OPTIONS', 'requirements' => ['path' => '.+']]
]
];

1
appinfo/version Normal file
View File

@@ -0,0 +1 @@
0.0.1.4