editor.jade 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. extends ../layout
  2. block vars
  3. - var suppressNavbar = true
  4. - var suppressFooter = true
  5. - var suppressDefaultJs = true
  6. block scripts
  7. //- Only use the native bootstrap on the editor page,
  8. //- since we use the Angular-based bootstrap elsewhere.
  9. script(src=jsPath+'libs/bootstrap-3.1.1.js')
  10. script(src=jsPath+'libs/jquery-layout.js')
  11. script(src=jsPath+'libs/jquery.storage.js')
  12. block content
  13. .editor(ng-controller="IdeController")
  14. .loading-screen(ng-show="state.loading")
  15. .container
  16. h3 Loading...
  17. .progress
  18. .progress-bar(ng-style="{'width': state.load_progress + '%'}")
  19. header.toolbar.toolbar-header(ng-cloak, ng-hide="state.loading")
  20. a.btn.btn-full-height(href='#', tooltip="Menu", tooltip-placement="bottom")
  21. i.fa.fa-bars
  22. span.name {{ project.name }}
  23. a(href='#', data-toggle="tooltip", title="Rename")
  24. i.fa.fa-pencil
  25. .toolbar-right
  26. a.btn.btn-full-height(href='#', tooltip="Share", tooltip-placement="bottom")
  27. i.fa.fa-group
  28. a.btn.btn-full-height(href='#', tooltip="Recent Changes", tooltip-placement="bottom")
  29. i.fa.fa-history
  30. a.btn.btn-full-height(href='#', tooltip="Chat", tooltip-placement="bottom")
  31. i.fa.fa-comment
  32. #editor-content(ng-cloak, layout="main", ng-hide="state.loading")
  33. include ./editor/file-tree
  34. .ui-layout-center
  35. //- #loadingScreen
  36. //- h3 Loading...
  37. //- p#loadingMessage Loading editor
  38. //- #errorMessages
  39. //- #connectionLostMessage(style="display: none;")
  40. //- | Lost connection.
  41. //- span#trying-reconnect
  42. //- | Reconnecting in
  43. //- span#reconnection-countdown ?
  44. //- | seconds.
  45. //- a(href='#')#try-reconnect-now Try now.
  46. //- span#reconnecting
  47. //- | Reconnecting...
  48. //- #savingProblems(style="display: none")
  49. //- | Saving...
  50. //- div#toolbar.sidebar-navigation
  51. //- ul#tabs
  52. //- #toolbar-footer
  53. //- #tab-content.tab-content
  54. //- include ../templates
  55. //- include ../templates/dropbox
  56. script(src='/socket.io/socket.io.js')
  57. script(type='text/javascript').
  58. window.project_id = "!{project_id}"
  59. window.sharelatex = !{sharelatexObject};
  60. window.userSettings = !{userSettingsObject};
  61. window.user = !{userObject};
  62. window.csrfToken = "!{csrfToken}";
  63. window.requirejs = {
  64. "paths" : {
  65. "underscore": "libs/underscore-1.3.3",
  66. "mathjax": "https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS_HTML",
  67. "moment": "libs/moment-2.4.0"
  68. },
  69. "urlArgs" : "fingerprint=#{fingerprint(jsPath + 'ide.js')}",
  70. "waitSeconds": 0,
  71. "shim": {
  72. "libs/backbone": {
  73. deps: ["libs/underscore-1.3.3"]
  74. },
  75. "libs/pdfListView/PdfListView": {
  76. deps: ["libs/pdf"]
  77. },
  78. "libs/pdf": {
  79. deps: ["libs/compatibility"]
  80. }
  81. }
  82. };
  83. script(type='text/javascript').
  84. ga('send', 'event', 'editor-interaction', 'editor-opened')
  85. - locals.suppressDefaultJs = true
  86. - var fingerprintedPath = fingerprint(jsPath+'libs/pdf.worker.js')
  87. - var pdfJsWorkerPath = jsPath+'libs/pdf.worker.js?fingerprint='+fingerprintedPath
  88. script(type='text/javascript').
  89. window.sharelatex.pdfJsWorkerPath = "#{pdfJsWorkerPath}"
  90. script(
  91. data-main=jsPath+'app/ide.js',
  92. baseurl=jsPath,
  93. data-ace-base=jsPath+'ace',
  94. src=jsPath+'libs/require.js?fingerprint='+fingerprint(jsPath + 'libs/require.js')
  95. )
  96. - if (!anonymous)
  97. script(type="text/javascript").
  98. var chatReq = require.config({
  99. context: "chat",
  100. baseUrl: "#{chatUrl}/chat"
  101. });
  102. chatReq(["require", "chat"], function(require, Chat) {
  103. new Chat({
  104. room: {
  105. project_id: window.userSettings.project_id
  106. },
  107. url: "#{chatUrl}"
  108. })
  109. });