overleaf/services/web/public/coffee/ide.coffee

111 lines
3.3 KiB
CoffeeScript
Raw Normal View History

2014-02-12 05:23:40 -05:00
define [
"base"
"ide/file-tree/FileTreeManager"
"ide/connection/ConnectionManager"
"ide/editor/EditorManager"
"ide/online-users/OnlineUsersManager"
"ide/track-changes/TrackChangesManager"
"ide/permissions/PermissionsManager"
"ide/pdf/PdfManager"
"ide/binary-files/BinaryFilesManager"
"ide/settings/index"
"ide/share/index"
"ide/chat/index"
2014-07-17 09:04:21 -04:00
"ide/clone/index"
2014-07-15 12:56:09 -04:00
"ide/templates/index"
2014-07-17 09:20:29 -04:00
"ide/dropbox/index"
2014-07-22 09:38:32 -04:00
"ide/hotkeys/index"
"ide/directives/layout"
"ide/services/ide"
"directives/focus"
"directives/fineUpload"
2014-07-08 07:32:50 -04:00
"directives/scroll"
"directives/onEnter"
"directives/stopPropagation"
"directives/rightClick"
"filters/formatDate"
"main/event-tracking"
2014-02-12 05:23:40 -05:00
], (
App
FileTreeManager
ConnectionManager
EditorManager
OnlineUsersManager
TrackChangesManager
PermissionsManager
PdfManager
BinaryFilesManager
2014-02-12 05:23:40 -05:00
) ->
App.controller "IdeController", ["$scope", "$timeout", "ide", ($scope, $timeout, ide) ->
# Don't freak out if we're already in an apply callback
$scope.$originalApply = $scope.$apply
$scope.$apply = (fn = () ->) ->
phase = @$root.$$phase
if (phase == '$apply' || phase == '$digest')
fn()
else
this.$originalApply(fn);
$scope.state = {
loading: true
load_progress: 40
}
$scope.ui = {
leftMenuShown: false
view: "editor"
chatOpen: false
2014-07-22 08:33:01 -04:00
pdfLayout: 'sideBySide'
}
$scope.user = window.user
$scope.settings = window.userSettings
2014-07-21 06:56:49 -04:00
$scope.anonymous = window.anonymous
$scope.chat = {}
$scope.startFreeTrial = (source) ->
ga?('send', 'event', 'subscription-funnel', 'upgraded-free-trial', source)
window.open("/user/subscription/new?planCode=student_free_trial")
$scope.startedFreeTrial = true
window._ide = ide
ide.project_id = $scope.project_id = window.project_id
ide.$scope = $scope
ide.connectionManager = new ConnectionManager(ide, $scope)
ide.fileTreeManager = new FileTreeManager(ide, $scope)
ide.editorManager = new EditorManager(ide, $scope)
ide.onlineUsersManager = new OnlineUsersManager(ide, $scope)
ide.trackChangesManager = new TrackChangesManager(ide, $scope)
ide.pdfManager = new PdfManager(ide, $scope)
ide.permissionsManager = new PermissionsManager(ide, $scope)
ide.binaryFilesManager = new BinaryFilesManager(ide, $scope)
2014-07-24 11:39:32 -04:00
inited = false
$scope.$on "project:joined", () ->
return if inited
inited = true
if $scope.project.deletedByExternalDataSource
ide.showGenericMessageModal("Project Renamed or Deleted", """
This project has either been renamed or deleted by an external data source such as Dropbox.
We don't want to delete your data on ShareLaTeX, so this project still contains your history and collaborators.
If the project has been renamed please look in your project list for a new project under the new name.
""")
DARK_THEMES = [
"ambiance", "chaos", "clouds_midnight", "cobalt", "idle_fingers",
"merbivore", "merbivore_soft", "mono_industrial", "monokai",
"pastel_on_dark", "solarized_dark", "terminal", "tomorrow_night",
"tomorrow_night_blue", "tomorrow_night_bright", "tomorrow_night_eighties",
"twilight", "vibrant_ink"
]
$scope.darkTheme = false
$scope.$watch "settings.theme", (theme) ->
if theme in DARK_THEMES
$scope.darkTheme = true
else
$scope.darkTheme = false
]
angular.bootstrap(document.body, ["SharelatexApp"])