diff --git a/services/web/app/coffee/infrastructure/ExpressLocals.coffee b/services/web/app/coffee/infrastructure/ExpressLocals.coffee index 6e14526d88..e35ebef6c3 100644 --- a/services/web/app/coffee/infrastructure/ExpressLocals.coffee +++ b/services/web/app/coffee/infrastructure/ExpressLocals.coffee @@ -18,6 +18,8 @@ for path in [ "#{jsPath}libs/require.js", "#{jsPath}ide.js", "#{jsPath}main.js", + "#{jsPath}libs.js", + "#{jsPath}ace/ace.js", "#{jsPath}libs/pdf.js", "#{jsPath}libs/pdf.worker.js", "/stylesheets/style.css" diff --git a/services/web/app/views/layout.jade b/services/web/app/views/layout.jade index 2e59b6a48f..473e488dad 100644 --- a/services/web/app/views/layout.jade +++ b/services/web/app/views/layout.jade @@ -53,7 +53,7 @@ html(itemscope, itemtype='http://schema.org/Product') - if(typeof(suppressFooter) == "undefined") script(type='text/javascript'). window.requirejs = { - "urlArgs" : "fingerprint=#{fingerprint(jsPath + 'app/main.js')}", + "urlArgs" : "fingerprint=#{fingerprint(jsPath + 'app/main.js')}-#{fingerprint(jsPath + 'libs.js')}", "paths" : { "moment": "libs/moment-2.7.0" } diff --git a/services/web/app/views/project/editor.jade b/services/web/app/views/project/editor.jade index 7801af262b..f8c7311205 100644 --- a/services/web/app/views/project/editor.jade +++ b/services/web/app/views/project/editor.jade @@ -91,7 +91,7 @@ block content "mathjax": "https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS_HTML", "moment": "libs/moment-2.7.0" }, - "urlArgs" : "fingerprint=#{fingerprint(jsPath + 'ide.js')}", + "urlArgs" : "fingerprint=#{fingerprint(jsPath + 'ide.js')}-#{fingerprint(jsPath + 'libs.js')}", "waitSeconds": 0, "shim": { "libs/pdfListView/PdfListView": { @@ -105,6 +105,7 @@ block content } } }; + window.aceFingerprint = "#{fingerprint(jsPath + 'ace/ace.js')}" script(type='text/javascript'). ga('send', 'event', 'editor-interaction', 'editor-opened') @@ -117,7 +118,7 @@ block content window.pdfJsWorkerPath = "#{pdfJsWorkerPath}"; script( - data-main=jsPath+'ide.js', + data-main=jsPath+"ide.js", baseurl=jsPath, data-ace-base=jsPath+'ace', src=jsPath+'libs/require.js?fingerprint='+fingerprint(jsPath + 'libs/require.js') diff --git a/services/web/app/views/project/list/project-list.jade b/services/web/app/views/project/list/project-list.jade index 05fa427b22..2bd91383bb 100644 --- a/services/web/app/views/project/list/project-list.jade +++ b/services/web/app/views/project/list/project-list.jade @@ -122,14 +122,14 @@ select-all, type="checkbox" ) - span.header Title - i.tablesort.fa(ng-class="getSortIconClass('name')") + span.header.clickable Title + i.tablesort.fa(ng-class="getSortIconClass('name')") .col-md-2(ng-click="changePredicate('accessLevel')") - span.header Owner - i.tablesort.fa(ng-class="getSortIconClass('accessLevel')") + span.header.clickable Owner + i.tablesort.fa(ng-class="getSortIconClass('accessLevel')") .col-md-4(ng-click="changePredicate('lastUpdated')") - span.header Last Modified - i.tablesort.fa(ng-class="getSortIconClass('lastUpdated')") + span.header.clickable Last Modified + i.tablesort.fa(ng-class="getSortIconClass('lastUpdated')") li.project_entry.container-fluid( ng-repeat="project in visibleProjects | orderBy:predicate:reverse", ng-controller="ProjectListItemController" diff --git a/services/web/public/coffee/base.coffee b/services/web/public/coffee/base.coffee index 95301da521..90d522ead8 100644 --- a/services/web/public/coffee/base.coffee +++ b/services/web/public/coffee/base.coffee @@ -3,7 +3,6 @@ define [ "modules/recursionHelper" "utils/underscore" ], () -> - App = angular.module("SharelatexApp", [ "ui.bootstrap" "autocomplete" diff --git a/services/web/public/coffee/ide/clone/index.coffee b/services/web/public/coffee/ide/clone/index.coffee index e9c49b4766..5acde65bdb 100644 --- a/services/web/public/coffee/ide/clone/index.coffee +++ b/services/web/public/coffee/ide/clone/index.coffee @@ -1,4 +1,4 @@ define [ "ide/clone/controllers/CloneProjectController" "ide/clone/controllers/CloneProjectModalController" -] \ No newline at end of file +], () -> \ No newline at end of file diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor.coffee index 524ed93d09..06315f917d 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor.coffee @@ -9,6 +9,14 @@ define [ "ide/editor/directives/aceEditor/cursor-position/CursorPositionManager" ], (App, Ace, SearchBox, UndoManager, AutoCompleteManager, SpellCheckManager, HighlightsManager, CursorPositionManager) -> EditSession = ace.require('ace/edit_session').EditSession + + # Ace loads its script itself, so we need to hook in to be able to clear + # the cache. + if !ace.config._moduleUrl? + ace.config._moduleUrl = ace.config.moduleUrl + ace.config.moduleUrl = (args...) -> + url = ace.config._moduleUrl(args...) + "?fingerprint=#{window.aceFingerprint}" + return url App.directive "aceEditor", ["$timeout", "$compile", "$rootScope", ($timeout, $compile, $rootScope) -> monkeyPatchSearch($rootScope, $compile) @@ -73,7 +81,7 @@ define [ # Make '/' work for search in vim mode. editor.showCommandLine = (arg) => if arg == "/" - Ace.require("ace/ext/searchbox").Search(editor, true) + ace.require("ace/ext/searchbox").Search(editor, true) if attrs.resizeOn? for event in attrs.resizeOn.split(",") diff --git a/services/web/public/coffee/main/project-list.coffee b/services/web/public/coffee/main/project-list.coffee index d64f2bbcde..d920428845 100644 --- a/services/web/public/coffee/main/project-list.coffee +++ b/services/web/public/coffee/main/project-list.coffee @@ -84,11 +84,11 @@ define [ $scope.getSortIconClass = (column)-> if column == $scope.predicate and $scope.reverse - return "fa-sort-down" + return "fa-caret-down" else if column == $scope.predicate and !$scope.reverse - return "fa-sort-up" + return "fa-caret-up" else - return "fa-sort" + return "" $scope.clearSearchText = () -> $scope.searchText = "" diff --git a/services/web/public/stylesheets/app/base.less b/services/web/public/stylesheets/app/base.less index 9935c3f374..fb53524266 100644 --- a/services/web/public/stylesheets/app/base.less +++ b/services/web/public/stylesheets/app/base.less @@ -2,6 +2,9 @@ display: none !important; } +.clickable { + cursor: pointer; +} .img-circle { display: inline-block;