extends ../layout

block vars
	- var suppressNavbar = true
	- var suppressFooter = true
	- var suppressDefaultJs = true
	- var suppressSystemMessages = true

block content
	.editor(ng-controller="IdeController").full-size
		.loading-screen(ng-show="state.loading")
			.container
				h3 #{translate("loading")}...
				.progress
					.progress-bar(style="width: 20%", ng-style="{'width': state.load_progress + '%'}")
				p.text-center.text-danger(ng-if="state.error").ng-cloak 
					span(ng-bind-html="state.error")


		.global-alerts(ng-cloak)
			.alert.alert-danger.small(ng-if="connection.forced_disconnect")
				strong #{translate("disconnected")}
				|  #{translate("please_refresh")}

			.alert.alert-warning.small(ng-if="connection.reconnection_countdown")
				strong #{translate("lost_connection")}.
				| #{translate("reconnecting_in_x_secs", {seconds:"{{ connection.reconnection_countdown }}"})}.
				a#try-reconnect-now-button.pull-right(href, ng-click="tryReconnectNow()") #{translate("try_now")}

			.alert.alert-warning.small(ng-if="connection.reconnecting")
				strong #{translate("reconnecting")}...

			.alert.alert-warning.small(ng-if="connection.inactive_disconnect")
				strong #{translate("editor_disconected_click_to_reconnect")}

			.div(ng-controller="SavingNotificationController")
				.alert.alert-warning.small(ng-repeat="(doc_id, state) in docSavingStatus" ng-if="state.unsavedSeconds > 8") #{translate("saving_notification_with_seconds", {docname:"{{ state.doc.name }}", seconds:"{{ state.unsavedSeconds }}"})}

		include ./editor/left-menu

		#chat-wrapper(
			layout="chat",
			spacing-open="12",
			spacing-closed="0",
			initial-size-east="250",
			init-closed-east="true",
			open-east="ui.chatOpen",
			ng-hide="state.loading",
			ng-cloak
		)
			.ui-layout-center
				include ./editor/header

				include ./editor/share

				#ide-body(
					ng-cloak,
					layout="main",
					ng-hide="state.loading",
					resize-on="layout:chat:resize",
					minimum-restore-size-west="130"
				)
					.ui-layout-west
						include ./editor/file-tree

					.ui-layout-center
						include ./editor/editor
						include ./editor/binary-file
						include ./editor/track-changes
						include ./editor/publish-template

			.ui-layout-east
				include ./editor/chat
				
	include ./editor/hotkeys

	script(type="text/ng-template", id="genericMessageModalTemplate")
		.modal-header
			button.close(
				type="button"
				data-dismiss="modal"
				ng-click="done()"
			) &times;
			h3 {{ title }}
		.modal-body(ng-bind-html="message")
		.modal-footer
			button.btn.btn-info(ng-click="done()") #{translate("ok")}

	script(src='/socket.io/socket.io.js')

	//- We need to do .replace(/\//g, '\\/') do that '</script>' -> '<\/script>'
	//- and doesn't prematurely end the script tag.
	script(type='text/javascript').
		window.project_id = "!{project_id}";
		window.userSettings = !{JSON.stringify(userSettings).replace(/\//g, '\\/')};
		window.user = !{JSON.stringify(user).replace(/\//g, '\\/')};
		window.csrfToken = "!{csrfToken}";
		window.anonymous = #{anonymous};
		window.maxDocLength = #{maxDocLength};
		window.wikiEnabled = #{!!(settings.apis.wiki && settings.apis.wiki.url)};
		window.requirejs = {
			"paths" : {
				"mathjax": "/js/libs/mathjax/MathJax.js?config=TeX-AMS_HTML",
				"moment": "libs/moment-2.7.0",
				"libs/pdf": "libs/pdfjs-1.3.91/pdf"
			},
			"urlArgs" : "fingerprint=#{fingerprint(jsPath + 'ide.js')}-#{fingerprint(jsPath + 'libs.js')}",
			"waitSeconds": 0,
			"shim": {
				"libs/pdf": {
					deps: ["libs/pdfjs-1.3.91/compatibility"]
				},
				"ace/ext-searchbox": {
					deps: ["ace/ace"]
				},
				"ace/ext-language_tools": {
					deps: ["ace/ace"]
				}
			},
			config:{
				moment:{
					noGlobal: true
				}
			}
		};
		window.aceFingerprint = "#{fingerprint(jsPath + 'ace/ace.js')}"

	- locals.suppressDefaultJs = true

	- var pdfPath = 'libs/pdfjs-1.3.91/pdf.worker.js'
	- var fingerprintedPath = fingerprint(jsPath+pdfPath)
	- var pdfJsWorkerPath = jsPath+pdfPath+'?fingerprint='+fingerprintedPath
	script(type='text/javascript').
		window.pdfJsWorkerPath = "#{pdfJsWorkerPath}";

	script(
		data-main=jsPath+"ide.js",
		baseurl=jsPath,
		data-ace-base=jsPath+'ace',
		src=jsPath+'libs/require.js?fingerprint='+fingerprint(jsPath + 'libs/require.js')
	)
		

