modals.pug 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  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. ) ×
  8. h3 #{translate("create_new_folder")}
  9. .modal-body
  10. form(name="newTagForm", novalidate)
  11. input.form-control(
  12. type="text",
  13. placeholder="New Folder Name",
  14. required,
  15. ng-model="inputs.newTagName",
  16. on-enter="create()",
  17. focus-on="open",
  18. stop-propagation="click"
  19. )
  20. .modal-footer
  21. .modal-footer-left
  22. span.text-danger.error(ng-show="state.error") #{translate("generic_something_went_wrong")}
  23. //- We stop propagation to stop the clicks from closing the
  24. //- 'move to folder' menu.
  25. button.btn.btn-default(
  26. ng-click="cancel()"
  27. stop-propagation="click"
  28. ) #{translate("cancel")}
  29. button.btn.btn-primary(
  30. ng-disabled="newTagForm.$invalid || state.inflight"
  31. ng-click="create()"
  32. stop-propagation="click"
  33. )
  34. span(ng-show="!state.inflight") #{translate("create")}
  35. span(ng-show="state.inflight") #{translate("creating")}...
  36. script(type='text/ng-template', id='deleteTagModalTemplate')
  37. .modal-header
  38. button.close(
  39. type="button"
  40. data-dismiss="modal"
  41. ng-click="cancel()"
  42. ) ×
  43. h3 #{translate("delete_folder")}
  44. .modal-body
  45. p #{translate("about_to_delete_folder")}
  46. ul
  47. li
  48. strong {{tag.name}}
  49. .modal-footer
  50. .modal-footer-left
  51. span.text-danger.error(ng-show="state.error") #{translate("generic_something_went_wrong")}
  52. button.btn.btn-default(
  53. ng-click="cancel()"
  54. ) #{translate("cancel")}
  55. button.btn.btn-danger(
  56. ng-click="delete()",
  57. ng-disabled="state.inflight"
  58. )
  59. span(ng-show="state.inflight") #{translate("deleting")}...
  60. span(ng-show="!state.inflight") #{translate("delete")}
  61. script(type='text/ng-template', id='renameTagModalTemplate')
  62. .modal-header
  63. button.close(
  64. type="button"
  65. data-dismiss="modal"
  66. ng-click="cancel()"
  67. ) ×
  68. h3 #{translate("rename_folder")}
  69. .modal-body
  70. form(name="renameTagForm", novalidate)
  71. input.form-control(
  72. type="text",
  73. placeholder="Tag Name",
  74. ng-model="inputs.tagName",
  75. required,
  76. on-enter="rename()",
  77. focus-on="open"
  78. )
  79. .modal-footer
  80. .modal-footer-left
  81. span.text-danger.error(ng-show="state.error") #{translate("generic_something_went_wrong")}
  82. button.btn.btn-default(ng-click="cancel()") #{translate("cancel")}
  83. button.btn.btn-primary(
  84. ng-click="rename()",
  85. ng-disabled="renameTagForm.$invalid || state.inflight"
  86. )
  87. span(ng-show="!state.inflight") #{translate("rename")}
  88. span(ng-show="state.inflight") #{translate("renaming")}...
  89. script(type='text/ng-template', id='renameProjectModalTemplate')
  90. .modal-header
  91. button.close(
  92. type="button"
  93. data-dismiss="modal"
  94. ng-click="cancel()"
  95. ) ×
  96. h3 #{translate("rename_project")}
  97. .modal-body
  98. .alert.alert-danger(ng-show="state.error.message") {{ state.error.message}}
  99. .alert.alert-danger(ng-show="state.error && !state.error.message") #{translate("generic_something_went_wrong")}
  100. form(name="renameProjectForm", novalidate)
  101. input.form-control(
  102. type="text",
  103. placeholder="Project Name",
  104. ng-model="inputs.projectName",
  105. required,
  106. on-enter="rename()",
  107. focus-on="open"
  108. )
  109. .modal-footer
  110. button.btn.btn-default(ng-click="cancel()") #{translate("cancel")}
  111. button.btn.btn-primary(
  112. ng-click="rename()",
  113. ng-disabled="renameProjectForm.$invalid || state.inflight"
  114. )
  115. span(ng-show="!state.inflight") #{translate("rename")}
  116. span(ng-show="state.inflight") #{translate("renaming")}...
  117. script(type='text/ng-template', id='cloneProjectModalTemplate')
  118. .modal-header
  119. button.close(
  120. type="button"
  121. data-dismiss="modal"
  122. ng-click="cancel()"
  123. ) ×
  124. h3 #{translate("copy_project")}
  125. .modal-body
  126. .alert.alert-danger(ng-show="state.error.message") {{ state.error.message}}
  127. .alert.alert-danger(ng-show="state.error && !state.error.message") #{translate("generic_something_went_wrong")}
  128. form(name="cloneProjectForm", novalidate)
  129. .form-group
  130. label #{translate("new_name")}
  131. input.form-control(
  132. type="text",
  133. placeholder="New Project Name",
  134. required,
  135. ng-model="inputs.projectName",
  136. on-enter="clone()",
  137. focus-on="open"
  138. )
  139. .modal-footer
  140. button.btn.btn-default(
  141. ng-disabled="state.inflight"
  142. ng-click="cancel()"
  143. ) #{translate("cancel")}
  144. button.btn.btn-primary(
  145. ng-disabled="cloneProjectForm.$invalid || state.inflight"
  146. ng-click="clone()"
  147. )
  148. span(ng-hide="state.inflight") #{translate("copy")}
  149. span(ng-show="state.inflight") #{translate("copying")} ...
  150. script(type='text/ng-template', id='newProjectModalTemplate')
  151. .modal-header
  152. button.close(
  153. type="button"
  154. data-dismiss="modal"
  155. ng-click="cancel()"
  156. ) ×
  157. h3 #{translate("new_project")}
  158. .modal-body
  159. .alert.alert-danger(ng-show="state.error.message") {{ state.error.message}}
  160. .alert.alert-danger(ng-show="state.error && !state.error.message") #{translate("generic_something_went_wrong")}
  161. form(novalidate, name="newProjectForm")
  162. input.form-control(
  163. type="text",
  164. placeholder="Project Name",
  165. required,
  166. ng-model="inputs.projectName",
  167. on-enter="create()",
  168. focus-on="open"
  169. )
  170. .modal-footer
  171. button.btn.btn-default(
  172. ng-disabled="state.inflight"
  173. ng-click="cancel()"
  174. ) #{translate("cancel")}
  175. button.btn.btn-primary(
  176. ng-disabled="newProjectForm.$invalid || state.inflight"
  177. ng-click="create()"
  178. )
  179. span(ng-hide="state.inflight") #{translate("create")}
  180. span(ng-show="state.inflight") #{translate("creating")} ...
  181. script(type='text/ng-template', id='deleteProjectsModalTemplate')
  182. .modal-header
  183. button.close(
  184. type="button"
  185. data-dismiss="modal"
  186. ng-click="cancel()"
  187. ) ×
  188. h3(ng-if="action == 'delete'") #{translate("delete_projects")}
  189. h3(ng-if="action == 'leave'") #{translate("leave_projects")}
  190. h3(ng-if="action == 'delete-and-leave'") #{translate("delete_and_leave_projects")}
  191. .modal-body
  192. div(ng-show="projectsToDelete.length > 0")
  193. p #{translate("about_to_delete_projects")}
  194. ul
  195. li(ng-repeat="project in projectsToDelete | orderBy:'name'")
  196. strong {{project.name}}
  197. div(ng-show="projectsToLeave.length > 0")
  198. p #{translate("about_to_leave_projects")}
  199. ul
  200. li(ng-repeat="project in projectsToLeave | orderBy:'name'")
  201. strong {{project.name}}
  202. .modal-footer
  203. button.btn.btn-default(
  204. ng-click="cancel()"
  205. ) #{translate("cancel")}
  206. button.btn.btn-danger(
  207. ng-click="delete()"
  208. ) #{translate("confirm")}
  209. script(type="text/template", id="qq-project-uploader-template")
  210. div.qq-uploader-selector
  211. div(qq-hide-dropzone="").qq-upload-drop-area-selector.qq-upload-drop-area
  212. span.qq-upload-drop-area-text-selector #{translate('drop_files_here_to_upload')}
  213. div.qq-upload-button-selector.btn.btn-primary.btn-lg
  214. div #{translate('select_a_zip_file')}
  215. span.or.btn-lg #{translate('or')}
  216. span.drag-here.btn-lg #{translate('drag_a_zip_file')}
  217. span.qq-drop-processing-selector
  218. span #{translate('creating_project')}
  219. span.qq-drop-processing-spinner-selector
  220. ul.qq-upload-list-selector
  221. li
  222. div.qq-progress-bar-container-selector
  223. div(
  224. role="progressbar"
  225. aria-valuenow="0"
  226. aria-valuemin="0"
  227. aria-valuemax="100"
  228. class="qq-progress-bar-selector qq-progress-bar"
  229. )
  230. span.qq-upload-file-selector.qq-upload-file
  231. span.qq-upload-size-selector.qq-upload-size
  232. a(type="button").qq-btn.qq-upload-cancel-selector.qq-upload-cancel #{translate('cancel')}
  233. button(type="button").qq-btn.qq-upload-retry-selector.qq-upload-retry #{translate('retry')}
  234. span(role="status").qq-upload-status-text-selector.qq-upload-status-text
  235. script(type="text/ng-template", id="uploadProjectModalTemplate")
  236. .modal-header
  237. button.close(
  238. type="button"
  239. data-dismiss="modal"
  240. ng-click="cancel()"
  241. ) ×
  242. h3 #{translate("upload_zipped_project")}
  243. .modal-body(
  244. fine-upload
  245. endpoint="/project/new/upload"
  246. template-id="qq-project-uploader-template"
  247. multiple="false"
  248. allowed-extensions="['zip']"
  249. on-complete-callback="onComplete"
  250. )
  251. .modal-footer
  252. button.btn.btn-default(ng-click="cancel()") #{translate("cancel")}
  253. script(type="text/ng-template", id="userProfileModalTemplate")
  254. .modal-header
  255. button.close(
  256. type="button"
  257. data-dismiss="modal"
  258. ng-click="done()"
  259. ) ×
  260. h3 #{translate("your_profile")}
  261. .modal-body
  262. form(enctype='multipart/form-data', method='post')
  263. .form-group
  264. label(for="first_name") #{translate("first_name")}
  265. input.form-control(
  266. type='text',
  267. name='first_name',
  268. ng-model="userInfoForm.first_name",
  269. placeholder="First Name",
  270. select-when="formVisable"
  271. )
  272. .form-group
  273. label(for="last_name") #{translate("last_name")}
  274. input.form-control(
  275. type='text',
  276. name='last_name',
  277. ng-model="userInfoForm.last_name",
  278. placeholder='Last Name'
  279. )
  280. .form-group.user_details_auto_complete
  281. label(for="institution") #{translate("institution")}
  282. autocomplete(
  283. ng-model="userInfoForm.institution",
  284. name="institution",
  285. data="institutions",
  286. on-type="updateInstitutionsList",
  287. attr-placeholder="Institution",
  288. attr-inputclass="form-control"
  289. )
  290. .form-group.user_details_auto_complete
  291. label(for="role") #{translate("role")}
  292. autocomplete(
  293. ng-model="userInfoForm.role",
  294. name="role",
  295. data="roles",
  296. attr-placeholder="Role",
  297. attr-inputclass="form-control"
  298. )
  299. .modal-footer
  300. button.btn.btn-info(ng-click="done()") #{translate("done")}
  301. script(type="text/ng-template", id="v1ImportModalTemplate")
  302. .modal-header
  303. button.close(ng-click="dismiss()") ×
  304. h3 #{translate("import_project_to_v2")}
  305. .modal-body.v1-import-wrapper
  306. .v1-import-step-1(ng-show="step === 1")
  307. img.v1-import-img(
  308. src="/img/v1-import/v2-editor.png"
  309. alt="The new V2 Editor."
  310. )
  311. h2.v1-import-title Try importing your project to V2!
  312. p Some exciting copy about the new features:
  313. ul
  314. li Some stuff
  315. li Some more stuff
  316. li Yet more stuff
  317. .v1-import-step-2(ng-show="step === 2")
  318. div.v1-import-warning(aria-label="Warning symbol.")
  319. i.fa.fa-exclamation-triangle
  320. h2.v1-import-title #[strong Warning:] Overleaf V2 is in beta
  321. p Once importing your project you will lose access to the some of the features of Overleaf V1. This includes the git bridge, journal integrations, WYSIWYG and linked files. We’re working on bringing these features to V2!
  322. p Once you have imported a project to V2 you #[strong cannot go back to V1].
  323. p Are you sure you want to import to V2?
  324. .modal-footer.v1-import-footer
  325. div(ng-show="step === 1")
  326. if settings.overleaf && settings.overleaf.host
  327. a.btn.btn-primary.v1-import-btn(
  328. ng-href=settings.overleaf.host + "/{{project.id}}"
  329. ) #{translate("open_in_v1")}
  330. button.btn.btn-primary.v1-import-btn(
  331. ng-click="moveToConfirmation()"
  332. ) #{translate("import_to_v2")}
  333. div(ng-show="step === 2")
  334. form(
  335. async-form="v1Import",
  336. name="v1ImportForm",
  337. action="{{'/overleaf/project/'+ project.id + '/import'}}"
  338. method="POST"
  339. ng-cloak
  340. )
  341. input(name='_csrf', type='hidden', value=csrfToken)
  342. form-messages(for="v1ImportForm")
  343. if settings.overleaf && settings.overleaf.host
  344. a.btn.btn-primary.v1-import-btn(
  345. ng-href=settings.overleaf.host + "/{{project.id}}"
  346. ng-class="{disabled: v1ImportForm.inflight || v1ImportForm.success}"
  347. ) #{translate("never_mind_open_in_v1")}
  348. input.btn.btn-primary.v1-import-btn(
  349. type="submit",
  350. value=translate('yes_im_sure')
  351. ng-disabled="v1ImportForm.inflight || v1ImportForm.success"
  352. )