baselib.html 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. {% macro menu_item(item) %}
  2. <a tabindex="-1" href="{{item.get_url()}}">
  3. {% if item.icon %}
  4. <i class="fa fa-fw {{item.icon}}"></i>&nbsp;
  5. {% endif %}
  6. {{_(item.label)}}</a>
  7. {% endmacro %}
  8. {% macro menu_debug(menu) %}
  9. {% for item1 in menu.get_list() %}
  10. {{ item1.label }} {{ item1.href }}
  11. {% for item2 in item1.childs %}
  12. {{ item2.label }} {{ item2.href }}
  13. {% endfor %}
  14. {% endfor %}
  15. {% endmacro %}
  16. {% macro menu_block(menu) %}
  17. {% for item1 in menu.get_list() %}
  18. {% if item1 | is_menu_visible %}
  19. {% if item1.childs %}
  20. <li class="dropdown">
  21. <a class="dropdown-toggle" data-toggle="dropdown" href="#">
  22. {% if item1.icon %}
  23. <i class="fa {{item1.icon}}"></i>&nbsp;
  24. {% endif %}
  25. {{_(item1.label)}}<b class="caret"></b></a>
  26. <ul class="dropdown-menu">
  27. {% set divider = False %}
  28. {% for item2 in item1.childs %}
  29. {% if item2.name == '-' %}
  30. {% set divider = True %}
  31. {% else %}
  32. {% if item2 | is_menu_visible %}
  33. {% if divider %}
  34. <li class="divider"></li>
  35. {% set divider = False %}
  36. {% endif %}
  37. <li>{{ menu_item(item2) }}</li>
  38. {% endif %}
  39. {% endif %}
  40. {% endfor %}
  41. </ul></li>
  42. {% else %}
  43. <li>
  44. {{ menu_item(item1) }}
  45. </li>
  46. {% endif %}
  47. {% endif %}
  48. {% endfor %}
  49. {% endmacro %}
  50. {% macro locale_menu(languages) %}
  51. {% set locale = session['locale'] %}
  52. {% if not locale %}
  53. {% set locale = 'en' %}
  54. {% endif %}
  55. <li class="dropdown">
  56. <a class="dropdown-toggle" data-toggle="dropdown" href="#">
  57. <div class="f16"><i class="flag {{languages[locale].get('flag')}}"></i><b class="caret"></b>
  58. </div>
  59. </a>
  60. {% if languages.keys()|length > 1 %}
  61. <ul class="dropdown-menu">
  62. <li class="dropdown">
  63. {% for lang in languages %}
  64. {% if lang != locale %}
  65. <a tabindex="-1" href="{{appbuilder.get_url_for_locale(lang)}}">
  66. <div class="f16"><i class="flag {{languages[lang].get('flag')}}"></i> - {{languages[lang].get('name')}}
  67. </div></a>
  68. {% endif %}
  69. {% endfor %}
  70. </li>
  71. </ul>
  72. {% endif %}
  73. </li>
  74. {% endmacro %}
  75. {% macro navbar_block(menu, languages) %}
  76. <div class="navbar {{menu.extra_classes}}" role="navigation">
  77. <div class="container">
  78. <div class="navbar-header">
  79. <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
  80. <span class="icon-bar"></span>
  81. <span class="icon-bar"></span>
  82. <span class="icon-bar"></span>
  83. </button>
  84. {% if appbuilder.app_icon %}
  85. <a class="navbar-brand" href="{{appbuilder.get_url_for_index}}">
  86. <img src="{{appbuilder.app_icon}}" >
  87. </a>
  88. {% else %}
  89. <span class="navbar-brand">
  90. <a href="{{appbuilder.get_url_for_index}}">
  91. {{ appbuilder.app_name }}
  92. </a>
  93. </span>
  94. {% endif %}
  95. </div>
  96. <div class="navbar-collapse collapse">
  97. <ul class="nav navbar-nav">
  98. {{ menu_block(menu)}}
  99. </ul>
  100. <ul class="nav navbar-nav navbar-right">
  101. {{ locale_menu(languages) }}
  102. {% if not current_user.is_anonymous %}
  103. <li class="dropdown">
  104. <a class="dropdown-toggle" data-toggle="dropdown" href="#">
  105. <span class="fa fa-user"></span> {{g.user.get_full_name()}}<b class="caret"></b>
  106. </a>
  107. <ul class="dropdown-menu">
  108. <li><a href="{{appbuilder.get_url_for_userinfo}}"><span class="fa fa-fw fa-user"></span>{{_("Profile")}}</a></li>
  109. <li><a href="{{appbuilder.get_url_for_logout}}"><span class="fa fa-fw fa-sign-out"></span>{{_("Logout")}}</a></li>
  110. </ul>
  111. </li>
  112. {% else %}
  113. <li><a href="{{appbuilder.get_url_for_login}}">
  114. <i class="fa fa-fw fa-sign-in"></i>{{_("Login")}}</a></li>
  115. {% endif %}
  116. </ul>
  117. </div>
  118. </div>
  119. </div>
  120. {% endmacro %}
  121. {% macro get_nonce() -%}
  122. {%- if csp_nonce is defined -%}
  123. {{- csp_nonce() -}}
  124. {%- endif %}
  125. {%- endmacro %}