Chore: Feature Flags for Channels (#1010)
This commit is contained in:
parent
b633126b35
commit
e41bd56f41
7 changed files with 42 additions and 5 deletions
|
@ -40,10 +40,23 @@ export default {
|
|||
type: String,
|
||||
required: true,
|
||||
},
|
||||
enabledFeatures: {
|
||||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
isActive(channel) {
|
||||
return ['facebook', 'website', 'twitter', 'twilio'].includes(channel);
|
||||
if (Object.keys(this.enabledFeatures) === 0) {
|
||||
return false;
|
||||
}
|
||||
if (channel === 'facebook') {
|
||||
return this.enabledFeatures.channel_facebook;
|
||||
}
|
||||
if (channel === 'twitter') {
|
||||
return this.enabledFeatures.channel_facebook;
|
||||
}
|
||||
return ['website', 'twilio'].includes(channel);
|
||||
},
|
||||
onItemClick() {
|
||||
if (this.isActive(this.channel)) {
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
v-for="channel in channelList"
|
||||
:key="channel"
|
||||
:channel="channel"
|
||||
:enabled-features="enabledFeatures"
|
||||
@channel-item-click="initChannelAuth"
|
||||
/>
|
||||
</div>
|
||||
|
@ -19,6 +20,7 @@
|
|||
import ChannelItem from 'dashboard/components/widgets/ChannelItem';
|
||||
import router from '../../../index';
|
||||
import PageHeader from '../SettingsSubPageHeader';
|
||||
import { mapGetters } from 'vuex';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
|
@ -35,9 +37,25 @@ export default {
|
|||
'telegram',
|
||||
'line',
|
||||
],
|
||||
enabledFeatures: {},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
account() {
|
||||
return this.$store.getters['accounts/getAccount'](this.accountId);
|
||||
},
|
||||
...mapGetters({
|
||||
accountId: 'getCurrentAccountId',
|
||||
}),
|
||||
},
|
||||
mounted() {
|
||||
this.initializeEnabledFeatures();
|
||||
},
|
||||
methods: {
|
||||
async initializeEnabledFeatures() {
|
||||
await this.$store.dispatch('accounts/get', this.accountId);
|
||||
this.enabledFeatures = this.account.features;
|
||||
},
|
||||
initChannelAuth(channel) {
|
||||
const params = {
|
||||
page: 'new',
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# Table name: users
|
||||
#
|
||||
# id :integer not null, primary key
|
||||
# availability :integer default(0)
|
||||
# availability :integer default("online")
|
||||
# confirmation_sent_at :datetime
|
||||
# confirmation_token :string
|
||||
# confirmed_at :datetime
|
||||
|
|
|
@ -4,4 +4,4 @@ json.locale @account.locale
|
|||
json.domain @account.domain
|
||||
json.domain_emails_enabled @account.domain_emails_enabled
|
||||
json.support_email @account.support_email
|
||||
json.features @account.enabled_features
|
||||
json.features @account.all_features
|
||||
|
|
|
@ -5,4 +5,5 @@
|
|||
enabled: false
|
||||
- name: channel_facebook
|
||||
enabled: true
|
||||
|
||||
- name: channel_twitter
|
||||
enabled: true
|
||||
|
|
5
db/migrate/20200704173104_add_twitter_feature_flag.rb
Normal file
5
db/migrate/20200704173104_add_twitter_feature_flag.rb
Normal file
|
@ -0,0 +1,5 @@
|
|||
class AddTwitterFeatureFlag < ActiveRecord::Migration[6.0]
|
||||
def change
|
||||
ConfigLoader.new.process
|
||||
end
|
||||
end
|
|
@ -10,7 +10,7 @@
|
|||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 2020_06_29_122646) do
|
||||
ActiveRecord::Schema.define(version: 2020_07_04_173104) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "pg_stat_statements"
|
||||
|
|
Loading…
Reference in a new issue