header.jade 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388
  1. div(ng-if="!shouldABTestHeaderLabels")
  2. header.toolbar.toolbar-header(
  3. ng-cloak,
  4. ng-hide="state.loading"
  5. )
  6. a.btn.btn-full-height(
  7. href,
  8. ng-click="ui.leftMenuShown = true"
  9. tooltip='#{translate("menu")}',
  10. tooltip-placement="bottom",
  11. tooltip-append-to-body="true",
  12. )
  13. i.fa.fa-fw.fa-bars
  14. a(
  15. href="/project"
  16. tooltip="#{translate('back_to_projects')}",
  17. tooltip-placement="bottom",
  18. tooltip-append-to-body="true"
  19. )
  20. i.fa.fa-fw.fa-level-up
  21. span(ng-controller="PdfViewToggleController")
  22. a(
  23. href,
  24. ng-show="ui.pdfLayout == 'flat' && fileTreeClosed",
  25. tooltip="PDF",
  26. tooltip-placement="bottom",
  27. tooltip-append-to-body="true",
  28. ng-click="togglePdfView()",
  29. ng-class="{ 'active': ui.view == 'pdf' }"
  30. )
  31. i.fa.fa-file-pdf-o
  32. .toolbar-center.project-name(ng-controller="ProjectNameController")
  33. span.name(
  34. ng-dblclick="!permissions.admin || startRenaming()",
  35. ng-show="!state.renaming"
  36. ) {{ project.name }}
  37. input.form-control(
  38. type="text"
  39. ng-model="inputs.name",
  40. ng-show="state.renaming",
  41. on-enter="finishRenaming()",
  42. ng-blur="finishRenaming()",
  43. select-name-when="state.renaming"
  44. )
  45. a.rename(
  46. ng-if="permissions.admin",
  47. href='#',
  48. tooltip-placement="bottom",
  49. tooltip="#{translate('rename')}",
  50. tooltip-append-to-body="true",
  51. ng-click="startRenaming()",
  52. ng-show="!state.renaming"
  53. )
  54. i.fa.fa-pencil
  55. .toolbar-right
  56. span.online-users(
  57. ng-show="onlineUsersArray.length > 0"
  58. ng-controller="OnlineUsersController"
  59. )
  60. span(ng-if="onlineUsersArray.length < 4")
  61. span.online-user(
  62. ng-repeat="user in onlineUsersArray",
  63. ng-style="{ 'background-color': 'hsl({{ getHueForUserId(user.user_id) }}, 70%, 50%)' }",
  64. popover="{{ user.name }}"
  65. popover-placement="bottom"
  66. popover-append-to-body="true"
  67. popover-trigger="mouseenter"
  68. ng-click="gotoUser(user)"
  69. ) {{ user.name.slice(0,1) }}
  70. span.dropdown(dropdown, ng-if="onlineUsersArray.length >= 4")
  71. span.online-user.online-user-multi(
  72. dropdown-toggle,
  73. tooltip="#{translate('connected_users')}",
  74. tooltip-placement="left"
  75. )
  76. strong {{ onlineUsersArray.length }}
  77. i.fa.fa-fw.fa-user
  78. ul.dropdown-menu.pull-right
  79. li.dropdown-header #{translate('connected_users')}
  80. li(ng-repeat="user in onlineUsersArray")
  81. a(href, ng-click="gotoUser(user)")
  82. span.online-user(
  83. ng-style="{ 'background-color': 'hsl({{ getHueForUserId(user.user_id) }}, 70%, 50%)' }"
  84. ) {{ user.name.slice(0,1) }}
  85. | {{ user.name }}
  86. a.btn.btn-full-height(
  87. href,
  88. ng-if="trackChangesFeatureFlag",
  89. ng-class="{ active: ui.reviewPanelOpen }"
  90. tooltip="#{translate('review')}",
  91. tooltip-placement="bottom",
  92. ng-click="toggleReviewPanel()"
  93. )
  94. | Review
  95. a.btn.btn-full-height(
  96. href,
  97. ng-if="permissions.admin",
  98. tooltip="#{translate('share')}",
  99. tooltip-placement="bottom",
  100. ng-click="openShareProjectModal()",
  101. ng-controller="ShareController",
  102. )
  103. i.fa.fa-fw.fa-group
  104. a.btn.btn-full-height(
  105. href,
  106. ng-click="toggleHistory()",
  107. ng-class="{ active: (ui.view == 'history') }"
  108. tooltip="#{translate('recent_changes')}",
  109. tooltip-placement="bottom",
  110. )
  111. i.fa.fa-fw.fa-history
  112. a.btn.btn-full-height(
  113. href,
  114. tooltip="#{translate('chat')}",
  115. tooltip-placement="bottom",
  116. ng-class="{ active: ui.chatOpen }",
  117. ng-click="toggleChat()",
  118. ng-controller="ChatButtonController",
  119. ng-show="!anonymous",
  120. )
  121. i.fa.fa-fw.fa-comment(
  122. ng-class="{ 'bounce': unreadMessages > 0 }"
  123. )
  124. span.label.label-info(
  125. ng-show="unreadMessages > 0"
  126. ) {{ unreadMessages }}
  127. div(ng-if="shouldABTestHeaderLabels")
  128. div(sixpack-switch="editor-header")
  129. header.toolbar.toolbar-header(
  130. ng-cloak,
  131. ng-hide="state.loading"
  132. sixpack-default
  133. )
  134. a.btn.btn-full-height(
  135. href,
  136. ng-click="ui.leftMenuShown = true; trackABTestConversion('menu');"
  137. tooltip='#{translate("menu")}',
  138. tooltip-placement="bottom",
  139. tooltip-append-to-body="true",
  140. sixpack-convert="editor-header"
  141. )
  142. i.fa.fa-fw.fa-bars
  143. a(
  144. href="/project"
  145. tooltip="#{translate('back_to_projects')}",
  146. tooltip-placement="bottom",
  147. tooltip-append-to-body="true"
  148. )
  149. i.fa.fa-fw.fa-level-up
  150. span(ng-controller="PdfViewToggleController")
  151. a(
  152. href,
  153. ng-show="ui.pdfLayout == 'flat' && fileTreeClosed",
  154. tooltip="PDF",
  155. tooltip-placement="bottom",
  156. tooltip-append-to-body="true",
  157. ng-click="togglePdfView()",
  158. ng-class="{ 'active': ui.view == 'pdf' }"
  159. )
  160. i.fa.fa-file-pdf-o
  161. .toolbar-center.project-name(ng-controller="ProjectNameController")
  162. span.name(
  163. ng-dblclick="!permissions.admin || startRenaming()",
  164. ng-show="!state.renaming"
  165. ) {{ project.name }}
  166. input.form-control(
  167. type="text"
  168. ng-model="inputs.name",
  169. ng-show="state.renaming",
  170. on-enter="finishRenaming()",
  171. ng-blur="finishRenaming()",
  172. select-name-when="state.renaming"
  173. )
  174. a.rename(
  175. ng-if="permissions.admin",
  176. href='#',
  177. tooltip-placement="bottom",
  178. tooltip="#{translate('rename')}",
  179. tooltip-append-to-body="true",
  180. ng-click="startRenaming()",
  181. ng-show="!state.renaming"
  182. )
  183. i.fa.fa-pencil
  184. .toolbar-right
  185. span.online-users(
  186. ng-show="onlineUsersArray.length > 0"
  187. ng-controller="OnlineUsersController"
  188. )
  189. span(ng-if="onlineUsersArray.length < 4")
  190. span.online-user(
  191. ng-repeat="user in onlineUsersArray",
  192. ng-style="{ 'background-color': 'hsl({{ getHueForUserId(user.user_id) }}, 70%, 50%)' }",
  193. popover="{{ user.name }}"
  194. popover-placement="bottom"
  195. popover-append-to-body="true"
  196. popover-trigger="mouseenter"
  197. ng-click="gotoUser(user)"
  198. ) {{ user.name.slice(0,1) }}
  199. span.dropdown(dropdown, ng-if="onlineUsersArray.length >= 4")
  200. span.online-user.online-user-multi(
  201. dropdown-toggle,
  202. tooltip="#{translate('connected_users')}",
  203. tooltip-placement="left"
  204. )
  205. strong {{ onlineUsersArray.length }}
  206. i.fa.fa-fw.fa-user
  207. ul.dropdown-menu.pull-right
  208. li.dropdown-header #{translate('connected_users')}
  209. li(ng-repeat="user in onlineUsersArray")
  210. a(href, ng-click="gotoUser(user)")
  211. span.online-user(
  212. ng-style="{ 'background-color': 'hsl({{ getHueForUserId(user.user_id) }}, 70%, 50%)' }"
  213. ) {{ user.name.slice(0,1) }}
  214. | {{ user.name }}
  215. a.btn.btn-full-height(
  216. href,
  217. ng-if="permissions.admin",
  218. tooltip="#{translate('share')}",
  219. tooltip-placement="bottom",
  220. ng-click="openShareProjectModal(); trackABTestConversion('share');",
  221. ng-controller="ShareController",
  222. sixpack-convert="editor-header"
  223. )
  224. i.fa.fa-fw.fa-group
  225. a.btn.btn-full-height(
  226. href,
  227. ng-click="toggleHistory(); trackABTestConversion('history');",
  228. ng-class="{ active: (ui.view == 'history') }"
  229. tooltip="#{translate('recent_changes')}",
  230. tooltip-placement="bottom",
  231. sixpack-convert="editor-header"
  232. )
  233. i.fa.fa-fw.fa-history
  234. a.btn.btn-full-height(
  235. href,
  236. tooltip="#{translate('chat')}",
  237. tooltip-placement="bottom",
  238. ng-class="{ active: ui.chatOpen }",
  239. ng-click="toggleChat(); trackABTestConversion('chat');",
  240. ng-controller="ChatButtonController",
  241. ng-show="!anonymous",
  242. sixpack-convert="editor-header"
  243. )
  244. i.fa.fa-fw.fa-comment(
  245. ng-class="{ 'bounce': unreadMessages > 0 }"
  246. )
  247. span.label.label-info(
  248. ng-show="unreadMessages > 0"
  249. ) {{ unreadMessages }}
  250. header.toolbar.toolbar-header.toolbar-with-labels(
  251. ng-cloak,
  252. ng-hide="state.loading"
  253. sixpack-when="labels"
  254. )
  255. .toolbar-left
  256. a.btn.btn-full-height(
  257. href,
  258. ng-click="ui.leftMenuShown = true; trackABTestConversion('menu');",
  259. sixpack-convert="editor-header"
  260. )
  261. i.fa.fa-fw.fa-bars
  262. p.toolbar-label #{translate("menu")}
  263. a(
  264. href="/project"
  265. )
  266. i.fa.fa-fw.fa-level-up
  267. span(ng-controller="PdfViewToggleController")
  268. a(
  269. href,
  270. ng-show="ui.pdfLayout == 'flat' && fileTreeClosed",
  271. tooltip="PDF",
  272. tooltip-placement="bottom",
  273. tooltip-append-to-body="true",
  274. ng-click="togglePdfView()",
  275. ng-class="{ 'active': ui.view == 'pdf' }"
  276. )
  277. i.fa.fa-file-pdf-o
  278. .toolbar-center.project-name(ng-controller="ProjectNameController")
  279. span.name(
  280. ng-dblclick="!permissions.admin || startRenaming()",
  281. ng-show="!state.renaming"
  282. ) {{ project.name }}
  283. input.form-control(
  284. type="text"
  285. ng-model="inputs.name",
  286. ng-show="state.renaming",
  287. on-enter="finishRenaming()",
  288. ng-blur="finishRenaming()",
  289. select-name-when="state.renaming"
  290. )
  291. a.rename(
  292. ng-if="permissions.admin",
  293. href='#',
  294. tooltip-placement="bottom",
  295. tooltip="#{translate('rename')}",
  296. tooltip-append-to-body="true",
  297. ng-click="startRenaming()",
  298. ng-show="!state.renaming"
  299. )
  300. i.fa.fa-pencil
  301. .toolbar-right
  302. span.online-users(
  303. ng-show="onlineUsersArray.length > 0"
  304. ng-controller="OnlineUsersController"
  305. )
  306. span(ng-if="onlineUsersArray.length < 4")
  307. span.online-user(
  308. ng-repeat="user in onlineUsersArray",
  309. ng-style="{ 'background-color': 'hsl({{ getHueForUserId(user.user_id) }}, 70%, 50%)' }",
  310. popover="{{ user.name }}"
  311. popover-placement="bottom"
  312. popover-append-to-body="true"
  313. popover-trigger="mouseenter"
  314. ng-click="gotoUser(user)"
  315. ) {{ user.name.slice(0,1) }}
  316. span.dropdown(dropdown, ng-if="onlineUsersArray.length >= 4")
  317. span.online-user.online-user-multi(
  318. dropdown-toggle,
  319. tooltip="#{translate('connected_users')}",
  320. tooltip-placement="left"
  321. )
  322. strong {{ onlineUsersArray.length }}
  323. i.fa.fa-fw.fa-user
  324. ul.dropdown-menu.pull-right
  325. li.dropdown-header #{translate('connected_users')}
  326. li(ng-repeat="user in onlineUsersArray")
  327. a(href, ng-click="gotoUser(user)")
  328. span.online-user(
  329. ng-style="{ 'background-color': 'hsl({{ getHueForUserId(user.user_id) }}, 70%, 50%)' }"
  330. ) {{ user.name.slice(0,1) }}
  331. | {{ user.name }}
  332. a.btn.btn-full-height(
  333. href,
  334. ng-if="permissions.admin",
  335. ng-click="openShareProjectModal(); trackABTestConversion('share');",
  336. ng-controller="ShareController",
  337. sixpack-convert="editor-header"
  338. )
  339. i.fa.fa-fw.fa-group
  340. p.toolbar-label #{translate("share")}
  341. a.btn.btn-full-height(
  342. href,
  343. ng-click="toggleHistory(); trackABTestConversion('history');",
  344. ng-class="{ active: (ui.view == 'history') }",
  345. sixpack-convert="editor-header"
  346. )
  347. i.fa.fa-fw.fa-history
  348. p.toolbar-label #{translate("history")}
  349. a.btn.btn-full-height(
  350. href,
  351. ng-class="{ active: ui.chatOpen }",
  352. ng-click="toggleChat(); trackABTestConversion('chat');",
  353. ng-controller="ChatButtonController",
  354. ng-show="!anonymous",
  355. sixpack-convert="editor-header"
  356. )
  357. i.fa.fa-fw.fa-comment(
  358. ng-class="{ 'bounce': unreadMessages > 0 }"
  359. )
  360. span.label.label-info(
  361. ng-show="unreadMessages > 0"
  362. ) {{ unreadMessages }}
  363. p.toolbar-label #{translate("chat")}