diff --git a/services/web/Gruntfile.coffee b/services/web/Gruntfile.coffee index 3e7c187d8d..374e7659c0 100644 --- a/services/web/Gruntfile.coffee +++ b/services/web/Gruntfile.coffee @@ -161,6 +161,7 @@ module.exports = (grunt) -> "moment": "libs/#{PackageVersions.lib('moment')}" "mathjax": "/js/libs/mathjax/MathJax.js?config=TeX-AMS_HTML" "libs/pdf": "libs/#{PackageVersions.lib('pdfjs')}/pdf" + "ace": "#{PackageVersions.lib('ace')}" shim: "libs/pdf": deps: ["libs/#{PackageVersions.lib('pdfjs')}/compatibility"] diff --git a/services/web/app/views/layout.jade b/services/web/app/views/layout.jade index 4d16b98c29..7f5cfd891f 100644 --- a/services/web/app/views/layout.jade +++ b/services/web/app/views/layout.jade @@ -52,6 +52,7 @@ html(itemscope, itemtype='http://schema.org/Product') window.csrfToken = "#{csrfToken}"; block scripts + script(src=buildJsPath("libs/jquery-1.11.1.min.js", {fingerprint:false})) script(type="text/javascript"). var noCdnKey = "nocdn=true" @@ -109,41 +110,36 @@ html(itemscope, itemtype='http://schema.org/Product') - if(typeof(suppressNavbar) == "undefined") include layout/navbar - script(type='text/javascript'). - // minimal requirejs configuration (can be extended/overridden) - window.requirejs = { - "paths" : { - "moment": "libs/#{lib('moment')}" - }, - "config":{ - "moment":{ - "noGlobal": true - } - } - }; - block content + div(ng-controller="AbTestController") - if(typeof(suppressFooter) == "undefined") include layout/footer - - - if (typeof(lookingForScribtex) != "undefined" && lookingForScribtex) span(ng-controller="ScribtexPopupController") include scribtex-modal - - if(typeof(suppressDefaultJs) == "undefined") + block requirejs script(type='text/javascript'). - // extend requirejs config - window.requirejs.urlArgs = "fingerprint=#{fingerprint(jsPath + 'main.js')}-#{fingerprint(jsPath + 'libs.js')}" + // minimal requirejs configuration (can be extended/overridden) + window.requirejs = { + "paths" : { + "moment": "libs/#{lib('moment')}" + }, + "urlArgs": "fingerprint=#{fingerprint(jsPath + 'main.js')}-#{fingerprint(jsPath + 'libs.js')}", + "config":{ + "moment":{ + "noGlobal": true + } + } + }; script( data-main=buildJsPath('main.js', {fingerprint:false}), baseurl=fullJsPath, src=buildJsPath('libs/require.js') ) - include contact-us-modal include sentry diff --git a/services/web/app/views/project/editor.jade b/services/web/app/views/project/editor.jade index 2dfec5694c..07ceeacbfa 100644 --- a/services/web/app/views/project/editor.jade +++ b/services/web/app/views/project/editor.jade @@ -3,7 +3,6 @@ extends ../layout block vars - var suppressNavbar = true - var suppressFooter = true - - var suppressDefaultJs = true - var suppressSystemMessages = true block content @@ -86,8 +85,8 @@ block content .modal-footer button.btn.btn-info(ng-click="done()") #{translate("ok")} - script(src='/socket.io/socket.io.js') - +block requirejs + script(type="text/javascript" src='/socket.io/socket.io.js') //- We need to do .replace(/\//g, '\\/') do that '' -> '<\/script>' //- and doesn't prematurely end the script tag. script(type='text/javascript'). @@ -126,8 +125,6 @@ block content }; window.aceFingerprint = "#{fingerprint(jsPath + lib('ace') + '/ace.js')}" - - locals.suppressDefaultJs = true - - var pdfPath = "libs/" + lib('pdfjs') + "/pdf.worker.js" - var fingerprintedPath = fingerprint(jsPath+pdfPath) - var pdfJsWorkerPath = buildJsPath(pdfPath, {cdn:false,qs:{fingerprint:fingerprintedPath}}) // don't use worker for cdn @@ -144,5 +141,4 @@ block content src=buildJsPath('libs/require.js') ) - - + diff --git a/services/web/app/views/subscriptions/edit-billing-details.jade b/services/web/app/views/subscriptions/edit-billing-details.jade index 6c13985cfe..cc41e0a4b9 100644 --- a/services/web/app/views/subscriptions/edit-billing-details.jade +++ b/services/web/app/views/subscriptions/edit-billing-details.jade @@ -1,10 +1,9 @@ extends ../layout -block content - - locals.suppressDefaultJs = true - script(data-main=jsPath+'main.js', src=jsPath+'libs/require.js', baseurl=jsPath) +block scripts script(src=buildJsPath('libs/recurly.min.js', {fingerprint:false})) +block content .content.content-alt .container .row diff --git a/services/web/app/views/subscriptions/new.jade b/services/web/app/views/subscriptions/new.jade index 691efdf7f6..4bd75574b1 100644 --- a/services/web/app/views/subscriptions/new.jade +++ b/services/web/app/views/subscriptions/new.jade @@ -1,6 +1,6 @@ extends ../layout -block scripts +block scripts script(src="https://js.recurly.com/v3/recurly.js") script(type='text/javascript'). @@ -11,10 +11,6 @@ block scripts window.couponCode = "#{couponCode}" block content - - locals.suppressDefaultJs = true - script(data-main=jsPath+'main.js', src=jsPath+'libs/require.js', baseurl=jsPath) - - .content.content-alt .container(ng-controller="NewSubscriptionController" ng-cloak) .row.card-group diff --git a/services/web/app/views/user/settings.jade b/services/web/app/views/user/settings.jade index 2e17eb1888..d2fa8326d1 100644 --- a/services/web/app/views/user/settings.jade +++ b/services/web/app/views/user/settings.jade @@ -151,7 +151,7 @@ block content .modal-header h3 #{translate("delete_account")} .modal-body - p !{translate("delete_account_warning_message")} + p !{translate("delete_account_warning_message_2")} form(novalidate, name="deleteAccountForm") input.form-control( type="text", diff --git a/services/web/public/js/ace-1.2.5/ace.js b/services/web/public/js/ace-1.2.5/ace.js index 2b601cc9b9..89bef3543d 100644 --- a/services/web/public/js/ace-1.2.5/ace.js +++ b/services/web/public/js/ace-1.2.5/ace.js @@ -2283,6 +2283,9 @@ var TextInput = function(parentNode, host) { if (e.type == "compositionend" && c.range) { host.selection.setRange(c.range); } + // WORKAROUND: Accent keys and Korean keys don't work in Chrome >53. + // https://github.com/ajaxorg/ace/issues/3045 + if (useragent.isChrome >= 53) onInput(); };