├── .editorconfig
├── .gitattributes
├── .github
└── dependabot.yml
├── .gitignore
├── .scrutinizer.yml
├── .travis.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── Makefile
├── README.md
├── appinfo
├── app.php
├── application.php
├── info.xml
└── routes.php
├── build.xml
├── controller
├── collectionscontroller.php
├── pagecontroller.php
├── response.php
├── searchprovider.php
└── settingscontroller.php
├── css
├── style.css
└── vendor
│ ├── angularui
│ └── ui-select
│ │ └── select2.css
│ └── timepicker
│ └── jquery.ui.timepicker.css
├── img
├── divider.svg
├── favicon-touch.png
├── favicon-touch.svg
├── favicon.ico
├── favicon.png
├── favicon.svg
├── loading.gif
├── random.svg
├── source
│ ├── alphabetically.svg
│ ├── checkbox.svg
│ ├── divider.svg
│ ├── eye_hidden.svg
│ ├── eye_visible.svg
│ ├── manual.svg
│ ├── plus.svg
│ ├── star.svg
│ ├── star_active.svg
│ ├── task.svg
│ ├── task_active.svg
│ └── update.svg
├── sprites.png
├── sprites.svg
├── tasks.png
└── tasks.svg
├── issue_template.md
├── js
├── .bowerrc
├── .jshintrc
├── Gruntfile.js
├── README.md
├── app
│ ├── app.js
│ ├── controllers
│ │ ├── appcontroller.js
│ │ ├── detailscontroller.js
│ │ ├── listcontroller.js
│ │ ├── settingscontroller.js
│ │ └── taskscontroller.js
│ ├── directives
│ │ ├── appnavigationentryutils.js
│ │ ├── autofocusoninsert.js
│ │ ├── avatar.js
│ │ ├── colorpickerDirective.js
│ │ ├── confirmation.js
│ │ ├── datepicker.js
│ │ ├── occlickfocus.js
│ │ ├── timepicker.js
│ │ └── watchtop.js
│ ├── filters
│ │ ├── counterFormatter.js
│ │ ├── dateDetails.js
│ │ ├── dateDetailsShort.js
│ │ ├── dateFromNow.js
│ │ ├── dateTaskList.js
│ │ ├── day.js
│ │ ├── dayTaskList.js
│ │ ├── percentDetails.js
│ │ ├── priorityDetails.js
│ │ ├── reminderDetails.js
│ │ ├── startDetails.js
│ │ └── timeTaskList.js
│ └── services
│ │ ├── businesslayer
│ │ ├── listsbusinesslayer.js
│ │ ├── searchbusinesslayer.js
│ │ ├── settingsbusinesslayer.js
│ │ └── tasksbusinesslayer.js
│ │ ├── calendarservice.js
│ │ ├── davclient.js
│ │ ├── icalfactory.js
│ │ ├── loading.js
│ │ ├── model.js
│ │ ├── models
│ │ ├── calendar.js
│ │ ├── collectionsmodel.js
│ │ ├── listsmodel.js
│ │ ├── settingsmodel.js
│ │ ├── tasksmodel.js
│ │ └── vtodo.js
│ │ ├── persistence.js
│ │ ├── publisher.js
│ │ ├── randomstringservice.js
│ │ ├── request.js
│ │ ├── status.js
│ │ └── vtodoservice.js
├── bower.json
├── package.json
├── public
│ └── app.js
└── vendor
│ ├── angular-animate
│ ├── .bower.json
│ ├── README.md
│ ├── angular-animate.js
│ ├── angular-animate.min.js
│ ├── angular-animate.min.js.map
│ ├── bower.json
│ ├── index.js
│ └── package.json
│ ├── angular-draganddrop
│ ├── .bower.json
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── angular-drag-and-drop-lists.js
│ ├── angular-drag-and-drop-lists.min.js
│ └── bower.json
│ ├── angular-route
│ ├── .bower.json
│ ├── README.md
│ ├── angular-route.js
│ ├── angular-route.min.js
│ ├── angular-route.min.js.map
│ ├── bower.json
│ ├── index.js
│ └── package.json
│ ├── angular-sanitize
│ ├── .bower.json
│ ├── README.md
│ ├── angular-sanitize.js
│ ├── angular-sanitize.min.js
│ ├── angular-sanitize.min.js.map
│ ├── bower.json
│ ├── index.js
│ └── package.json
│ ├── angular-ui-select
│ ├── .bower.json
│ ├── CHANGELOG.md
│ ├── CONTRIBUTING.md
│ ├── LICENSE
│ ├── README.md
│ ├── bower.json
│ ├── composer.json
│ ├── deploy-docs.sh
│ ├── dist
│ │ ├── select.css
│ │ ├── select.js
│ │ ├── select.min.css
│ │ └── select.min.js
│ ├── docs
│ │ ├── assets
│ │ │ ├── app.js
│ │ │ ├── demo.js
│ │ │ ├── docs.css
│ │ │ └── plunkr.js
│ │ ├── index.html
│ │ └── partials
│ │ │ ├── _footer.html
│ │ │ └── _header.html
│ ├── index.js
│ └── package.json
│ ├── angular
│ ├── .bower.json
│ ├── README.md
│ ├── angular-csp.css
│ ├── angular.js
│ ├── angular.min.js
│ ├── angular.min.js.gzip
│ ├── angular.min.js.map
│ ├── bower.json
│ ├── index.js
│ └── package.json
│ ├── davclient.js
│ ├── .bower.json
│ ├── LICENSE
│ ├── bower.json
│ ├── index.html
│ ├── karma.conf.js
│ ├── lib
│ │ └── client.js
│ └── package.json
│ ├── ical.js
│ ├── .bower.json
│ ├── CONTRIBUTING.md
│ ├── Gruntfile.js
│ ├── README.md
│ ├── bower.json
│ ├── build
│ │ ├── benchmark
│ │ │ └── ical_previous.js
│ │ └── ical.js
│ ├── lib
│ │ └── ical
│ │ │ ├── binary.js
│ │ │ ├── component.js
│ │ │ ├── component_parser.js
│ │ │ ├── design.js
│ │ │ ├── duration.js
│ │ │ ├── event.js
│ │ │ ├── helpers.js
│ │ │ ├── parse.js
│ │ │ ├── period.js
│ │ │ ├── property.js
│ │ │ ├── recur.js
│ │ │ ├── recur_expansion.js
│ │ │ ├── recur_iterator.js
│ │ │ ├── stringify.js
│ │ │ ├── time.js
│ │ │ ├── timezone.js
│ │ │ ├── timezone_service.js
│ │ │ ├── utc_offset.js
│ │ │ └── vcard_time.js
│ ├── package.json
│ ├── samples
│ │ ├── blank_description.ics
│ │ ├── blank_line_end.ics
│ │ ├── blank_line_mid.ics
│ │ ├── daily_recur.ics
│ │ ├── day_long_recur_yearly.ics
│ │ ├── duration_instead_of_dtend.ics
│ │ ├── forced_types.ics
│ │ ├── google_birthday.ics
│ │ ├── minimal.ics
│ │ ├── multiple_rrules.ics
│ │ ├── only_dtstart_date.ics
│ │ ├── only_dtstart_time.ics
│ │ ├── parserv2.ics
│ │ ├── recur_instances.ics
│ │ ├── recur_instances_finite.ics
│ │ ├── timezones
│ │ │ ├── America
│ │ │ │ ├── Atikokan.ics
│ │ │ │ ├── Denver.ics
│ │ │ │ ├── Los_Angeles.ics
│ │ │ │ └── New_York.ics
│ │ │ └── Makebelieve
│ │ │ │ ├── RDATE_test.ics
│ │ │ │ ├── RDATE_utc_test.ics
│ │ │ │ └── RRULE_UNTIL_test.ics
│ │ └── utc_negative_zero.ics
│ ├── sandbox
│ │ └── validator.html
│ ├── tasks
│ │ ├── tests.js
│ │ ├── timezones.js
│ │ └── travis.js
│ ├── test-agent-coverage.json
│ ├── test-agent-server.js
│ └── test-agent
│ │ ├── index.html
│ │ ├── index.js
│ │ ├── package.json
│ │ ├── sandbox.html
│ │ └── style.css
│ ├── jquery-timepicker
│ ├── .bower.json
│ ├── GPL-LICENSE.txt
│ ├── MIT-LICENSE.txt
│ ├── README.md
│ ├── i18n
│ │ ├── i18n.html
│ │ ├── jquery.ui.timepicker-cs.js
│ │ ├── jquery.ui.timepicker-de.js
│ │ ├── jquery.ui.timepicker-es.js
│ │ ├── jquery.ui.timepicker-fr.js
│ │ ├── jquery.ui.timepicker-hr.js
│ │ ├── jquery.ui.timepicker-hu.js
│ │ ├── jquery.ui.timepicker-it.js
│ │ ├── jquery.ui.timepicker-ja.js
│ │ ├── jquery.ui.timepicker-mk.js
│ │ ├── jquery.ui.timepicker-nl.js
│ │ ├── jquery.ui.timepicker-pl.js
│ │ ├── jquery.ui.timepicker-pt-BR.js
│ │ ├── jquery.ui.timepicker-ru.js
│ │ ├── jquery.ui.timepicker-sl.js
│ │ ├── jquery.ui.timepicker-sv.js
│ │ └── jquery.ui.timepicker-tr.js
│ ├── include
│ │ ├── jquery-1.9.0.min.js
│ │ └── ui-1.10.0
│ │ │ ├── jquery.ui.core.min.js
│ │ │ ├── jquery.ui.position.min.js
│ │ │ ├── jquery.ui.tabs.min.js
│ │ │ ├── jquery.ui.widget.min.js
│ │ │ └── ui-lightness
│ │ │ ├── images
│ │ │ ├── ui-bg_diagonals-thick_18_b81900_40x40.png
│ │ │ ├── ui-bg_diagonals-thick_20_666666_40x40.png
│ │ │ ├── ui-bg_flat_10_000000_40x100.png
│ │ │ ├── ui-bg_glass_100_f6f6f6_1x400.png
│ │ │ ├── ui-bg_glass_100_fdf5ce_1x400.png
│ │ │ ├── ui-bg_glass_65_ffffff_1x400.png
│ │ │ ├── ui-bg_gloss-wave_35_f6a828_500x100.png
│ │ │ ├── ui-bg_highlight-soft_100_eeeeee_1x100.png
│ │ │ ├── ui-bg_highlight-soft_75_ffe45c_1x100.png
│ │ │ ├── ui-icons_222222_256x240.png
│ │ │ ├── ui-icons_228ef1_256x240.png
│ │ │ ├── ui-icons_ef8c08_256x240.png
│ │ │ ├── ui-icons_ffd27a_256x240.png
│ │ │ └── ui-icons_ffffff_256x240.png
│ │ │ └── jquery-ui-1.10.0.custom.min.css
│ ├── index.html
│ ├── jquery.ui.timepicker.css
│ ├── jquery.ui.timepicker.js
│ ├── legacy_1.2.6
│ │ ├── index.html
│ │ ├── jquery-1.2.6.js
│ │ ├── jquery.proxy.fix.js
│ │ └── jquery.ui.1.6.all.js
│ ├── tests
│ │ ├── dialog.html
│ │ └── jquery.ui.dialog.min.js
│ └── timepicker.png
│ └── jstzdetect
│ ├── .bower.json
│ ├── Gruntfile.js
│ ├── LICENCE.txt
│ ├── README.md
│ ├── bower.json
│ ├── jstz.js
│ ├── jstz.min.js
│ └── package.json
├── l10n
├── .tx
│ └── config
├── af_ZA.js
├── af_ZA.json
├── ar.js
├── ar.json
├── ast.js
├── ast.json
├── az.js
├── az.json
├── bg_BG.js
├── bg_BG.json
├── bn_BD.js
├── bn_BD.json
├── ca.js
├── ca.json
├── cs_CZ.js
├── cs_CZ.json
├── da.js
├── da.json
├── de.js
├── de.json
├── de_CH.js
├── de_CH.json
├── de_DE.js
├── de_DE.json
├── el.js
├── el.json
├── en_GB.js
├── en_GB.json
├── es.js
├── es.json
├── es_MX.js
├── es_MX.json
├── et_EE.js
├── et_EE.json
├── eu.js
├── eu.json
├── fa.js
├── fa.json
├── fi_FI.js
├── fi_FI.json
├── fr.js
├── fr.json
├── gl.js
├── gl.json
├── he.js
├── he.json
├── hu_HU.js
├── hu_HU.json
├── ia.js
├── ia.json
├── id.js
├── id.json
├── is.js
├── is.json
├── it.js
├── it.json
├── ja.js
├── ja.json
├── ko.js
├── ko.json
├── lb.js
├── lb.json
├── lt_LT.js
├── lt_LT.json
├── lv.js
├── lv.json
├── mk.js
├── mk.json
├── nb_NO.js
├── nb_NO.json
├── nl.js
├── nl.json
├── oc.js
├── oc.json
├── pl.js
├── pl.json
├── pt_BR.js
├── pt_BR.json
├── pt_PT.js
├── pt_PT.json
├── ro.js
├── ro.json
├── ru.js
├── ru.json
├── ru_RU.js
├── ru_RU.json
├── sk_SK.js
├── sk_SK.json
├── sl.js
├── sl.json
├── sq.js
├── sq.json
├── sr.js
├── sr.json
├── sv.js
├── sv.json
├── th_TH.js
├── th_TH.json
├── tr.js
├── tr.json
├── ug.js
├── ug.json
├── uk.js
├── uk.json
├── zh_CN.js
├── zh_CN.json
├── zh_TW.js
└── zh_TW.json
├── screenshots
└── screenshot.png
├── service
├── collectionsservice.php
└── settingsservice.php
└── templates
├── colorpicker.html
├── confirmation.php
├── main.php
├── part.collectionall.php
├── part.collectionweek.php
├── part.details.php
├── part.taskbody.php
└── part.tasklist.php
/.editorconfig:
--------------------------------------------------------------------------------
1 | # top-most EditorConfig file
2 | root = true
3 |
4 | # Unix-style newlines with a newline ending every file
5 | [*]
6 | end_of_line = lf
7 | insert_final_newline = true
8 |
9 | # Set default charset and indentation
10 | [*.{php,js}]
11 | charset = utf-8
12 | indent_style = tab
13 | tab_width = 4
14 | indent_size = 4
15 |
16 | # Indentation override for PHP templates
17 | [templates/**.php]
18 | indent_style = space
19 | indent_size = 4
20 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 | *.sln merge=union
7 | *.csproj merge=union
8 | *.vbproj merge=union
9 | *.fsproj merge=union
10 | *.dbproj merge=union
11 |
12 | # Standard to msysgit
13 | *.doc diff=astextplain
14 | *.DOC diff=astextplain
15 | *.docx diff=astextplain
16 | *.DOCX diff=astextplain
17 | *.dot diff=astextplain
18 | *.DOT diff=astextplain
19 | *.pdf diff=astextplain
20 | *.PDF diff=astextplain
21 | *.rtf diff=astextplain
22 | *.RTF diff=astextplain
23 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: npm
4 | directory: "/js"
5 | schedule:
6 | interval: daily
7 | time: "22:00"
8 | open-pull-requests-limit: 10
9 |
--------------------------------------------------------------------------------
/.scrutinizer.yml:
--------------------------------------------------------------------------------
1 | filter:
2 | excluded_paths:
3 | - '3rdparty/*'
4 | - 'js/vendor/*'
5 | - 'js/public/*'
6 |
7 | imports:
8 | - javascript
9 | - php
10 |
11 | checks:
12 | php:
13 | code_rating: true
14 | duplication: true
15 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: php
2 | php:
3 | - 5.6
4 | - 7.0
5 | - 7.1
6 | - 7.2
7 |
8 | branches:
9 | only:
10 | - master
11 | - /^stable\d+(\.\d+)?$/
12 |
13 | script:
14 | # Test lint
15 | - sh -c "ant test"
16 |
17 |
18 | matrix:
19 | fast_finish: true
20 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## 0.9.7 - 2018-12-25
2 | ### Changed
3 | - Changed max version to 10 so app update will work for ownCloud 10.1.
4 |
5 | ## 0.9.6 - 2018-02-07
6 | ### Reverted
7 | - Reverted favicons to ownCloud colors.
8 |
9 | ## 0.9.5 - 2018-01-18
10 | ### Added
11 | - Incorporated features and enhancements from Nextcloud Tasks app 0.9.5.
12 |
13 | ## 0.9.3 - 2018-01-16
14 | ### Fixed
15 | - Initial signed release for ownCloud 10.
16 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | ## Submitting issues
2 |
3 | If you have questions about how to install or use ownCloud, please direct these to the [mailing list][mailinglist] or our [forum][forum]. We are also available on [IRC][irc].
4 |
5 | ### Short version
6 |
7 | * The [**issue template can be found here**][template]. Please always use the issue template when reporting issues.
8 |
9 | ### Guidelines
10 | * Please search the existing issues first, it's likely that your issue was already reported or even fixed.
11 | - Go to one of the repositories, click "issues" and type any word in the top search/command bar.
12 | - You can also filter by appending e. g. "state:open" to the search string.
13 | - More info on [search syntax within github](https://help.github.com/articles/searching-issues)
14 | * This repository ([tasks](https://github.com/owncloud/tasks/issues)) is *only* for issues within the ownCloud tasks code.
15 | * __SECURITY__: Report any potential security bug to security@owncloud.com following our [security policy](https://owncloud.org/security/) instead of filing an issue in our bug tracker
16 | * Report the issue using our [template][template], it includes all the information we need to track down the issue.
17 |
18 | Help us to maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues.
19 |
20 | [template]: https://raw.github.com/owncloud/core/master/issue_template.md
21 | [mailinglist]: https://mailman.owncloud.org/mailman/listinfo/owncloud
22 | [forum]: https://forum.owncloud.org/
23 | [irc]: https://webchat.freenode.net/?channels=owncloud&uio=d4
24 |
25 | ### Contribute Code and translations
26 | Please check [core's contribution guidelines](https://github.com/owncloud/core/blob/master/CONTRIBUTING.md) for further information about contributing code and translations.
27 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Tasks
2 |
3 | [](https://scrutinizer-ci.com/g/owncloud/tasks/build-status/master) [](https://scrutinizer-ci.com/g/owncloud/tasks/?branch=master) [](https://scrutinizer-ci.com/g/owncloud/tasks/?branch=master)
4 |
5 | Tasks app for ownCloud.
6 |
7 | ### Installation
8 |
9 | * **Using git:** In your `owncloud/apps/` directory, run `git clone https://github.com/owncloud/tasks/`. Then go to the Apps manager tab in your ownCloud web interface, and enable the Tasks app.
10 | * **Using the zip archive:** Download the latest [zip archive](https://github.com/owncloud/tasks/archive/master.zip), extract the `tasks-master` directory inside your `owncloud/apps/` directory, and rename it to `tasks`. For stable releases, you can also download one of the [releases](https://github.com/owncloud/tasks/releases) tar.gz archives. Then go to the Apps manager tab in your ownCloud web interface, and enable the Tasks app.
11 |
12 | ### Usage/Features
13 |
14 | Once enabled, a new `Tasks` menu will appear in your ownCloud apps menu. From there you can **add and delete tasks, edit their title, description, start and due dates, reminder times, mark them as important, and add comments on them**. Tasks can be **shared** between users. Tasks can be **synchronized using CalDav** (each task list is linked to an ownCloud calendar, to sync it to your local client - Thunderbird, Evolution, KDE Kontact, iCal... - just add the calendar as a remote calendar in your client). You can **download your tasks as ICS** files using the download button for each calendar.
15 |
16 | ### Screenshot
17 |
18 | 
19 |
--------------------------------------------------------------------------------
/appinfo/app.php:
--------------------------------------------------------------------------------
1 | .
20 | *
21 | */
22 |
23 | namespace OCA\Tasks\AppInfo;
24 |
25 | \OC::$server->getNavigationManager()->add(function () {
26 | $urlGenerator = \OC::$server->getURLGenerator();
27 | return [
28 | 'id' => 'tasks',
29 |
30 | 'order' => 100,
31 |
32 | 'href' => $urlGenerator->linkToRoute('tasks.page.index'),
33 |
34 | 'icon' => $urlGenerator->imagePath('tasks', 'tasks.svg'),
35 |
36 | 'name' => \OC::$server->getL10N('tasks')->t('Tasks'),
37 | ];
38 | });
39 | \OC::$server->getSearch()->registerProvider('OCA\Tasks\Controller\SearchProvider', array('apps' => array('tasks')));
40 |
--------------------------------------------------------------------------------
/appinfo/info.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | tasks
4 | Tasks
5 | 0.9.7
6 | Tasks
7 | productivity
8 | AGPL
9 | Raimund Schlüßler
10 | ownCloud Tasks App for Calender
11 | Once enabled, a new Tasks menu will appear in your ownCloud apps menu. From there you can add and delete tasks, edit their title, description, start and due dates, reminder times, mark them as important, and add comments on them. Tasks can be shared between users. Tasks can be synchronized using CalDav (each task list is linked to an ownCloud calendar, to sync it to your local client - Thunderbird, Evolution, KDE Kontact, iCal... - just add the calendar as a remote calendar in your client). You can download your tasks as ICS files using the download button for each calendar.
12 | https://github.com/owncloud/tasks/raw/master/screenshots/screenshot.png
13 | https://github.com/owncloud/tasks/issues
14 | https://github.com/owncloud/tasks.git
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/appinfo/routes.php:
--------------------------------------------------------------------------------
1 | .
20 | *
21 | */
22 |
23 | namespace OCA\Tasks;
24 |
25 | // use \OCP\AppFramework\App;
26 | use \OCA\Tasks\AppInfo\Application;
27 |
28 | $application = new Application();
29 |
30 | $application->registerRoutes($this, array('routes' => array(
31 | // page
32 | array('name' => 'page#index', 'url' => '/', 'verb' => 'GET'),
33 |
34 | // templates
35 | array('name' => 'page#templates', 'url' => '/templates/{template}', 'verb' => 'GET'),
36 |
37 | // collections
38 | array('name' => 'collections#getCollections', 'url' => '/collections', 'verb' => 'GET'),
39 | array('name' => 'collections#setVisibility', 'url' => '/collection/{collectionID}/visibility/{visibility}', 'verb' => 'POST'),
40 |
41 | // settings
42 | array('name' => 'settings#get', 'url' => '/settings', 'verb' => 'GET'),
43 | array('name' => 'settings#set', 'url' => '/settings/{type}/{setting}/{value}', 'verb' => 'POST'),
44 | )));
45 |
--------------------------------------------------------------------------------
/build.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/controller/collectionscontroller.php:
--------------------------------------------------------------------------------
1 | .
20 | *
21 | */
22 |
23 | namespace OCA\Tasks\Controller;
24 |
25 | use \OCA\Tasks\Service\CollectionsService;
26 | use \OCP\IRequest;
27 | use \OCP\AppFramework\Controller;
28 |
29 | class CollectionsController extends Controller {
30 |
31 | private $collectionsService;
32 |
33 | use Response;
34 |
35 | public function __construct($appName, IRequest $request, CollectionsService $collectionsService){
36 | parent::__construct($appName, $request);
37 | $this->collectionsService = $collectionsService;
38 | }
39 |
40 | /**
41 | * @NoAdminRequired
42 | */
43 | public function getCollections(){
44 | return $this->generateResponse(function () {
45 | return ['collections' => $this->collectionsService->getAll()];
46 | });
47 | }
48 |
49 | /**
50 | * @NoAdminRequired
51 | */
52 | public function setVisibility($collectionID, $visibility){
53 | return $this->generateResponse(function () use ($collectionID, $visibility) {
54 | return $this->collectionsService->setVisibility($collectionID, $visibility);
55 | });
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/controller/pagecontroller.php:
--------------------------------------------------------------------------------
1 | .
20 | *
21 | */
22 |
23 | namespace OCA\Tasks\Controller;
24 |
25 | use \OCP\AppFramework\Controller;
26 | use \OCP\AppFramework\Http\TemplateResponse;
27 | use \OCP\AppFramework\Http\NotFoundResponse;
28 | use \OCP\IRequest;
29 | use \OCP\IConfig;
30 |
31 | /**
32 | * Controller class for main page.
33 | */
34 | class PageController extends Controller {
35 |
36 | /**
37 | * @param string $appName
38 | * @param IConfig $config
39 | */
40 | public function __construct($appName, IRequest $request,
41 | $userId, IConfig $config) {
42 | parent::__construct($appName, $request);
43 | $this->config = $config;
44 | $this->userId = $userId;
45 | }
46 |
47 |
48 | /**
49 | * @NoAdminRequired
50 | * @NoCSRFRequired
51 | */
52 | public function index() {
53 |
54 | $day = new \DateTime('today');
55 | $day = $day->format('d');
56 |
57 | $appVersion = $this->config->getAppValue($this->appName, 'installed_version');
58 | $response = new TemplateResponse('tasks', 'main');
59 | $response->setParams(array(
60 | 'appVersion' => $appVersion,
61 | 'DOM' => $day
62 | ));
63 |
64 | return $response;
65 | }
66 |
67 |
68 | /**
69 | * @NoAdminRequired
70 | * @NoCSRFRequired
71 | */
72 | public function templates($template) {
73 | $templates = array( 'confirmation');
74 | if (in_array($template, $templates)) {
75 | $response = new TemplateResponse('tasks', $template, [], 'blank');
76 | } else {
77 | $response = new NotFoundResponse();
78 | }
79 | return $response;
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/controller/response.php:
--------------------------------------------------------------------------------
1 | .
20 | *
21 | */
22 |
23 | namespace OCA\Tasks\Controller;
24 |
25 | use \Closure;
26 | use \OCP\AppFramework\Http\JSONResponse;
27 |
28 | trait Response {
29 |
30 | protected function generateResponse (Closure $callback) {
31 | try {
32 | $message = [
33 | 'status' => 'success',
34 | 'data' => $callback(),
35 | 'message' => null
36 | ];
37 |
38 | } catch(\Exception $e) {
39 | $message = [
40 | 'status' => 'error',
41 | 'data' => null,
42 | 'message' => $e->getMessage()
43 | ];
44 | }
45 | return new JSONResponse($message);
46 | }
47 |
48 | }
49 |
--------------------------------------------------------------------------------
/controller/searchprovider.php:
--------------------------------------------------------------------------------
1 | .
20 | *
21 | */
22 |
23 | namespace OCA\Tasks\Controller;
24 |
25 | use OCA\Tasks\AppInfo\Application;
26 |
27 | /**
28 | * Tasks search provider
29 | */
30 | class SearchProvider extends \OCP\Search\Provider {
31 |
32 | // private $tasksService;
33 |
34 | public function __construct() {
35 | $app = new Application();
36 | $container = $app->getContainer();
37 | $this->app = $app;
38 | // $this->tasksService = $container->query('TasksService');
39 | }
40 |
41 |
42 | /**
43 | * Search for query in tasks
44 | *
45 | * @param string $query
46 | * @return array
47 | */
48 | public function search($query) {
49 | return array();
50 | // return $this->tasksService->search($query);
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/controller/settingscontroller.php:
--------------------------------------------------------------------------------
1 | .
20 | *
21 | */
22 |
23 | namespace OCA\Tasks\Controller;
24 |
25 | use \OCA\Tasks\Service\SettingsService;
26 | use \OCP\AppFramework\Controller;
27 | use \OCP\IRequest;
28 |
29 | class SettingsController extends Controller {
30 |
31 | private $settingsService;
32 |
33 | use Response;
34 |
35 | public function __construct($appName, IRequest $request, SettingsService $settingsService){
36 | parent::__construct($appName, $request);
37 | $this->settingsService = $settingsService;
38 | }
39 |
40 | /**
41 | * @NoAdminRequired
42 | */
43 | public function get(){
44 | return $this->generateResponse(function () {
45 | return ['settings' => $this->settingsService->get()];
46 | });
47 | }
48 |
49 | /**
50 | * @NoAdminRequired
51 | */
52 | public function set($setting, $type, $value){
53 | return $this->generateResponse(function () use ($setting, $type, $value) {
54 | return $this->settingsService->set($setting, $type, $value);
55 | });
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/css/vendor/timepicker/jquery.ui.timepicker.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Timepicker stylesheet
3 | * Highly inspired from datepicker
4 | * FG - Nov 2010 - Web3R
5 | *
6 | * version 0.0.3 : Fixed some settings, more dynamic
7 | * version 0.0.4 : Removed width:100% on tables
8 | * version 0.1.1 : set width 0 on tables to fix an ie6 bug
9 | */
10 |
11 | .ui-timepicker-inline { display: inline; }
12 |
13 | #ui-timepicker-div { padding: 0.2em; background-color: #fff; }
14 | .ui-timepicker-table { display: inline-table; width: 0; }
15 | .ui-timepicker-table table { margin:0.15em 0 0 0; border-collapse: collapse; }
16 |
17 | .ui-timepicker-hours, .ui-timepicker-minutes { padding: 0.2em; }
18 |
19 | .ui-timepicker-table .ui-timepicker-title { line-height: 1.8em; text-align: center; }
20 | .ui-timepicker-table td { padding: 0.1em; width: 2.2em; }
21 | .ui-timepicker-table th.periods { padding: 0.1em; width: 2.2em; }
22 |
23 | /* span for disabled cells */
24 | .ui-timepicker-table td span {
25 | display:block;
26 | padding:0.2em 0.3em 0.2em 0.5em;
27 | width: 1.2em;
28 |
29 | text-align:right;
30 | text-decoration:none;
31 | }
32 | /* anchors for clickable cells */
33 | .ui-timepicker-table td a {
34 | display:block;
35 | padding:0.2em 0.3em 0.2em 0.5em;
36 | width: 1.2em;
37 | cursor: pointer;
38 | text-align:right;
39 | text-decoration:none;
40 | }
41 |
42 |
43 | /* buttons and button pane styling */
44 | .ui-timepicker .ui-timepicker-buttonpane {
45 | background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0;
46 | }
47 | .ui-timepicker .ui-timepicker-buttonpane button { margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
48 | /* The close button */
49 | .ui-timepicker .ui-timepicker-close { float: right }
50 |
51 | /* the now button */
52 | .ui-timepicker .ui-timepicker-now { float: left; }
53 |
54 | /* the deselect button */
55 | .ui-timepicker .ui-timepicker-deselect { float: left; }
56 |
57 |
58 | /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
59 | .ui-timepicker-cover {
60 | display: none; /*sorry for IE5*/
61 | display/**/: block; /*sorry for IE5*/
62 | position: absolute; /*must have*/
63 | z-index: -1; /*must have*/
64 | filter: mask(); /*must have*/
65 | top: -4px; /*must have*/
66 | left: -4px; /*must have*/
67 | width: 200px; /*must have*/
68 | height: 200px; /*must have*/
69 | }
--------------------------------------------------------------------------------
/img/divider.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
--------------------------------------------------------------------------------
/img/favicon-touch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owncloud/tasks/7e5d7e3135efff0963a4cbd2a1efcb1684760593/img/favicon-touch.png
--------------------------------------------------------------------------------
/img/favicon-touch.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
--------------------------------------------------------------------------------
/img/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owncloud/tasks/7e5d7e3135efff0963a4cbd2a1efcb1684760593/img/favicon.ico
--------------------------------------------------------------------------------
/img/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owncloud/tasks/7e5d7e3135efff0963a4cbd2a1efcb1684760593/img/favicon.png
--------------------------------------------------------------------------------
/img/favicon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
--------------------------------------------------------------------------------
/img/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owncloud/tasks/7e5d7e3135efff0963a4cbd2a1efcb1684760593/img/loading.gif
--------------------------------------------------------------------------------
/img/source/alphabetically.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
--------------------------------------------------------------------------------
/img/source/checkbox.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
19 |
--------------------------------------------------------------------------------
/img/source/divider.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
--------------------------------------------------------------------------------
/img/source/eye_hidden.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
18 |
--------------------------------------------------------------------------------
/img/source/eye_visible.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
16 |
--------------------------------------------------------------------------------
/img/source/manual.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
22 |
--------------------------------------------------------------------------------
/img/source/plus.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
--------------------------------------------------------------------------------
/img/source/star.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
--------------------------------------------------------------------------------
/img/source/star_active.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
--------------------------------------------------------------------------------
/img/source/task.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
--------------------------------------------------------------------------------
/img/source/task_active.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
--------------------------------------------------------------------------------
/img/source/update.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
--------------------------------------------------------------------------------
/img/sprites.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owncloud/tasks/7e5d7e3135efff0963a4cbd2a1efcb1684760593/img/sprites.png
--------------------------------------------------------------------------------
/img/tasks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/owncloud/tasks/7e5d7e3135efff0963a4cbd2a1efcb1684760593/img/tasks.png
--------------------------------------------------------------------------------
/img/tasks.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
--------------------------------------------------------------------------------
/issue_template.md:
--------------------------------------------------------------------------------
1 |
5 | ### Steps to reproduce
6 | 1.
7 | 2.
8 | 3.
9 |
10 | ### Expected behaviour
11 | Tell us what should happen
12 |
13 | ### Actual behaviour
14 | Tell us what happens instead
15 |
16 | ### Server configuration
17 | **Operating system**:
18 |
19 | **Web server:**
20 |
21 | **Database:**
22 |
23 | **PHP version:**
24 |
25 | **ownCloud version:** (see ownCloud admin page)
26 |
27 | **Tasks version:** (see ownCloud apps page)
28 |
29 | **Updated from an older ownCloud or fresh install:**
30 |
31 | **Signing status (ownCloud 9.0 and above):**
32 |
33 | ```
34 | Login as admin user into your ownCloud and access
35 | http://example.com/index.php/settings/integrity/failed
36 | paste the results here.
37 | ```
38 |
39 | **List of activated apps:**
40 |
41 | ```
42 | If you have access to your command line run e.g.:
43 | sudo -u www-data php occ app:list
44 | from within your ownCloud installation folder
45 | ```
46 |
47 | **The content of config/config.php:**
48 |
49 | ```
50 | If you have access to your command line run e.g.:
51 | sudo -u www-data php occ config:list system
52 | from within your ownCloud installation folder
53 |
54 | or
55 |
56 | Insert your config.php content here
57 | (Without the database password, passwordsalt and secret)
58 | ```
59 |
60 | **Are you using external storage, if yes which one:** local/smb/sftp/...
61 |
62 | **Are you using encryption:** yes/no
63 |
64 | **Are you using an external user-backend, if yes which one:** LDAP/ActiveDirectory/Webdav/...
65 |
66 | #### LDAP configuration (delete this part if not used)
67 |
68 | ```
69 | With access to your command line run e.g.:
70 | sudo -u www-data php occ ldap:show-config
71 | from within your ownCloud installation folder
72 |
73 | Without access to your command line download the data/owncloud.db to your local
74 | computer or access your SQL server remotely and run the select query:
75 | SELECT * FROM `oc_appconfig` WHERE `appid` = 'user_ldap';
76 |
77 |
78 | Eventually replace sensitive data as the name/IP-address of your LDAP server or groups.
79 | ```
80 |
81 | ### Client configuration
82 | **Browser:**
83 |
84 | **Operating system:**
85 |
86 | **CalDAV-clients:**
87 |
88 | ### Logs
89 | #### Web server error log
90 | ```
91 | Insert your webserver log here
92 | ```
93 |
94 | #### ownCloud log (data/owncloud.log)
95 | ```
96 | Insert your ownCloud log here
97 | ```
98 |
99 | #### Browser log
100 | ```
101 | Insert your browser log here, this could for example include:
102 |
103 | a) The javascript console log
104 | b) The network log
105 | c) ...
106 | ```
107 |
--------------------------------------------------------------------------------
/js/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "vendor",
3 | "ignoredDependencies": [
4 | "jquery",
5 | "moment"
6 | ]
7 | }
--------------------------------------------------------------------------------
/js/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "esnext": true,
3 | "curly": true,
4 | "eqeqeq": true,
5 | "immed": true,
6 | "indent": 4,
7 | "latedef": true,
8 | "newcap": true,
9 | "noarg": true,
10 | "noempty": true,
11 | "nonew": true,
12 | "plusplus": false,
13 | "node": true,
14 | "undef": true,
15 | "unused": false,
16 | "strict": true,
17 | "maxparams": false,
18 | "maxdepth": 4,
19 | "browser": true,
20 | "devel": true,
21 | "jquery": true,
22 | "jasmine": true,
23 | "globals": {
24 | "jQuery": true,
25 | "ICAL": true,
26 | "jstz": true,
27 | "moment": true,
28 | "angular": true,
29 | "app": true,
30 | "OC": true,
31 | "oc_requesttoken": true,
32 | "requestToken": true,
33 | "inject": true,
34 | "module": true,
35 | "t": true,
36 | "it": true,
37 | "exports": true,
38 | "escapeHTML": true,
39 | "possible": true,
40 | "dav": true
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/js/Gruntfile.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 |
23 | module.exports = function(grunt) {
24 | 'use strict';
25 |
26 | grunt.loadNpmTasks('grunt-contrib-concat');
27 | grunt.loadNpmTasks('grunt-contrib-watch');
28 | grunt.loadNpmTasks('grunt-contrib-jshint');
29 | grunt.loadNpmTasks('grunt-wrap');
30 | grunt.loadNpmTasks('grunt-phpunit');
31 | grunt.loadNpmTasks('grunt-karma');
32 | // grunt.loadNpmTasks('grunt-newer');
33 | grunt.loadNpmTasks('grunt-phpdocumentor');
34 |
35 | grunt.initConfig({
36 | meta: {
37 | pkg: grunt.file.readJSON('package.json'),
38 | version: '<%= meta.pkg.version %>',
39 | banner: '/**\n' + ' * <%= meta.pkg.description %> - v<%= meta.version %>\n' + ' *\n' + ' * Copyright (c) <%= grunt.template.today("yyyy") %> - ' + '<%= meta.pkg.author.name %> <<%= meta.pkg.author.email %>>\n' + ' *\n' + ' * This file is licensed under the Affero\
40 | General Public License version 3 or later.\n' + ' * See the COPYING file\n' + ' *\n' + ' */\n\n',
41 | build: 'app/',
42 | production: 'public/'
43 | },
44 | concat: {
45 | "default": {
46 | options: {
47 | banner: '<%= meta.banner %>\n',
48 | stripBanners: {
49 | options: 'block'
50 | }
51 | },
52 | src: '<%= meta.build %>/**/*.js',
53 | dest: '<%= meta.production %>app.js'
54 | }
55 | },
56 | wrap: {
57 | "default": {
58 | src: '<%= meta.production %>app.js',
59 | dest: '',
60 | wrapper: ['(function(angular, $, oc_requesttoken, undefined){\n\n', '\n})(window.angular, window.jQuery, oc_requesttoken);']
61 | }
62 | },
63 |
64 | jshint: {
65 | files: [
66 | 'Gruntfile.js',
67 | '<%= meta.build %>**/*.js'
68 | ],
69 | options: {
70 | jshintrc: '.jshintrc',
71 | reporter: require('jshint-stylish')
72 | }
73 | },
74 |
75 | watch: {
76 | concat: {
77 | files: [
78 | '<%= meta.build %>**/*.js'
79 | ],
80 | options: {
81 | livereload: true
82 | },
83 | tasks: ['js']
84 | }
85 | }
86 | });
87 | grunt.registerTask('js', ['concat', 'wrap']);
88 | grunt.registerTask('default', 'js');
89 | };
90 |
--------------------------------------------------------------------------------
/js/README.md:
--------------------------------------------------------------------------------
1 | # JS & CSS development
2 | You need grunt installed to compile the coffeescript and less files.
3 | To compile all files run `grunt dev`.
4 |
5 | ## JS
6 | To compile the coffeescript run:
7 | `grunt js`
8 |
9 | ## CSS
10 | To compile the less files run:
11 | `grunt css`
12 |
13 | ## Watch Tasks
14 | Instead of executing the command everytime you change a file, grunt can watch for changes.
15 | Use the following commands instead:
16 | ```
17 | grunt watch:dev
18 | grunt watch:js
19 | grunt watch:css
20 | ```
21 |
--------------------------------------------------------------------------------
/js/app/directives/appnavigationentryutils.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').directive('appNavigationEntryUtils', function() {
23 | 'use strict';
24 | return {
25 | restrict: 'C',
26 | link: function(scope, elm) {
27 | var button, menu;
28 | menu = elm.siblings('.app-navigation-entry-menu');
29 | button = $(elm).find('.app-navigation-entry-utils-menu-button button');
30 | button.click(function() {
31 | menu.toggleClass('open');
32 | });
33 | scope.$on('documentClicked', function(scope, event) {
34 | if (event.target !== button[0]) {
35 | menu.removeClass('open');
36 | }
37 | });
38 | }
39 | };
40 | });
41 |
--------------------------------------------------------------------------------
/js/app/directives/autofocusoninsert.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').directive('autofocusOnInsert', function() {
23 | 'use strict';
24 | return function(scope, elm) {
25 | return elm.focus();
26 | };
27 | });
28 |
--------------------------------------------------------------------------------
/js/app/directives/avatar.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').directive('avatar', function() {
23 | 'use strict';
24 | return {
25 | restrict: 'A',
26 | scope: false,
27 | link: function(scope, elm, attr) {
28 | return attr.$observe('userid', function() {
29 | if (attr.userid) {
30 | return elm.avatar(attr.userid, attr.size);
31 | }
32 | });
33 | }
34 | };
35 | });
36 |
--------------------------------------------------------------------------------
/js/app/directives/datepicker.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').directive('datepicker', function() {
23 | 'use strict';
24 | return {
25 | restrict: 'A',
26 | scope: false,
27 | link: function(scope, elm, attr) {
28 | return elm.datepicker({
29 | onSelect: function(date, inst) {
30 | scope['set' + attr.datepicker + 'day'](date);
31 | return scope.$apply();
32 | },
33 | beforeShow: function(input, inst) {
34 | var dp, marginLeft;
35 | dp = $(inst).datepicker('widget');
36 | marginLeft = -Math.abs($(input).outerWidth() - dp.outerWidth()) / 2 + 'px';
37 | dp.css({
38 | 'margin-left': marginLeft
39 | });
40 | $("div.ui-datepicker:before").css({
41 | 'left': 100 + 'px'
42 | });
43 | return $('.hasDatepicker').datepicker("option", "firstDay", scope.settingsmodel.getById('various').startOfWeek);
44 | },
45 | beforeShowDay: function(date) {
46 | if (moment(date).startOf('day').diff(moment(scope.task[attr.datepicker], "YYYYMMDDTHHmmss").startOf('day'), 'days') === 0) {
47 | return [1, "selected"];
48 | } else {
49 | return [1, ""];
50 | }
51 | },
52 | minDate: null
53 | });
54 | }
55 | };
56 | });
57 |
--------------------------------------------------------------------------------
/js/app/directives/occlickfocus.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').directive('ocClickFocus', [
23 | '$timeout', function($timeout) {
24 | 'use strict';
25 | return function(scope, elm, attr) {
26 | var options;
27 | options = scope.$eval(attr.ocClickFocus);
28 | if (angular.isDefined(options) && angular.isDefined(options.selector)) {
29 | return elm.click(function() {
30 | if (angular.isDefined(options.timeout)) {
31 | return $timeout(function() {
32 | return $(options.selector).focus();
33 | }, options.timeout);
34 | } else {
35 | return $(options.selector).focus();
36 | }
37 | });
38 | }
39 | };
40 | }
41 | ]);
42 |
--------------------------------------------------------------------------------
/js/app/directives/timepicker.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').directive('timepicker', function() {
23 | 'use strict';
24 | return {
25 | restrict: 'A',
26 | link: function(scope, elm, attr) {
27 | return elm.timepicker({
28 | onSelect: function(date, inst) {
29 | scope['set' + attr.timepicker + 'time'](date);
30 | return scope.$apply();
31 | },
32 | myPosition: 'center top',
33 | atPosition: 'center bottom',
34 | hourText: t('tasks', 'Hours'),
35 | minuteText: t('tasks', 'Minutes')
36 | });
37 | }
38 | };
39 | });
40 |
--------------------------------------------------------------------------------
/js/app/directives/watchtop.js:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | ownCloud - Tasks
4 |
5 | @author Raimund Schlüßler
6 | @copyright 2016
7 |
8 | This library is free software; you can redistribute it and/or
9 | modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
10 | License as published by the Free Software Foundation; either
11 | version 3 of the License, or any later version.
12 |
13 | This library is distributed in the hope that it will be useful,
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | GNU AFFERO GENERAL PUBLIC LICENSE for more details.
17 |
18 | You should have received a copy of the GNU Affero General Public
19 | License along with this library. If not, see .
20 | */
21 |
22 | angular.module('Tasks').directive('watchTop', function() {
23 | 'use strict';
24 | return {
25 | restrict: 'A',
26 | link: function(scope, element, attr) {
27 | ({
28 | scope: {
29 | "divTop": "="
30 | }
31 | });
32 | return scope.$watch(function() {
33 | scope.divTop = element.prev().outerHeight(true);
34 | });
35 | }
36 | };
37 | });
38 |
--------------------------------------------------------------------------------
/js/app/filters/counterFormatter.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').filter('counterFormatter', function() {
23 | 'use strict';
24 | return function(count) {
25 | switch (false) {
26 | case count !== 0:
27 | return '';
28 | case count < 999:
29 | return '999+';
30 | default:
31 | return count;
32 | }
33 | };
34 | });
35 |
--------------------------------------------------------------------------------
/js/app/filters/dateDetails.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').filter('dateDetails', function() {
23 | 'use strict';
24 | return function(due) {
25 | if (moment(due, "YYYYMMDDTHHmmss").isValid()) {
26 | return moment(due, "YYYYMMDDTHHmmss").locale('details').calendar();
27 | } else {
28 | return t('tasks', 'Set due date');
29 | }
30 | };
31 | });
32 |
--------------------------------------------------------------------------------
/js/app/filters/dateDetailsShort.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').filter('dateDetailsShort', function() {
23 | 'use strict';
24 | return function(reminder) {
25 | if (moment(reminder, "YYYYMMDDTHHmmss").isValid()) {
26 | return moment(reminder, "YYYYMMDDTHHmmss").locale('details_short').calendar();
27 | } else {
28 | return '';
29 | }
30 | };
31 | });
32 |
--------------------------------------------------------------------------------
/js/app/filters/dateFromNow.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').filter('dateFromNow', function() {
23 | 'use strict';
24 | return function(due) {
25 | if (moment(due, "YYYYMMDDTHHmmss").isValid()) {
26 | return moment(due, "YYYYMMDDTHHmmss").fromNow();
27 | } else {
28 | return '';
29 | }
30 | };
31 | });
32 |
--------------------------------------------------------------------------------
/js/app/filters/dateTaskList.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').filter('dateTaskList', function() {
23 | 'use strict';
24 | return function(due) {
25 | if (moment(due, "YYYYMMDDTHHmmss").isValid()) {
26 | return moment(due, "YYYYMMDDTHHmmss").locale('tasks').calendar();
27 | } else {
28 | return '';
29 | }
30 | };
31 | });
32 |
--------------------------------------------------------------------------------
/js/app/filters/day.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').filter('day', function() {
23 | 'use strict';
24 | return function(i) {
25 | return moment().add('days', i).locale('list_week').calendar();
26 | };
27 | });
28 |
--------------------------------------------------------------------------------
/js/app/filters/dayTaskList.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').filter('dayTaskList', function() {
23 | 'use strict';
24 | return function(due) {
25 | if (moment(due, "YYYYMMDDTHHmmss").isValid()) {
26 | return moment(due, "YYYYMMDDTHHmmss").locale('tasks').calendar();
27 | } else {
28 | return '';
29 | }
30 | };
31 | });
32 |
--------------------------------------------------------------------------------
/js/app/filters/percentDetails.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').filter('percentDetails', function() {
23 | 'use strict';
24 | return function(percent) {
25 | return t('tasks', '%s %% completed').replace('%s', percent).replace('%%', '%');
26 | };
27 | });
28 |
--------------------------------------------------------------------------------
/js/app/filters/priorityDetails.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 |
23 | angular.module('Tasks').filter('priorityDetails', function() {
24 | 'use strict';
25 | return function(priority) {
26 | var string;
27 | string = t('tasks', 'priority %s: ').replace('%s', priority);
28 | if (+priority === 6 || +priority === 7 || +priority === 8 || +priority === 9) {
29 | return string + ' ' + t('tasks', 'high');
30 | } else if (+priority === 5) {
31 | return string + ' ' + t('tasks', 'medium');
32 | } else if (+priority === 1 || +priority === 2 || +priority === 3 || +priority === 4) {
33 | return string + ' ' + t('tasks', 'low');
34 | } else {
35 | return t('tasks', 'no priority assigned');
36 | }
37 | };
38 | });
39 |
--------------------------------------------------------------------------------
/js/app/filters/reminderDetails.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').filter('reminderDetails', function() {
23 | 'use strict';
24 | return function(reminder, scope) {
25 | var ds, time, token, _i, _len, _ref;
26 | if (!(angular.isUndefined(reminder) || reminder === null)) {
27 | if (reminder.type === 'DATE-TIME' && moment(reminder.date, "YYYYMMDDTHHmmss").isValid()) {
28 | return moment(reminder.date, "YYYYMMDDTHHmmss").locale('reminder').calendar();
29 | } else if (reminder.type === 'DURATION' && reminder.duration) {
30 | ds = t('tasks', 'Remind me');
31 | _ref = scope.durations;
32 | for (_i = 0, _len = _ref.length; _i < _len; _i++) {
33 | token = _ref[_i];
34 | if (+reminder.duration[token.id]) {
35 | time = 1;
36 | ds += ' ' + reminder.duration[token.id] + ' ';
37 | if (+reminder.duration[token.id] === 1) {
38 | ds += token.name;
39 | } else {
40 | ds += token.names;
41 | }
42 | }
43 | }
44 | if (!time) {
45 | if (reminder.duration.params.related === 'END') {
46 | ds += ' ' + t('tasks', 'at the end');
47 | } else {
48 | ds += ' ' + t('tasks', 'at the beginning');
49 | }
50 | } else {
51 | if (reminder.duration.params.invert) {
52 | if (reminder.duration.params.related === 'END') {
53 | ds += ' ' + t('tasks', 'before end');
54 | } else {
55 | ds += ' ' + t('tasks', 'before beginning');
56 | }
57 | } else {
58 | if (reminder.duration.params.related === 'END') {
59 | ds += ' ' + t('tasks', 'after end');
60 | } else {
61 | ds += ' ' + t('tasks', 'after beginning');
62 | }
63 | }
64 | }
65 | return ds;
66 | } else {
67 | return t('tasks', 'Remind me');
68 | }
69 | } else {
70 | return t('tasks', 'Remind me');
71 | }
72 | };
73 | });
74 |
--------------------------------------------------------------------------------
/js/app/filters/startDetails.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').filter('startDetails', function() {
23 | 'use strict';
24 | return function(due) {
25 | if (moment(due, "YYYYMMDDTHHmmss").isValid()) {
26 | return moment(due, "YYYYMMDDTHHmmss").locale('start').calendar();
27 | } else {
28 | return t('tasks', 'Set start date');
29 | }
30 | };
31 | });
32 |
--------------------------------------------------------------------------------
/js/app/filters/timeTaskList.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').filter('timeTaskList', function() {
23 | 'use strict';
24 | return function(due) {
25 | if (moment(due, "YYYYMMDDTHHmmss").isValid()) {
26 | return moment(due, "YYYYMMDDTHHmmss").format('HH:mm');
27 | } else {
28 | return '';
29 | }
30 | };
31 | });
32 |
--------------------------------------------------------------------------------
/js/app/services/businesslayer/listsbusinesslayer.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').factory('ListsBusinessLayer', [
23 | 'ListsModel', 'Persistence', 'TasksBusinessLayer', 'CalendarService', function(ListsModel, Persistence, TasksBusinessLayer, CalendarService) {
24 | 'use strict';
25 | var ListsBusinessLayer;
26 | ListsBusinessLayer = (function() {
27 | function ListsBusinessLayer(_$listsmodel, _persistence, _$tasksbusinesslayer, _$calendarservice) {
28 | this._$listsmodel = _$listsmodel;
29 | this._persistence = _persistence;
30 | this._$tasksbusinesslayer = _$tasksbusinesslayer;
31 | this._$calendarservice = _$calendarservice;
32 | }
33 |
34 | ListsBusinessLayer.prototype.init = function() {
35 | return this._$calendarservice.getAll().then(function(calendars) {
36 | var calendar, _i, _len, _results;
37 | _results = [];
38 | for (_i = 0, _len = calendars.length; _i < _len; _i++) {
39 | calendar = calendars[_i];
40 | ListsModel.add(calendar);
41 | _results.push(TasksBusinessLayer.getAll(calendar));
42 | }
43 | return _results;
44 | });
45 | };
46 |
47 | ListsBusinessLayer.prototype.add = function(calendar, color) {
48 | return this._$calendarservice.create(calendar, color, ['vtodo']).then(function(calendar) {
49 | ListsModel.add(calendar);
50 | return calendar;
51 | });
52 | };
53 |
54 | ListsBusinessLayer.prototype["delete"] = function(calendar) {
55 | return this._$calendarservice["delete"](calendar).then(function() {
56 | return ListsModel["delete"](calendar);
57 | });
58 | };
59 |
60 | ListsBusinessLayer.prototype.rename = function(calendar) {
61 | this._$calendarservice.update(calendar).then(function(calendar) {
62 | calendar.dropPreviousState();
63 | });
64 | };
65 |
66 | return ListsBusinessLayer;
67 |
68 | })();
69 | return new ListsBusinessLayer(ListsModel, Persistence, TasksBusinessLayer, CalendarService);
70 | }
71 | ]);
72 |
--------------------------------------------------------------------------------
/js/app/services/businesslayer/settingsbusinesslayer.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').factory('SettingsBusinessLayer', [
23 | 'Persistence', 'SettingsModel', function(Persistence, SettingsModel) {
24 | 'use strict';
25 | var SettingsBusinessLayer = (function() {
26 | function SettingsBusinessLayer(_persistence, _$settingsmodel) {
27 | this._persistence = _persistence;
28 | this._$settingsmodel = _$settingsmodel;
29 | }
30 |
31 | SettingsBusinessLayer.prototype.updateModel = function() {
32 | var success, _this = this;
33 | success = function() {};
34 | return this._persistence.getCollections(success, true);
35 | };
36 |
37 | SettingsBusinessLayer.prototype.setVisibility = function(collectionID, visibility) {
38 | return this._persistence.setVisibility(collectionID, visibility);
39 | };
40 |
41 | SettingsBusinessLayer.prototype.toggle = function(type, setting) {
42 | this._$settingsmodel.toggle(type, setting);
43 | var value = this._$settingsmodel.getById(type)[setting];
44 | return this._persistence.setting(type, setting, +value);
45 | };
46 |
47 | SettingsBusinessLayer.prototype.set = function(type, setting, value) {
48 | return this._persistence.setting(type, setting, value);
49 | };
50 |
51 | return SettingsBusinessLayer;
52 |
53 | })();
54 | return new SettingsBusinessLayer(Persistence, SettingsModel);
55 | }
56 | ]);
57 |
--------------------------------------------------------------------------------
/js/app/services/davclient.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raghu Nayyar
5 | * @author Georg Ehrke
6 | * @author Raimund Schlüßler
7 | * @copyright 2016 Raghu Nayyar
8 | * @copyright 2016 Georg Ehrke
9 | * @copyright 2016 Raimund Schlüßler
10 | *
11 | * This library is free software; you can redistribute it and/or
12 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
13 | * License as published by the Free Software Foundation; either
14 | * version 3 of the License, or any later version.
15 | *
16 | * This library is distributed in the hope that it will be useful,
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
20 | *
21 | * You should have received a copy of the GNU Affero General Public
22 | * License along with this library. If not, see .
23 | *
24 | */
25 |
26 | angular.module('Tasks').service('DavClient', [
27 | function() {
28 | 'use strict';
29 | var client;
30 | client = new dav.Client({
31 | baseUrl: OC.linkToRemote('dav/calendars'),
32 | xmlNamespaces: {
33 | 'DAV:': 'd',
34 | 'urn:ietf:params:xml:ns:caldav': 'c',
35 | 'http://apple.com/ns/ical/': 'aapl',
36 | 'http://owncloud.org/ns': 'oc',
37 | 'http://calendarserver.org/ns/': 'cs'
38 | }
39 | });
40 | angular.extend(client, {
41 | NS_DAV: 'DAV:',
42 | NS_IETF: 'urn:ietf:params:xml:ns:caldav',
43 | NS_APPLE: 'http://apple.com/ns/ical/',
44 | NS_OWNCLOUD: 'http://owncloud.org/ns',
45 | NS_CALENDARSERVER: 'http://calendarserver.org/ns/',
46 | buildUrl: function(path) {
47 | return window.location.protocol + '//' + window.location.host + path;
48 | },
49 | wasRequestSuccessful: function(status) {
50 | return status >= 200 && status <= 299;
51 | }
52 | });
53 | return client;
54 | }
55 | ]);
56 |
--------------------------------------------------------------------------------
/js/app/services/icalfactory.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raghu Nayyar
5 | * @author Georg Ehrke
6 | * @author Raimund Schlüßler
7 | * @copyright 2016 Raghu Nayyar
8 | * @copyright 2016 Georg Ehrke
9 | * @copyright 2016 Raimund Schlüßler
10 | *
11 | * This library is free software; you can redistribute it and/or
12 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
13 | * License as published by the Free Software Foundation; either
14 | * version 3 of the License, or any later version.
15 | *
16 | * This library is distributed in the hope that it will be useful,
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
20 | *
21 | * You should have received a copy of the GNU Affero General Public
22 | * License along with this library. If not, see .
23 | *
24 | */
25 |
26 | angular.module('Tasks').service('ICalFactory', [
27 | function() {
28 | 'use strict';
29 |
30 | // creates a new ICAL root element with a product id property
31 | return {
32 | new: function() {
33 | var root = new ICAL.Component(['vcalendar', [], []]);
34 |
35 | var version = angular.element('#app').attr('data-appVersion');
36 | root.updatePropertyWithValue('prodid', '-//ownCloud tasks v' + version);
37 |
38 | return root;
39 | }
40 | };
41 | }
42 | ]);
43 |
--------------------------------------------------------------------------------
/js/app/services/loading.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').factory('Loading', [
23 | function() {
24 | 'use strict';
25 | var Loading = (function() {
26 | function Loading() {
27 | this.count = 0;
28 | }
29 |
30 | Loading.prototype.increase = function() {
31 | return this.count += 1;
32 | };
33 |
34 | Loading.prototype.decrease = function() {
35 | return this.count -= 1;
36 | };
37 |
38 | Loading.prototype.getCount = function() {
39 | return this.count;
40 | };
41 |
42 | Loading.prototype.isLoading = function() {
43 | return this.count > 0;
44 | };
45 |
46 | return Loading;
47 |
48 | })();
49 | return new Loading();
50 | }
51 | ]);
52 |
--------------------------------------------------------------------------------
/js/app/services/models/collectionsmodel.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | var __hasProp = {}.hasOwnProperty,
25 | __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
26 |
27 | angular.module('Tasks').factory('CollectionsModel', [
28 | 'TasksModel', '_Model', function(TasksModel, _Model) {
29 | var CollectionsModel;
30 | CollectionsModel = (function(_super) {
31 | __extends(CollectionsModel, _super);
32 |
33 | function CollectionsModel(_$tasksmodel) {
34 | this._$tasksmodel = _$tasksmodel;
35 | this._nameCache = {};
36 | CollectionsModel.__super__.constructor.call(this);
37 | }
38 |
39 | CollectionsModel.prototype.add = function(data, clearCache) {
40 | if (clearCache === null) {
41 | clearCache = true;
42 | }
43 | this._nameCache[data.displayname] = data;
44 | if (angular.isDefined(data.id)) {
45 | return CollectionsModel.__super__.add.call(this, data, clearCache);
46 | }
47 | };
48 |
49 | CollectionsModel.prototype.getCount = function(collectionID, filter) {
50 | var count, task, tasks, _i, _len;
51 | if (filter === null) {
52 | filter = '';
53 | }
54 | count = 0;
55 | tasks = this._$tasksmodel.filteredTasks(filter);
56 | for (_i = 0, _len = tasks.length; _i < _len; _i++) {
57 | task = tasks[_i];
58 | count += this._$tasksmodel.filterTasks(task, collectionID) && !task.related;
59 | }
60 | return count;
61 | };
62 |
63 | return CollectionsModel;
64 |
65 | })(_Model);
66 | return new CollectionsModel(TasksModel);
67 | }
68 | ]);
69 |
70 | }).call(this);
71 |
--------------------------------------------------------------------------------
/js/app/services/models/settingsmodel.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | (function() {
23 | 'use strict';
24 | var __hasProp = {}.hasOwnProperty,
25 | __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
26 |
27 | angular.module('Tasks').factory('SettingsModel', [
28 | '_Model', function(_Model) {
29 | var SettingsModel;
30 | SettingsModel = (function(_super) {
31 | __extends(SettingsModel, _super);
32 |
33 | function SettingsModel() {
34 | this._nameCache = {};
35 | SettingsModel.__super__.constructor.call(this);
36 | }
37 |
38 | SettingsModel.prototype.add = function(data, clearCache) {
39 | if (clearCache === null) {
40 | clearCache = true;
41 | }
42 | this._nameCache[data.displayname] = data;
43 | if (angular.isDefined(data.id)) {
44 | return SettingsModel.__super__.add.call(this, data, clearCache);
45 | } else {
46 | return this._data.push(data);
47 | }
48 | };
49 |
50 | SettingsModel.prototype.toggle = function(type, setting) {
51 | var set;
52 | set = this.getById(type);
53 | this.getById(type)[setting] = !set[setting];
54 | };
55 |
56 | return SettingsModel;
57 |
58 | })(_Model);
59 | return new SettingsModel();
60 | }
61 | ]);
62 |
63 | }).call(this);
64 |
--------------------------------------------------------------------------------
/js/app/services/publisher.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').factory('Publisher', [
23 | 'CollectionsModel', 'SettingsModel', function(CollectionsModel, SettingsModel) {
24 | 'use strict';
25 | var Publisher = (function() {
26 | function Publisher(_$collectionsmodel, _$settingsmodel) {
27 | this._$collectionsmodel = _$collectionsmodel;
28 | this._$settingsmodel = _$settingsmodel;
29 | this._subscriptions = {};
30 | this.subscribeObjectTo(this._$collectionsmodel, 'collections');
31 | this.subscribeObjectTo(this._$settingsmodel, 'settings');
32 | }
33 |
34 | Publisher.prototype.subscribeObjectTo = function(object, name) {
35 | var base = this._subscriptions;
36 | if (!base[name]) {
37 | base[name] = [];
38 | }
39 | return this._subscriptions[name].push(object);
40 | };
41 |
42 | Publisher.prototype.publishDataTo = function(data, name) {
43 | var ref, results, subscriber, _i, _len;
44 | ref = this._subscriptions[name] || [];
45 | results = [];
46 | for (_i = 0, _len = ref.length; _i < _len; _i++) {
47 | subscriber = ref[_i];
48 | results.push(subscriber.handle(data));
49 | }
50 | return results;
51 | };
52 | return Publisher;
53 | })();
54 | return new Publisher(CollectionsModel, SettingsModel);
55 | }
56 | ]);
57 |
--------------------------------------------------------------------------------
/js/app/services/randomstringservice.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Calendar App
3 | *
4 | * @author Raghu Nayyar
5 | * @author Georg Ehrke
6 | * @copyright 2016 Raghu Nayyar
7 | * @copyright 2016 Georg Ehrke
8 | *
9 | * This library is free software; you can redistribute it and/or
10 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
11 | * License as published by the Free Software Foundation; either
12 | * version 3 of the License, or any later version.
13 | *
14 | * This library is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
18 | *
19 | * You should have received a copy of the GNU Affero General Public
20 | * License along with this library. If not, see .
21 | *
22 | */
23 | angular.module('Tasks').factory('RandomStringService', function () {
24 | 'use strict';
25 |
26 | return {
27 | generate: function() {
28 | return Math.random().toString(36).substr(2);
29 | }
30 | };
31 | });
32 |
--------------------------------------------------------------------------------
/js/app/services/status.js:
--------------------------------------------------------------------------------
1 | /**
2 | * ownCloud - Tasks
3 | *
4 | * @author Raimund Schlüßler
5 | * @copyright 2016 Raimund Schlüßler
6 | *
7 | * This library is free software; you can redistribute it and/or
8 | * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
9 | * License as published by the Free Software Foundation; either
10 | * version 3 of the License, or any later version.
11 | *
12 | * This library is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
16 | *
17 | * You should have received a copy of the GNU Affero General Public
18 | * License along with this library. If not, see .
19 | *
20 | */
21 |
22 | angular.module('Tasks').factory('Status', [
23 | function() {
24 | 'use strict';
25 | var Status;
26 | Status = (function() {
27 | function Status() {
28 | this._$status = {
29 | addingList: false,
30 | focusTaskInput: false
31 | };
32 | }
33 |
34 | Status.prototype.getStatus = function() {
35 | return this._$status;
36 | };
37 |
38 | return Status;
39 |
40 | })();
41 | return new Status();
42 | }
43 | ]);
44 |
--------------------------------------------------------------------------------
/js/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ownCloud Task App",
3 | "version": "0.9.3",
4 | "dependencies": {
5 | "angular": "",
6 | "angular-route": "",
7 | "angular-animate": "",
8 | "angular-sanitize": "",
9 | "angular-ui-select": "https://github.com/angular-ui/ui-select.git",
10 | "angular-draganddrop": "https://github.com/marceljuenemann/angular-drag-and-drop-lists.git",
11 | "jquery-timepicker": "",
12 | "ical.js": "~1.1.2",
13 | "jstzdetect": "",
14 | "davclient.js": "https://github.com/evert/davclient.js.git"
15 | },
16 | "devDependencies": {},
17 | "homepage": "https://github.com/owncloud/tasks",
18 | "authors": [
19 | "Raimund Schlüßler "
20 | ],
21 | "description": "",
22 | "main": "",
23 | "moduleType": [],
24 | "license": "AGPLv3",
25 | "private": true,
26 | "ignore": [
27 | "**/.*",
28 | "node_modules",
29 | "bower_components",
30 | "core/vendor",
31 | "test",
32 | "tests"
33 | ]
34 | }
35 |
--------------------------------------------------------------------------------
/js/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "task",
3 | "description": "ownCloud Task App",
4 | "version": "0.9.3",
5 | "author": {
6 | "name": "Raimund Schlüßler",
7 | "email": "raimund.schluessler@googlemail.com"
8 | },
9 | "private": true,
10 | "homepage": "",
11 | "repository": {
12 | "type": "git",
13 | "url": "git@github.com:owncloud/tasks.git"
14 | },
15 | "bugs": "https://github.com/owncloud/tasks/issues",
16 | "contributors": [],
17 | "dependencies": {},
18 | "devDependencies": {
19 | "bower": "*",
20 | "grunt": "^1.5.3",
21 | "grunt-cli": "~1.4.3",
22 | "grunt-contrib-jshint": "*",
23 | "jshint-stylish": "^2.1.0",
24 | "grunt-concurrent": "~1.0.0",
25 | "grunt-contrib-concat": "~0.1.2",
26 | "grunt-contrib-less": "~0.6.4",
27 | "grunt-contrib-watch": "~0.2.0",
28 | "grunt-newer": "~1.1.1",
29 | "grunt-wrap": "~0.2.0"
30 | },
31 | "engine": "node >= 0.8"
32 | }
33 |
--------------------------------------------------------------------------------
/js/vendor/angular-animate/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-animate",
3 | "version": "1.5.5",
4 | "license": "MIT",
5 | "main": "./angular-animate.js",
6 | "ignore": [],
7 | "dependencies": {
8 | "angular": "1.5.5"
9 | },
10 | "homepage": "https://github.com/angular/bower-angular-animate",
11 | "_release": "1.5.5",
12 | "_resolution": {
13 | "type": "version",
14 | "tag": "v1.5.5",
15 | "commit": "39c4ea7a81ed05b09229f5961e31e1d9dc251bf8"
16 | },
17 | "_source": "https://github.com/angular/bower-angular-animate.git",
18 | "_target": "*",
19 | "_originalSource": "angular-animate"
20 | }
--------------------------------------------------------------------------------
/js/vendor/angular-animate/README.md:
--------------------------------------------------------------------------------
1 | # packaged angular-animate
2 |
3 | This repo is for distribution on `npm` and `bower`. The source for this module is in the
4 | [main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngAnimate).
5 | Please file issues and pull requests against that repo.
6 |
7 | ## Install
8 |
9 | You can install this package either with `npm` or with `bower`.
10 |
11 | ### npm
12 |
13 | ```shell
14 | npm install angular-animate
15 | ```
16 |
17 | Then add `ngAnimate` as a dependency for your app:
18 |
19 | ```javascript
20 | angular.module('myApp', [require('angular-animate')]);
21 | ```
22 |
23 | ### bower
24 |
25 | ```shell
26 | bower install angular-animate
27 | ```
28 |
29 | Then add a `
33 | ```
34 |
35 | Then add `ngAnimate` as a dependency for your app:
36 |
37 | ```javascript
38 | angular.module('myApp', ['ngAnimate']);
39 | ```
40 |
41 | ## Documentation
42 |
43 | Documentation is available on the
44 | [AngularJS docs site](http://docs.angularjs.org/api/ngAnimate).
45 |
46 | ## License
47 |
48 | The MIT License
49 |
50 | Copyright (c) 2010-2015 Google, Inc. http://angularjs.org
51 |
52 | Permission is hereby granted, free of charge, to any person obtaining a copy
53 | of this software and associated documentation files (the "Software"), to deal
54 | in the Software without restriction, including without limitation the rights
55 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
56 | copies of the Software, and to permit persons to whom the Software is
57 | furnished to do so, subject to the following conditions:
58 |
59 | The above copyright notice and this permission notice shall be included in
60 | all copies or substantial portions of the Software.
61 |
62 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
63 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
64 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
65 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
66 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
67 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
68 | THE SOFTWARE.
69 |
--------------------------------------------------------------------------------
/js/vendor/angular-animate/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-animate",
3 | "version": "1.5.5",
4 | "license": "MIT",
5 | "main": "./angular-animate.js",
6 | "ignore": [],
7 | "dependencies": {
8 | "angular": "1.5.5"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/js/vendor/angular-animate/index.js:
--------------------------------------------------------------------------------
1 | require('./angular-animate');
2 | module.exports = 'ngAnimate';
3 |
--------------------------------------------------------------------------------
/js/vendor/angular-animate/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-animate",
3 | "version": "1.5.5",
4 | "description": "AngularJS module for animations",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "https://github.com/angular/angular.js.git"
12 | },
13 | "keywords": [
14 | "angular",
15 | "framework",
16 | "browser",
17 | "animation",
18 | "client-side"
19 | ],
20 | "author": "Angular Core Team ",
21 | "license": "MIT",
22 | "bugs": {
23 | "url": "https://github.com/angular/angular.js/issues"
24 | },
25 | "homepage": "http://angularjs.org"
26 | }
27 |
--------------------------------------------------------------------------------
/js/vendor/angular-draganddrop/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-drag-and-drop-lists",
3 | "main": "angular-drag-and-drop-lists.js",
4 | "version": "1.4.0",
5 | "homepage": "https://github.com/marceljuenemann/angular-drag-and-drop-lists",
6 | "authors": [
7 | "Marcel Juenemann "
8 | ],
9 | "description": "Angular directives for sorting nested lists using the HTML5 Drag & Drop API",
10 | "keywords": [
11 | "angular",
12 | "drag",
13 | "drop",
14 | "dnd",
15 | "nested",
16 | "sortable",
17 | "lists",
18 | "html5"
19 | ],
20 | "license": "MIT",
21 | "ignore": [
22 | "**/.*",
23 | "node_modules",
24 | "bower_components",
25 | "demo",
26 | "*.json",
27 | "test",
28 | "tests"
29 | ],
30 | "_release": "1.4.0",
31 | "_resolution": {
32 | "type": "version",
33 | "tag": "v1.4.0",
34 | "commit": "141e13919b30578ed53d079bdd269fb99b20f78f"
35 | },
36 | "_source": "https://github.com/marceljuenemann/angular-drag-and-drop-lists.git",
37 | "_target": "*",
38 | "_originalSource": "https://github.com/marceljuenemann/angular-drag-and-drop-lists.git"
39 | }
--------------------------------------------------------------------------------
/js/vendor/angular-draganddrop/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Marcel Juenemann
4 | Copyright (c) 2014-2016 Google Inc.
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in all
14 | copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | SOFTWARE.
23 |
--------------------------------------------------------------------------------
/js/vendor/angular-draganddrop/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-drag-and-drop-lists",
3 | "main": "angular-drag-and-drop-lists.js",
4 | "version": "1.4.0",
5 | "homepage": "https://github.com/marceljuenemann/angular-drag-and-drop-lists",
6 | "authors": [
7 | "Marcel Juenemann "
8 | ],
9 | "description": "Angular directives for sorting nested lists using the HTML5 Drag & Drop API",
10 | "keywords": [
11 | "angular",
12 | "drag",
13 | "drop",
14 | "dnd",
15 | "nested",
16 | "sortable",
17 | "lists",
18 | "html5"
19 | ],
20 | "license": "MIT",
21 | "ignore": [
22 | "**/.*",
23 | "node_modules",
24 | "bower_components",
25 | "demo",
26 | "*.json",
27 | "test",
28 | "tests"
29 | ]
30 | }
31 |
--------------------------------------------------------------------------------
/js/vendor/angular-route/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-route",
3 | "version": "1.5.5",
4 | "license": "MIT",
5 | "main": "./angular-route.js",
6 | "ignore": [],
7 | "dependencies": {
8 | "angular": "1.5.5"
9 | },
10 | "homepage": "https://github.com/angular/bower-angular-route",
11 | "_release": "1.5.5",
12 | "_resolution": {
13 | "type": "version",
14 | "tag": "v1.5.5",
15 | "commit": "642a2dfc05f869f4a56733e182393536184ed4fa"
16 | },
17 | "_source": "https://github.com/angular/bower-angular-route.git",
18 | "_target": "*",
19 | "_originalSource": "angular-route"
20 | }
--------------------------------------------------------------------------------
/js/vendor/angular-route/README.md:
--------------------------------------------------------------------------------
1 | # packaged angular-route
2 |
3 | This repo is for distribution on `npm` and `bower`. The source for this module is in the
4 | [main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngRoute).
5 | Please file issues and pull requests against that repo.
6 |
7 | ## Install
8 |
9 | You can install this package either with `npm` or with `bower`.
10 |
11 | ### npm
12 |
13 | ```shell
14 | npm install angular-route
15 | ```
16 |
17 | Then add `ngRoute` as a dependency for your app:
18 |
19 | ```javascript
20 | angular.module('myApp', [require('angular-route')]);
21 | ```
22 |
23 | ### bower
24 |
25 | ```shell
26 | bower install angular-route
27 | ```
28 |
29 | Add a `
33 | ```
34 |
35 | Then add `ngRoute` as a dependency for your app:
36 |
37 | ```javascript
38 | angular.module('myApp', ['ngRoute']);
39 | ```
40 |
41 | ## Documentation
42 |
43 | Documentation is available on the
44 | [AngularJS docs site](http://docs.angularjs.org/api/ngRoute).
45 |
46 | ## License
47 |
48 | The MIT License
49 |
50 | Copyright (c) 2010-2015 Google, Inc. http://angularjs.org
51 |
52 | Permission is hereby granted, free of charge, to any person obtaining a copy
53 | of this software and associated documentation files (the "Software"), to deal
54 | in the Software without restriction, including without limitation the rights
55 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
56 | copies of the Software, and to permit persons to whom the Software is
57 | furnished to do so, subject to the following conditions:
58 |
59 | The above copyright notice and this permission notice shall be included in
60 | all copies or substantial portions of the Software.
61 |
62 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
63 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
64 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
65 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
66 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
67 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
68 | THE SOFTWARE.
69 |
--------------------------------------------------------------------------------
/js/vendor/angular-route/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-route",
3 | "version": "1.5.5",
4 | "license": "MIT",
5 | "main": "./angular-route.js",
6 | "ignore": [],
7 | "dependencies": {
8 | "angular": "1.5.5"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/js/vendor/angular-route/index.js:
--------------------------------------------------------------------------------
1 | require('./angular-route');
2 | module.exports = 'ngRoute';
3 |
--------------------------------------------------------------------------------
/js/vendor/angular-route/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-route",
3 | "version": "1.5.5",
4 | "description": "AngularJS router module",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "https://github.com/angular/angular.js.git"
12 | },
13 | "keywords": [
14 | "angular",
15 | "framework",
16 | "browser",
17 | "router",
18 | "client-side"
19 | ],
20 | "author": "Angular Core Team ",
21 | "license": "MIT",
22 | "bugs": {
23 | "url": "https://github.com/angular/angular.js/issues"
24 | },
25 | "homepage": "http://angularjs.org"
26 | }
27 |
--------------------------------------------------------------------------------
/js/vendor/angular-sanitize/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-sanitize",
3 | "version": "1.5.5",
4 | "license": "MIT",
5 | "main": "./angular-sanitize.js",
6 | "ignore": [],
7 | "dependencies": {
8 | "angular": "1.5.5"
9 | },
10 | "homepage": "https://github.com/angular/bower-angular-sanitize",
11 | "_release": "1.5.5",
12 | "_resolution": {
13 | "type": "version",
14 | "tag": "v1.5.5",
15 | "commit": "84a69853f2a591b1b9d000984e6219924aaff016"
16 | },
17 | "_source": "https://github.com/angular/bower-angular-sanitize.git",
18 | "_target": "*",
19 | "_originalSource": "angular-sanitize"
20 | }
--------------------------------------------------------------------------------
/js/vendor/angular-sanitize/README.md:
--------------------------------------------------------------------------------
1 | # packaged angular-sanitize
2 |
3 | This repo is for distribution on `npm` and `bower`. The source for this module is in the
4 | [main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngSanitize).
5 | Please file issues and pull requests against that repo.
6 |
7 | ## Install
8 |
9 | You can install this package either with `npm` or with `bower`.
10 |
11 | ### npm
12 |
13 | ```shell
14 | npm install angular-sanitize
15 | ```
16 |
17 | Then add `ngSanitize` as a dependency for your app:
18 |
19 | ```javascript
20 | angular.module('myApp', [require('angular-sanitize')]);
21 | ```
22 |
23 | ### bower
24 |
25 | ```shell
26 | bower install angular-sanitize
27 | ```
28 |
29 | Add a `
33 | ```
34 |
35 | Then add `ngSanitize` as a dependency for your app:
36 |
37 | ```javascript
38 | angular.module('myApp', ['ngSanitize']);
39 | ```
40 |
41 | ## Documentation
42 |
43 | Documentation is available on the
44 | [AngularJS docs site](http://docs.angularjs.org/api/ngSanitize).
45 |
46 | ## License
47 |
48 | The MIT License
49 |
50 | Copyright (c) 2010-2015 Google, Inc. http://angularjs.org
51 |
52 | Permission is hereby granted, free of charge, to any person obtaining a copy
53 | of this software and associated documentation files (the "Software"), to deal
54 | in the Software without restriction, including without limitation the rights
55 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
56 | copies of the Software, and to permit persons to whom the Software is
57 | furnished to do so, subject to the following conditions:
58 |
59 | The above copyright notice and this permission notice shall be included in
60 | all copies or substantial portions of the Software.
61 |
62 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
63 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
64 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
65 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
66 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
67 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
68 | THE SOFTWARE.
69 |
--------------------------------------------------------------------------------
/js/vendor/angular-sanitize/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-sanitize",
3 | "version": "1.5.5",
4 | "license": "MIT",
5 | "main": "./angular-sanitize.js",
6 | "ignore": [],
7 | "dependencies": {
8 | "angular": "1.5.5"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/js/vendor/angular-sanitize/index.js:
--------------------------------------------------------------------------------
1 | require('./angular-sanitize');
2 | module.exports = 'ngSanitize';
3 |
--------------------------------------------------------------------------------
/js/vendor/angular-sanitize/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-sanitize",
3 | "version": "1.5.5",
4 | "description": "AngularJS module for sanitizing HTML",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "https://github.com/angular/angular.js.git"
12 | },
13 | "keywords": [
14 | "angular",
15 | "framework",
16 | "browser",
17 | "html",
18 | "client-side"
19 | ],
20 | "author": "Angular Core Team ",
21 | "license": "MIT",
22 | "bugs": {
23 | "url": "https://github.com/angular/angular.js/issues"
24 | },
25 | "homepage": "http://angularjs.org"
26 | }
27 |
--------------------------------------------------------------------------------
/js/vendor/angular-ui-select/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-ui-select",
3 | "version": "0.17.0",
4 | "homepage": "https://github.com/angular-ui/ui-select",
5 | "authors": [
6 | "AngularUI"
7 | ],
8 | "description": "AngularJS ui-select",
9 | "main": [
10 | "dist/select.js",
11 | "dist/select.css"
12 | ],
13 | "license": "MIT",
14 | "ignore": [
15 | "**/.*",
16 | "node_modules",
17 | "bower_components",
18 | "src",
19 | "test",
20 | "gulpfile.js",
21 | "karma.conf.js",
22 | "examples"
23 | ],
24 | "dependencies": {
25 | "angular": ">=1.2.18"
26 | },
27 | "devDependencies": {
28 | "jquery": "~1.11",
29 | "angular-sanitize": ">=1.2.18",
30 | "angular-mocks": ">=1.2.18"
31 | },
32 | "_release": "0.17.0",
33 | "_resolution": {
34 | "type": "version",
35 | "tag": "v0.17.0",
36 | "commit": "c41b8928a846288583cd977b48a499d35a53ac45"
37 | },
38 | "_source": "https://github.com/angular-ui/ui-select.git",
39 | "_target": "*",
40 | "_originalSource": "https://github.com/angular-ui/ui-select.git"
41 | }
--------------------------------------------------------------------------------
/js/vendor/angular-ui-select/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2013-2014 AngularUI
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/js/vendor/angular-ui-select/README.md:
--------------------------------------------------------------------------------
1 | # AngularJS ui-select [](https://travis-ci.org/angular-ui/ui-select) [](https://gitter.im/angular-ui/ui-select?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
2 |
3 | AngularJS-native version of [Select2](http://ivaynberg.github.io/select2/) and [Selectize](http://brianreavis.github.io/selectize.js/). [http://angular-ui.github.io/ui-select/](http://angular-ui.github.io/ui-select/)
4 |
5 | [Getting Started](https://github.com/angular-ui/ui-select/wiki/Getting-Started)
6 |
7 | - [Examples](http://angular-ui.github.io/ui-select/#examples)
8 | - [Examples Source](./docs/examples)
9 | - [Documentation](https://github.com/angular-ui/ui-select/wiki)
10 |
11 | ## Latest Changes
12 |
13 | - Check [CHANGELOG.md](/CHANGELOG.md)
14 |
15 | ## Features
16 |
17 | - Search, Select, Multi-select and Tagging
18 | - Multiple Themes: Bootstrap, Select2 and Selectize
19 | - Keyboard support
20 | - No jQuery required (except for old browsers)
21 | - Small code base: 4.57KB min/gzipped vs 20KB for select2
22 |
23 | For the roadmap, check [issue #3](https://github.com/angular-ui/ui-select/issues/3) and the [Wiki page](https://github.com/angular-ui/ui-select/wiki/Roadmap).
24 |
25 | ## Installation Methods
26 |
27 | ### npm
28 | ```
29 | $ npm install ui-select
30 | ```
31 | ### bower
32 | ```
33 | $ bower install angular-ui-select
34 | ```
35 |
36 | ## Development
37 |
38 | ### Prepare your environment
39 | * Install [Node.js](http://nodejs.org/) and NPM (should come with)
40 | * Install global dev dependencies: `npm install -g gulp`
41 | * Install local dev dependencies: `npm install` in repository directory
42 |
43 | ### Development Commands
44 |
45 | * `gulp` to jshint, build and test
46 | * `gulp build` to jshint and build
47 | * `gulp test` for one-time test with karma (also build and jshint)
48 | * `gulp watch` to watch src files to jshint, build and test when changed
49 | * `gulp docs` build docs and examples
50 |
51 | ## Contributing
52 |
53 | - Check [CONTRIBUTING.md](/CONTRIBUTING.md)
54 | - Run the tests
55 | - Try the [examples](./docs/examples)
56 |
57 | When issuing a pull request, please exclude changes from the "dist" folder to avoid merge conflicts.
58 |
--------------------------------------------------------------------------------
/js/vendor/angular-ui-select/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "angular-ui-select",
3 | "version": "0.17.0",
4 | "homepage": "https://github.com/angular-ui/ui-select",
5 | "authors": [
6 | "AngularUI"
7 | ],
8 | "description": "AngularJS ui-select",
9 | "main": [
10 | "dist/select.js",
11 | "dist/select.css"
12 | ],
13 | "license": "MIT",
14 | "ignore": [
15 | "**/.*",
16 | "node_modules",
17 | "bower_components",
18 | "src",
19 | "test",
20 | "gulpfile.js",
21 | "karma.conf.js",
22 | "examples"
23 | ],
24 | "dependencies": {
25 | "angular": ">=1.2.18"
26 | },
27 | "devDependencies": {
28 | "jquery": "~1.11",
29 | "angular-sanitize": ">=1.2.18",
30 | "angular-mocks": ">=1.2.18"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/js/vendor/angular-ui-select/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "components/ui-select",
3 | "description": "AngularJS UI Select",
4 | "keywords": ["angular", "angular-ui", "select", "select2", "angularjs"],
5 | "type": "component",
6 | "homepage": "https://github.com/angular-ui/ui-select",
7 | "license": "MIT",
8 | "support": {
9 | "issues": "https://github.com/angular-ui/ui-select/issues",
10 | "wiki": "https://github.com/angular-ui/ui-select/wiki",
11 | "source": "https://github.com/angular-ui/ui-select"
12 | },
13 | "require": {
14 | "robloach/component-installer": "*"
15 | },
16 | "extra": {
17 | "component": {
18 | "scripts": [
19 | "dist/select.js"
20 | ],
21 | "files": [
22 | "dist/select.js",
23 | "dist/select.css",
24 | "dist/select.min.js",
25 | "dist/select.min.css"
26 | ]
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/js/vendor/angular-ui-select/deploy-docs.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 |
4 | [[ $TRAVIS_SECURE_ENV_VARS == "true" ]] || { echo "No github key avaliable, aborting publishing"; exit 0; }
5 |
6 | ID_REF="$(git rev-parse --short HEAD)"
7 |
8 | git clone "https://${GH_KEY}@${GH_REF}" ./docs-out -b ${GH_PAGES_BRANCH} --single-branch --depth=1
9 |
10 | cd docs-out
11 |
12 | # clear out everything
13 | git rm -rf .
14 | git clean -fxd
15 |
16 | # get new content
17 | cp ../docs-built/* . -R
18 |
19 | git add .
20 |
21 | # inside this git repo we'll pretend to be a new user
22 | git config user.name "Travis CI"
23 | git config user.email "travisci@users.noreply.github.com"
24 |
25 | # The first and only commit to this new Git repo contains all the
26 | # files present with the commit message "Deploy to GitHub Pages".
27 | git commit -m "docs(*): new deploy (angular-ui/ui-select@${ID_REF})"
28 |
29 |
30 | git push origin --quiet
31 | #> /dev/null 2>&1
--------------------------------------------------------------------------------
/js/vendor/angular-ui-select/docs/assets/app.js:
--------------------------------------------------------------------------------
1 | var module = angular.module('ui.select.pages', ['plunkr']);
2 |
--------------------------------------------------------------------------------
/js/vendor/angular-ui-select/docs/partials/_footer.html:
--------------------------------------------------------------------------------
1 |