Commit Graph

1453 Commits

Author SHA1 Message Date
Andrew Nicolaou 7a1fa663af Edit sketch name/description 2019-09-25 12:07:18 -04:00
Andrew Nicolaou 60ec67804b Remove logging 2019-09-25 12:07:18 -04:00
Andrew Nicolaou 2a0a5601ee Display icon-based add/remove button in Collection List 2019-09-25 12:07:18 -04:00
Andrew Nicolaou 0086601af1 Sets Collection List modal in addMode to fixed width 2019-09-25 12:07:18 -04:00
Andrew Nicolaou 679304d0ab Do not empty table when fetching new data 2019-09-25 12:07:18 -04:00
Andrew Nicolaou a385b470b2 Padding for table cells to align with header 2019-09-25 12:07:18 -04:00
Andrew Nicolaou c288481476 Shorten date displayed in Collection List items for better layout 2019-09-25 12:07:18 -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 20a5ac5ec3 Show toast message when creating collection or adding/removing sketches 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 959ff3ef20 Splits CollectionList into smaller files 2019-09-25 12:06:07 -04:00
Andrew Nicolaou 8781036ac7 WIP Display collection 2019-09-25 12:06:07 -04:00
Andrew Nicolaou 521e117d95 EditableInput component 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 5c54983c24 add searchbar to sketches dashboard view, adjust sketch list and asset list styling to have sticky header 2019-09-24 17:52:45 -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 3a65afb6da change link to editor back to 'back to editor' 2019-09-11 16:46:56 -04:00
Andrew Nicolaou 41636642c9 Style Dashboard tabs to match visual style of other tabs in app 2019-09-11 20:11:46 +02:00
Andrew Nicolaou 125051ccb1 Use Nav with user menu in "dashboard" layout 2019-09-11 20:11:46 +02:00
Andrew Nicolaou 611730c289 Refactor Nav 2019-09-11 19:06:30 +02:00
Cassie Tarakajian 8d0e59efc2
Merge pull request #1151 from davidbmx/master
Add matches search into code mirror fixes #936
2019-09-10 16:45:54 -04:00
davidbmx 6030b355ff Remove num results when don't match find 2019-09-10 12:38:12 -05:00
davidbmx 22f958e50a Add matches search into code mirror 2019-09-10 12:00:27 -05:00
Andrew Nicolaou 8ac95c0084 SketchList and AssetList set page title 2019-09-08 17:10:48 +02:00
Andrew Nicolaou 7ea4ae5637 Fix linting errors and warnings 2019-09-08 16:43:16 +02: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
Cassie Tarakajian 2de215356b
update mission statement in readme (#1152) 2019-09-05 16:17:06 -04:00
Rick Brown c75e11b631 Add toast to notify when creating new file. Fixes #1140 (#1147)
* Add toast to notify when creating new file

* Add toast for opposite conditional #1147

* Replaced New file created with New sketch created

* re #1140, change copy to 'opened new sketch' to make it clear that the new sketch isn't saved
2019-09-05 14:56:18 -04:00
David 876f0b30fc Add matches search into code mirror 2019-09-02 08:02:49 -05: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
Jon Paul Gualdarrama 68c1e48c99 Fix Issue #588. Only highlight runtime errors at the appropriate line… (#1136)
* Fix Issue #588. Only highlight runtime errors at the appropriate line for file in which the error occurred.

* Modifications to handle js in html <script> tag Part 1

* Correctly highlight errors in JavaScript in a <script> tag
2019-08-27 13:02:07 -04:00
Andrew Nicolaou b1bfb91f80 Serve assets from /:username/assets, redirecting old path 2019-08-24 13:38:01 +02:00
Andrew Nicolaou a0a13ab7fc Flexible table width 2019-08-24 13:38:01 +02:00
Andrew Nicolaou 0193ee8297 Standalone sketch list and asset page 2019-08-24 13:37:55 +02:00
Andrew Nicolaou 1b461d33cf Do not set prevPath if navigation passes through skipSavingPath flag 2019-08-24 13:31:15 +02:00
Apoorv Taneja aa318e0d2d fixed (#1141) 2019-08-22 16:47:22 -04:00
raclim 3d779734c3 Searchbar (#1132)
* search bar function

* Fixes #231, adds searchbar to sketchlist

* Fixes #231, update requested changes to searchbar

* Fixes #231, reset search term after modal closed
2019-08-21 14:08:08 -04:00
BMK 973bf7e98d 1133 - hides scrollbar when not needed (#1134)
* 1133 - hides scrollbar when not needed

* 1133 adds overflow-y:auto to asset-table-container
2019-08-21 11:28:38 -04:00
Apoorv Taneja 07a225c161 Fixed input field (#1130)
* fixed

* fixed

* fixed
2019-08-13 12:27:31 -04: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