Commit Graph

462 Commits

Author SHA1 Message Date
e69f991aa6 Update flask_wtf to 0.14.2 and make CSRFProtect available to current_app
By default CSRF protection is disabled for all views, since most
web endpoints and all API endpoints do not need it.
On the views that require it, we use the 
current_app.csrf.protect() method.
2018-03-28 22:05:54 +02:00
dcde2a4551 Merge branch 'master' into wip-asset-obscure 2018-03-28 12:42:42 +02:00
5eb464a1f3 Minor tweaks to layout when able to re-new subscriptions 2018-03-28 12:17:11 +02:00
ab6b277293 Minor tweaks and cleanup on group_hdri, group_texture and texture templates 2018-03-27 19:47:48 +02:00
a4e415f1e3 Assets: Trim the first part of the asset type
Usually "image" or "application".

Also special treatment for .blend files
e.g. application/x-blender becomes blend logo
2018-03-27 19:46:34 +02:00
ebfd3d542c Generic template for node preview when not subscribed 2018-03-27 19:40:44 +02:00
8f227076fd Node details is now part of view_base 2018-03-27 19:40:18 +02:00
a7cb3b9658 Use view_base for assets 2018-03-27 19:39:49 +02:00
641f29ab30 Introducing: view_base template for nodes
Contains all the basics divided in blocks:
* node_preview
* node_details
* node_details_meta_extra (for additional list items)
* node_download - to override the download button
* node_comments
* node_scripts - for node specific scripts, like hdri or video
* footer_scripts
2018-03-27 19:38:45 +02:00
17792df85e Cleanup: Unused block 2018-03-27 19:13:14 +02:00
bca8fac4cd Cleanup: Unused templates 2018-03-27 19:08:28 +02:00
218c3f0dca Fixed comment rendering 2018-03-27 17:13:12 +02:00
dfaac59e20 Cache Markdown'ed HTML in database
This is done via coercion rules. To cache the field 'content' in the
database, include this in your Eve schema:

    {'content': {'type': 'string', 'coerce': 'markdown'},
     '_content_html': {'type': 'string'}}

The `_content_html` field will be filled automatically when saving the
document via Eve.

To display the cached HTML, and fall back to display-time rendering if it
is not there, use `{{ document | markdowned('content') }}` in your template.

Still needs unit testing, a CLI command for regenerating the caches, and
a CLI command for migrating the node type definitions in existing projects.
2018-03-27 16:34:32 +02:00
12272750c3 T53890: Improving static content serving
Static files are now served with an 8-character hash before the last
extension. For example, `tutti.min.js` is now served as
`tutti.min.abcd1234.js`. When doing a request the hash is removed before
serving the static file.

The hash must be 8 characters long, and is taken from STATIC_FILE_HASH.
It is up to the deployment to change this configuration variable
whenever static files change. This forces browsers that download newly
deployed HTML to also refresh the dependencies (most importantly
JS/CSS).

For this to work, the URL must be built with `url_for('static_xxx',
filename='/path/to/file')`. The 'static' module still returns regular,
hashless URLs.
2018-03-23 17:36:14 +01:00
479a435ec5 Work in progress in blurring asset preview and minor CSS/template cleanups 2018-03-21 20:15:29 +01:00
7292c534ed Fix scrollToLinkedComment()
The test was done against location.hash, which contains a hash symbol.
Strip it for the test.
2018-03-14 21:59:50 +01:00
df6297d40f Fixed project search
The project ID wasn't used at all when searching in a project's context.
2018-03-13 12:24:29 +01:00
d0520484bb User admin: Show selected user as 'active' 2018-02-13 10:24:49 +01:00
d114b5631a User admin: removed cancel button
It didn't do anything useful, but did break the GUI.
2018-02-13 10:21:43 +01:00
1ca2f336c4 Proper error handling for node type editor 2018-02-01 14:13:01 +01:00
284873ddd4 Unify and simplify texture map type labels 2018-02-01 12:04:12 +01:00
08a814525b Implement project undelete as PATCH
This is done via a custom PATCH due to the lack of transactions of MongoDB;
we cannot undelete both project-referenced files and file-referenced
projects in one atomic operation.
2018-01-31 14:15:23 +01:00
ed1e348d67 Display publishing status of a texture node only to editors 2018-01-26 16:11:56 +01:00
666da0adda Show status in texture view_embed 2018-01-25 16:17:26 +01:00
889b5dc1c5 Removed redundant if around for 2018-01-25 16:17:18 +01:00
b3a36f2833 Fix T49930: bug in texture count 2018-01-25 15:51:15 +01:00
840e8ba29b Fix issue when editing org without IP range.
Stupid JavaScript ''.split('\n') results in Array('') instead of Array().
2018-01-25 14:35:33 +01:00
6a17949fdf Added Roles & Capabilities page to user settings
Thanks @fsiddi for helping with the explanatory text.
2018-01-25 14:01:28 +01:00
0a0c47205f Use Jinja2 inheritance to render settings pages.
This gives us more flexibility than using {% include %}.
2018-01-25 14:01:28 +01:00
270bb21646 Support IP range editing in Organization view_embed 2018-01-25 14:01:28 +01:00
0eca0c706f Introducing overridable comments list rendering
By refactoring part of comments_for_node into a dedicated function called render_comments_for_node, we enable Pillar apps to override the comment url and determine in each app what are the conditions that allow a user to post.
Further, we introduce an extensible and overridable list_embed.pug, which currently defines custom blocks for when the user is allowed and not allowed to post a comment,
2018-01-20 00:43:54 +01:00
4da7a84c86 Fix for broken urls in blog list
This actually undoes commits 90c62664a6 and 18fe240b93 and simply adds the node.url property when rendering a post in the posts_view function. This is what the template macro actually expected in the first place.
2018-01-18 16:02:29 +01:00
90c62664a6 Fix for broken url in blog post title and meta 2018-01-18 12:30:06 +01:00
18fe240b93 Fix for broken url in blog post header image 2018-01-18 11:37:55 +01:00
bdff391440 Support for rendering of video file attachments 2018-01-17 15:55:25 +01:00
61673ef273 Search: implemented pagination
- Got rid of the nasty off-by-one logic in the JavaScript.
- Implemented pagination at the API.
2018-01-10 17:07:21 +01:00
36aad45b26 Asset search JS: show creation timestamps 2018-01-05 17:23:40 +01:00
72c01cc743 Admin user search actually uses the right end-point 2018-01-05 15:51:41 +01:00
11b5be9d8e Fixed missing video.js errors in asset search page 2018-01-05 15:23:54 +01:00
d240a979ba scrollToLinkedComment: Check for valid ObjectID before passing to jQuery 2018-01-05 15:08:00 +01:00
04684c5f65 remove algolia from css and vendor stuff 2017-12-29 14:19:22 +01:00
d726e15ed8 Merge branch 'master' of git.blender.org:pillar into elastic 2017-12-29 12:19:47 +01:00
8f73dab36e Allow project undeletion, fixes T51244
Projects can be undeleted within a month of deletion.
2017-12-22 16:27:05 +01:00
a7693aa78d Switch from macros to blocks for navigation menus
This affects the user and notifications menus. It happens for two reasons:
- the only argument passed to the macros was current_user, which is always available
- we want to enable overriding and adding items to the menus via extensions

At the moment only the user menu takes advantage of the base template, since the blender-cloud extension makes use of it, while notifications.pug does not need it yet.
2017-12-13 11:08:33 +01:00
6d37046933 Fixed "leave shared project" javascript
Now the project is actually removed from the page. This isn't optimal; see
T53546 for a followup.
2017-12-12 11:48:48 +01:00
b7773e69c7 Merge branch 'master' into elastic 2017-12-08 12:55:57 +01:00
821f11393c Link to 'edit profile' page on Blender ID directly 2017-12-08 10:42:43 +01:00
ca25078b30 Removed editing of full name from Cloud profile
We take the full name from Blender ID instead.
2017-12-07 17:31:26 +01:00
9fdcfff4fc Direct users to renewal page on Store instead of /join
/join should only be used when someone can actually buy a new subscription.
/renew should be used when someone already has a subscription that needs
to be renewed.

Since url_for('cloud.xxxx') makes no sense in Pillar, I just hard-coded
/renew instead.
2017-12-06 14:39:30 +01:00
87fe1887e8 Added "Update from Blender ID" button
Added this button in the /u/ user/embed view, so that admins can easily force a re-check from Blender ID without requiring the user themselves to perform any actions.
2017-12-05 11:45:42 +01:00