Backbone v1 for Backwater games
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
//- @pugdoc
|
||||
name: select
|
||||
description: A mixin to create a select element. Uses K-scaffold global variables to control how {@link option} mixins within the select's block behave.
|
||||
arguments:
|
||||
- {object} inputObj - The object describing the select
|
||||
- {block} block - The content within the select
|
||||
attributes:
|
||||
example: |
|
||||
include _htmlelements.pug
|
||||
+select({name:'my select'})
|
||||
+option({value:'a value','data-i18n':'a translation key',trigger:{affects:['some_attribute']}})
|
||||
+option({value:'value 2','data-i18n':'translation 2'})
|
||||
+option({value:'value 3'})
|
||||
|Some Text we include via the option's block
|
||||
mixin select(obj)
|
||||
- checkKUse();
|
||||
-
|
||||
obj.class = obj.class ?
|
||||
replaceProblems(obj.class) :
|
||||
undefined;
|
||||
- obj.name = attrName(obj.name);
|
||||
- obj.title = obj.title || attrTitle(obj.name);
|
||||
- obj.name = `attr_${obj.name}`;
|
||||
- addFieldToFieldsetObj(obj);
|
||||
|
||||
//- Initialize the object that will be passed to the cascade
|
||||
- const triggerObj = {...obj,type:'select'};
|
||||
- const options = [];
|
||||
|
||||
mixin option(optObj)
|
||||
-
|
||||
obj.class = obj.class ?
|
||||
replaceProblems(obj.class) :
|
||||
undefined;
|
||||
-
|
||||
const pushObj = {
|
||||
obj:optObj,
|
||||
attributes: attributes || {}
|
||||
};
|
||||
if block
|
||||
- pushObj.block = block;
|
||||
- options.push(pushObj);
|
||||
|
||||
|
||||
if !block
|
||||
option(value='!!! Error: empty select !!!')
|
||||
else
|
||||
- block();
|
||||
- const selObj = makeElementObj(obj);
|
||||
select&attributes(selObj)&attributes(attributes)
|
||||
each o in options
|
||||
if o.hasOwnProperty('selected') && o.hasOwnProperty('value')
|
||||
- triggerObj.value = o.value;
|
||||
if o.trigger && !triggerObj.trigger
|
||||
- triggerObj.trigger = o.trigger;
|
||||
- const elemObj = makeElementObj(o.obj);
|
||||
option&attributes(elemObj)&attributes(o.attributes)
|
||||
- storeTrigger(triggerObj);
|
||||
|
||||
//- mixin select(obj)
|
||||
//- select&attributes(obj)
|
||||
//- if block
|
||||
//- block
|
||||
//- else
|
||||
//- +option({value:'empty select, PEBKAC',selected:true})
|
||||
//-End Mixin
|
||||
Reference in New Issue
Block a user