[aida] [ANN] Aida/Web 6.0 second beta is out!

Herbert König herbertkoenig at gmx.net
Mon May 4 08:16:12 CEST 2009


Hi Aiders,


HK> At least at the weekend I will give it a second try. It was obvious
HK> why it couldn't work but the modifications where few and
HK> straightforward.

ok I managed to have my app running on 6.0 beta2. Migration was not as
straightforward as just installing the new Aida, but maybe that was
me.

For Squeak I attach the changed methods as fileouts, for VW copy them
from the end of this mail.



Cheers,

Herbert                            mailto:herbertkoenig at gmx.net


WebApplication category private-ajax

ajaxDoBlock: aRequest
        | elementId blockName block |
        elementId := self session lastRequest ajaxParameter: 'blockElementId'.
        blockName := self session lastRequest ajaxParameter: 'blockName'.
        block := (aRequest context elementId: elementId) otherAt: blockName
                                ifAbsent: [^self].
        block value


WebApplication category private-ajax

respondToAjaxRequest: aRequest
        | oldElement e |
        oldElement := aRequest context elementId: aRequest ajaxElementId.
        aRequest isAjaxInPlaceEditingRequest ifTrue: [^self respondToAjaxInPlaceEditing: aRequest].
        aRequest isAjaxPostWithInput ifTrue: [aRequest context form ajaxAcceptFormInputFrom: aRequest].
        aRequest isAjaxAutocompleteRequest ifTrue: [^self respondToAjaxAutocomplete: aRequest].
        aRequest  isAjaxDoBlock ifTrue: [self ajaxDoBlock: aRequest].
        e := self ajaxUpdateOfOld: oldElement from: aRequest. "update (recreate or refresh) that element"
        e adaptFormElements.
        aRequest context form registerFormElementsIn: e.
        e prepareToHTMLPrintOn: self session. "to prepare again"
        ^e elements "because you need to send inner html of element only, not its tags"


WebElement category private-Ajax

dependentInformation: anElementOrIdCollection to: aStream isFirst: isFirst
        | url head tail headId parm |
        anElementOrIdCollection ifNil: [^''].
        head := anElementOrIdCollection first.
        tail := anElementOrIdCollection copyFrom: 2
                                to: anElementOrIdCollection size.
        url := self ajaxCallUrl.
        headId := head isSymbol 
                                ifTrue: [head]
                                ifFalse: 
                                        [head registerId.
                                        head id].
        parm := self ajaxCallUrlParametersFor: head.
        isFirst 
                ifTrue: 
                        [self registerId.
                        parm := parm , '&blockElementId=' , self id 
                                                , '&blockName=onClickBlock'].
        aStream
                nextPutAll: 'new Ajax.Updater(''';
                nextPutAll: headId asString;
                nextPutAll: ''', ''';
                nextPutAll: url;
                nextPutAll: ''', {method: ''post'', postBody: ''';
                nextPutAll: parm;
                nextPut: $';
                nextPutAll: ', onComplete: function() {'.
        tail isEmpty 
                ifTrue: [aStream nextPutAll: ' inCall = false; ']
                ifFalse: 
                        [self 
                                dependentInformation: tail
                                to: aStream
                                isFirst: false].
        aStream
                nextPutAll: '; }';
                nextPutAll: ', evalScripts: true});'


WebElement category events-ajax

onClickDo: aBlock andUpdate: anElementOrId
        | idSymbol url parms |
        idSymbol := anElementOrId isSymbol 
                                ifTrue: [anElementOrId]
                                ifFalse: 
                                        [anElementOrId registerId.
                                        anElementOrId id].
        url := self ajaxCallUrl.
        parms := self ajaxCallUrlParametersFor: anElementOrId.
        self otherAt: #onClickBlock put: aBlock.
        self registerId.
        parms := parms , '&blockElementId=' , self id 
                                , '&blockName=onClickBlock'.
        self 
                onClick: 'new Ajax.Updater(''' , idSymbol asString , ''', ''' , url 
                                , ''', {method: ''post'', postBody: ''' , parms 
                                , ''', evalScripts: true})'



WebElement category events-ajax

onClickDo: aBlock andUpdateMany: anElementOrIdCollection
        | stream |
        stream := String new writeStream.
        self 
                dependentInformation: anElementOrIdCollection
                to: stream
                isFirst: true.
        self
                registerId;
                otherAt: #onClickBlock put: aBlock;
                onClick: 'if (!inCall) {inCall = true;' , stream contents , '}'


WebPage category initialize-release

initPageHeaderLinks
        self initHeaders.
        self app isNil ifTrue: [^nil].
        self addMetaContentType: 'text/html; charset=UTF-8'.
        self addLinkToScreenStyleSheet: self site style screenCssResource.
        self addLinkToPrintStyleSheet: self site style printCssResource.
        self addLinkToDefaultFavicon. "that from WebStyle favicon in imgs"
        self addLinkToJavascript: self site style javascriptResource.
        self addJavascript: 'var inCall = false;'.
        self addGlobalKeywords. "if any"
-------------- nächster Teil --------------
Ein Dateianhang mit Bin?rdaten wurde abgetrennt...
Dateiname   : WebPage-initPageHeaderLinks.st
Dateityp    : application/octet-stream
Dateigr??e  : 635 bytes
Beschreibung: nicht verf?gbar
URL         : http://lists.aidaweb.si/pipermail/aida/attachments/20090504/b53a40ad/attachment.dll 
-------------- nächster Teil --------------
Ein Dateianhang mit Bin?rdaten wurde abgetrennt...
Dateiname   : WebApplication-ajaxDoBlock.st
Dateityp    : application/octet-stream
Dateigr??e  : 464 bytes
Beschreibung: nicht verf?gbar
URL         : http://lists.aidaweb.si/pipermail/aida/attachments/20090504/b53a40ad/attachment-0001.dll 
-------------- nächster Teil --------------
Ein Dateianhang mit Bin?rdaten wurde abgetrennt...
Dateiname   : WebApplication-respondToAjaxRequest.st
Dateityp    : application/octet-stream
Dateigr??e  : 934 bytes
Beschreibung: nicht verf?gbar
URL         : http://lists.aidaweb.si/pipermail/aida/attachments/20090504/b53a40ad/attachment-0002.dll 
-------------- nächster Teil --------------
Ein Dateianhang mit Bin?rdaten wurde abgetrennt...
Dateiname   : WebElement-dependentInformationtoisFirst.st
Dateityp    : application/octet-stream
Dateigr??e  : 1213 bytes
Beschreibung: nicht verf?gbar
URL         : http://lists.aidaweb.si/pipermail/aida/attachments/20090504/b53a40ad/attachment-0003.dll 
-------------- nächster Teil --------------
Ein Dateianhang mit Bin?rdaten wurde abgetrennt...
Dateiname   : WebElement-onClickDoandUpdate.st
Dateityp    : application/octet-stream
Dateigr??e  : 759 bytes
Beschreibung: nicht verf?gbar
URL         : http://lists.aidaweb.si/pipermail/aida/attachments/20090504/b53a40ad/attachment-0004.dll 
-------------- nächster Teil --------------
Ein Dateianhang mit Bin?rdaten wurde abgetrennt...
Dateiname   : WebElement-onClickDoandUpdateMany.st
Dateityp    : application/octet-stream
Dateigr??e  : 477 bytes
Beschreibung: nicht verf?gbar
URL         : http://lists.aidaweb.si/pipermail/aida/attachments/20090504/b53a40ad/attachment-0005.dll 


More information about the Aida mailing list