diff --git a/.eslintrc b/.eslintrc index 19d38e35c7..71e21b4381 100644 --- a/.eslintrc +++ b/.eslintrc @@ -46,6 +46,7 @@ "expandSelectBox":true, "collapseSelectBox":true, "selectBoxSelectRow":true, + "selectBoxSelectNoneRow":true, "selectBoxFillInFilter":true, "asyncTestDiscourse":true, "fixture":true, diff --git a/Gemfile b/Gemfile index 302d22be4c..befe82d775 100644 --- a/Gemfile +++ b/Gemfile @@ -172,6 +172,8 @@ gem 'memory_profiler', require: false, platform: :mri gem 'cppjieba_rb', require: false +gem 'lograge', require: false +gem 'logstash-logger', require: false gem 'logster' gem 'sassc', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 64a3964df8..506f502ea2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -150,7 +150,15 @@ GEM rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) ruby_dep (~> 1.2) - logster (1.2.7) + lograge (0.7.1) + actionpack (>= 4, < 5.2) + activesupport (>= 4, < 5.2) + railties (>= 4, < 5.2) + request_store (~> 1.0) + logstash-event (1.2.02) + logstash-logger (0.25.1) + logstash-event (~> 1.2) + logster (1.2.8) loofah (2.1.1) crass (~> 1.0.2) nokogiri (>= 1.5.9) @@ -233,7 +241,7 @@ GEM openid-redis-store (0.0.2) redis ruby-openid - parallel (1.11.2) + parallel (1.12.0) parser (2.4.0.0) ast (~> 2.2) pg (0.20.0) @@ -290,6 +298,7 @@ GEM redis (3.3.5) redis-namespace (1.5.3) redis (~> 3.0, >= 3.0.4) + request_store (1.3.2) rinku (2.0.2) rspec (3.6.0) rspec-core (~> 3.6.0) @@ -316,11 +325,11 @@ GEM rspec-support (~> 3.6.0) rspec-support (3.6.0) rtlit (0.0.5) - rubocop (0.49.1) + rubocop (0.51.0) parallel (~> 1.10) parser (>= 2.3.3.1, < 3.0) powerpack (~> 0.1) - rainbow (>= 1.99.1, < 3.0) + rainbow (>= 2.2.2, < 3.0) ruby-progressbar (~> 1.7) unicode-display_width (~> 1.0, >= 1.0.1) ruby-ll (2.1.2) @@ -328,7 +337,7 @@ GEM ast ruby-openid (2.7.0) ruby-prof (0.16.2) - ruby-progressbar (1.8.1) + ruby-progressbar (1.9.0) ruby-readability (0.7.0) guess_html_encoding (>= 0.0.4) nokogiri (>= 1.6.0) @@ -431,6 +440,8 @@ DEPENDENCIES htmlentities http_accept_language (~> 2.0.5) listen + lograge + logstash-logger logster lru_redux mail diff --git a/app/assets/javascripts/admin/components/ace-editor.js.es6 b/app/assets/javascripts/admin/components/ace-editor.js.es6 index 749ce2492d..faad36798a 100644 --- a/app/assets/javascripts/admin/components/ace-editor.js.es6 +++ b/app/assets/javascripts/admin/components/ace-editor.js.es6 @@ -1,13 +1,14 @@ import loadScript from 'discourse/lib/load-script'; import { observes } from 'ember-addons/ember-computed-decorators'; -const LOAD_ASYNC = !Ember.Test; +const LOAD_ASYNC = !Ember.testing; export default Ember.Component.extend({ mode: 'css', classNames: ['ace-wrapper'], _editor: null, _skipContentChangeEvent: null, + disabled: false, @observes('editorId') editorIdChanged() { @@ -30,6 +31,24 @@ export default Ember.Component.extend({ } }, + @observes('disabled') + disabledStateChanged() { + this.changeDisabledState(); + }, + + changeDisabledState() { + const editor = this._editor; + if (editor) { + const disabled = this.get('disabled'); + editor.setOptions({ + readOnly: disabled, + highlightActiveLine: !disabled, + highlightGutterLine: !disabled + }); + editor.container.parentNode.setAttribute("data-disabled", disabled); + } + }, + _destroyEditor: function() { if (this._editor) { this._editor.destroy(); @@ -76,6 +95,7 @@ export default Ember.Component.extend({ this.$().data('editor', editor); this._editor = editor; + this.changeDisabledState(); $(window).off('ace:resize').on('ace:resize', ()=>{ this.appEvents.trigger('ace:resize'); diff --git a/app/assets/javascripts/admin/components/flag-counts.js.es6 b/app/assets/javascripts/admin/components/flag-counts.js.es6 deleted file mode 100644 index 040207e695..0000000000 --- a/app/assets/javascripts/admin/components/flag-counts.js.es6 +++ /dev/null @@ -1,10 +0,0 @@ -import computed from 'ember-addons/ember-computed-decorators'; - -export default Ember.Component.extend({ - classNames: ['flag-counts'], - - @computed('details.flag_type_id') - title(id) { - return I18n.t(`admin.flags.summary.action_type_${id}`, { count: 1 }); - } -}); diff --git a/app/assets/javascripts/admin/components/list-setting.js.es6 b/app/assets/javascripts/admin/components/list-setting.js.es6 index da6c5173d6..9a1d865133 100644 --- a/app/assets/javascripts/admin/components/list-setting.js.es6 +++ b/app/assets/javascripts/admin/components/list-setting.js.es6 @@ -50,5 +50,3 @@ export default Ember.Component.extend({ }); } }); - - diff --git a/app/assets/javascripts/admin/helpers/post-action-title.js.es6 b/app/assets/javascripts/admin/helpers/post-action-title.js.es6 new file mode 100644 index 0000000000..ced180d8bb --- /dev/null +++ b/app/assets/javascripts/admin/helpers/post-action-title.js.es6 @@ -0,0 +1,12 @@ +function postActionTitle([id, nameKey]) { + let title = I18n.t(`admin.flags.short_names.${nameKey}`, { defaultValue: null }); + + // TODO: We can remove this once other translations have been updated + if (!title) { + return I18n.t(`admin.flags.summary.action_type_${id}`, { count: 1 }); + } + + return title; +} + +export default Ember.Helper.helper(postActionTitle); diff --git a/app/assets/javascripts/admin/routes/admin-flags-index.js.es6 b/app/assets/javascripts/admin/routes/admin-flags-index.js.es6 index ae4a2e089d..32b70b9d30 100644 --- a/app/assets/javascripts/admin/routes/admin-flags-index.js.es6 +++ b/app/assets/javascripts/admin/routes/admin-flags-index.js.es6 @@ -1,5 +1,6 @@ export default Discourse.Route.extend({ redirect() { - this.replaceWith('adminFlags.postsActive'); + let segment = this.siteSettings.flags_default_topics ? 'topics' : 'postsActive'; + this.replaceWith(`adminFlags.${segment}`); } }); diff --git a/app/assets/javascripts/admin/templates/badges-show.hbs b/app/assets/javascripts/admin/templates/badges-show.hbs index e40e6bfec0..877b9a8e8e 100644 --- a/app/assets/javascripts/admin/templates/badges-show.hbs +++ b/app/assets/javascripts/admin/templates/badges-show.hbs @@ -26,9 +26,7 @@ {{combo-box name="badge_type_id" value=buffered.badge_type_id content=badgeTypes - optionValuePath="content.id" - optionLabelPath="content.name" - disabled=readOnly}} + isDisabled=readOnly}}
@@ -36,8 +34,7 @@ {{combo-box name="badge_grouping_id" value=buffered.badge_grouping_id content=badgeGroupings - optionValuePath="content.id" - optionLabelPath="content.displayName"}} + nameProperty="name"}}  
@@ -63,7 +60,7 @@ {{#if siteSettings.enable_badge_sql}}
- {{textarea name="query" value=buffered.query disabled=readOnly}} + {{ace-editor content=buffered.query mode="sql" disabled=readOnly}}
{{#if hasQuery}} diff --git a/app/assets/javascripts/admin/templates/components/admin-user-field-item.hbs b/app/assets/javascripts/admin/templates/components/admin-user-field-item.hbs index c5620d84ed..419ef0b69c 100644 --- a/app/assets/javascripts/admin/templates/components/admin-user-field-item.hbs +++ b/app/assets/javascripts/admin/templates/components/admin-user-field-item.hbs @@ -1,6 +1,6 @@ {{#if editing}} {{#admin-form-row label="admin.user_fields.type"}} - {{combo-box content=fieldTypes valueAttribute="id" value=buffered.field_type}} + {{combo-box content=fieldTypes value=buffered.field_type}} {{/admin-form-row}} {{#admin-form-row label="admin.user_fields.name"}} diff --git a/app/assets/javascripts/admin/templates/components/embeddable-host.hbs b/app/assets/javascripts/admin/templates/components/embeddable-host.hbs index 88317ecd18..e21685831b 100644 --- a/app/assets/javascripts/admin/templates/components/embeddable-host.hbs +++ b/app/assets/javascripts/admin/templates/components/embeddable-host.hbs @@ -9,7 +9,7 @@ {{input value=buffered.path_whitelist placeholder="/blog/.*" enter="save" class="path-whitelist"}} - {{category-select-box value=categoryId class="small"}} + {{category-chooser value=categoryId class="small"}} {{d-button icon="check" action="save" class="btn-primary" disabled=cantSave}} diff --git a/app/assets/javascripts/admin/templates/components/flag-counts.hbs b/app/assets/javascripts/admin/templates/components/flag-counts.hbs index ff1f011825..e69de29bb2 100644 --- a/app/assets/javascripts/admin/templates/components/flag-counts.hbs +++ b/app/assets/javascripts/admin/templates/components/flag-counts.hbs @@ -1,2 +0,0 @@ -{{title}} -x{{details.count}} diff --git a/app/assets/javascripts/admin/templates/components/flagged-post.hbs b/app/assets/javascripts/admin/templates/components/flagged-post.hbs index 98ac4bf5e0..4a832771a8 100644 --- a/app/assets/javascripts/admin/templates/components/flagged-post.hbs +++ b/app/assets/javascripts/admin/templates/components/flagged-post.hbs @@ -73,7 +73,7 @@ {{#each flaggedPost.post_actions as |postAction|}} {{#flag-user user=postAction.user date=postAction.created_at}}
- {{i18n (concat "admin.flags.summary.action_type_" postAction.post_action_type_id) count=1}} + {{post-action-title postAction.post_action_type_id postAction.name_key}}
{{/flag-user}} {{/each}} diff --git a/app/assets/javascripts/admin/templates/customize-themes-show.hbs b/app/assets/javascripts/admin/templates/customize-themes-show.hbs index 6b02429d77..6f8ac614aa 100644 --- a/app/assets/javascripts/admin/templates/customize-themes-show.hbs +++ b/app/assets/javascripts/admin/templates/customize-themes-show.hbs @@ -36,8 +36,7 @@

{{i18n "admin.customize.theme.color_scheme"}}

{{i18n "admin.customize.theme.color_scheme_select"}}

-

{{select-box content=colorSchemes - textKey="name" +

{{combo-box content=colorSchemes filterable=true value=colorSchemeId icon="paint-brush"}} @@ -123,11 +122,8 @@ {{/unless}} {{#if selectableChildThemes}} -

{{combo-box content=selectableChildThemes - nameProperty="name" - value=selectedChildThemeId - valueAttribute="id"}} - +

+ {{combo-box content=selectableChildThemes value=selectedChildThemeId}} {{#d-button action="addChildTheme" icon="plus"}}{{i18n "admin.customize.theme.add"}}{{/d-button}}

{{/if}} diff --git a/app/assets/javascripts/admin/templates/flags-topics-index.hbs b/app/assets/javascripts/admin/templates/flags-topics-index.hbs index 61ef340129..d9fdf87066 100644 --- a/app/assets/javascripts/admin/templates/flags-topics-index.hbs +++ b/app/assets/javascripts/admin/templates/flags-topics-index.hbs @@ -19,7 +19,10 @@ {{#each ft.flag_counts as |fc|}} - {{flag-counts details=fc}} +
+ {{post-action-title fc.post_action_type_id fc.name_key}} + x{{fc.count}} +
{{/each}} diff --git a/app/assets/javascripts/admin/templates/flags.hbs b/app/assets/javascripts/admin/templates/flags.hbs index e24c12d8ec..d13ad994bc 100644 --- a/app/assets/javascripts/admin/templates/flags.hbs +++ b/app/assets/javascripts/admin/templates/flags.hbs @@ -1,6 +1,12 @@ {{#admin-nav}} - {{nav-item route='adminFlags.postsActive' label='admin.flags.active_posts'}} - {{nav-item route='adminFlags.topics' label='admin.flags.topics'}} + {{#if siteSettings.flags_default_topics}} + {{nav-item route='adminFlags.topics' label='admin.flags.topics'}} + {{nav-item route='adminFlags.postsActive' label='admin.flags.active_posts'}} + {{else}} + {{nav-item route='adminFlags.postsActive' label='admin.flags.active_posts'}} + {{nav-item route='adminFlags.topics' label='admin.flags.topics'}} + {{/if}} + {{nav-item route='adminFlags.postsOld' label='admin.flags.old_posts' class='right'}} {{/admin-nav}} diff --git a/app/assets/javascripts/admin/templates/groups-bulk.hbs b/app/assets/javascripts/admin/templates/groups-bulk.hbs index baf3a63cda..337ab37cb3 100644 --- a/app/assets/javascripts/admin/templates/groups-bulk.hbs +++ b/app/assets/javascripts/admin/templates/groups-bulk.hbs @@ -6,7 +6,7 @@
- {{combo-box content=groups valueAttribute="id" value=groupId none="admin.groups.bulk_select"}} + {{combo-box filterable=true content=groups value=groupId none="admin.groups.bulk_select"}}
diff --git a/app/assets/javascripts/admin/templates/logs/staff-action-logs.hbs b/app/assets/javascripts/admin/templates/logs/staff-action-logs.hbs index 50f02f9f5b..c44edc1a3e 100644 --- a/app/assets/javascripts/admin/templates/logs/staff-action-logs.hbs +++ b/app/assets/javascripts/admin/templates/logs/staff-action-logs.hbs @@ -30,7 +30,7 @@ {{/if}}
{{else}} - {{i18n "admin.logs.staff_actions.filter"}} {{combo-box content=userHistoryActions nameProperty="name" value=filterActionId none="admin.logs.staff_actions.all"}} + {{i18n "admin.logs.staff_actions.filter"}} {{combo-box content=userHistoryActions value=filterActionId none="admin.logs.staff_actions.all"}} {{/if}}
diff --git a/app/assets/javascripts/admin/templates/modal/admin-color-scheme-select-base.hbs b/app/assets/javascripts/admin/templates/modal/admin-color-scheme-select-base.hbs index d58a63c134..1316942634 100644 --- a/app/assets/javascripts/admin/templates/modal/admin-color-scheme-select-base.hbs +++ b/app/assets/javascripts/admin/templates/modal/admin-color-scheme-select-base.hbs @@ -2,7 +2,6 @@ {{#d-modal-body title="admin.customize.colors.select_base.title"}} {{i18n "admin.customize.colors.select_base.description"}} {{combo-box content=model - nameProperty="name" value=selectedBaseThemeId valueAttribute="base_scheme_id"}} {{/d-modal-body}} diff --git a/app/assets/javascripts/admin/templates/modal/admin-suspend-user.hbs b/app/assets/javascripts/admin/templates/modal/admin-suspend-user.hbs index cfbd21d4b9..a701cf5045 100644 --- a/app/assets/javascripts/admin/templates/modal/admin-suspend-user.hbs +++ b/app/assets/javascripts/admin/templates/modal/admin-suspend-user.hbs @@ -7,7 +7,7 @@ {{future-date-input class="suspend-until" label="admin.user.suspend_duration" - includeForever=true + includeFarFuture=true input=suspendUntil}}
diff --git a/app/assets/javascripts/admin/templates/reports.hbs b/app/assets/javascripts/admin/templates/reports.hbs index 57acba8f50..3927d1e384 100644 --- a/app/assets/javascripts/admin/templates/reports.hbs +++ b/app/assets/javascripts/admin/templates/reports.hbs @@ -4,10 +4,10 @@ {{i18n 'admin.dashboard.reports.start_date'}} {{date-picker-past value=startDate defaultDate=startDate}} {{i18n 'admin.dashboard.reports.end_date'}} {{date-picker-past value=endDate defaultDate=endDate}} {{#if showCategoryOptions}} - {{combo-box valueAttribute="value" content=categoryOptions value=categoryId}} + {{combo-box filterable=true valueAttribute="value" content=categoryOptions value=categoryId}} {{/if}} {{#if showGroupOptions}} - {{combo-box valueAttribute="value" content=groupOptions value=groupId}} + {{combo-box filterable=true valueAttribute="value" content=groupOptions value=groupId}} {{/if}} {{d-button action="refreshReport" class="btn-primary" label="admin.dashboard.reports.refresh_report" icon="refresh"}} {{d-button action="exportCsv" label="admin.export_csv.button_text" icon="download"}} diff --git a/app/assets/javascripts/admin/templates/user-badges.hbs b/app/assets/javascripts/admin/templates/user-badges.hbs index 9977aca39d..1f6bae617c 100644 --- a/app/assets/javascripts/admin/templates/user-badges.hbs +++ b/app/assets/javascripts/admin/templates/user-badges.hbs @@ -16,7 +16,7 @@
- {{combo-box valueAttribute="id" value=selectedBadgeId content=grantableBadges nameProperty="name"}} + {{combo-box filterable=true value=selectedBadgeId content=grantableBadges}}