| {% extends 'layout.html' %} | {% from '_macros/_add_new_menu.html' import add_new_menu %} | {% block page_title %}{{project.name}}{% endblock%} | {% block og %} meta(property="og:type", content="website") | {% if og_picture %} meta(property="og:image", content="{{ og_picture.thumbnail('l', api=api) }}") | {% endif %} | {% if show_project %} meta(property="og:title", content="{{project.name}} - Blender Cloud") meta(property="og:url", content="{{url_for('projects.view', project_url=project.url, _external=True)}}") meta(property="og:description", content="{{project.summary}}") | {% else %} meta(property="og:title", content="{{node.name}} - Blender Cloud") meta(property="og:url", content="{{url_for('projects.view_node', project_url=project.url, node_id=node._id)}}") meta(property="og:description", content="{{node.description}}") | {% endif %} | {% endblock %} | {% block tw %} | {% if og_picture %} meta(property="twitter:image", content="{{ og_picture.thumbnail('l', api=api) }}") | {% endif %} | {% if show_project %} meta(name="twitter:title", content="{{project.name}} on Blender Cloud") meta(name="twitter:description", content="{{project.summary}}") | {% else %} meta(name="twitter:title", content="{{node.name}} on Blender Cloud") meta(name="twitter:description", content="{{node.description}}") | {% endif %} | {% endblock %} | {% block head %} link(href="//cdnjs.cloudflare.com/ajax/libs/jstree/3.3.1/themes/default/style.min.css", rel="stylesheet") | {% endblock %} | {% block css %} link(href="{{ url_for('static_pillar', filename='assets/css/project-main.css', v=040820161) }}", rel="stylesheet") | {% endblock %} | {% block body %} #project-container #project-side-container #project_sidebar ul.project-tabs li.tabs-thumbnail( title="About", data-toggle="tooltip", data-placement="left", class="{% if title == 'about' %}active {% endif %}{% if project.picture_square %}image{% endif %}") a(href="{{url_for('projects.about', project_url=project.url, _external=True)}}") #project-loading i.pi-spin | {% if project.picture_square %} img(src="{{ project.picture_square.thumbnail('b', api=api) }}") | {% else %} i.pi-home | {% endif %} li.tabs-browse( title="Browse", data-toggle="tooltip", data-placement="left", class="{% if title != 'about' %}active{% endif %}") a(href="{{url_for('projects.view', project_url=project.url, _external=True)}}") i.pi-tree-flow | {% if not project.is_private %} li.tabs-search( title="Search", data-toggle="tooltip", data-placement="left") a(href="{{url_for('projects.search', project_url=project.url, _external=True)}}") i.pi-search | {% endif %} .project_nav-toggle-btn( title="Expand Navigation [T]", data-toggle="tooltip", data-placement="right") i.pi-angle-double-left #project_nav(class="{{ title }}") #project_nav-container | {% if title != 'about' %} #project_nav-header .project-title a(href="{{url_for('projects.view', project_url=project.url, _external=True)}}") | {{ project.name }} #project_tree | {% endif %} .project_split(title="Toggle Navigation [T]") #project_context-container | {% if project.has_method('PUT') %} #project_context-header span#project-statusbar ul.project-edit-tools.disabled li.button-dropdown a#item_add.dropdown-toggle.project-mode-view( type="button", data-toggle="dropdown", aria-haspopup="true", aria-expanded="false") i.button-add-icon.pi-collection-plus | New... ul.dropdown-menu.add_new-menu | {{ add_new_menu(project.node_types) }} li.button-edit a#item_edit.project-mode-view( href="javascript:void(0);", title="Edit", data-project_id="{{project._id}}") i.button-edit-icon.pi-edit | Edit Project li.button-dropdown a.dropdown-toggle.project-mode-view( type="button", data-toggle="dropdown", aria-haspopup="true", aria-expanded="false") i.pi-more-vertical ul.dropdown-menu | {% if current_user.has_role('admin') %} li.button-featured a#item_featured( href="javascript:void(0);", title="Feature on project's homepage", data-toggle="tooltip", data-placement="left") i.button-featured-icon.pi-star | Toggle Featured li.button-toggle-public a#item_toggle_public( href="javascript:void(0);", title="Toggle public", data-toggle="tooltip", data-placement="left") i.pi-lock-open | Toggle public | {% endif %} li.button-toggle-projheader a#item_toggle_projheader( href="javascript:void(0);", title="Feature as project's header", data-toggle="tooltip", data-placement="left") i.button-featured-icon.pi-star | Toggle Project Header video li.button-move a#item_move( href="javascript:void(0);", title="Move into a folder...", data-toggle="tooltip", data-placement="left") i.button-move-icon.pi-move | Move li.button-delete a#item_delete( href="javascript:void(0);", title="Delete", data-toggle="tooltip", data-placement="left") i.pi-trash | Delete Project // Edit Mode li.button-cancel a#item_cancel.project-mode-edit( href="javascript:void(0);", title="Cancel changes") i.button-cancel-icon.pi-cancel | Cancel li.button-save a#item_save.project-mode-edit( href="javascript:void(0);", title="Save changes") i.button-save-icon.pi-check | Save Changes | {% endif %} #project_context | {% if show_project %} | {% include "projects/view_embed.html" %} | {% endif %} #overlay-mode-move-container .overlay-container .title i.pi-angle-left | Select the folder where you want to move it .buttons button#item_move_accept.move.disabled | Select a Folder button#item_move_cancel.cancel i.pi-cancel | Cancel | {% endblock %} | {% block footer_navigation %}{% endblock %} | {% block footer %}{% endblock %} | {% block footer_scripts %} script(src="//cdnjs.cloudflare.com/ajax/libs/jstree/3.3.1/jstree.min.js") script(src="//releases.flowplayer.org/6.0.5/flowplayer.min.js") | {% if project.has_method('PUT') %} | {# JS containing the Edit, Add, Featured, and Move functions #} script(type="text/javascript", src="{{ url_for('static_pillar', filename='assets/js/project-edit.min.js', v=190520161) }}") | {% endif %} script. {% if show_project %} ProjectUtils.setProjectAttributes({projectId: "{{project._id}}", isProject: true, nodeId: ''}); {% else %} ProjectUtils.setProjectAttributes({projectId: "{{project._id}}", isProject: false, nodeId: '{{node._id}}'}); {% endif %} var projectTree = document.getElementById('project_tree'); /* Initialize project_tree scrollbar */ if ((typeof Ps !== 'undefined') && projectTree && window.innerWidth > 768){ Ps.initialize(projectTree, {suppressScrollX: true}); } var urlNodeMove = "{{url_for('projects.move_node')}}"; var urlNodeFeature = "{{url_for('projects.add_featured_node')}}"; var urlNodeDelete = "{{url_for('projects.delete_node')}}"; var urlNodeTogglePublic = "{{url_for('projects.toggle_node_public')}}"; var urlNodeToggleProjHeader = "{{url_for('projects.toggle_node_project_header')}}"; var urlProjectDelete = "{{url_for('projects.delete')}}"; var urlProjectEdit = "{{url_for('projects.edit', project_url=project.url)}}"; function updateToggleProjHeaderMenuItem() { var $toggle_projheader = $('#item_toggle_projheader'); if (ProjectUtils.isProject()) { $toggle_projheader.hide(); return; } if (ProjectUtils.nodeType() == 'asset') { $toggle_projheader.show(); } else { $toggle_projheader.hide(); } } $(updateToggleProjHeaderMenuItem); // Function to update the interface on loadNodeContent, and edit/saving assets function updateUi(nodeId, mode){ if (mode === 'view') { $('.project-mode-view').show(); $('.project-mode-edit').hide(); $("#node-edit-form").unbind( "submit" ); $("#item_save").unbind( "click" ); $("#item_cancel").unbind( "click" ); } else if (mode === 'edit') { $('.project-mode-view').hide(); $('.project-mode-edit').show(); } else { if (console) console.log('Invalid mode:', mode); } // Prevent flicker by scrolling to top $("#project_context-container").scrollTop(0); // Enable specific items under the Add New dropdown if (ProjectUtils.nodeType() === 'group') { addMenuEnable(['asset', 'group']); } else if (ProjectUtils.nodeType() === 'group_texture') { addMenuEnable(['group_texture', 'texture']); } else if (ProjectUtils.nodeType() === 'group_hdri') { addMenuEnable(['group_hdri', 'hdri']); } else if (!ProjectUtils.isProject()) { addMenuEnable(false); } updateToggleProjHeaderMenuItem(); var nodeTitle = document.getElementById('node-title'); var nodeTitleText = $(nodeTitle).text() + " - {{project.name}} - Blender Cloud"; document.title = nodeTitleText; // TODO: Maybe remove this, now it's also in loadNodeContent(), but double-check // it's done like that in all users of updateUi(). $('#project-loading').removeAttr('class'); } function loadNodeContent(url, nodeId) { $('#project-loading').addClass('active'); $.get(url, function(dataHtml) { // Update the DOM injecting the generate HTML into the page $('#project_context').html(dataHtml); }) .done(function(){ updateUi(nodeId, 'view'); }) .fail(function(dataResponse) { $('#project_context').html($('