0
0
Fork 1
Spiegel von https://github.com/paviliondev/discourse-custom-wizard.git synchronisiert 2024-11-26 11:00:28 +01:00

Merge pull request #28 from paviliondev/select_kit_2

Update to select-kit-2
Dieser Commit ist enthalten in:
Angus McLeod 2020-02-05 19:13:22 +11:00 committet von GitHub
Commit dd898a9921
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 4AEE18F83AFDEB23
17 geänderte Dateien mit 127 neuen und 87 gelöschten Zeilen

Datei anzeigen

@ -1,4 +1,5 @@
import { default as computed, observes, on } from 'ember-addons/ember-computed-decorators';
import { generateSelectKitContent } from '../lib/custom-wizard';
export default Ember.Component.extend({
classNames: 'wizard-custom-field',
@ -6,11 +7,11 @@ export default Ember.Component.extend({
isUpload: Ember.computed.equal('field.type', 'upload'),
isCategory: Ember.computed.equal('field.type', 'category'),
disableId: Ember.computed.not('field.isNew'),
choicesTypes: ['translation', 'preset', 'custom'],
choicesTypes: generateSelectKitContent(['translation', 'preset', 'custom']),
choicesTranslation: Ember.computed.equal('field.choices_type', 'translation'),
choicesPreset: Ember.computed.equal('field.choices_type', 'preset'),
choicesCustom: Ember.computed.equal('field.choices_type', 'custom'),
categoryPropertyTypes: ['id', 'slug'],
categoryPropertyTypes: generateSelectKitContent(['id', 'slug']),
@computed('field.type')
isInput: (type) => type === 'text' || type === 'textarea',

Datei anzeigen

@ -2,17 +2,18 @@ import { ajax } from 'discourse/lib/ajax';
import { popupAjaxError } from 'discourse/lib/ajax-error';
import CustomWizardApi from '../models/custom-wizard-api';
import { default as computed } from 'ember-addons/ember-computed-decorators';
import { generateSelectKitContent } from '../lib/custom-wizard';
export default Ember.Controller.extend({
queryParams: ['refresh_list'],
loadingSubscriptions: false,
notAuthorized: Ember.computed.not('api.authorized'),
endpointMethods: ['GET', 'PUT', 'POST', 'PATCH', 'DELETE'],
endpointMethods: generateSelectKitContent(['GET', 'PUT', 'POST', 'PATCH', 'DELETE']),
showRemove: Ember.computed.not('isNew'),
showRedirectUri: Ember.computed.and('threeLeggedOauth', 'api.name'),
responseIcon: null,
contentTypes: ['application/json', 'application/x-www-form-urlencoded'],
successCodes: [100, 101, 102, 200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 303, 304, 305, 306, 307, 308],
contentTypes: generateSelectKitContent(['application/json', 'application/x-www-form-urlencoded']),
successCodes: generateSelectKitContent([100, 101, 102, 200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 303, 304, 305, 306, 307, 308]),
@computed('saveDisabled', 'api.authType', 'api.authUrl', 'api.tokenUrl', 'api.clientId', 'api.clientSecret', 'threeLeggedOauth')
authDisabled(saveDisabled, authType, authUrl, tokenUrl, clientId, clientSecret, threeLeggedOauth) {
@ -26,7 +27,7 @@ export default Ember.Controller.extend({
return !name || !authType;
},
authorizationTypes: ['none', 'basic', 'oauth_2', 'oauth_3'],
authorizationTypes: generateSelectKitContent(['none', 'basic', 'oauth_2', 'oauth_3']),
isBasicAuth: Ember.computed.equal('api.authType', 'basic'),
@computed('api.authType')

Datei anzeigen

@ -0,0 +1,5 @@
function generateSelectKitContent(content) {
return content.map(i => ({id: i, name: i}))
}
export { generateSelectKitContent };

Datei anzeigen

@ -1,5 +1,6 @@
import CustomWizard from '../models/custom-wizard';
import { ajax } from 'discourse/lib/ajax';
import { generateSelectKitContent } from '../lib/custom-wizard';
export default Discourse.Route.extend({
beforeModel() {
@ -40,7 +41,12 @@ export default Discourse.Route.extend({
_getFieldTypes(model) {
return ajax('/admin/wizards/field-types')
.then((result) => model.set('fieldTypes', result.types));
.then((result) => {
model.set(
'fieldTypes',
generateSelectKitContent([...result.types])
)
});
},
_getThemes(model) {

Datei anzeigen

@ -107,7 +107,11 @@
<h3>{{i18n 'admin.wizard.theme_id'}}</h3>
</div>
<div class="setting-value">
{{combo-box content=model.themes valueAttribute='id' value=model.theme_id none='admin.wizard.no_theme'}}
{{combo-box
content=model.themes
valueProperty='id'
value=model.theme_id
none='admin.wizard.no_theme'}}
</div>
</div>

Datei anzeigen

@ -89,7 +89,10 @@
<div class="control-group auth-type">
<label>{{i18n 'admin.wizard.api.auth.type'}}</label>
<div class="controls">
{{combo-box value=api.authType content=authorizationTypes none='admin.wizard.api.auth.type_none'}}
{{combo-box
value=api.authType
content=authorizationTypes
none='admin.wizard.api.auth.type_none'}}
</div>
</div>
@ -240,13 +243,16 @@
class='remove-endpoint'}}
</div>
<div class="bottom">
{{combo-box content=endpointMethods
{{combo-box
content=endpointMethods
value=endpoint.method
none="admin.wizard.api.endpoint.method"}}
{{combo-box content=contentTypes
{{combo-box
content=contentTypes
value=endpoint.content_type
none="admin.wizard.api.endpoint.content_type"}}
{{multi-select content=successCodes
{{multi-select
content=successCodes
values=endpoint.success_codes
none="admin.wizard.api.endpoint.success_codes"}}
</div>

Datei anzeigen

@ -12,7 +12,10 @@
<h3>{{i18n "admin.wizard.type"}}</h3>
</div>
<div class="setting-value">
{{combo-box value=action.type content=types none="admin.wizard.field.type"}}
{{combo-box
value=action.type
content=types
none="admin.wizard.field.type"}}
</div>
</div>
@ -22,11 +25,12 @@
<h3>{{i18n "admin.wizard.action.title"}}</h3>
</div>
<div class="setting-value">
{{combo-box value=action.title
{{combo-box
value=action.title
content=availableFields
nameProperty="label"
none='admin.wizard.select_field'
isDisabled=action.custom_title_enabled}}
isDisabled=action.custom_title_enabled
none='admin.wizard.select_field'}}
<div class="setting-gutter">
{{input type='checkbox' checked=action.custom_title_enabled}}
<span>{{i18n 'admin.wizard.action.custom_title'}}</span>
@ -42,10 +46,12 @@
<h3>{{i18n "admin.wizard.action.post"}}</h3>
</div>
<div class="setting-value">
{{combo-box value=action.post content=availableFields
{{combo-box
value=action.post
content=availableFields
nameProperty='label'
none='admin.wizard.select_field'
isDisabled=action.post_builder}}
isDisabled=action.post_builder
none='admin.wizard.select_field'}}
<div class="setting-gutter">
{{input type='checkbox' checked=action.post_builder}}
<span>{{i18n 'admin.wizard.action.post_builder.checkbox'}}</span>
@ -77,7 +83,9 @@
<h3>{{i18n "admin.wizard.action.create_topic.category"}}</h3>
</div>
<div class="setting-value">
{{category-chooser value=action.category_id isDisabled=action.custom_category_enabled}}
{{category-chooser
value=action.category_id
isDisabled=action.custom_category_enabled}}
<div class="setting-gutter">
{{input type='checkbox' checked=action.custom_category_enabled}}
<span>{{i18n 'admin.wizard.action.custom_category.label'}}</span>
@ -87,7 +95,8 @@
{{input type='checkbox' checked=action.custom_category_wizard_field}}
<span>{{i18n 'admin.wizard.action.custom_category.wizard_field'}}</span>
{{#if action.custom_category_wizard_field}}
{{combo-box value=action.category_id
{{combo-box
value=action.category_id
content=categoryFields
nameProperty="label"
none='admin.wizard.select_field'}}
@ -111,7 +120,8 @@
<h3>{{i18n "admin.wizard.action.create_topic.tags"}}</h3>
</div>
<div class="setting-value">
{{tag-chooser tags=action.tags
{{tag-chooser
tags=action.tags
filterable=true
allowCreate=true
isDisabled=action.custom_tag_enabled}}
@ -120,7 +130,8 @@
<span>{{i18n 'admin.wizard.action.custom_tag.label'}}</span>
{{#if action.custom_tag_enabled}}
<div class="custom-tag">
{{combo-box value=action.custom_tag_field
{{combo-box
value=action.custom_tag_field
content=tagFields
nameProperty="label"
none='admin.wizard.select_field'}}
@ -160,10 +171,11 @@
<h3>{{i18n 'admin.wizard.required'}}</h3>
</div>
<div class="setting-value">
{{combo-box content=availableFields
{{combo-box
value=action.required
content=availableFields
nameProperty='label'
none='admin.wizard.select_field'
value=action.required}}
none='admin.wizard.select_field'}}
</div>
</div>
<div class="setting">
@ -204,10 +216,11 @@
<h3>{{i18n "admin.wizard.action.send_to_api.api"}}</h3>
</div>
<div class="setting-value">
{{combo-box value=action.api
{{combo-box
value=action.api
content=availableApis
none='admin.wizard.action.send_to_api.select_an_api'
isDisabled=action.custom_title_enabled}}
isDisabled=action.custom_title_enabled
none='admin.wizard.action.send_to_api.select_an_api'}}
</div>
</div>
@ -216,10 +229,11 @@
<h3>{{i18n "admin.wizard.action.send_to_api.endpoint"}}</h3>
</div>
<div class="setting-value">
{{combo-box value=action.api_endpoint
{{combo-box
value=action.api_endpoint
content=availableEndpoints
none='admin.wizard.action.send_to_api.select_an_endpoint'
isDisabled=apiEmpty}}
isDisabled=apiEmpty
none='admin.wizard.action.send_to_api.select_an_endpoint'}}
</div>
</div>
@ -242,11 +256,12 @@
<h3>{{i18n "admin.wizard.action.add_to_group.group_selection"}}</h3>
</div>
<div class="setting-value">
{{combo-box value=action.group_id
{{combo-box
value=action.group_id
content=availableFields
isDisabled=action.custom_group_enabled
nameProperty="label"
none='admin.wizard.select_field'
isDisabled=action.custom_group_enabled}}
none='admin.wizard.select_field'}}
<div class="setting-gutter">
{{input type='checkbox' checked=action.custom_group_enabled}}
<span>{{i18n 'admin.wizard.action.add_to_group.custom_group'}}</span>

Datei anzeigen

@ -48,7 +48,10 @@
<h3>{{i18n 'admin.wizard.type'}}</h3>
</div>
<div class="setting-value">
{{combo-box value=field.type content=types none="admin.wizard.field.type"}}
{{combo-box
value=field.type
content=types
none="admin.wizard.field.type"}}
</div>
</div>
@ -79,7 +82,10 @@
{{i18n 'admin.wizard.field.choices_label'}}
</div>
{{combo-box value=field.choices_type content=choicesTypes none="admin.wizard.field.choices_type"}}
{{combo-box
value=field.choices_type
content=choicesTypes
none="admin.wizard.field.choices_type"}}
{{#if choicesTranslation}}
<div class="wizard-header small">
@ -92,7 +98,10 @@
<div class="wizard-header small">
{{i18n 'admin.wizard.field.choices_preset.label'}}
</div>
{{combo-box value=field.choices_preset content=presetChoices none='admin.wizard.none'}}
{{combo-box
value=field.choices_preset
content=presetChoices
none='admin.wizard.none'}}
<div class="wizard-header small">
{{i18n 'admin.wizard.field.choices_preset.filter'}}
</div>
@ -141,7 +150,9 @@
<h3>{{i18n 'admin.wizard.field.property'}}</h3>
</div>
<div class="setting-value">
{{combo-box content=categoryPropertyTypes value=field.property}}
{{combo-box
content=categoryPropertyTypes
value=field.property}}
</div>
</div>
{{/if}}

Datei anzeigen

@ -64,6 +64,9 @@
//= require discourse/helpers/category-link
//= require discourse/helpers/user-avatar
//= require discourse/helpers/format-username
//= require discourse/helpers/component-for-collection
//= require discourse/helpers/component-for-row
//= require discourse/helpers/discourse-tag
//= require discourse/services/app-events
//= require discourse/services/emoji-store
@ -97,6 +100,7 @@
//= require jquery.putcursoratend.js
//= require template_include.js
//= require caret_position.js
//= require popper.js
//= require ./wizard/custom-wizard
//= require_tree ./wizard/components

Datei anzeigen

@ -64,15 +64,6 @@ export default ComposerEditor.extend({
sendAction: this.showUploadModal
});
}
toolbar.addButton({
id: "options",
group: "extras",
icon: "cog",
title: "composer.options",
sendAction: this.onExpandPopupMenuOptions.bind(this),
popupMenu: true
});
}
}
})

Datei anzeigen

@ -31,14 +31,10 @@ export default Ember.Component.extend({
},
afterRefresh() {
},
storeToolbarState() {
},
cannotSeeMention() {
},
importQuote() {
},
onPopupMenuAction() {
},
showUploadSelector() {
}
}

Datei anzeigen

@ -12,8 +12,5 @@
loading=composer.loading
showLink=showLink
composerEvents=true
onExpandPopupMenuOptions=(action "onExpandPopupMenuOptions")
onPopupMenuAction=onPopupMenuAction
popupMenuOptions=popupMenuOptions
disabled=disableTextarea
outletArgs=(hash composer=composer editorType="composer")}}

Datei anzeigen

@ -16,10 +16,12 @@
{{toolbar-popup-menu-options
onPopupMenuAction=onPopupMenuAction
onExpand=(action b.action b)
title=b.title
headerIcon=b.icon
class=b.className
content=popupMenuOptions}}
content=popupMenuOptions
options=(hash
popupTitle=b.title
icon=b.icon
)}}
{{else}}
<div>{{d.icon}}</div>
<button class='wizard-btn {{b.className}}' {{action b.action b}} title="{{b.title}}">

Datei anzeigen

@ -1,2 +1,5 @@
{{category-selector categories=categories maximum=field.limit}}
{{category-selector
categories=categories
maximum=field.limit
onChange=(action (mut categories))}}

Datei anzeigen

@ -1,8 +1,5 @@
{{wizard-composer-editor replyPlaceholder=field.placeholder
composer=composer
storeToolbarState=(action "storeToolbarState")
onPopupMenuAction=(action "onPopupMenuAction")
showUploadModal=(action "showUploadSelector")
groupsMentioned=(action "groupsMentioned")
cannotSeeMention=(action "cannotSeeMention")
importQuote=(action "importQuote")

Datei anzeigen

@ -299,7 +299,7 @@ class CustomWizard::Builder
case template['choices_preset']
when 'categories'
objects = site.categories
objects = Set.new(Category.topic_create_allowed(guardian))
when 'groups'
objects = site.groups
when 'tags'

Datei anzeigen

@ -192,6 +192,7 @@ describe CustomWizard::Builder do
end
it 'returns a preset dropdown' do
SiteSetting.allow_uncategorized_topics = false
template['steps'][0]['fields'][0] = dropdown_categories_field
choices = build_wizard(template, user).steps[0].fields[0].choices
expect(choices.present?).to eq(true)