[aida] Dropdown menus

Dirk Verleysen dirk at verleysen.net
Fri Oct 19 17:26:25 CEST 2007


Got it... it was a view problem. Bad initialization.

----- Original Message ----- 
From: "Dirk Verleysen" <dirk op verleysen.net>
To: "AIDA/Web general discussion list" <aida op aidaweb.si>
Sent: Friday, October 19, 2007 5:10 PM
Subject: Re: [aida] Dropdown menus


>I checked the acceptInputs and noticed that "request postDataStringAt:
> WebForm idFieldName" returns nil. I can make it work with the 
> onClickUpdate:
> but I would like to use normal actions most of the time. Any idea what I'm
> doing wrong ?
>
>
> ----- Original Message ----- 
> From: "Dirk Verleysen" <dirk.verleysen op roots.be>
> To: "AIDA/Web general discussion list" <aida op aidaweb.si>
> Sent: Monday, October 15, 2007 11:05 PM
> Subject: Re: [aida] Dropdown menus
>
>
>> This button was on a form that had the drop down's. I managed an
>> onClickUpdate: and got this working thru that but I had the impression
>> that there was no real submit. Apart from 4 menu's I had no other inputs.
>> I'll try to put a breakpoint in acceptInputs tomorrow and try to find out
>> what is happening.
>>
>> Another question is that I have a list that is updated after I click the
>> button. The page is generated but the first time shown without css 
>> layout.
>> I have to refresh to get the css working. Any idea what is happening ?
>>
>> Dirk
>>
>> -----Oorspronkelijk bericht-----
>> Van: aida-bounces op aidaweb.si [mailto:aida-bounces op aidaweb.si] Namens 
>> Janko
>> Mivšek
>> Verzonden: maandag 15 oktober 2007 22:38
>> Aan: AIDA/Web general discussion list
>> Onderwerp: Re: [aida] Dropdown menus
>>
>> Dirk,
>>
>> Dirk Verleysen wrote:
>>> Got this working and it's looking fine.
>>>
>>> Now I have a button but there is no responds. What the best place to put
>>> a
>>> breakpoint?
>>
>> A button does not submit a form? Does button at least cause page to be
>> reloaded? Do you have a proper action method for that view?
>>
>> To debug form submitting put a checkpoint on WebApplication acceptInputs.
>>
>> Janko
>>
>>>
>>> Dirk
>>> ----- Original Message ----- 
>>> From: "Janko Mivšek" <janko.mivsek op eranova.si>
>>> To: "AIDA/Web general discussion list" <aida op aidaweb.si>
>>> Sent: Monday, October 15, 2007 3:38 PM
>>> Subject: Re: [aida] Dropdown menus
>>>
>>>
>>>> Dirk,
>>>>
>>>> This should work if you have id39 element in its own method. editorLine
>>>> and editorLineLabel elements have a class set, not id, so they don't
>>>> interfere.
>>>>
>>>> To debug such a problem, you can put a breakpoint in WebApplication
>>>> #respondToAjaxRequest and step ahead to see, what is wrong.
>>>>
>>>> Janko
>>>>
>>>> Dirk Verleysen wrote:
>>>>> Not really...
>>>>>
>>>>> I have the following html right now.
>>>>>
>>>>> <div id="id39">
>>>>>       <div class="editorLine">
>>>>>        <div class="editorLineLabel">
>>>>>        Seizoen:
>>>>>        </div>
>>>>>       <select onChange="var field = Form.Element.serialize('id40'); 
>>>>> new
>>>>> Ajax.Updater('id39', '/calendarbook.html', {method: 'post', postBody:
>>>>> field
>>>>> + '&view=main&ajaxRequest&ajaxGetElementId=id39', evalScripts: true});
>>>>> "
>>>>> id="id40" name="field23"><option></option><option
>>>>> selected>2007-2008</option> </select>
>>>>>
>>>>>       </div>
>>>>>       <div class="editorLine">
>>>>>        <div class="editorLineLabel">
>>>>>        Serie:
>>>>>        </div>
>>>>>       <select onChange="var field = Form.Element.serialize('id41'); 
>>>>> new
>>>>> Ajax.Updater('id39', '/calendarbook.html', {method: 'post', postBody:
>>>>> field
>>>>> + '&view=main&ajaxRequest&ajaxGetElementId=id39', evalScripts: true});
>>>>> "
>>>>> id="id41"
>>>>> name="field24"><option></option><option>Duiveltjes -6</option>
>>>>> <option>Duiveltjes -8</option> <option selected>Duiveltjes -7</option>
>>>>> <option>Preminiemen -9</option> <option>Preminiemen -10</option>
>>>>> <option>Miniemen B</option> <option>1e Ploeg</option>
>>>>> <option>Reserves</option> <option>Scholieren</option> <option>Miniemen
>>>>> A</option> <option>Knapen</option> </select>
>>>>>
>>>>>       </div>
>>>>>       <div class="editorLine">
>>>>>        <div class="editorLineLabel">
>>>>>        Team:
>>>>>        </div>
>>>>>       <select onChange="var field = Form.Element.serialize('id42'); 
>>>>> new
>>>>> Ajax.Updater('id39', '/calendarbook.html', {method: 'post', postBody:
>>>>> field
>>>>> + '&view=main&ajaxRequest&ajaxGetElementId=id39', evalScripts: true});
>>>>> "
>>>>> id="id42"
>>>>> name="field25"><option></option><option>Duiveltjes -7</option>
>>>>> <option>Baardegem</option> <option>Hofstade A</option> 
>>>>> <option>Hofstade
>>>>> B</option> <option>Doggen</option> <option>Erembodegem</option>
>>>>> <option>Nieuwerkerken</option> <option>ST.Denderleeuw</option>
>>>>> <option>Terjoden-Welle B</option> <option>VB.Meldert</option>
>>>>> <option>VCE.Aalst</option> <option>Lebeke-Aalst</option>
>>>>> <option>Kerksken</option> <option>Mere</option> <option>Rangers
>>>>> Opdorp</option> <option>Terjoden-Welle A</option> </select>
>>>>>
>>>>>       </div>
>>>>>      </div>
>>>>>
>>>>> I guess the WebElement editorLine and editorLineLabel are interfering
>>>>> with
>>>>> the id39 for the update ?
>>>>>
>>>>> Dirk
>>>>>
>>>>>
>>>>> ----- Original Message ----- 
>>>>> From: "Janko Mivšek" <janko.mivsek op eranova.si>
>>>>> To: "AIDA/Web general discussion list" <aida op aidaweb.si>
>>>>> Sent: Monday, October 15, 2007 3:04 PM
>>>>> Subject: Re: [aida] Dropdown menus
>>>>>
>>>>>
>>>>>> Dirk Verleysen wrote:
>>>>>>> Ouch !!! Does this mean that I can't use styles for labels and other
>>>>>>> layouts
>>>>>>> between the different menu's ?
>>>>>> Why not? Put style also in a separate method and reuse it in many
>>>>>> other
>>>>>> elements, like:
>>>>>>
>>>>>> menuStyle
>>>>>>   ^'
>>>>>> font-size: 12px
>>>>>> '
>>>>>>
>>>>>> menusElement
>>>>>>   ..
>>>>>>   menu1 style: self menuStyle.
>>>>>>   ..
>>>>>>
>>>>>> Something like that. But even better would be of course to put CSS
>>>>>> styling into your WebStyle subclass and use menu class: #menuStyle
>>>>>> etc.
>>>>>>
>>>>>> Was that your question?
>>>>>>
>>>>>> Janko
>>>>>>
>>>>>>> ----- Original Message ----- 
>>>>>>> From: "Janko Mivšek" <janko.mivsek op eranova.si>
>>>>>>> To: "AIDA/Web general discussion list" <aida op aidaweb.si>
>>>>>>> Sent: Monday, October 15, 2007 2:09 PM
>>>>>>> Subject: Re: [aida] Dropdown menus
>>>>>>>
>>>>>>>
>>>>>>>> Dirk,
>>>>>>>>
>>>>>>>> Dirk Verleysen wrote:
>>>>>>>>
>>>>>>>>> I'm doing this and the updates to the domain are done but the
>>>>>>>>> WebElement
>>>>>>>>> that should be refreshed is simply removed. When I refresh the 
>>>>>>>>> page
>>>>>>>>> it's
>>>>>>>>> returned on the browser with the updated fields.
>>>>>>>> Be sure that an updatable element is in the separate method and not
>>>>>>>> simply one of the elements in a method. This method must also 
>>>>>>>> return
>>>>>>>> just that element.
>>>>>>>>
>>>>>>>> This is a rule for Ajax updatable elements - they must reside each
>>>>>>>> in
>>>>>>>> its own method.
>>>>>>>>
>>>>>>>> Best regards
>>>>>>>> Janko
>>>>>>>>
>>>>>>>>> ----- Original Message ----- 
>>>>>>>>> From: "Janko Mivšek" <janko.mivsek op eranova.si>
>>>>>>>>> To: "AIDA/Web general discussion list" <aida op aidaweb.si>
>>>>>>>>> Sent: Monday, October 15, 2007 11:35 AM
>>>>>>>>> Subject: Re: [aida] Dropdown menus (was: addMenuAspect:...)
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Dirk Verleysen wrote:
>>>>>>>>>>> Can I send an event after an item in the menu is selected ? I
>>>>>>>>>>> want
>>>>>>>>>>> 3
>>>>>>>>>>> menus
>>>>>>>>>>> on 1 form and the collection of the 2nd menu is dependent on the
>>>>>>>>>>> selection
>>>>>>>>>>> of the first menu. The collection of the 3th menu is created
>>>>>>>>>>> after
>>>>>>>>>>> you
>>>>>>>>>>> know
>>>>>>>>>>> what was selected in the 2nd menu.
>>>>>>>>>> This is very common pattern and very nicely solved with Ajax
>>>>>>>>>> updating
>>>>>>>>>> of
>>>>>>>>>> an element containing all three menus. For that you use
>>>>>>>>>> onChangePostAndUpdate: on your menus:
>>>>>>>>>>
>>>>>>>>>> menusElement
>>>>>>>>>>   | e |
>>>>>>>>>>   e := WebElement new.
>>>>>>>>>>
>>>>>>>>>>   menu1 := WebMenu aspect: ....
>>>>>>>>>>   menu1 onCangePostAndUpdate: e.
>>>>>>>>>>   e add: menu1; addBreak.
>>>>>>>>>>
>>>>>>>>>>   menu2 := WebMenu aspect: ....
>>>>>>>>>>   menu2 onCangePostAndUpdate: e.
>>>>>>>>>>   e add: menu2; addBreak.
>>>>>>>>>>
>>>>>>>>>>   menu3 := WebMenu aspect: ....
>>>>>>>>>>   e add: menu3.
>>>>>>>>>>   ^e
>>>>>>>>>>
>>>>>>>>>> Janko
>>>>>>>>>>
>>>>>>>>>>> ----- Original Message ----- 
>>>>>>>>>>> From: "Janko Mivšek" <janko.mivsek op eranova.si>
>>>>>>>>>>> To: "AIDA/Web general discussion list" <aida op aidaweb.si>
>>>>>>>>>>> Sent: Monday, October 15, 2007 10:58 AM
>>>>>>>>>>> Subject: Re: [aida] 
>>>>>>>>>>> addMenuAspect:collection:selectedToAspect:of:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> Hi Dirk,
>>>>>>>>>>>>
>>>>>>>>>>>> Dirk Verleysen wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Is there an example of this available ? I guess I can use this
>>>>>>>>>>>>> to
>>>>>>>>>>>>> create
>>>>>>>>>>>>> a kind of dropdownlist ?
>>>>>>>>>>>> In HTML it called menu
>>>>>>>>>>>> http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.6. In
>>>>>>>>>>>> Aida
>>>>>>>>>>>> there is a WebMenu and here s short example of usage:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> menu := WebMenu
>>>>>>>>>>>>   aspect: #name
>>>>>>>>>>>>   collection: self authors
>>>>>>>>>>>>   selectedToAspect: #author
>>>>>>>>>>>>   of: self.
>>>>>>>>>>>>
>>>>>>>>>>>> or with convenience method:
>>>>>>>>>>>>
>>>>>>>>>>>> anElement addMenuAspect:collection:selectedToAspect:of:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Here you select an author by name from self authors and save
>>>>>>>>>>>> selected
>>>>>>>>>>>> object (not a name string!) to aspect #author (this calls
>>>>>>>>>>>> accessor/mutator #author and #author: ) of self. Note that if
>>>>>>>>>>>> there
>>>>>>>>>>>> is
>>>>>>>>>>>> author selected from before, it will be preselected.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>> I use "anElement addMenuAspect: #name collection: self 
>>>>>>>>>>>>> observee
>>>>>>>>>>>>> seasonColl selectedToAspect: #season of: self observee." but 
>>>>>>>>>>>>> by
>>>>>>>>>>>>> the
>>>>>>>>>>>>> time
>>>>>>>>>>>>> my HTML is generated my aspectToStore has become #name and my
>>>>>>>>>>>>> objectToStore is nil.
>>>>>>>>>>>> And this you already solved by yourself.
>>>>>>>>>>>>
>>>>>>>>>>>> Best regards
>>>>>>>>>>>> Janko
>>
>> -- 
>> Janko Mivšek
>> AIDA/Web
>> Smalltalk Web Application Server
>> http://www.aidaweb.si
>> _______________________________________________
>> Aida mailing list
>> Aida op aidaweb.si
>> http://lists.aidaweb.si/mailman/listinfo/aida
>> _______________________________________________
>> Aida mailing list
>> Aida op aidaweb.si
>> http://lists.aidaweb.si/mailman/listinfo/aida
>>
>
> _______________________________________________
> Aida mailing list
> Aida op aidaweb.si
> http://lists.aidaweb.si/mailman/listinfo/aida
> 



More information about the Aida mailing list