[TYPO3-mvc] extjs itemselector and extbase: map a comma separated list of values to Tx_Extbase_Persistence_ObjectStorage
dennis ahrens
dennis.ahrens at googlemail.com
Thu Mar 11 09:31:30 CET 2010
Hi Dmitri,
i've integrated the extjs ItemSelector in mvc_extjs. I've patched the
js files to handle json objects instead of csv lists and have written
a set of ViewHelpers to generate extjs classes based on your domain
models. Have a look at:
the JS Files:
http://forge.typo3.org/repositories/browse/extension-mvc_extjs/branches/view/Resources/Public/JavaScript
and the ViewHelpers:
http://forge.typo3.org/repositories/browse/extension-mvc_extjs/branches/view/Classes/ViewHelpers/JsCode
To get a working ItemSelectorField in your extjs gui you may combine
the ItemSelectorViewHelper, MultiSelectViewHelper and
ArrayStoreViewHelper.
It should look like this in your template:
<ext:jsCode.itemSelectorField
domainModel="Fakultaet"
extensionName="FhhOrgaobjects"
fromMultiSelect="new FhhForschungsprojekte.Module.FakultaetFromMultiSelect"
toMultiSelect="new FhhForschungsprojekte.Module.FakultaetToMultiSelect"
minSelections="1">
<ext:jsCode.multiSelectField
domainModel="Fakultaet"
extensionName="FhhOrgaobjects"
name="FakultaetFromMultiSelect"
store="new FhhForschungsprojekte.Module.FakultaetMultiSelectFromStore"
displayField="name"
valueField="uid"
legend="Verfügbar">
<ext:jsCode.arrayStore
domainModel="Fakultaet"
name="FakultaetMultiSelectFromStore"
extensionName="FhhOrgaobjects"
data="FhhForschungsprojekte.Module.FakultaetArrayData">
<ext:jsCode.arrayStoreData
domainModel="Fakultaet"
extensionName="FhhOrgaobjects"
data="{fakultaeten}" />
</ext:jsCode.arrayStore>
</ext:jsCode.multiSelectField>
<ext:jsCode.multiSelectField
domainModel="Fakultaet"
extensionName="FhhOrgaobjects"
name="FakultaetToMultiSelect"
store="new FhhForschungsprojekte.Module.FakultaetMultiSelectToStore"
displayField="name"
valueField="uid"
legend="Ausgewählt">
<ext:jsCode.arrayStore
domainModel="Fakultaet"
name="FakultaetMultiSelectToStore"
extensionName="FhhOrgaobjects">
</ext:jsCode.arrayStore>
</ext:jsCode.multiSelectField>
</ext:jsCode.itemSelectorField>
Not really handy at first sight - i know. But if u have a closer look
the ViewHelpers are nothing more than extjs object configurations in
xml sytnax...
regards
Dennis
2010/3/11 Jochen Rau <jochen.rau at typoplanet.de>:
> Hi Dimitry,
>
> have a look at the OfferController and the according templates of
>
> http://forge.typo3.org/repositories/show/extension-sjr_offers
>
> how multivalues can be handeled.
>
> Regards
> Jochen
>
> On 11.03.10 08:51, Dmitri Pisarev wrote:
>>
>> As my first question gets no reply, I'll try to put it the other way
>> around:
>> May be it's best attach and remove subprojects to invoice one by one, as
>> a separate ajax calls, when user clicks on add and remove buttons of
>> itemSelector?
>> Here's the link to the sample of itemselector:
>> http://www.extjs.com/deploy/dev/examples/multiselect/multiselect-demo.html
>>
>> Didn't anyone ever integrate multiselect with extbase?
>>
>> Cheers,
>> Dmitri.
>>
>> On 09.03.2010 12:41, Dmitri Pisarev wrote:
>>>
>>> Hey guys! I'm trying to screw in the Ext's ItemSelector to my extbase
>>> plugin. It lets me select multiple items and then submits a
>>> comma-separated list of uid's. In my model I have a foreign key type of
>>> relationship between Invoice and Suproject, so I can add multiple
>>> subprojects to one invoice, and one subproject can belong to only one
>>> invoice.
>>> If I submit subprojects list as
>>> Tx_Alex_Domain_Model_Invoice_Subprojects, nothing happens, it just maps
>>> it to an empty
>>> Tx_Extbase_Persistence_ObjectStorage<Tx_Alex_Domain_Model_Subproject>.
>>> I can get that subprojects list as a string to the controller, manually
>>> explode it, then manually deal with it, but isn't it possible to do it
>>> automatically?
>>>
>>> Thanks in advance,
>>> Dmitri.
>>
>
> _______________________________________________
> TYPO3-project-typo3v4mvc mailing list
> TYPO3-project-typo3v4mvc at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-project-typo3v4mvc
>
More information about the TYPO3-project-typo3v4mvc
mailing list