Aida 6.2 Release Notes

6.2 feb11

--- On: 06.feb 2011

  • WebScheduler
    • startLoop runs now all events on the same time too
    • insertToQueueEvent: reports error if inserting for any reason fails
  • WebSceduledEvent run removes itself from queue after run
  • SpTimestamp >= added, in Aida-Extensions
  • WebScheduler method #critical: introduced
  • AIDASite #Scheduler, not #WebScheduler anymore, auto migration provided
  • WebScheduler,Event - SpTimestamp instead of Timestamp

--- On: 04.feb 2011

  • WebButton Ajax form submitting over new event framework
  • WebEventHandler addAcceptSubmittedForm action block introduced
  • WebEvent postData parsed from submitted form in event's value, as in HTTPPost
  • WebStyle js15Forms for form serialization added
  • WebApplication old ajax methods moved to private-obsolete
  • WebSession printWebPage - WebSocket over Squid proxy troubles, 1s delay of empty response

--- On: 29.jan 2011

Event management refactoring over unified communication channel (WebSocket, Ajax, Comet)

  • WebElement
    • update, updateWith: introduced, for very simple element update on the browser
    • events sent in short JS function and handled in event handler
    • ensureId introduced
    • pure JavaScript, no more Prototype dependent. (except effects)
  • WebForm, WebFormElement acceptInput... refactured
  • WebStyle
    • jsEvents - events are send over websocket if open, Ajax otherwise
    • jsEvents aidaDelayedEvent added, to delay sending after last event,  to replace former Prototype based one, used in filters in WebGrid
    • jsWebSocket automatically restarts websocket if closed
    • lightbox now completely in pure JavaScript, no Prototype dependent
  • WebEventHanlder with many preprepared action blocks (popup, update, close window, accept input
  • WebApplication respondToEvent: added
  • WebSession queue instvar introduced to queue one or many commands to be JSONized and sent to browser via WebSocket (immediatelly) or Ajax (in one pack when response is sent)
  • WebSession isBrowserSupported introduced
  • WebPage, if browser not supported, red noification is shown on top of the webpage
  • WebPage, PrototypeJS no more loaded automatically but on demand
  • WebWindow popup stub is now a normal subelement, form is second, popupStyle cleaned up
  • AIDASite addResponseHeaders -- no more special IE7 compatible header!
  • WebContext event instead of request instvar
  • HTTRequest, WebEvent isWebElement, isClassicalRequest, ...
  • WebSessionManagerApp logout sesion by a simple click
  • WebUser initIds inits random id as string, not a number (thanks Nicholas Moore)

--- On: 11.jan 2011

  • WebUserApp activity (login/logout), groups popup, sessions view added
  • WebSession initalIP, wasLoggedInUser:
  • WebSessionManager allLogedInSessions, allSessionsForUser:
  • WebSession sessionIPs, registerIP added, to track all IP addresses of that session
  • WebSessionManagerApp active, loggedSessionsElement
  • WebAdminApp login warning from non-allowed IPs (login not yet blocked!)
  • WebSession, WebSessionManagerApp last activity timestamp introduced
  • WebSecurityManager settings instvar added, allowedIPs for login introduced
  • WebSecurityManagerApp tabs introduced, new Filter tab with allowedIPs setup
  • WebAdminApp actionLogin check if login allowed from user's IP, report failure to Transcript
  • WebSession loginUser: checks if allowed IP too

--- On: 10.jan 2011

WebEvent management introduced, events like clicks propagaded to server via unified JSON communication (WebSocket, Ajax or Comet). JSONized WebEvent received, to a session, JSONized WebCommand (usually update some element) sent back.

  • WebStyle prototype.js out of scripts.js, ensurePrototype, js13Events introduced, lightbox combined into scripts.js
  • WebElement eventHandlers instvar added
  • WebEvent, WebEventHandler classes introduced

--- On: 28.dec 2010

Image based persistency with snapshot every hour introduced, also nightly cleanup of session application state.

  • AIDASite class imageSnapshot, setHourySnashot, resetHourlySnapshot
  • AIDASite initScheduledTasks with initHourlySnapshot and initNightlySnapshot
  • WebScheduler isScheduledBlock:
  • WebText class new also set creationMethod, needed for multilingual support
  • WebAdminApp login error reported in Transcript, logout only if really done
  • WebSecurityManagerApp aclForWhoElement apps with acl set bold to recognize them easier

--- On: 22.dec 2010

  • WebInputField HTML5 types like setNumber, setTel, .., also placeHolder
  • DefaultWebStyle mobile CSS for inputs (bigger buttons), WebGrid

--- On: 19.dec 2010

  • Standalone Apps (no observee), proper work in ViewTabs, WebGrid, WebElement
  • WebApplication isStandaloneApp added
  • WebCheckBox class newAspectFor: instead aspect:for:

6.2beta1 dec10

--- On: 13.dec 2010

  • WebGrid collectionAspect:for: introduced, for updatable grids with fresh content
  • WebWidget now correctly update itself or some of its elements, widget form correctly adds to superform
  • WebStyle JSON update command JavaScript + evaluate scripts in update html
  • WebElement class new checks if first in creation method, only such element is then updatable
  • HTTPRequest creationStContext for above first element check
  • WebForm reorderTabulation reorders fields in subforms too
  • WebFormElement tabulate with ENTER key works again

--- On: 10.dec2010

  • AIDASite register: anObject onUrl: urlString
  • WebStyle special CSS for mobile devices introduced, cssMobile* methods
  • DefaultWebStyle cssMobile* style with CSS corrections for mobile (tablet) devices
  • WebPage addLinkToMobileStyleSheet in initPageHeaderLinks

--- On: 6.dec2010

  • WebSocket and JSON support introduced, JSON update command now working
  • WebSession webSocket support added, #isNew
  • WebRouter addSessionManagerRoute  for /aidasession requests
  • WeSessionManager resourceFor: to route reqest to current session
  • WebPage addWebSocketLoadScript if page is new
  • WebStyle jsWebSocket added
  • DefaultWebStyle navigationBarElement no more contact
  • FileProxy filename changes / to \ and vice versa  if migrated to other OS
  • URLResolver existObject: added
  • WebSession isRemoteGuest if user is guest, comming through proxy server
  • HTTPRequest isForwarding
  • HTML5 is now default docType in web pages

--- On: 26.nov2010

  • Mobile support: WebSession #isMobile, #isMobilePhone, #isMobileTablet identifications
  • WebJSON to serialize and parse in JSON format, with tests
  • WebCommand to send commands to and from the browser via JSON
  • WebApplication 3 possible Ajax updates: App or Widget element, or Widget
  • WebForm #removeSubform: added

--- On: 16.nov2010

  • commenting from 30% to 70% of classes, all most important classes now have comments!
  • package Aida-Templates renamed to Aida-Styles
  • removed WebLightbox, ,WebMsgs,App, DirectoryProxy, RDBTable
  • renamed History to HistoryOfValue to avoid namespace clash
  • AIDASite answer* without namespaces in classes, to ease porting
  • Squeak port synced already
  • Tests now all pass, WebFileInputTest had problems with a context
  • WebApplication context returns #main context in tests
  • WebDemoApp viewTabs removed, because it shows nothing anymore
  • DefaultWebStyle css1Body width back to 800px, 1000 moved to ByArtStyle
  • package Aida-Demos, renamed from Aida-Examples
  • jQuery library added to WebStyle, together with #ensureJQueryInHeader
  • WebStyle ensure* methods renamed to be shorter
  • FileProxy removeYourself also deletes file on disk

--- On: 11.nov2010

  • no more VW specific in Form acceptFormElement, less in AIDASite answerTo:, redirectToOtherHost:
  • AIDASite  registerObject:onURL: for easier registering root domain objects
  • AIDASite initDemoOnRootUrl ''/''

--- On: 4.nov2010

  • WebSession removeIfNewGuest for DOS attack countermeasures
  • AIDASite answerTo: - if url not found, session removeIfNewGuest.
  • WebApplication formPostedFrom: finds a form from single input post if possible

--- On: 2.nov2010

  • WebRichEditor - TinyMCE:
    •   customized setup of buttons, etc
    •   init script is called just before editor is rendered, for Ajax editing
    •   #initScript back to instance methods
  • WebForm scriptForPostAndUpdate moved here from WebButton 

--- On: 27.oct2010

  • WebForm - subforms are in DIV tag
  • WebForm, WebWidget - unnoficial comment attribute with widget name in a div tag
  • WebApplication announceReplacement also for widgets
  • WebButton onSubmitUpdate:with: added
  • WebDemoApp where to find a code comment in examples
  • WebForm save, isValid, invalidFields include fields also from subforms
  • Hierarchy of forms introduced
  • WebElement registerFormElementsTo: also setup the form hierarchy
  • WebForm - subforms don't have a FORM tag!
  • WebWindow registerFormElements init subforms to prevent accumulating them

--- On: 26.oct2010

  • Major refactoring of widget form support
  • forms now separate for page, popup window and widget
  • WebWidget class new refactored again, no more #initialize
  • WebWidget has now a form, moved from WebWindow
  • WebElement ajax - anOldElement, anElementToRecreate
  • WebElement scriptForUpdate refactored
  • WebElement
    • #creationObject, #creationMethod, no more form registered here
    • #form finds a form from page/popup/widget where this element belong
    • registerFormElements, registerFormElementsIn: form
  • WebForm refactored, many methods moved here from elsewhere
  • WebButton always ajax submit in popups and widgets
  • Object firstWidgetOrAppFromStack
  • WebNonHTMLResource printHTMLPage asString (patch by Herbert)

--- On: 22.oct2010

  • WebElement creationObject (Widget or App) registered, besides creationMethod
  • WebPage doesn't allow adding headers and settings scripts from Ajax requests, too late!
  • WebRichEditor
    • ensure resources in page header moved to class side
    • run initScript in Ajax requests, so that rich editor works in updated elements
  • DefaultWebStyle css23Inputs no more with 98% for textareas, so that  rich editor/textarea size (cols) now works!
  • WebModelAdaptor>>save now clears changed flag and nils buffer
  • WebButton synchronous Ajax posting! Page blocks until posting done!
  • String withoutHtmlTags ignores newlines, slovenian letters better handled
  • WebWidget class new sets creationObject to itself, sets creationMethod, then initialize
  • WebGrid class new inits creation method instead in #initialize

--- On: 20.oct2010

  • AIDASite styleClass: self style - ignore error if style class is not loaded yet
  • DefaultWebStyle css1Body 1000px page width for container and containerWide
  • AIDASite redirectToOtherHost works now correctly
  • DefaultWebStyle 12pt printing CSS
  • WebSession languageBasic asStream readStream upTo:
  • WebSession languageBasic language asString!
  • 12pt printing instead 11pt in DefaultWebStyle cssPrint10Body
  • AIDASite defaultUserService removed, no more needed

--- On: 4.oct2010

  • URLResolver no more automatic root url = defaultUserService! WebRouter is there to route such in the future!
  • WebStaticServer resourceForRootUrl ''/'' = /index.htm or /index.html
  • WebGridColumn autoConvert SpDate too
  • WebDelayedField update lazy init this instvar to self, thanks Herbert Konig for the patch
  • WebDemo defaultIntroductionText link to /admin instead /admin.html, thanks Robert Shiplett for this patch
  • WebInplaceEditableText proprerlyFormatedValue ifNil ...
  • AIDASite styleClass:  self style: nil. self style init new site immediatelly

Continue to older 6.1 Release notes