Commit graph

424 commits

Author SHA1 Message Date
David
24e034808c resolve path present assets #1268 2020-04-08 17:13:04 -05:00
Cassie Tarakajian
416824ad56 Code style changes to use === and comparison to undefined 2020-03-30 17:07:10 -04:00
Mayank Gautam
c9b40bbd74 added undefined filePath check in the method resolvePathToFile 2020-03-30 16:58:53 -04:00
Mayank Gautam
8754848699 Added safegaurd against invalid project id in the method getFileContent 2020-03-30 16:58:53 -04:00
Cassie Tarakajian
f1dd9f44ef
Merge pull request #1340 from processing/feature/public-api
Merge Collections to Master
2020-03-30 16:07:53 -04:00
Elit Altum
06bca997ee
fix(file.controller.js): set headers for file extensions from MIME -I1218 (#1330)
* fix(file.controller.js): set headers for file extensions from MIME - I1218
* Use name to work out content type and provide fallback

Co-authored-by: Andrew Nicolaou <me@andrewnicolaou.co.uk>
2020-03-27 13:00:50 +01:00
Cassie Tarakajian
9de8257464 Fix server-side linting erros 2020-03-03 18:52:39 -05:00
Cassie Tarakajian
1107f7352a Add changes for asset upload limit, after cherry-picking changes from asset-limit-with-lambda 2020-03-03 16:33:52 -05:00
Cassie Tarakajian
59fe175ede Fix merge conflict for cherry picking 11833e9880257fe8164331689f77f8aa11df6a2a 2020-03-03 14:45:02 -05:00
Cassie Tarakajian
0cde29e56d re #168, get asset deletion route to work, update options dropdown on asset list 2020-03-03 14:43:23 -05:00
Cassie Tarakajian
36d20281db add script to add total size to all user accounts, add totalSize to user model, return totalSize from user api request 2020-03-03 14:00:53 -05:00
Cassie Tarakajian
5654ed1922 Merge branch 'master' into feature/public-api 2020-03-03 12:49:32 -05:00
Cassie Tarakajian
e776bc0ac0 Upgrade node version to 12.16.1, update Node installatino docs 2020-02-25 17:14:50 -05:00
Cassie Tarakajian
bc4a9f58d2 Merge in master 2020-01-28 17:31:44 -05:00
Cassie Tarakajian
66053e5c94 Fixes #1192, adds lang=en to all html files 2020-01-28 17:25:31 -05:00
Cassie Tarakajian
e9bccd747b Fixes #1211, fixes HTML in index.html to be valid 2020-01-28 17:03:30 -05:00
Cassie Tarakajian
70036d3e3a fixes #1219 2020-01-28 16:56:44 -05:00
Cassie Tarakajian
942a27da6e update default version of p5.js to 0.10.2 2020-01-28 16:56:44 -05:00
Cassie Tarakajian
20ac7527bc fixes #1219 2019-12-05 15:13:45 -05:00
Cassie Tarakajian
03fde3f0b5 update default version of p5.js to 0.10.2 2019-12-04 14:46:38 -05:00
Cassie Tarakajian
5319bbbeb7 merge master into sketch collections, to include updating theming 2019-11-25 10:46:28 -05:00
Cassie Tarakajian
fbb1e9a05d re #1207, update mongoose options for fetch example scripts 2019-11-14 16:07:42 -05:00
Andrew Nicolaou
13c45490a2 Merge branch 'feature/public-api' into feature/sketch-collections 2019-11-10 22:12:14 +01:00
Cassie Tarakajian
0d061a9dea merge in master 2019-11-07 15:03:01 -05:00
Cassie Tarakajian
a4a01cef4c update server code to work with updated mongoose version 2019-11-07 13:38:02 -05:00
Cassie Tarakajian
846d2bb7db Merge branch 'feature/public-api' into feature/sketch-collections 2019-10-31 15:02:31 -04:00
Cassie Tarakajian
3d2a7beeb9 merge master to feature/public-api branch 2019-10-22 17:35:20 -04:00
Andrew Nicolaou
14a8f48fd5 Fix all linting errors/warnings 2019-10-21 10:35:20 +02:00
Frank Winter
0b36126854 Change DELETE request for projects Fixes #1165 (#1172)
* Change DELETE request for projects

* fixes #1165, by updating requestsOfType to check for null or undefined values

* remove unnecessary whitespace changes
2019-10-02 16:18:54 -04:00
Cassie Tarakajian
02f4cb23b4 fixes #1162, fixes #1118 2019-09-26 16:17:22 -04:00
Andrew Nicolaou
95f6105a8b Assets routes should be parsed after server routes so /add-to-collection URL will work 2019-09-25 12:07:17 -04:00
Andrew Nicolaou
f98919e69b Logged in user can use "Add to collection" menu item 2019-09-25 12:07:17 -04:00
Andrew Nicolaou
8781036ac7 WIP Display collection 2019-09-25 12:06:07 -04:00
Andrew Nicolaou
c57ead4c62 Create Collection 2019-09-25 12:06:07 -04:00
Andrew Nicolaou
6ca6e78a28 Displays existing collection
- List all collections for a given user
- View an individual collection
- Link to a sketch from a collection
2019-09-25 12:06:07 -04:00
Andrew Nicolaou
af955b1602 Adds collections Nav item behind a feature flag 2019-09-25 12:04:37 -04:00
Andrew Nicolaou
c9551a3142 Adds Collections model and Editor API to manage collections
- List any user's collections
- Create new collection
- Modify collection metadata
- Delete collection
- Add/remove any project to/from a collection
2019-09-25 12:01:39 -04:00
Cassie Tarakajian
5900e62904 unify navigation for authentication pages, add authorization to front end, fixes #650 2019-09-19 13:38:27 -04:00
Cassie Tarakajian
7f2529a973 merge master 2019-09-11 19:05:15 -04:00
Cassie Tarakajian
f09e743e92
Merge pull request #1143 from andrewn/feature/standalone-sketches
Standalone sketches and asset page (fixes #1142)
2019-09-11 16:52:39 -04:00
Cassie Tarakajian
a155e7638d
re #1153: fix bug in which login form was in invalid state if user had entered username or password incorrectly on the first try (#1155) 2019-09-06 13:30:06 -04:00
Andrew Nicolaou
162d5276f1 Display Access Token tab depending on UI_ACCESS_TOKEN_ENABLED feature flag (#1149) 2019-08-30 16:15:13 -04:00
Andrew Nicolaou
1f4bd581a8 Public API: Namespace private and public APIs (#1148)
* Converts import script to use public API endpoints

The endpoints don't exist yet, but this is a good way to see how
the implementation of the data structures differ.

* Exposes public API endpoint to fetch user's sketches

* Implements public API delete endpoint

* Adds helper to create custom ApplicationError classes

* Adds create project endpoint that understand API's data structure

This transforms the nested tree of file data into a mongoose
Project model

* Returns '201 Created' to match API spec

* Removes 'CustomError' variable assignment as it shows up in test output

* transformFiles will return file validation errors

* Tests API project controller

* Tests toModel()

* Creates default files if no root-level .html file is provided

* Do not auto-generate a slug if it is provided

Fixes a bug where the slug was auto-generated using the sketch name,
even if a slug property had been provided.

* Validates uniqueness of slugs for projects created by the public API

* Adds tests for slug uniqueness

* Configures node's Promise implementation for mongoose (fixes warnings)

* Moves createProject tests to match controller location

* Adds support for code to ApplicationErrors

* deleteProject controller tests

* getProjectsForUser controller tests

- implements tests
- update apiKey tests to use new User mocks

* Ensure error objects have consistent property names

`message` is used as a high-level description of the errors
`detail` is optional and has an plain language explanation of the
individual errors
`errors` is an array of each individual problem from `detail` in a
machine-readable format

* Assert environment variables are provided at script start

* Version public API

* Expect "files" property to always be provided

* Fixes linting error

* Converts import script to use public API endpoints

The endpoints don't exist yet, but this is a good way to see how
the implementation of the data structures differ.

* Exposes public API endpoint to fetch user's sketches

* Implements public API delete endpoint

* Adds helper to create custom ApplicationError classes

* Adds create project endpoint that understand API's data structure

This transforms the nested tree of file data into a mongoose
Project model

* Returns '201 Created' to match API spec

* Removes 'CustomError' variable assignment as it shows up in test output

* transformFiles will return file validation errors

* Tests API project controller

* Tests toModel()

* Creates default files if no root-level .html file is provided

* Do not auto-generate a slug if it is provided

Fixes a bug where the slug was auto-generated using the sketch name,
even if a slug property had been provided.

* Validates uniqueness of slugs for projects created by the public API

* Adds tests for slug uniqueness

* Configures node's Promise implementation for mongoose (fixes warnings)

* Moves createProject tests to match controller location

* deleteProject controller tests

* Adds support for code to ApplicationErrors

* getProjectsForUser controller tests

- implements tests
- update apiKey tests to use new User mocks

* Ensure error objects have consistent property names

`message` is used as a high-level description of the errors
`detail` is optional and has an plain language explanation of the
individual errors
`errors` is an array of each individual problem from `detail` in a
machine-readable format

* Assert environment variables are provided at script start

* Version public API

* Expect "files" property to always be provided

* Fixes linting error

* Checks that authenticated user has permission to create under this namespace

Previously, the project was always created under the authenticated user's
namespace, but this not obvious behaviour.

* Splits private and public APIs

The private API is under /editor and the public API under /api
2019-08-30 14:39:45 -04:00
Andrew Nicolaou
d44a058fd8 Public API: Create new project (fixes #1095) (#1106)
* Converts import script to use public API endpoints

The endpoints don't exist yet, but this is a good way to see how
the implementation of the data structures differ.

* Exposes public API endpoint to fetch user's sketches

* Implements public API delete endpoint

* Adds helper to create custom ApplicationError classes

* Adds create project endpoint that understand API's data structure

This transforms the nested tree of file data into a mongoose
Project model

* Returns '201 Created' to match API spec

* Removes 'CustomError' variable assignment as it shows up in test output

* transformFiles will return file validation errors

* Tests API project controller

* Tests toModel()

* Creates default files if no root-level .html file is provided

* Do not auto-generate a slug if it is provided

Fixes a bug where the slug was auto-generated using the sketch name,
even if a slug property had been provided.

* Validates uniqueness of slugs for projects created by the public API

* Adds tests for slug uniqueness

* Configures node's Promise implementation for mongoose (fixes warnings)

* Moves createProject tests to match controller location

* Adds support for code to ApplicationErrors

* deleteProject controller tests

* getProjectsForUser controller tests

- implements tests
- update apiKey tests to use new User mocks

* Ensure error objects have consistent property names

`message` is used as a high-level description of the errors
`detail` is optional and has an plain language explanation of the
individual errors
`errors` is an array of each individual problem from `detail` in a
machine-readable format

* Assert environment variables are provided at script start

* Version public API

* Expect "files" property to always be provided

* Fixes linting error

* Converts import script to use public API endpoints

The endpoints don't exist yet, but this is a good way to see how
the implementation of the data structures differ.

* Exposes public API endpoint to fetch user's sketches

* Implements public API delete endpoint

* Adds helper to create custom ApplicationError classes

* Adds create project endpoint that understand API's data structure

This transforms the nested tree of file data into a mongoose
Project model

* Returns '201 Created' to match API spec

* Removes 'CustomError' variable assignment as it shows up in test output

* transformFiles will return file validation errors

* Tests API project controller

* Tests toModel()

* Creates default files if no root-level .html file is provided

* Do not auto-generate a slug if it is provided

Fixes a bug where the slug was auto-generated using the sketch name,
even if a slug property had been provided.

* Validates uniqueness of slugs for projects created by the public API

* Adds tests for slug uniqueness

* Configures node's Promise implementation for mongoose (fixes warnings)

* Moves createProject tests to match controller location

* deleteProject controller tests

* Adds support for code to ApplicationErrors

* getProjectsForUser controller tests

- implements tests
- update apiKey tests to use new User mocks

* Ensure error objects have consistent property names

`message` is used as a high-level description of the errors
`detail` is optional and has an plain language explanation of the
individual errors
`errors` is an array of each individual problem from `detail` in a
machine-readable format

* Assert environment variables are provided at script start

* Version public API

* Expect "files" property to always be provided

* Fixes linting error

* Checks that authenticated user has permission to create under this namespace

Previously, the project was always created under the authenticated user's
namespace, but this not obvious behaviour.
2019-08-30 14:26:57 -04:00
Rick Brown
5695830361 add ability to toggle line numbers to accessibility settings. Fixes #1138 (#1146)
* Added SET_LINE_NUMBERS constant

* Added setLineNumbers()

* Added lineNumber prop

* Added functionality to Preferences

* Passing props

* handle case SET_LINE_NUMBERS

* add lineNumber default value to the schema
2019-08-30 12:36:34 -04:00
Cassie Tarakajian
8054a532d7
Update to webpack 4 (#1145)
* remove some of the react errors, start to fix webpack HMR errors

* start upgrade to webpack 4

* more stuff to update webpack

* update webpack configs to work with webpack 4

* remove linting from truncate script
2019-08-28 16:08:40 -04:00
Andrew Nicolaou
b1bfb91f80 Serve assets from /:username/assets, redirecting old path 2019-08-24 13:38:01 +02:00
Cassie Tarakajian
25151e76ee re: #524, slugify example titles so that they can have a permanent link 2019-08-09 13:07:56 -04:00
Cassie Tarakajian
8dada77ce5
fixes #1121, updates p5.js default to 0.9.0 (#1125) 2019-07-29 12:58:00 -04:00
Cassie Tarakajian
d64498ef1f
RE #168, Feature/asset totalsize limit (#1123)
* re #168, add totalsize to response from API, add loader to asset list, add totalsize to asset list ui

* re #168, add totalsize to response from API, add loader to asset list, add totalsize to asset list ui

* update asset list copy to remove limit, since that's not implemented yet
2019-07-24 12:55:58 -04:00