Vue Comments: Comments ported to Vue + DnD fileupload

* Drag and drop files to comment editor to add a file attachment
* Using Vue to render comments

Since comments now has attachments we need to update the schemas
./manage.py maintenance replace_pillar_node_type_schemas
This commit is contained in:
2018-12-12 11:45:47 +01:00
parent 755091f4e5
commit 11652dd5cf
5 changed files with 10 additions and 8 deletions

View File

@@ -122,7 +122,7 @@ function asset_open(asset_id)
window.onpopstate = function(event) window.onpopstate = function(event)
{ {
var state = event.state; var state = event.state;
if(!state) return;
item_open(state.itemId, state.itemType, false); item_open(state.itemId, state.itemType, false);
} }

View File

@@ -72,7 +72,7 @@
#item-view-feed #item-view-feed
#activities #activities
#comments-embed | <comments-tree id='comments-embed' parent-id="{{ asset['_id'] }}" {%if not can_edit %}read-only{% endif %}/>
| {% if config.DEBUG %} | {% if config.DEBUG %}
.debug-info .debug-info
@@ -97,7 +97,7 @@ script.
var activities_url = "{{ url_for('.activities', project_url=project.url, asset_id=asset['_id']) }}"; var activities_url = "{{ url_for('.activities', project_url=project.url, asset_id=asset['_id']) }}";
loadActivities(activities_url); // from 10_tasks.js loadActivities(activities_url); // from 10_tasks.js
loadComments("{{ url_for('nodes.comments_for_node', node_id=asset['_id']) }}"); new Vue({el:'#comments-embed'});
$('body').on('pillar:comment-posted', function(e, comment_node_id) { $('body').on('pillar:comment-posted', function(e, comment_node_id) {
loadActivities(activities_url) loadActivities(activities_url)

View File

@@ -15,6 +15,8 @@ html(lang="en")
script(src="{{ url_for('static_pillar', filename='assets/js/vendor/jquery-3.1.0.min.js')}}") script(src="{{ url_for('static_pillar', filename='assets/js/vendor/jquery-3.1.0.min.js')}}")
script(src="{{ url_for('static_pillar', filename='assets/js/vendor/jquery.bootstrap-3.3.7.min.js') }}") script(src="{{ url_for('static_pillar', filename='assets/js/vendor/jquery.bootstrap-3.3.7.min.js') }}")
script(src="{{ url_for('static_pillar', filename='assets/js/tutti.min.js') }}") script(src="{{ url_for('static_pillar', filename='assets/js/tutti.min.js') }}")
script.
pillar.utils.initCurrentUser({{ current_user | json | safe }});
script(src="{{ url_for('static_attract', filename='assets/js/generated/tutti.min.js') }}") script(src="{{ url_for('static_attract', filename='assets/js/generated/tutti.min.js') }}")
link(href="{{ url_for('static_attract', filename='assets/img/favicon.png') }}", rel="shortcut icon") link(href="{{ url_for('static_attract', filename='assets/img/favicon.png') }}", rel="shortcut icon")
@@ -88,7 +90,6 @@ html(lang="en")
script(src="{{ url_for('static_pillar', filename='assets/js/vendor/jquery.select2.min.js') }}", async=true) script(src="{{ url_for('static_pillar', filename='assets/js/vendor/jquery.select2.min.js') }}", async=true)
script(src="{{ url_for('static_attract', filename='assets/js/vendor/moment-2.15.2.min.js') }}") script(src="{{ url_for('static_attract', filename='assets/js/vendor/moment-2.15.2.min.js') }}")
script(src="{{ url_for('static_attract', filename='assets/js/vendor/pikaday.js') }}") script(src="{{ url_for('static_attract', filename='assets/js/vendor/pikaday.js') }}")
| {% if current_user.is_authenticated %} | {% if current_user.is_authenticated %}
script(src="{{ url_for('static_pillar', filename='assets/js/vendor/jquery.typewatch-3.0.0.min.js') }}") script(src="{{ url_for('static_pillar', filename='assets/js/vendor/jquery.typewatch-3.0.0.min.js') }}")
script. script.

View File

@@ -104,7 +104,7 @@
#item-view-feed #item-view-feed
#activities #activities
#comments-embed | <comments-tree id='comments-embed' parent-id="{{ shot['_id'] }}" {%if not can_edit %}read-only{% endif %}/>
| {% if config.DEBUG %} | {% if config.DEBUG %}
.debug-info .debug-info
@@ -129,7 +129,7 @@ script.
var activities_url = "{{ url_for('.activities', project_url=project.url, shot_id=shot['_id']) }}"; var activities_url = "{{ url_for('.activities', project_url=project.url, shot_id=shot['_id']) }}";
loadActivities(activities_url); // from 10_tasks.js loadActivities(activities_url); // from 10_tasks.js
loadComments("{{ url_for('nodes.comments_for_node', node_id=shot['_id'], can_comment=can_edit) }}"); new Vue({el:'#comments-embed'});
$('body').on('pillar:comment-posted', function(e, comment_node_id) { $('body').on('pillar:comment-posted', function(e, comment_node_id) {
loadActivities(activities_url) loadActivities(activities_url)

View File

@@ -142,7 +142,8 @@
#item-view-feed #item-view-feed
#activities #activities
#comments-embed | <comments-tree id='comments-embed' parent-id="{{ task['_id'] }}" {% if not can_edit %}read-only{% endif %}/>
| {% if config.DEBUG %} | {% if config.DEBUG %}
.debug-info .debug-info
@@ -203,6 +204,6 @@ script.
}); });
loadActivities("{{ url_for('.activities', project_url=project.url, task_id=task['_id']) }}"); // from 10_tasks.js loadActivities("{{ url_for('.activities', project_url=project.url, task_id=task['_id']) }}"); // from 10_tasks.js
loadComments("{{ url_for('nodes.comments_for_node', node_id=task['_id'], can_comment=can_edit) }}"); new Vue({el:'#comments-embed'});
$('.js-help').openModalUrl('Help', "{{ url_for('attract.help', project_url=project.url) }}"); $('.js-help').openModalUrl('Help', "{{ url_for('attract.help', project_url=project.url) }}");