Spiegel von
https://github.com/paviliondev/discourse-custom-wizard.git
synchronisiert 2024-11-25 18:50:27 +01:00
various
Dieser Commit ist enthalten in:
Ursprung
539f61c610
Commit
a20c74a943
3 geänderte Dateien mit 22 neuen und 10 gelöschten Zeilen
|
@ -1,8 +1,9 @@
|
||||||
import { computed, set } from "@ember/object";
|
import { computed, set } from "@ember/object";
|
||||||
import { alias, equal, or, not } from "@ember/object/computed";
|
import { alias, equal, or, not } from "@ember/object/computed";
|
||||||
import { newPair, connectorContent, inputTypesContent } from '../lib/wizard-mapper';
|
import { newPair, connectorContent, inputTypesContent, defaultSelectionType, defaultConnector } from '../lib/wizard-mapper';
|
||||||
import Component from "@ember/component";
|
import Component from "@ember/component";
|
||||||
import { observes } from "discourse-common/utils/decorators";
|
import { observes } from "discourse-common/utils/decorators";
|
||||||
|
import { A } from "@ember/array";
|
||||||
|
|
||||||
export default Component.extend({
|
export default Component.extend({
|
||||||
classNameBindings: [':mapper-input', 'inputType'],
|
classNameBindings: [':mapper-input', 'inputType'],
|
||||||
|
@ -18,29 +19,36 @@ export default Component.extend({
|
||||||
inputTypes: computed(function() { return inputTypesContent(this.options) }),
|
inputTypes: computed(function() { return inputTypesContent(this.options) }),
|
||||||
|
|
||||||
@observes('input.type')
|
@observes('input.type')
|
||||||
setupPairs() {
|
setupType() {
|
||||||
if (this.hasPairs && (!this.input.pairs || this.input.pairs.length < 1)) {
|
if (this.hasPairs && (!this.input.pairs || this.input.pairs.length < 1)) {
|
||||||
this.send('addPair');
|
this.send('addPair');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.hasOutput && !this.input.outputConnector) {
|
||||||
|
const options = this.options;
|
||||||
|
this.set('input.output_type', defaultSelectionType('output', options));
|
||||||
|
this.set('input.output_connector', defaultConnector('output', this.inputType, options));
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
actions: {
|
actions: {
|
||||||
addPair() {
|
addPair() {
|
||||||
|
if (!this.input.pairs) {
|
||||||
|
this.set('input.pairs', A());
|
||||||
|
}
|
||||||
|
|
||||||
const pairs = this.input.pairs;
|
const pairs = this.input.pairs;
|
||||||
const pairCount = pairs.length + 1;
|
const pairCount = pairs.length + 1;
|
||||||
|
|
||||||
pairs.forEach(p => (set(p, 'pairCount', pairCount)));
|
pairs.forEach(p => (set(p, 'pairCount', pairCount)));
|
||||||
|
|
||||||
pairs.pushObject(
|
pairs.pushObject(
|
||||||
newPair(
|
newPair(
|
||||||
this.input.type,
|
this.input.type,
|
||||||
Object.assign(
|
Object.assign(
|
||||||
{},
|
{},
|
||||||
this.options,
|
this.options,
|
||||||
{
|
{ index: pairs.length, pairCount }
|
||||||
index: pairs.length,
|
|
||||||
pairCount,
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
|
@ -153,6 +153,7 @@ function newInput(options = {}, count) {
|
||||||
export {
|
export {
|
||||||
defaultInputType,
|
defaultInputType,
|
||||||
defaultSelectionType,
|
defaultSelectionType,
|
||||||
|
defaultConnector,
|
||||||
connectorContent,
|
connectorContent,
|
||||||
inputTypesContent,
|
inputTypesContent,
|
||||||
selectionTypes,
|
selectionTypes,
|
||||||
|
|
|
@ -55,9 +55,12 @@
|
||||||
|
|
||||||
a.remove-input {
|
a.remove-input {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: -14px;
|
right: -13px;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
padding: 2px 4px;
|
padding: 4px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
transform: translateY(-50%);
|
transform: translateY(-50%);
|
||||||
background: $secondary;
|
background: $secondary;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
|
|
Laden …
In neuem Issue referenzieren