From 73d6261b5dcdabf230b7a54dd556e2c2f5d8229d Mon Sep 17 00:00:00 2001 From: Nick Winter <livelily@gmail.com> Date: Wed, 24 Sep 2014 16:29:28 -0700 Subject: [PATCH] Hide run shortcut (shift+enter) for first few levels so as not to distract. Don't show beautification button in Python mode. Don't show maximize editor button in hero levels. Don't show method selector if there's only one method. Renamed some spells to methods. Added a bit of i18n. --- app/locale/en.coffee | 4 +++- app/templates/play/level/tome/spell_list.jade | 2 +- .../play/level/tome/spell_list_tab_entry.jade | 19 +++++++++++-------- .../play/level/tome/CastButtonView.coffee | 3 ++- app/views/play/level/tome/Spell.coffee | 4 ++-- .../level/tome/SpellListTabEntryView.coffee | 8 ++++++-- .../play/level/tome/SpellListView.coffee | 2 +- 7 files changed, 26 insertions(+), 16 deletions(-) diff --git a/app/locale/en.coffee b/app/locale/en.coffee index 103f368cb..072dc62ec 100644 --- a/app/locale/en.coffee +++ b/app/locale/en.coffee @@ -416,7 +416,9 @@ tome_cast_button_running: "Running" tome_cast_button_ran: "Ran" tome_submit_button: "Submit" - tome_select_spell: "Select a Spell" + tome_reload_method: "Reload original code for this method" # Title text for individual method reload button. + tome_select_method: "Select a Method" + tome_see_all_methods: "See all methods you can edit" # Title text for method list selector (shown when there are multiple programmable methdos). tome_select_a_thang: "Select Someone for " tome_available_spells: "Available Spells" tome_your_skills: "Your Skills" diff --git a/app/templates/play/level/tome/spell_list.jade b/app/templates/play/level/tome/spell_list.jade index 90d7f9e06..84b28511a 100644 --- a/app/templates/play/level/tome/spell_list.jade +++ b/app/templates/play/level/tome/spell_list.jade @@ -1 +1 @@ -h5(data-i18n="play_level.tome_select_spell") Select a Spell +h5(data-i18n="play_level.tome_select_method") Select a Method diff --git a/app/templates/play/level/tome/spell_list_tab_entry.jade b/app/templates/play/level/tome/spell_list_tab_entry.jade index 9e3ac0ce8..a2ec05b06 100644 --- a/app/templates/play/level/tome/spell_list_tab_entry.jade +++ b/app/templates/play/level/tome/spell_list_tab_entry.jade @@ -1,20 +1,23 @@ img(src="/images/level/code_editor_tab_background.png").spell-tab-image-hidden.hidden -.btn.btn-small.spell-list-button(title="See all spells you can edit") - i.icon-chevron-down +if includeSpellList + .btn.btn-small.spell-list-button(data-i18n="[title]play_level.tome_see_all_methods", title="See all methods you can edit") + i.icon-chevron-down .thang-avatar-placeholder code #{methodSignature} .spell-tool-buttons - .btn.btn-small.fullscreen-code(title=maximizeShortcutVerbose) - i.icon-fullscreen - i.icon-resize-small + if levelType !== 'hero' + .btn.btn-small.fullscreen-code(title=maximizeShortcutVerbose) + i.icon-fullscreen + i.icon-resize-small - .btn.btn-small.reload-code(title="Reload original code for " + spell.name) + .btn.btn-small.reload-code(data-i18n="[title]play_level.tome_reload_method", title="Reload original code for this method") i.icon-repeat - .btn.btn-small.beautify-code(title=beautifyShortcutVerbose) - i.icon-magnet + if codeLanguage === 'javascript' + .btn.btn-small.beautify-code(title=beautifyShortcutVerbose) + i.icon-magnet .clearfix \ No newline at end of file diff --git a/app/views/play/level/tome/CastButtonView.coffee b/app/views/play/level/tome/CastButtonView.coffee index e30bac173..650fb801f 100644 --- a/app/views/play/level/tome/CastButtonView.coffee +++ b/app/views/play/level/tome/CastButtonView.coffee @@ -104,7 +104,8 @@ module.exports = class CastButtonView extends CocoView else if castable s = $.i18n.t('play_level.tome_cast_button_run') s = $.i18n.t('play_level.tome_cast_button_casting') if s is 'Run' and me.get('preferredLanguage').split('-')[0] isnt 'en' # Temporary, if tome_cast_button_running isn't translated. - s += ' ' + @castShortcut + unless @options.levelID in ['dungeons-of-kithgard', 'gems-in-the-deep', 'shadow-guard', 'true-names'] # Hide for first few. + s += ' ' + @castShortcut else s = $.i18n.t('play_level.tome_cast_button_ran') s = $.i18n.t('play_level.tome_cast_button_casting') if s is 'Ran' and me.get('preferredLanguage').split('-')[0] isnt 'en' # Temporary, if tome_cast_button_running isn't translated. diff --git a/app/views/play/level/tome/Spell.coffee b/app/views/play/level/tome/Spell.coffee index be55f5c35..af5349f6e 100644 --- a/app/views/play/level/tome/Spell.coffee +++ b/app/views/play/level/tome/Spell.coffee @@ -43,7 +43,7 @@ module.exports = class Spell if @canRead() # We can avoid creating these views if we'll never use them. @view = new SpellView {spell: @, level: options.level, session: @session, worker: @worker} @view.render() # Get it ready and code loaded in advance - @tabView = new SpellListTabEntryView spell: @, supermodel: @supermodel, language: @language + @tabView = new SpellListTabEntryView spell: @, supermodel: @supermodel, codeLanguage: @language, level: options.level @tabView.render() @team = @permissions.readwrite[0] ? 'common' Backbone.Mediator.publish 'tome:spell-created', spell: @ @@ -56,7 +56,7 @@ module.exports = class Spell @worker = null setLanguage: (@language) -> - console.log 'setting language to', @language, 'so using original source', @languages[language] ? @languages.javascript + #console.log 'setting language to', @language, 'so using original source', @languages[language] ? @languages.javascript @originalSource = @languages[language] ? @languages.javascript addThang: (thang) -> diff --git a/app/views/play/level/tome/SpellListTabEntryView.coffee b/app/views/play/level/tome/SpellListTabEntryView.coffee index 86a6cec27..b27ed0792 100644 --- a/app/views/play/level/tome/SpellListTabEntryView.coffee +++ b/app/views/play/level/tome/SpellListTabEntryView.coffee @@ -33,6 +33,9 @@ module.exports = class SpellListTabEntryView extends SpellListEntryView shift = $.i18n.t 'keyboard_shortcuts.shift' context.beautifyShortcutVerbose = "#{ctrl}+#{shift}+B: #{$.i18n.t 'keyboard_shortcuts.beautify'}" context.maximizeShortcutVerbose = "#{ctrl}+#{shift}+M: #{$.i18n.t 'keyboard_shortcuts.maximize_editor'}" + context.includeSpellList = @options.includeSpellList + context.codeLanguage = @options.codeLanguage + context.levelType = @options.level.get 'type', true context afterRender: -> @@ -71,7 +74,7 @@ module.exports = class SpellListTabEntryView extends SpellListEntryView found = true break return unless found - docFormatter = new DocFormatter doc: doc, thang: @thang, language: @options.language, selectedMethod: true + docFormatter = new DocFormatter doc: doc, thang: @thang, language: @options.codeLanguage, selectedMethod: true @$el.find('code').popover( animation: true html: true @@ -122,11 +125,12 @@ module.exports = class SpellListTabEntryView extends SpellListEntryView onSpellChangedLanguage: (e) -> return unless e.spell is @spell - @options.language = e.language + @options.codeLanguage = e.language @$el.find('code').popover 'destroy' @render() @docsBuilt = false @buildDocs() if @thang + @updateReloadButton() toggleControls: (e, enabled) -> # Don't call super; do it differently diff --git a/app/views/play/level/tome/SpellListView.coffee b/app/views/play/level/tome/SpellListView.coffee index febdbce12..9bf6ece39 100644 --- a/app/views/play/level/tome/SpellListView.coffee +++ b/app/views/play/level/tome/SpellListView.coffee @@ -61,7 +61,7 @@ module.exports = class SpellListView extends CocoView theseThangs = _.keys(spell.thangs) changedThangs = not lastThangs or not _.isEqual theseThangs, lastThangs lastThangs = theseThangs - newEntries.push entry = new SpellListEntryView spell: spell, showTopDivider: changedThangs, supermodel: @supermodel + newEntries.push entry = new SpellListEntryView spell: spell, showTopDivider: changedThangs, supermodel: @supermodel, includeSpellList: @spells.length > 1 @entries.push entry for entry in newEntries @$el.append entry.el