layout.html 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. {% macro menu_icon(item) -%}
  2. {% set icon_type = item.get_icon_type() %}
  3. {%- if icon_type %}
  4. {% set icon_value = item.get_icon_value() %}
  5. {% if icon_type == 'glyph' %}
  6. <i class="glyphicon {{ icon_value }}"></i>
  7. {% elif icon_type == 'fa' %}
  8. <i class="fa {{ icon_value }}"></i>
  9. {% elif icon_type == 'image' %}
  10. <img src="{{ url_for('static', filename=icon_value) }}" alt="menu image">
  11. {% elif icon_type == 'image-url' %}
  12. <img src="{{ icon_value }}" alt="menu image">
  13. {% endif %}
  14. {% endif %}
  15. {%- endmacro %}
  16. {% macro menu(menu_root=None) %}
  17. {% if menu_root is none %}{% set menu_root = admin_view.admin.menu() %}{% endif %}
  18. {%- for item in menu_root %}
  19. {%- if item.is_category() -%}
  20. {% set children = item.get_children() %}
  21. {%- if children %}
  22. {% set class_name = item.get_class_name() %}
  23. {%- if item.is_active(admin_view) %}
  24. <li class="active dropdown">
  25. {% else -%}
  26. <li class="dropdown">
  27. {%- endif %}
  28. <a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">
  29. {% if item.class_name %}<span class="{{ item.class_name }}"></span> {% endif %}{{ item.name }}<b class="caret"></b>
  30. </a>
  31. <ul class="dropdown-menu">
  32. {%- for child in children -%}
  33. {% set class_name = child.get_class_name() %}
  34. {%- if child.is_active(admin_view) %}
  35. <li class="active{% if class_name %} {{class_name}}{% endif %}">
  36. {% else %}
  37. <li{% if class_name %} class="{{class_name}}"{% endif %}>
  38. {%- endif %}
  39. <a href="{{ child.get_url() }}"{% if child.target %} target="{{ child.target }}"{% endif %}>{{ menu_icon(child) }}{{ child.name }}</a>
  40. </li>
  41. {%- endfor %}
  42. </ul>
  43. </li>
  44. {% endif %}
  45. {%- else %}
  46. {%- if item.is_accessible() and item.is_visible() -%}
  47. {% set class_name = item.get_class_name() %}
  48. {%- if item.is_active(admin_view) %}
  49. <li class="active{% if class_name %} {{class_name}}{% endif %}">
  50. {%- else %}
  51. <li{% if class_name %} class="{{class_name}}"{% endif %}>
  52. {%- endif %}
  53. <a href="{{ item.get_url() }}"{% if item.target %} target="{{ item.target }}"{% endif %}>{{ menu_icon(item) }}{{ item.name }}</a>
  54. </li>
  55. {%- endif -%}
  56. {% endif -%}
  57. {% endfor %}
  58. {% endmacro %}
  59. {% macro menu_links(links=None) %}
  60. {% if links is none %}{% set links = admin_view.admin.menu_links() %}{% endif %}
  61. {% for item in links %}
  62. {% if item.is_accessible() and item.is_visible() %}
  63. <li>
  64. <a href="{{ item.get_url() }}">{{ menu_icon(item) }}{{ item.name }}</a>
  65. </li>
  66. {% endif %}
  67. {% endfor %}
  68. {% endmacro %}
  69. {% macro messages() %}
  70. {% with messages = get_flashed_messages(with_categories=True) %}
  71. {% if messages %}
  72. {% for category, m in messages %}
  73. {% if category %}
  74. {# alert-error changed to alert-danger in bootstrap 3, mapping is for backwards compatibility #}
  75. {% set mapping = {'message': 'info', 'error': 'danger'} %}
  76. <div class="alert alert-{{ mapping.get(category, category) }} alert-dismissable">
  77. {% else %}
  78. <div class="alert alert-dismissable">
  79. {% endif %}
  80. <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
  81. {{ m }}
  82. </div>
  83. {% endfor %}
  84. {% endif %}
  85. {% endwith %}
  86. {% endmacro %}