modals.pug 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  1. script(type='text/ng-template', id='newTagModalTemplate')
  2. .modal-header
  3. button.close(
  4. type="button"
  5. data-dismiss="modal"
  6. ng-click="cancel()"
  7. aria-label="Close"
  8. )
  9. span(aria-hidden="true") ×
  10. h3 #{translate("create_new_folder")}
  11. .modal-body
  12. form(name="newTagForm", novalidate)
  13. input.form-control(
  14. type="text",
  15. placeholder="New Folder Name",
  16. required,
  17. ng-model="inputs.newTagName",
  18. on-enter="create()",
  19. focus-on="open",
  20. stop-propagation="click"
  21. )
  22. .modal-footer
  23. .modal-footer-left
  24. span.text-danger.error(ng-show="state.error") #{translate("generic_something_went_wrong")}
  25. //- We stop propagation to stop the clicks from closing the
  26. //- 'move to folder' menu.
  27. button.btn.btn-default(
  28. ng-click="cancel()"
  29. stop-propagation="click"
  30. ) #{translate("cancel")}
  31. button.btn.btn-primary(
  32. ng-disabled="newTagForm.$invalid || state.inflight"
  33. ng-click="create()"
  34. stop-propagation="click"
  35. )
  36. span(ng-show="!state.inflight") #{translate("create")}
  37. span(ng-show="state.inflight") #{translate("creating")}…
  38. script(type='text/ng-template', id='deleteTagModalTemplate')
  39. .modal-header
  40. button.close(
  41. type="button"
  42. data-dismiss="modal"
  43. ng-click="cancel()"
  44. aria-label="Close"
  45. )
  46. span(aria-hidden="true") ×
  47. h3 #{translate("delete_folder")}
  48. .modal-body
  49. p #{translate("about_to_delete_folder")}
  50. ul
  51. li
  52. strong {{tag.name}}
  53. .modal-footer
  54. .modal-footer-left
  55. span.text-danger.error(ng-show="state.error") #{translate("generic_something_went_wrong")}
  56. button.btn.btn-default(
  57. ng-click="cancel()"
  58. ) #{translate("cancel")}
  59. button.btn.btn-danger(
  60. ng-click="delete()",
  61. ng-disabled="state.inflight"
  62. )
  63. span(ng-show="state.inflight") #{translate("deleting")}…
  64. span(ng-show="!state.inflight") #{translate("delete")}
  65. script(type='text/ng-template', id='renameTagModalTemplate')
  66. .modal-header
  67. button.close(
  68. type="button"
  69. data-dismiss="modal"
  70. ng-click="cancel()"
  71. aria-label="Close"
  72. )
  73. span(aria-hidden="true") ×
  74. h3 #{translate("rename_folder")}
  75. .modal-body
  76. form(name="renameTagForm", novalidate)
  77. input.form-control(
  78. type="text",
  79. placeholder="Tag Name",
  80. ng-model="inputs.tagName",
  81. required,
  82. on-enter="rename()",
  83. focus-on="open"
  84. )
  85. .modal-footer
  86. .modal-footer-left
  87. span.text-danger.error(ng-show="state.error") #{translate("generic_something_went_wrong")}
  88. button.btn.btn-default(ng-click="cancel()") #{translate("cancel")}
  89. button.btn.btn-primary(
  90. ng-click="rename()",
  91. ng-disabled="renameTagForm.$invalid || state.inflight"
  92. )
  93. span(ng-show="!state.inflight") #{translate("rename")}
  94. span(ng-show="state.inflight") #{translate("renaming")}…
  95. script(type='text/ng-template', id='renameProjectModalTemplate')
  96. .modal-header
  97. button.close(
  98. type="button"
  99. data-dismiss="modal"
  100. ng-click="cancel()"
  101. aria-label="Close"
  102. )
  103. span(aria-hidden="true") ×
  104. h3 #{translate("rename_project")}
  105. .modal-body
  106. .alert.alert-danger(ng-show="state.error.message") {{state.error.message}}
  107. .alert.alert-danger(ng-show="state.error && !state.error.message") #{translate("generic_something_went_wrong")}
  108. form(name="renameProjectForm", novalidate)
  109. input.form-control(
  110. type="text",
  111. placeholder="Project Name",
  112. ng-model="inputs.projectName",
  113. required,
  114. on-enter="rename()",
  115. focus-on="open"
  116. )
  117. .modal-footer
  118. button.btn.btn-default(ng-click="cancel()") #{translate("cancel")}
  119. button.btn.btn-primary(
  120. ng-click="rename()",
  121. ng-disabled="renameProjectForm.$invalid || state.inflight"
  122. )
  123. span(ng-show="!state.inflight") #{translate("rename")}
  124. span(ng-show="state.inflight") #{translate("renaming")}…
  125. script(type='text/ng-template', id='cloneProjectModalTemplate')
  126. .modal-header
  127. button.close(
  128. type="button"
  129. data-dismiss="modal"
  130. ng-click="cancel()"
  131. aria-label="Close"
  132. )
  133. span(aria-hidden="true") ×
  134. h3 #{translate("copy_project")}
  135. .modal-body
  136. .alert.alert-danger(ng-show="state.error.message") {{state.error.message === "invalid element name" ? "#{translate("invalid_element_name")}" : state.error.message}}
  137. .alert.alert-danger(ng-show="state.error && !state.error.message") #{translate("generic_something_went_wrong")}
  138. form(name="cloneProjectForm", novalidate)
  139. .form-group
  140. label #{translate("new_name")}
  141. input.form-control(
  142. type="text",
  143. placeholder="New Project Name",
  144. required,
  145. ng-model="inputs.projectName",
  146. on-enter="clone()",
  147. focus-on="open"
  148. )
  149. .modal-footer
  150. button.btn.btn-default(
  151. ng-disabled="state.inflight"
  152. ng-click="cancel()"
  153. ) #{translate("cancel")}
  154. button.btn.btn-primary(
  155. ng-disabled="cloneProjectForm.$invalid || state.inflight"
  156. ng-click="clone()"
  157. )
  158. span(ng-hide="state.inflight") #{translate("copy")}
  159. span(ng-show="state.inflight") #{translate("copying")} …
  160. script(type='text/ng-template', id='newProjectModalTemplate')
  161. .modal-header
  162. button.close(
  163. type="button"
  164. data-dismiss="modal"
  165. ng-click="cancel()"
  166. aria-label="Close"
  167. )
  168. span(aria-hidden="true") ×
  169. h3 #{translate("new_project")}
  170. .modal-body
  171. .alert.alert-danger(ng-show="state.error.message") {{state.error.message}}
  172. .alert.alert-danger(ng-show="state.error && !state.error.message") #{translate("generic_something_went_wrong")}
  173. form(novalidate, name="newProjectForm")
  174. input.form-control(
  175. type="text",
  176. placeholder="Project Name",
  177. required,
  178. ng-model="inputs.projectName",
  179. on-enter="create()",
  180. focus-on="open"
  181. )
  182. .modal-footer
  183. button.btn.btn-default(
  184. ng-disabled="state.inflight"
  185. ng-click="cancel()"
  186. ) #{translate("cancel")}
  187. button.btn.btn-primary(
  188. ng-disabled="newProjectForm.$invalid || state.inflight"
  189. ng-click="create()"
  190. )
  191. span(ng-hide="state.inflight") #{translate("create")}
  192. span(ng-show="state.inflight") #{translate("creating")}…
  193. script(type='text/ng-template', id='archiveTrashLeaveOrDeleteProjectsModalTemplate')
  194. .modal-header
  195. button.close(
  196. type="button"
  197. data-dismiss="modal"
  198. ng-click="cancel()"
  199. aria-label="Close"
  200. )
  201. span(aria-hidden="true") ×
  202. h3(ng-if="action === 'archive'") #{translate("archive_projects")}
  203. h3(ng-if="action === 'trash'") #{translate("trash_projects")}
  204. h3(ng-if="action === 'leave'") #{translate("leave_projects")}
  205. h3(ng-if="action === 'delete'") #{translate("delete_projects")}
  206. h3(ng-if="action === 'leaveOrDelete'") #{translate("delete_and_leave_projects")}
  207. .modal-body
  208. div(ng-if="action !== 'leaveOrDelete'")
  209. p(ng-if="action === 'archive'") #{translate("about_to_archive_projects")}
  210. p(ng-if="action === 'trash'") #{translate("about_to_trash_projects")}
  211. p(ng-if="action === 'leave'") #{translate("about_to_leave_projects")}
  212. p(ng-if="action === 'delete'") #{translate("about_to_delete_projects")}
  213. ul
  214. li(ng-repeat="project in projects | orderBy:'name'")
  215. strong {{project.name}}
  216. div(ng-if="action === 'archive'")
  217. p #{translate("archiving_projects_wont_affect_collaborators")}
  218. |  
  219. a(
  220. href="https://www.overleaf.com/blog/new-feature-using-archive-and-trash-to-keep-your-projects-organized"
  221. target="_blank"
  222. ) #{translate("find_out_more_nt")}
  223. div(ng-if="action === 'trash'")
  224. p #{translate("trashing_projects_wont_affect_collaborators")}
  225. |  
  226. a(
  227. href="https://www.overleaf.com/blog/new-feature-using-archive-and-trash-to-keep-your-projects-organized"
  228. target="_blank"
  229. ) #{translate("find_out_more_nt")}
  230. .project-action-alert.alert.alert-warning(ng-if="action === 'leave' || action === 'delete'")
  231. i.fa.fa-fw.fa-exclamation-triangle
  232. .project-action-alert-msg #{translate("this_action_cannot_be_undone")}
  233. div(ng-if="action === 'leaveOrDelete'")
  234. p #{translate("about_to_delete_projects")}
  235. ul
  236. li(ng-repeat="project in projects | filter:{accessLevel: 'owner'} | orderBy:'name'")
  237. strong {{project.name}}
  238. p #{translate("about_to_leave_projects")}
  239. ul
  240. li(ng-repeat="project in projects | filter:{accessLevel: '!owner'} | orderBy:'name'")
  241. strong {{project.name}}
  242. .project-action-alert.alert.alert-warning
  243. i.fa.fa-fw.fa-exclamation-triangle
  244. .project-action-alert-msg #{translate("this_action_cannot_be_undone")}
  245. .modal-footer
  246. button.btn.btn-default(
  247. ng-click="cancel()"
  248. ) #{translate("cancel")}
  249. button.btn.btn-danger(
  250. ng-click="confirm()"
  251. ) #{translate("confirm")}
  252. script(type="text/template", id="qq-project-uploader-template")
  253. div.qq-uploader-selector
  254. div(qq-hide-dropzone="").qq-upload-drop-area-selector.qq-upload-drop-area
  255. span.qq-upload-drop-area-text-selector #{translate('drop_files_here_to_upload')}
  256. div.qq-upload-button-selector.btn.btn-primary.btn-lg
  257. div #{translate('select_a_zip_file')}
  258. span.or.btn-lg #{translate('or')}
  259. span.drag-here.btn-lg #{translate('drag_a_zip_file')}
  260. ul.qq-upload-list-selector
  261. li
  262. div.qq-progress-bar-container-selector
  263. div(
  264. role="progressbar"
  265. aria-valuenow="0"
  266. aria-valuemin="0"
  267. aria-valuemax="100"
  268. class="qq-progress-bar-selector qq-progress-bar"
  269. )
  270. span.qq-upload-file-selector.qq-upload-file
  271. span.qq-upload-size-selector.qq-upload-size
  272. a(type="button").qq-btn.qq-upload-cancel-selector.qq-upload-cancel #{translate('cancel')}
  273. button(type="button").qq-btn.qq-upload-retry-selector.qq-upload-retry #{translate('retry')}
  274. span(role="status").qq-upload-status-text-selector.qq-upload-status-text
  275. script(type="text/ng-template", id="uploadProjectModalTemplate")
  276. .modal-header
  277. button.close(
  278. type="button"
  279. data-dismiss="modal"
  280. ng-click="cancel()"
  281. aria-label="Close"
  282. )
  283. span(aria-hidden="true") ×
  284. h3 #{translate("upload_zipped_project")}
  285. .modal-body(
  286. fine-upload
  287. endpoint="/project/new/upload"
  288. template-id="qq-project-uploader-template"
  289. multiple="false"
  290. size-limit=zipFileSizeLimit
  291. allowed-extensions="['zip']"
  292. on-complete-callback="onComplete"
  293. )
  294. .modal-footer
  295. button.btn.btn-default(ng-click="cancel()") #{translate("cancel")}