Navigation: Move links in the main dropdown to their own macros

So they can be easily re-used in other templates.
This commit is contained in:
2018-09-20 16:36:46 +02:00
parent 765f36261a
commit 1a7be4b565
2 changed files with 211 additions and 170 deletions

View File

@@ -1,5 +1,196 @@
include ../../../../pillar/src/templates/mixins/components include ../../../../pillar/src/templates/mixins/components
| {#
| Main dropdown macros. These are just links without a container.
| So the container can be set per case (big dropdown, mobile, footer, etc)
| and the links reused multiple times.
| #}
| {% macro dropdown_main_root(title) %}
+nav-secondary-link(
href="{{ url_for('main.homepage') }}",
data-toggle='dropdown-tab',
data-tab-target='home')
i.mr-2.pi-home
span Homepage
+nav-secondary-link(
href="{{ url_for('cloud.open_projects') }}",
data-toggle='dropdown-tab',
data-tab-target='open-projects')
i.mr-2.pi-film-thick
span Open Projects
+nav-secondary-link(
href="{{ url_for('cloud.learn') }}",
data-toggle='dropdown-tab',
data-tab-target='learn')
i.mr-2.pi-graduation-cap
span Learn
+nav-secondary-link(
href="{{ url_for('cloud.libraries') }}",
data-toggle='dropdown-tab',
data-tab-target='libraries')
i.mr-2.pi-file-archive
span Libraries
+nav-secondary-link(
href="{{ url_for('cloud.services') }}",
data-toggle='dropdown-tab',
data-tab-target='services',
class="{% if title == 'services' %}active{% endif %}")
i.mr-2.pi-whoosh
span Services
| {% endmacro %}
| {% macro dropdown_main_home(title) %}
+nav-secondary-link(
href="{{ url_for('main.main_blog') }}")
i.pi-newspaper
span Blog
+nav-secondary-link(
href="{{ url_for('projects.index') }}")
i.pi-star
span My Projects
| {% if current_user.has_organizations() %}
+nav-secondary-link(
href="{{ url_for('pillar.web.organizations.index') }}")
i.pi-users
span My Organizations
| {% endif %}
+nav-secondary-link(
href="{{ url_for('projects.home_project_shared_images')}}")
i.pi-picture
span Image Sharing
+nav-secondary-link(
href="{{ url_for('projects.home_project') }}")
i.pi-blender
span Blender Sync
| {% endmacro %}
| {% macro dropdown_main_open_projects(title) %}
+nav-secondary-link(
href="{{ url_for('cloud.open_projects') }}",
class="nav-see-more border-bottom")
span.font-weight-bold
| Open Projects
i.pi-angle-right.pl-2
+nav-secondary-link(
href="{{ url_for('projects.view', project_url='spring') }}")
span Spring
+nav-secondary-link(
href="{{ url_for('projects.view', project_url='hero') }}")
span Hero
+nav-secondary-link(
href="{{ url_for('projects.view', project_url='dailydweebs') }}")
span The Daily Dweebs
+nav-secondary-link(
href="{{ url_for('projects.view', project_url='agent-327') }}")
span Agent 327
| {% endmacro %}
| {% macro dropdown_main_learn(title) %}
+nav-secondary-link(
href="{{ url_for('cloud.learn') }}",
class="nav-see-more border-bottom")
span.font-weight-bold
| Learn
i.pi-angle-right.pl-2
+nav-secondary-link(
href="{{ url_for('cloud.courses') }}")
i.pi-graduation-cap
span Courses
+nav-secondary-link(
href="{{ url_for('cloud.workshops') }}")
i.pi-lightbulb
span Workshops
+nav-secondary-link(
href="{{ url_for('cloud.production') }}")
i.pi-puzzle
span.new Production Lessons
| {% endmacro %}
| {% macro dropdown_main_libraries(title) %}
+nav-secondary-link(
href="{{ url_for('cloud.libraries') }}",
class="nav-see-more border-bottom")
span.font-weight-bold
| Libraries
i.pi-angle-right.pl-2
+nav-secondary-link(
href="{{ url_for('projects.view', project_url='textures') }}")
i.pi-folder-texture
span Textures
+nav-secondary-link(
href="{{ url_for('projects.view', project_url='hdri') }}")
i.pi-globe
span HDRI
+nav-secondary-link(
href="{{ url_for('projects.view', project_url='characters') }}")
i.pi-character
span Characters
+nav-secondary-link(
href="{{ url_for('projects.view', project_url='gallery') }}")
i.pi-picture
span Art Gallery
| {% endmacro %}
| {% macro dropdown_main_services(title) %}
+nav-secondary-link(
href="{{ url_for('cloud.services') }}",
class="nav-see-more border-bottom")
span.font-weight-bold
| Services
i.pi-angle-right.pl-2
+nav-secondary-link(
href="/attract")
i.pi-attract
span Attract
+nav-secondary-link(
href="/flamenco")
i.pi-attract
span Flamenco
+nav-secondary-link(
href="{{ url_for('cloud.services') }}#blender-cloud-add-on")
i.pi-blender
span Blender Cloud add-on
+nav-secondary-link(
href="{{ url_for('cloud.services') }}#texture-browser")
i.pi-texture
span Texture & HDRI Browser
| {% endmacro %}
| {#
| Secondary Navigation Bars.
| They include the nav-secondary() container unlike dropdown entries which are just links.
| #}
| {% macro navigation_homepage(title) %} | {% macro navigation_homepage(title) %}
+nav-secondary() +nav-secondary()
+nav-secondary-link( +nav-secondary-link(
@@ -29,9 +220,9 @@ include ../../../../pillar/src/templates/mixins/components
span Services span Services
| {% endmacro %} | {% endmacro %}
| {% macro navigation_learn(title) %} | {% macro navigation_learn(title) %}
+nav-secondary +nav-secondary
| {% if title in ['learn', 'courses', 'workshops', 'production'] %}
+nav-secondary-link( +nav-secondary-link(
class="px-0 text-black-50 {% if title == 'learn' %}active{% endif %}", class="px-0 text-black-50 {% if title == 'learn' %}active{% endif %}",
href="{{ url_for('cloud.learn') }}") href="{{ url_for('cloud.learn') }}")
@@ -54,13 +245,6 @@ include ../../../../pillar/src/templates/mixins/components
class="{% if title == 'production' %}active{% endif %}", class="{% if title == 'production' %}active{% endif %}",
href="{{ url_for('cloud.production') }}") href="{{ url_for('cloud.production') }}")
span.new Production Lessons span.new Production Lessons
| {% elif title in ['open-projects'] %}
+nav-secondary-link(
class="{% if title == 'open-projects' %}active{% endif %}",
href="{{ url_for('cloud.open_projects') }}")
span Open Projects
| {% endif %}
| {% endmacro %} | {% endmacro %}

View File

@@ -1,181 +1,38 @@
| {% import '_macros/_navigation.html' as navigation %}
include ../../../../pillar/src/templates/mixins/components include ../../../../pillar/src/templates/mixins/components
ul.dropdown-menu.nav-main ul.dropdown-menu.nav-main
+nav-secondary()( +nav-secondary()(
class="nav-secondary-vertical float-left bg-light border-left rounded-left") class="nav-secondary-vertical float-left bg-light border-left rounded-left")
+nav-secondary-link( | {{ navigation.dropdown_main_root(title) }}
href="{{ url_for('main.homepage') }}",
data-toggle='dropdown-tab',
data-tab-target='home')
i.mr-2.pi-home
span Homepage
+nav-secondary-link(
href="{{ url_for('cloud.open_projects') }}",
data-toggle='dropdown-tab',
data-tab-target='films')
i.mr-2.pi-film-thick
span Open Projects
+nav-secondary-link(
href="{{ url_for('cloud.learn') }}",
data-toggle='dropdown-tab',
data-tab-target='learn')
i.mr-2.pi-graduation-cap
span Learn
+nav-secondary-link(
href="{{ url_for('cloud.libraries') }}",
data-toggle='dropdown-tab',
data-tab-target='libraries')
i.mr-2.pi-file-archive
span Libraries
+nav-secondary-link(
href="{{ url_for('cloud.services') }}",
data-toggle='dropdown-tab',
data-tab-target='services',
class="{% if title == 'services' %}active{% endif %}")
i.mr-2.pi-whoosh
span Services
.dropdown-menu-tab(data-tab='home') .dropdown-menu-tab(data-tab='home')
.dropdown-menu-column .dropdown-menu-column
+nav-secondary()(class="nav-secondary-vertical rounded-right border-left overflow-hidden") +nav-secondary()(
+nav-secondary-link( class="nav-secondary-vertical rounded-right border-left overflow-hidden")
href="{{ url_for('main.main_blog') }}") | {{ navigation.dropdown_main_home(title) }}
i.pi-newspaper
span Blog
+nav-secondary-link( .dropdown-menu-tab(data-tab='open-projects')
href="{{ url_for('projects.index') }}")
i.pi-star
span My Projects
| {% if current_user.has_organizations() %}
+nav-secondary-link(
href="{{ url_for('pillar.web.organizations.index') }}")
i.pi-users
span My Organizations
| {% endif %}
+nav-secondary-link(
href="{{ url_for('projects.home_project_shared_images')}}")
i.pi-picture
span Image Sharing
+nav-secondary-link(
href="{{ url_for('projects.home_project') }}")
i.pi-blender
span Blender Sync
.dropdown-menu-tab(data-tab='films')
.dropdown-menu-column .dropdown-menu-column
+nav-secondary()(class="nav-secondary-vertical rounded-right border-left overflow-hidden") +nav-secondary()(
+nav-secondary-link( class="nav-secondary-vertical rounded-right border-left overflow-hidden")
href="{{ url_for('cloud.open_projects') }}", | {{ navigation.dropdown_main_open_projects(title) }}
class="nav-see-more border-bottom")
span.font-weight-bold
| Open Projects
i.pi-angle-right.pl-2
+nav-secondary-link(
href="{{ url_for('projects.view', project_url='spring') }}")
span Spring
+nav-secondary-link(
href="{{ url_for('projects.view', project_url='hero') }}")
span Hero
+nav-secondary-link(
href="{{ url_for('projects.view', project_url='dailydweebs') }}")
span The Daily Dweebs
+nav-secondary-link(
href="{{ url_for('projects.view', project_url='agent-327') }}")
span Agent 327
.dropdown-menu-tab(data-tab='learn') .dropdown-menu-tab(data-tab='learn')
.dropdown-menu-column .dropdown-menu-column
+nav-secondary()(class="nav-secondary-vertical rounded-right border-left overflow-hidden") +nav-secondary()(
+nav-secondary-link( class="nav-secondary-vertical rounded-right border-left overflow-hidden")
href="{{ url_for('cloud.learn') }}", | {{ navigation.dropdown_main_learn(title) }}
class="nav-see-more border-bottom")
span.font-weight-bold
| Learn
i.pi-angle-right.pl-2
+nav-secondary-link(
href="{{ url_for('cloud.courses') }}")
i.pi-graduation-cap
span Courses
+nav-secondary-link(
href="{{ url_for('cloud.workshops') }}")
i.pi-lightbulb
span Workshops
+nav-secondary-link(
href="{{ url_for('cloud.production') }}")
i.pi-puzzle
span.new Production Lessons
.dropdown-menu-tab(data-tab='libraries') .dropdown-menu-tab(data-tab='libraries')
.dropdown-menu-column .dropdown-menu-column
+nav-secondary()(class="nav-secondary-vertical rounded-right border-left overflow-hidden") +nav-secondary()(
+nav-secondary-link( class="nav-secondary-vertical rounded-right border-left overflow-hidden")
href="{{ url_for('cloud.libraries') }}", | {{ navigation.dropdown_main_libraries(title) }}
class="nav-see-more border-bottom")
span.font-weight-bold
| Libraries
i.pi-angle-right.pl-2
+nav-secondary-link(
href="{{ url_for('projects.view', project_url='textures') }}")
i.pi-folder-texture
span Textures
+nav-secondary-link(
href="{{ url_for('projects.view', project_url='hdri') }}")
i.pi-globe
span HDRI
+nav-secondary-link(
href="{{ url_for('projects.view', project_url='characters') }}")
i.pi-character
span Characters
+nav-secondary-link(
href="{{ url_for('projects.view', project_url='gallery') }}")
i.pi-picture
span Art Gallery
.dropdown-menu-tab(data-tab='services') .dropdown-menu-tab(data-tab='services')
.dropdown-menu-column .dropdown-menu-column
+nav-secondary()(class="nav-secondary-vertical rounded-right border-left overflow-hidden") +nav-secondary()(
+nav-secondary-link( class="nav-secondary-vertical rounded-right border-left overflow-hidden")
href="{{ url_for('cloud.services') }}", | {{ navigation.dropdown_main_services(title) }}
class="nav-see-more border-bottom")
span.font-weight-bold
| All Services
i.pi-angle-right.pl-2
+nav-secondary-link(
href="/attract")
i.pi-attract
span Attract
+nav-secondary-link(
href="/flamenco")
i.pi-attract
span Flamenco
+nav-secondary-link(
href="{{ url_for('cloud.services') }}#blender-cloud-add-on")
i.pi-blender
span Blender Cloud add-on
+nav-secondary-link(
href="{{ url_for('cloud.services') }}#texture-browser")
i.pi-texture
span Texture & HDRI Browser