diff --git a/app/styles/common/site-chrome.sass b/app/styles/common/site-chrome.sass index c2f8b53b7..24368c806 100644 --- a/app/styles/common/site-chrome.sass +++ b/app/styles/common/site-chrome.sass @@ -147,6 +147,7 @@ width: 1024px border: 5px solid rgb(110,88,41) padding: 20px 12px + min-height: 300px //- Footer diff --git a/app/templates/i18n/i18n-home-view.jade b/app/templates/i18n/i18n-home-view.jade index c0604e32b..4d1e7805d 100644 --- a/app/templates/i18n/i18n-home-view.jade +++ b/app/templates/i18n/i18n-home-view.jade @@ -1,23 +1,26 @@ extends /templates/base block content - .progress - .progress-bar.progress-bar-info(role="progressbar" aria-valuenow=progress aria-valuemin="0" aria-valuemax="100" style="width: "+progress+"%")= progress+"%" + if selectedLanguage + .progress + .progress-bar.progress-bar-info(role="progressbar" aria-valuenow=progress aria-valuemin="0" aria-valuemax="100" style="width: "+progress+"%")= progress+"%" table.table.table-condensed tr th select#language-select.form-control.input-sm + option(value='') Select one... th Type th Specifically Covered th Generally Covered - - for model in collection.models - tr - td - a(href=model.i18nURLBase+model.get('slug'))= model.get('name') - td= model.constructor.className - td(class=model.specificallyCovered ? 'success' : 'danger')= model.specificallyCovered ? 'Yes' : 'No' - td(class=model.generallyCovered ? 'success' : 'danger')= model.generallyCovered ? 'Yes' : 'No' + + if selectedLanguage + for model in collection.models + tr + td + a(href=model.i18nURLBase+model.get('slug'))= model.get('name') + td= model.constructor.className + td(class=model.specificallyCovered ? 'success' : 'danger')= model.specificallyCovered ? 'Yes' : 'No' + td(class=model.generallyCovered ? 'success' : 'danger')= model.generallyCovered ? 'Yes' : 'No' diff --git a/app/views/i18n/I18NEditModelView.coffee b/app/views/i18n/I18NEditModelView.coffee index b01a0ecf7..d21cf1cb3 100644 --- a/app/views/i18n/I18NEditModelView.coffee +++ b/app/views/i18n/I18NEditModelView.coffee @@ -47,6 +47,7 @@ module.exports = class I18NEditModelView extends RootView @hush = true $select = @$el.find('#language-select').empty() @addLanguagesToSelect($select, @selectedLanguage) + @$el.find('option[value="en-US"]').remove() @hush = false editors = [] @@ -123,6 +124,9 @@ module.exports = class I18NEditModelView extends RootView onLanguageSelectChanged: (e) -> return if @hush @selectedLanguage = $(e.target).val() + if @selectedLanguage + me.set('preferredLanguage', @selectedLanguage) + me.patch() @render() onSubmitPatch: (e) -> diff --git a/app/views/i18n/I18NHomeView.coffee b/app/views/i18n/I18NHomeView.coffee index 66be39cc1..b0658dd4a 100644 --- a/app/views/i18n/I18NHomeView.coffee +++ b/app/views/i18n/I18NHomeView.coffee @@ -19,7 +19,7 @@ module.exports = class I18NHomeView extends RootView constructor: (options) -> super(options) - @selectedLanguage = me.get('preferredLanguage', true) + @selectedLanguage = me.get('preferredLanguage') or '' #- @aggregateModels = new Backbone.Collection() @@ -92,7 +92,12 @@ module.exports = class I18NHomeView extends RootView afterRender: -> super() @addLanguagesToSelect(@$el.find('#language-select'), @selectedLanguage) + @$el.find('option[value="en-US"]').remove() onLanguageSelectChanged: (e) -> @selectedLanguage = $(e.target).val() + if @selectedLanguage + # simplest solution, see if this actually ends up being not what people want + me.set('preferredLanguage', @selectedLanguage) + me.patch() @render() diff --git a/server/commons/Handler.coffee b/server/commons/Handler.coffee index adabf2d8e..755238dd1 100644 --- a/server/commons/Handler.coffee +++ b/server/commons/Handler.coffee @@ -48,7 +48,13 @@ module.exports = class Handler flattened = deltasLib.flattenDelta(delta) _.all flattened, (delta) -> # sometimes coverage gets moved around... allow other changes to happen to i18nCoverage - return _.isArray(delta.o) and (('i18n' in delta.dataPath and delta.o.length is 1) or 'i18nCoverage' in delta.dataPath) + return false unless _.isArray(delta.o) + return true if 'i18nCoverage' in delta.dataPath + return false unless delta.o.length is 1 + index = delta.deltaPath.indexOf('i18n') + return false if index is -1 + return false if delta.deltaPath[index+1] is 'en-US' + return true formatEntity: (req, document) -> document?.toObject() getEditableProperties: (req, document) -> diff --git a/server/levels/level_handler.coffee b/server/levels/level_handler.coffee index 665c39444..fcb311dea 100644 --- a/server/levels/level_handler.coffee +++ b/server/levels/level_handler.coffee @@ -310,6 +310,7 @@ LevelHandler = class LevelHandler extends Handler @sendSuccess res, data hasAccessToDocument: (req, document, method=null) -> + method ?= req.method return true if method is null or method is 'get' super(req, document, method) diff --git a/server/routes/auth.coffee b/server/routes/auth.coffee index f1cde9487..fee2f2644 100644 --- a/server/routes/auth.coffee +++ b/server/routes/auth.coffee @@ -192,7 +192,8 @@ module.exports.loginUser = loginUser = (req, res, user, send=true, next=null) -> module.exports.makeNewUser = makeNewUser = (req) -> user = new User({anonymous: true}) user.set 'testGroupNumber', Math.floor(Math.random() * 256) # also in app/lib/auth - user.set 'preferredLanguage', languages.languageCodeFromAcceptedLanguages req.acceptedLanguages + lang = languages.languageCodeFromAcceptedLanguages req.acceptedLanguages + user.set 'preferredLanguage', lang if lang[...2] isnt 'en' user.set 'lastIP', req.connection.remoteAddress createMailOptions = (receiver, password) ->