Commit graph

151 commits

Author SHA1 Message Date
Paul Kaplan
209c8da9f7 Keep each input in its own formsy wrapper to improve performance
Having Formsy around the entire page was causing re-renders to happen when you typed into an input, when really just that component needed to re-render.
2018-10-25 10:27:54 -04:00
Paul Kaplan
dbca5a4044
Merge pull request #2226 from LLK/i10n-preview
Extract strings for localizing the preview page
2018-10-24 16:00:40 -04:00
Paul Kaplan
fa7c2d5b09
Merge pull request #2230 from paulkaplan/single-comment-mode
Showing specific comment by url hash on preview
2018-10-24 15:41:14 -04:00
Paul Kaplan
9066686c2b Decorate comment text to add @username links and scratch-domain links 2018-10-24 11:25:32 -04:00
Paul Kaplan
faf3f49c50 Fix proptypes 2018-10-24 10:43:21 -04:00
Paul Kaplan
520018ee50 View single thread of comments by URL hash 2018-10-24 10:29:33 -04:00
Paul Kaplan
4d8256e985 Update all preview... l10n strings to project... 2018-10-24 09:35:30 -04:00
Paul Kaplan
ae626d5244 Do not rely on total comment number for load more functionality
Show the load more comments button any time the last comment page was filled to the requested limit. As noted in the comment, this heuristic will be wrong at most 5% of the time but the failure mode (showing load more which, when clicked doesn't load any more, just goes away) is very mild, and for the overwhelming majority of project views that happen on projects with many, many comments, this is very unlikely to ever be noticed. It obviously isn't a perfect solution, but I cannot think of another that does not need the server to do another query to find out the total number of visible comments, or to find out if there are more comments after the requested offset+limit.
2018-10-24 09:18:45 -04:00
Paul Kaplan
f4887008a5 Extract strings for localizing the preview page 2018-10-23 11:38:34 -04:00
Paul Kaplan
8acbf05b1a
Merge pull request #2211 from paulkaplan/fix-studio-modal
Connect the consolidated studio data directly
2018-10-19 10:44:32 -04:00
Paul Kaplan
35abd285df Connect the consolidated studio data directly
To the modal to prevent constantly updating. Also only render the modals if they are visible
2018-10-18 16:45:24 -04:00
Paul Kaplan
066e5ff141 Use top level + replies count to control "Load More" comments button
This fixes an issue where a project with one top-level comment and one reply would should the "Load more" button at the bottom, even though there were no more to load
2018-10-18 11:42:10 -04:00
Paul Kaplan
312a9e2bff Restrict reporting comments to logged in users 2018-10-17 13:19:46 -04:00
Paul Kaplan
7b514344fa Allow admins access to comment delete 2018-10-17 13:16:41 -04:00
Paul Kaplan
2ac90315ea Use can prefix instead of undefined callback 2018-10-16 15:09:10 -04:00
Paul Kaplan
592c0e5703 Add restore functionality to comments for admins 2018-10-16 15:08:00 -04:00
Paul Kaplan
b7b7b079b9 Combine comment reported and deleted flags into visibility string
To prepare for server including visibility
2018-10-16 15:08:00 -04:00
Paul Kaplan
effbfbeaff
Merge pull request #2196 from paulkaplan/share-banner
Make share banner work on preview
2018-10-16 13:21:16 -04:00
Paul Kaplan
9ce79deac6 Control visibility externally and fix css 2018-10-16 13:02:22 -04:00
Paul Kaplan
21a7f1227e Make share banner actually share projects 2018-10-16 11:38:26 -04:00
Benjamin Wheeler
4124e26588
set explicit capabilities like “can____” for GUI and project page (#2187)
* set explicit capabilities like “can____” for GUI and project page

* set canShare to proper value instead of hardcoding it

* don't tell gui canReport
2018-10-16 10:49:35 -04:00
Paul Kaplan
29a6a27f46
Merge pull request #2173 from paulkaplan/comment-i10n
Localize all the comment related strings
2018-10-16 10:04:06 -04:00
Paul Kaplan
231e9c6d89 Internationalize strings in compose-comment 2018-10-12 09:16:27 -04:00
Paul Kaplan
600ba29933 Prevent replying when comments are turned off 2018-10-11 11:54:58 -04:00
Paul Kaplan
1f8342b987
Merge pull request #2164 from paulkaplan/comment-report-delete
Comment report action and modal flow for deleting
2018-10-11 11:08:07 -04:00
Paul Kaplan
086012f802 Add comment toggling 2018-10-10 15:14:53 -04:00
Paul Kaplan
bdde34ba26 Implement report action with modal flow 2018-10-09 11:38:24 -04:00
Paul Kaplan
744c90501e Add comments to projects and replies to comments 2018-10-09 09:36:41 -04:00
Linda
8db5216f17 share date is passed as a prop to subactions 2018-10-05 09:15:09 -04:00
Paul Kaplan
24e1c92b74
Merge pull request #2141 from paulkaplan/comment-delete
Add comment deleting for project owners on preview
2018-10-03 16:26:50 -04:00
Linda
27d7a3bf59
Merge pull request #2135 from LiFaytheGoblin/responsive-project-page/header
Make header of new project page look good on mobile
2018-10-03 15:41:03 -04:00
Paul Kaplan
24b456873b Add comment deleting for project owners 2018-10-03 13:31:54 -04:00
Linda
fc57218066 fix linting errors 2018-10-03 11:12:56 -04:00
Linda
a3df002b49 resolve mergin issues 2018-10-03 11:03:18 -04:00
Linda
193a4ac70a
Merge branch 'develop' into responsive-project-page/see-inside-remix-buttons 2018-10-03 10:45:10 -04:00
Linda
0895719f36 subactions getting own component 2018-10-03 10:09:44 -04:00
Linda
d85ca5d755 subactions getting their own component 2018-10-03 10:05:21 -04:00
Linda
8b10f3cba4 made project stats and action buttons responsive 2018-10-03 09:58:01 -04:00
Linda
2408568dda Merge branch 'develop' into responsive-project-page/see-inside-remix-buttons 2018-10-02 17:03:18 -04:00
Linda
a525e09cf6 Merge branch 'develop' into responsive-project-page/header 2018-10-02 16:59:01 -04:00
Linda
ef1b7d8f9f checking for landscape browser proof 2018-10-01 16:58:05 -04:00
Linda
cc57d0f206 removed stuff that doesn't belong into this pr 2018-09-26 15:01:25 -04:00
Linda
4f3d77f42a some fixes and adapted remix and studio thumbnails 2018-09-26 14:55:17 -04:00
Linda
a4e7ee35e4 adapted show and remix button to mobile 2018-09-26 14:54:33 -04:00
Linda
7465c2e85a removed sth that isn't part of the title issue 2018-09-26 12:02:00 -04:00
Linda
6445c7471e some fixes and adapted remix and studio thumbnails 2018-09-26 11:52:32 -04:00
Linda
51bb905381 extensions appear on correct place depending on media query 2018-09-25 15:04:31 -04:00
Linda
56f1b80f24 if in landscape format on mobile, switch to fullscreen mode 2018-09-25 14:36:34 -04:00
Linda
0898054e41
Merge pull request #2043 from LiFaytheGoblin/1986/project-page/fit-title-length
Keep title on preview project page from overflowing or otherwise messing up the layout
2018-09-11 10:08:38 -04:00
Ben Wheeler
2a19bb283f no need to pass title to embedded gui 2018-09-06 16:54:12 -04:00
Ben Wheeler
2f5604d23d localized Title too long error string 2018-09-05 18:38:19 -04:00
Ben Wheeler
478a30efcb pass project title to GUI, and disable submit when editing title 2018-09-05 18:38:19 -04:00
Linda
9db42fe9f4 prevented overflowing project title in a nice looking way 2018-08-23 14:24:31 -04:00
Ray Schamp
d538412357 WIP: configure GUI for staging 2018-08-16 17:39:04 -04:00
Ray Schamp
a19fb29f36 WIP: enable backpack in preview 2018-08-16 17:37:19 -04:00
Ben Wheeler
2c8990ae7e report project POSTs to scratchr2, displays modal reactively 2018-08-09 12:41:38 -04:00
Connor Hudson
1875870a86
Initial implementation for displaying comments on project page (#1997)
* Create Comment component, start styling it

* Restructure PreviewPresentation to better match mockup

* Add padding, border to comment bubble

* add padding to bottom row of comment

* Tweak alignment of avatar and comment content

* Add margin to lower project page container

* Use border-box box sizing for comment bubble

* Make user avatar a link

* Add initial implementation of comment tail

* Align username row properly, fix comment bubble width

* Use ::before pseudoelement for comment tail

* Remove unused props to Comment component

* Add CommentContainer to handle comment replies

* Use CommentContainer instead of Comment in PreviewPresentation

* Remove debug data from CommentContainer

* Fetch top level comments from the API

* Force comment container to stretch to bottom of view div

* Remove unused api import in CommentContainer

* Long words in comments should not overflow page

* Remove @ before username in comment title

* Fix word wrapping on Firefox

* Refactor CommentContainer into a class

* Properly export CommentContainer component

* Make replies column take up proper width

* Pass project ID to CommentContainer

* Fetch comment replies in CommentContainer

* Initial implementation for loading more comments

* Add "Load More" button to Presentation

* Initial implementation of collapsing threads longer than 3 replies

* Remove console log from preview.js redux

* Tweak last comment gradient color

* Only show three total replies in collapsed state

* Match scratchr2 behavior for thread collapsing

* Use width calc instead of margin and width 100%

* Fix styling for load more button

* Make comment border gray to match the wireframe

* Allow clicking through comment fade gradient

* Add comment compose component

* style comment compose box

* Style post, cancel buttons on comment compose component

* Add margin to create comment container

* Tweak styling for characters remaining text

* Tweak placeholder text

* Add more margin to comment avatar

* Add icons and styling to delete, report text

* Refactor px -> rem where possible in comment styles

* Change comment time color to dark gray

* Tweak margin and border radius

* Add reply icon to preview comments

* Clean up unused imports, console.log in compose-comment component

* Remove console statement in preview.jsx

* Add some clarifying comments to unfinished parts of comments

* Remove direct passing of comment api response to CommentContainer

* CommentContainer should not pass api response directly

* Rename CommentContainer to TopLevelComment

* First pass at getReplies for comments in redux

* Move reply fetching into redux actions instead of in TopLevelComment

* Refactor getReplies logic to behave better

* Remove components not directly related to reading comments

* Hide load more button if all comments are loaded
This uses the project info returned by the API

* Use same gradient as add to studio modal on comment thread
2018-08-06 11:52:18 -04:00
Ben Wheeler
1a4922a262 addtostudio buttons in own component; currentStudioIds redux object; lint fixes 2018-07-25 15:08:12 -04:00
Ben Wheeler
fc5912526e addtostudio modal interfaces with api add/remove endpoints; waits to close; handles open studios that user does not curate.
addtostudio modal interfaces with api add/remove endpoints; waits to close; handles open studios that user does not curate.
2018-07-20 20:37:36 -04:00
Ben Wheeler
a59d533a1c merged changes in report modal and add to studio handling 2018-07-16 13:39:29 -04:00
Ben Wheeler
bc7b31e924 finished draft of intermediary refactor of addtostudio modal redux code, container-presentation code simplified 2018-07-13 09:50:17 -04:00
Ben Wheeler
6a32edb2fe addtostudiomodal: incomplete progress on 1. container-presentation refactor, 2. redux handling of add and leave studio requests 2018-07-11 15:08:01 -04:00
Ben Wheeler
9cac70ab18 small steps towards addtostudio modal's container-presentation refactor 2018-07-07 14:09:43 -04:00
Ben Wheeler
af25e44fc6 refactoring add to studio modal into container and presentation; added getCuratedStudios functionality to preview 2018-07-04 18:01:11 -04:00
Connor Hudson
80dfaa6a1e Use l10n ids in extension chip 2018-06-22 10:01:12 -04:00
Ben Wheeler
0a6ec304d3 starting to change addtostudios modal to make changes on the fly 2018-06-20 20:25:46 -04:00
Connor Hudson
9f2304b8c9 Add check for extensions prop existence in PreviewPresentation 2018-06-20 09:48:40 -04:00
Connor Hudson
7fb7e9146b Merge upstream/develop, move logic to preview instead of presentation 2018-06-20 09:28:41 -04:00
Ben Wheeler
c25bfab7bb improved addtostudio modal variable names 2018-06-20 08:38:16 -04:00
Connor Hudson
bd22d573b6 extension-info.js -> extensions.js 2018-06-19 16:18:08 -04:00
Connor Hudson
168e155ac5 Use EXTENSION_INFO file in presentation.jsx 2018-06-19 16:13:47 -04:00
Connor Hudson
ea1c0ce4a2 Add initial implementation of loading extension info from sb3 project 2018-06-19 12:26:22 -04:00
Ben Wheeler
16190f1147 got addtostudio modal state changes to work, though not updating to server yet 2018-06-19 10:13:40 -04:00
Ben Wheeler
e05079a28c mocked my permissioned studios 2018-06-19 00:00:37 -04:00
Ben Wheeler
4c657a1e80 showing actual studio membership, though not unadded studios yet 2018-06-18 23:36:20 -04:00
Ray Schamp
9e02798f7b Lint 2018-06-18 17:19:12 -04:00
Ben Wheeler
f8df3c0146 added royal blue color, button styles, small jsx fixes to Add to Studio modal 2018-06-18 15:17:19 -04:00
Ben Wheeler
9d9226f4a4 got rid of bug keeping page from displaying 2018-06-16 19:28:28 -04:00
Ben Wheeler
f0fbc0a57f add to studio modal appears from project page, looks horrendous 2018-06-16 19:13:50 -04:00
Connor Hudson
b826a1ad2f Add onExtensionAdded function to bindAll call 2018-06-15 09:52:12 -04:00
Connor Hudson
1f5075f9d8 Initial (hacky) solution for loading EIABCW content 2018-06-14 16:54:55 -04:00
Connor Hudson
3eb0e12bf6 Only use extensions with preexisting data URIs for demo chips 2018-06-14 15:11:03 -04:00
Ray Schamp
1840b9df31 Convert presentation function component
Fixing a typo let the linter catch that this no longer needs to be a class component
2018-06-14 09:26:44 -04:00
Connor Hudson
b317c12e79 Add some mockup extensions 2018-06-13 16:45:48 -04:00
chrisgarrity
74c76fb1cf Refactor report-modal
* addresses comments for https://github.com/LLK/scratch-www/pull/1900
* renames report fields to match scratchr2 expectations
* restyle modal to allow display of validation messages
* removed cruft
2018-06-01 15:25:28 -04:00
chrisgarrity
6872cfc51f FIxing PR #1900 comments
addresses most comments except modal refactor, and error response from sumitting report.
* restore gui as a dev dependency
* better separation of view container/presentation
* replace absolute heights for textareas with making all sub components `display: flex`
* start to make presentation more modular added subcomponents to the view folder:
  * share-banner (moved from components)
  * remix-credit
  * remix-list
  * studio-list
2018-05-31 21:04:11 -04:00
chrisgarrity
285b2dbcff Updated styles 2018-05-31 15:02:45 -04:00
chrisgarrity
c6f197f576 Adjust share-date to give action buttons more room 2018-05-31 15:02:45 -04:00
chrisgarrity
0bc5bf745d Fix up stats line
* Update for newer version of API - remix count in stats
* create projectShape to remove duplication
* add approximate-number to limit the size of the stats row.
2018-05-31 15:02:45 -04:00
chrisgarrity
71dfe690be First pass at correcting project input styles
* Add placeholders to description input text-areas
* fix styling to show box shadow highlight on focus
* adjust height for non-remix project
* fix lint errors
2018-05-31 15:02:45 -04:00
chrisgarrity
08cf4f4f3d Refactor report modal
* move all the report modal presentation into the component
* add strings to general l10n file because we don’t handle l10n files in components
* Add current project id and username to the data before submitting
2018-05-31 15:02:44 -04:00
chrisgarrity
34042c9e8e Report first pass
Report button opens a modal with the report project form. All the content is currently in `preview/presentation` because components cannot have their own l10n files.
2018-05-31 15:02:44 -04:00
chrisgarrity
bd391b422a presentation first pass
First pass at project page design using actual assets from Carl, and matching styles with current design.

Includes a (negative margin) hack to line up the stage. see https://github.com/LLK/scratch-gui/issues/2132
2018-05-31 14:58:23 -04:00
chrisgarrity
99ed30e2c8 Fix up favorites
Found a couple of typos now that API can process favorites.
2018-05-30 14:39:25 -04:00
chrisgarrity
80de164d02
Handle See inside button (#1890)
* Handle See inside button

Import GUI reducers, initial state and middleware (throttle).

Update render to handle state and middleware.

Remove preview mode state and use scratchGui.mode from redux instead.

URL is getting updated, and mode will be updated based on URL. However, the history needs work - it doesn’t work with the modal back.

* Update to latest GUI

This is the minimum version of GUI that is needed for see-inside

* Really remove cruft.
2018-05-24 16:23:07 -04:00
chrisgarrity
d1420862ea
Initial GUI embed (#1869)
- `/preview/editor` will load GUI with an empty project
- `/preview/:id/editor` will load GUI with a project from the projects server (not local data)
- passes intl object to GUI
- `/preview/:id` with show the project page with an embedded player
- `/preview/:id/fullscreen` will load the project page with the player in fullscreen mode.

* Note that we needed to Increase memory for the build to avoid running out of heap space, and build time increases by about 2 minutes
2018-05-02 15:27:49 -04:00
chrisgarrity
b8326a3d57
Feature/preview project2 (#1856)
* Add user-session awareness
  - only show remix button if user is logged in (TBD: probably will want to hide if project creator == user)
* decorate text with @mentions and #hashtags
* Add studios, loves, favs
* In-place editing of title and description if current user is author and project shared (with validation)
2018-04-24 11:00:47 -04:00
chrisgarrity
1b2050c58a cleanup 2018-03-20 20:19:48 -04:00
chrisgarrity
1c6b0dd64c Cleanup
Fixing lint problems and removing (most) unused code. I left user and session as they will get used soon even though they aren’t currently.
2018-03-15 17:40:16 -04:00
chrisgarrity
f836c6e3a8 Adding in remix metadata
- Moved preview state into redux
- Gets remix credit if the project is a remix
- Shows up to 5 remixes (direct children?)
- handles empty remixes result (it’s not an array)
- Added Column component - based on Grid, but doesn’t use frameless to set width.
- allows trailing ‘/‘ on the URL
- cleaned up conditional content
2018-03-14 15:50:27 -04:00