editor.pug 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. div.full-size(
  2. ng-show="ui.view == 'editor'"
  3. layout="pdf"
  4. layout-disabled="ui.pdfLayout != 'sideBySide'"
  5. mask-iframes-on-resize="true"
  6. resize-on="layout:main:resize"
  7. resize-proportionally="true"
  8. initial-size-east="'50%'"
  9. minimum-restore-size-east="300"
  10. allow-overflow-on="'center'"
  11. custom-toggler-pane=hasFeature('custom-togglers') ? "east" : false
  12. custom-toggler-msg-when-open=hasFeature('custom-togglers') ? translate("tooltip_hide_pdf") : false
  13. custom-toggler-msg-when-closed=hasFeature('custom-togglers') ? translate("tooltip_show_pdf") : false
  14. )
  15. .ui-layout-center(
  16. ng-controller="ReviewPanelController",
  17. ng-class="{\
  18. 'rp-unsupported': editor.showRichText,\
  19. 'rp-state-current-file': (reviewPanel.subView === SubViews.CUR_FILE),\
  20. 'rp-state-current-file-expanded': (reviewPanel.subView === SubViews.CUR_FILE && ui.reviewPanelOpen),\
  21. 'rp-state-current-file-mini': (reviewPanel.subView === SubViews.CUR_FILE && !ui.reviewPanelOpen),\
  22. 'rp-state-overview': (reviewPanel.subView === SubViews.OVERVIEW),\
  23. 'rp-size-mini': ui.miniReviewPanelVisible,\
  24. 'rp-size-expanded': ui.reviewPanelOpen,\
  25. 'rp-layout-left': reviewPanel.layoutToLeft,\
  26. 'rp-loading-threads': reviewPanel.loadingThreads,\
  27. }"
  28. )
  29. .loading-panel(
  30. ng-show="!editor.sharejs_doc || editor.opening",
  31. style=showRichText ? "top: 32px" : "",
  32. )
  33. span(ng-show="editor.open_doc_id")
  34. i.fa.fa-spin.fa-refresh
  35. |   #{translate("loading")}…
  36. span(ng-show="!editor.open_doc_id")
  37. i.fa.fa-arrow-left
  38. |   #{translate("open_a_file_on_the_left")}
  39. != moduleIncludes('editor:main', locals)
  40. .multi-selection-ongoing(
  41. ng-show="multiSelectedCount > 0"
  42. )
  43. .multi-selection-message
  44. h4 {{ multiSelectedCount }} #{translate('files_selected')}
  45. #editor(
  46. ace-editor="editor",
  47. ng-if="!editor.showRichText",
  48. ng-show="!!editor.sharejs_doc && !editor.opening && multiSelectedCount === 0",
  49. theme="settings.editorTheme",
  50. keybindings="settings.mode",
  51. font-size="settings.fontSize",
  52. auto-complete="settings.autoComplete",
  53. auto-pair-delimiters="settings.autoPairDelimiters",
  54. spell-check="!anonymous",
  55. spell-check-language="project.spellCheckLanguage"
  56. highlights="onlineUserCursorHighlights[editor.open_doc_id]"
  57. show-print-margin="false",
  58. sharejs-doc="editor.sharejs_doc",
  59. last-updated="editor.last_updated",
  60. cursor-position="editor.cursorPosition",
  61. goto-line="editor.gotoLine",
  62. resize-on="layout:main:resize,layout:pdf:resize,layout:review:resize,review-panel:toggle,layout:flat-screen:toggle",
  63. annotations="pdf.logEntryAnnotations[editor.open_doc_id]",
  64. read-only="!permissions.write",
  65. file-name="editor.open_doc_name",
  66. on-ctrl-enter="recompileViaKey",
  67. on-save="recompileViaKey",
  68. on-ctrl-j="toggleReviewPanel",
  69. on-ctrl-shift-c="addNewCommentFromKbdShortcut",
  70. on-ctrl-shift-a="toggleTrackChangesFromKbdShortcut",
  71. syntax-validation="settings.syntaxValidation",
  72. review-panel="reviewPanel",
  73. events-bridge="reviewPanelEventsBridge"
  74. track-changes= "editor.trackChanges",
  75. doc-id="editor.open_doc_id"
  76. renderer-data="reviewPanel.rendererData"
  77. font-family="settings.fontFamily"
  78. line-height="settings.lineHeight"
  79. )
  80. if !isRestrictedTokenMember
  81. include ./review-panel
  82. .ui-layout-east
  83. div(ng-if="ui.pdfLayout == 'sideBySide'")
  84. include ./pdf
  85. .ui-layout-resizer-controls.synctex-controls(
  86. ng-show="!!pdf.url && settings.pdfViewer == 'pdfjs'"
  87. ng-controller="PdfSynctexController"
  88. )
  89. a.btn.btn-default.btn-xs.synctex-control.synctex-control-goto-pdf(
  90. tooltip=translate('go_to_code_location_in_pdf')
  91. tooltip-placement="right"
  92. tooltip-append-to-body="true"
  93. ng-click="syncToPdf()"
  94. )
  95. i.synctex-control-icon
  96. a.btn.btn-default.btn-xs.synctex-control.synctex-control-goto-code(
  97. tooltip-html="'"+translate('go_to_pdf_location_in_code', {}, true)+"'"
  98. tooltip-placement="right"
  99. tooltip-append-to-body="true"
  100. ng-click="syncToCode()"
  101. )
  102. i.synctex-control-icon
  103. div.full-size(
  104. ng-if="ui.pdfLayout == 'flat'"
  105. ng-show="ui.view == 'pdf'"
  106. )
  107. include ./pdf
  108. // fallback, shown when no file/view is selected
  109. div.full-size.no-file-selection(
  110. ng-if="!ui.view"
  111. )
  112. .no-file-selection-message(
  113. ng-if="rootFolder.children && rootFolder.children.length > 0"
  114. )
  115. h3
  116. | #{translate('no_selection_select_file')}
  117. .no-file-selection-message(
  118. ng-if="rootFolder.children && rootFolder.children.length === 0"
  119. )
  120. h3
  121. | #{translate('no_selection_create_new_file')}
  122. div(
  123. ng-controller="FileTreeController"
  124. )
  125. button.btn.btn-primary(
  126. ng-click="openNewDocModal()"
  127. )
  128. | #{translate('new_file')}