Starting with tag: [TAG 2007-05-16 attila.lendvai@gmail.com**20070516130438] [Added make-horizontal-list-container and make-vertical-list-container and exported them. levente.meszaros@gmail.com**20070516134317] [Added missing files attila.lendvai@gmail.com**20070516131848] [Added missing dojo files attila.lendvai@gmail.com**20070516135917] [standard-template-compoennt is a simple-template-component attila.lendvai@gmail.com**20070517233208] [Fix: do not skip make-new-frame if there's no frame at all yet attila.lendvai@gmail.com**20070517233611] [Added a :action-options for defentry-point attila.lendvai@gmail.com**20070517233708] [Added support to disable escaping for uri printing, export uri helpers attila.lendvai@gmail.com**20070518102122] [Fix swank:*readtable-alist* setup attila.lendvai@gmail.com**20070519192238] [Added a :send-client-events to handle-ajax-request attila.lendvai@gmail.com**20070519192402] [Export action and basic-action attila.lendvai@gmail.com**20070519192512] [Fix some dojo widget related js bugs attila.lendvai@gmail.com**20070519192528] [Clean up css files, ucw.css is a bare minimum that all applications should include attila.lendvai@gmail.com**20070519210843] [Split session handling into a mixin, purge sessions in given time periods attila.lendvai@gmail.com**20070520094736] [Fix backtracking attila.lendvai@gmail.com**20070520152505 Backtracking was leaking memory until the entire session was expired. Now each frame keeps track of both its own allocated and the effective backtracked places. The first is a collection of hard references while the latter is a collection of weak references. ] [Added stress test for call/answer/backtracking/frames attila.lendvai@gmail.com**20070521134742] [Added with-html-element-wrapper, export it attila.lendvai@gmail.com**20070521154358] [Fix action isolation support that broke in the cleanup attila.lendvai@gmail.com**20070521163052] [Made parse-request-body more tolerant to things like "text/plain" content-type requests attila.lendvai@gmail.com**20070521163729] [Clean up backend error handling, introduce an abort-backend-request semi-public function attila.lendvai@gmail.com**20070521174923] [Drop unused funcall-with-request-context attila.lendvai@gmail.com**20070521175438] [Revive the examples attila.lendvai@gmail.com**20070521175457] [Assorted fixes attila.lendvai@gmail.com**20070521175504] [Generated a dojoDebug div when debug is enabled and there's not any attila.lendvai@gmail.com**20070524133859] [Include the session id in the name of the session lock attila.lendvai@gmail.com**20070524133942] [Cleaned up error handling, and threading in httpd backend attila.lendvai@gmail.com**20070524153955] [Various small changes attila.lendvai@gmail.com**20070524154005] [The araneida and the aserve backends are dead, comment them out until revival attila.lendvai@gmail.com**20070524233816] [Housekeeping attila.lendvai@gmail.com**20070525000303] [Get rid of the handle-ajax-request, move it into the call-action :around of ajax-action attila.lendvai@gmail.com**20070525000338] [Fix ajax-action-dispatcher, reintroduce the (now internal) handle-ajax-request macro attila.lendvai@gmail.com**20070530094938] [Fix response flushing and therefore 404 rendering attila.lendvai@gmail.com**20070530230759] [Signal an error when an action was not found and its id was specified attila.lendvai@gmail.com**20070530235342] [Added a callback-dispatcher whose sole purpose is to accept ajax-posted form data attila.lendvai@gmail.com**20070604005728] [Revised form handling attila.lendvai@gmail.com**20070604115228 Nesting of form tags is not allowed, therefore don't use form tags when ajax rendering and/or rendering a nested -syntax to container.lisp attila.lendvai@gmail.com**20070709124550] [Hardcode utf-8 as encoding for some types in serve-file (and add a TODO note) attila.lendvai@gmail.com**20070722193830] [Some localization changes attila.lendvai@gmail.com**20070723111502] [Export session symbols attila.lendvai@gmail.com**20070723111521] [The indirection action of :through-redirect t actions do not need a new frame attila.lendvai@gmail.com**20070724111138] [ajax-action's are not invocation isolated by default attila.lendvai@gmail.com**20070724123053] [Fix: properly drop expired sessions attila.lendvai@gmail.com**20070724203452] [Annotate some optimizations on parse-accept-language-header attila.lendvai@gmail.com**20070731234253] [rename l10n logger attila.lendvai@gmail.com**20070802144002] [Added support for setting the client timezone on the session attila.lendvai@gmail.com**20070802144334] [housekeeping attila.lendvai@gmail.com**20070802155209] [:remember-selected-child-p for client-side switching-container attila.lendvai@gmail.com**20070808192443] [rename to iterate-visible-dirty-components and record a TODO related to them attila.lendvai@gmail.com**20070809222007] [switching-container-selector-js now works with component keys, too attila.lendvai@gmail.com**20070810132430] [Updated dojo to 9882 attila.lendvai@gmail.com**20070731234229] [fix upload example to follow that renders a localized representation of a local-time (using cl-l10n) **20071228030046] [Add maxlength attribute to in-field-string-field render method. Sasha Kovar **20071228024947] [weak try to fix the bitrotten examples attila.lendvai@gmail.com**20080111064758] [Update iolib backend startup code clinton@unknownlamer.org**20080130222426] [Make file upload root configurable clinton@unknownlamer.org**20080117023522] [cleanup temp file handling, make sure no file is overridden attila.lendvai@gmail.com**20080123084343] [follow iolib changes. patch by the man himself: Stelian Ionescu! :) attila.lendvai@gmail.com**20080202213406] [support :relative-mode in lang::timestamp<> attila.lendvai@gmail.com**20080204233729] [fix cache purging of i18n-parenscript-dispatcher attila.lendvai@gmail.com**20080204234112] [fix up ucw.lang:timestamp attila.lendvai@gmail.com**20080205233800] [fix: added missing setup-readtable call to l10n.lisp attila.lendvai@gmail.com**20080207112636] [lang:timestamp is not in relative-mode by default attila.lendvai@gmail.com**20080208125401] [fix corner case in lang:timestamp attila.lendvai@gmail.com**20080208125533] [temp fix for ip-address= until iolib's infrastructure is used attila.lendvai@gmail.com**20080415155521] [fix lang:timestamp attila.lendvai@gmail.com**20080415155606] [follow bind's values -> :values changes attila.lendvai@gmail.com**20080415155617] [add safari support to import-ajax-received-xhtml-node Sasha Kovar **20080419055600] [UCW-CORE fork part 1. drewc@tech.coop**20081103191746 This patch is the start of the ucw-core fork, done in parts to appease the darcs gods. ] [Adding new files for ucw-core split. drewc@tech.coop**20081118211410] [Remove outdated files no longer relevant for ucw-core. drewc@tech.coop**20081118214724] [I forgot the .asd ... not the best start! drewc@tech.coop**20081118222013] [Added forgotten demo drewc@tech.coop**20081127210055 This is the demo. It will eventually be a demonstration of all the ucw components, and also serve as the example code for documentation purposes. ] [Fix invalid html and html escape arguments in send-redirect clinton@unknownlamer.org**20081124074610] [Properly call with format-rfc3339-timestring with destination argument clinton@unknownlamer.org**20081124214013] [Initial exports for ucw-standard package clinton@unknownlamer.org**20081124214126] [Nickname ucw-standard package ucw clinton@unknownlamer.org**20081124214150] [Export CREATE-SERVER clinton@unknownlamer.org**20081126041608] [Export REFRESH-COMPONENT clinton@unknownlamer.org**20081126041615] [Remove obsolete constants clinton@unknownlamer.org**20081126041632] [Remove CALL-IN-RENDERING-ENVIRONMENT clinton@unknownlamer.org**20081126042008 This would be useful in a theoretical future ucw-ajax extension, but is not useful for anything in the core or standard packages. ] [Export MAKE-PLACE clinton@unknownlamer.org**20081126045512] [Update iolib backend for more modern net.sockets clinton@unknownlamer.org**20081126063127] [Port regexp and simple dispatcher to ucw-standard clinton@unknownlamer.org**20081126202054 * Export matcher/handler/dispatcher protocol from ucw-core * Remove ajax/parenscript/etc. dispatchers ] [Remove some obsolete exports from core-package clinton@unknownlamer.org**20081126202444] [Port cookie-session-application-mixin to ucw-standard clinton@unknownlamer.org**20081126202737] [Remove ajax-appliction-mixin clinton@unknownlamer.org**20081126202754] [Port html-element and widget-component to ucw-standard clinton@unknownlamer.org**20081126203441 * html-element -> html-element-mixin * Prefixed accessors with `html-element.' * widget[-inline]-component -> html-{block|inline}-element-mixin * Add UNIQUE-DOM-KEY to generate dom-ids as a drop-in replacement for js:gen-js-name-string ] [Remove obsolete call macros clinton@unknownlamer.org**20081202041601] [Move JUMP and CALL-AS-WINDOW into ucw-standard clinton@unknownlamer.org**20081202041645] [Export http status codes from ucw-core clinton@unknownlamer.org**20081202064725] [Clean up core package definition clinton@unknownlamer.org**20081202073148 * Duplicated symbols removed * Symbols for things no longer in ucw-core removed * Export list is now coherently sorted; some additional sorting would be useful ] [Reimplement starts-with-dispatcher clinton@unknownlamer.org**20081202090909 Uses ARNESI:STARTS-WITH to match a prefix; the suffix is available within the dispatcher body as *DISPATCHER-URL-SUFFIX* ] [Move SERVE-{SEQUENCE|STREAM|FILE} to ucw-standard clinton@unknownlamer.org**20081202091517 * Export more of the response protocol * SERVE-FILE now returns a 404 page if the file does not exist ] [Import container classes into ucw-standard clinton@unknownlamer.org**20081202092252] [Move APPLICATION-WITH-WWW-ROOTS-MIXIN to ucw-standard clinton@unknownlamer.org**20081202095203 * Creates static file entry points at application init rather than relying upon the backend to have special file serving handler code ] [Prepend url-prefix to window external stylesheets clinton@unknownlamer.org**20081202212435] [Add demo fixes. preliminary manual, nuck some old unused files. drewc@tech.coop**20081203012326] [emo fixes and more manual. drewc@tech.coop**20081204044706] [Changes for new manual .. and manual itself-ish drewc@tech.coop**20090102234551] [Adding example code drewc@tech.coop**20090102234730] [M-q FTW! drewc@tech.coop**20090103194106] [Ported basic secure-application-mixin clinton@unknownlamer.org**20081202235008 * ERROR-MESSAGE-WINDOW should probably be replaced by generic info/error messaging component * USER-LOGIN-WINDOW no longer checks if the provided credentials are valid and instead returns (username . password) to the calling component * APPLICATION-AUTHENTICATE-USER checks credentials returned from the login component. The default implementation does not provide the ability to reattempt logins anymore. * SECURE-APPLICATION-MIXIN should probably be split up into a AUTHENTICATED-APPLICATION-MIXIN / SECURE- with a slightly more general protocol to handle applications where logins are optional. ] [Register closer-mop conversion clinton@unknownlamer.org**20081205003811 Arnesi's mopp is unmaintained and fails to work at least with current Clozure CL. Rather than patch unmaintained code I converted ucw to the rather nice Closer MOP. ] [Rename application-with-www-roots-mixin to static-roots-application-mixin clinton@unknownlamer.org**20081205204826 Renamed to be consistent with the other mixins ] [Export switch-component clinton@unknownlamer.org**20081206004306] [Create tabbed-pane rendering protocol clinton@unknownlamer.org**20081206004408 `render-pane-options' and `render-pane-body' may be customized by subclasses. ] [Export mime type functions from core and remove dependency on cl-mime clinton@unknownlamer.org**20081210054130] [Move html-block-element-mixin to tabbed-pane from switching-container clinton@unknownlamer.org**20081210062629 Extensions to switching-container should not be forced to be html-block-elements. ] [Remove explicit id attribute from standard tags clinton@unknownlamer.org**20081210093736 The id was generated at expansion time -- causing duplicate ids in the resulting html when a tag was used in a loop or function called multiple times. ] [Change user-login form metho to POST to avoid putting user/pass into URL clinton@unknownlamer.org**20081211050141] [Port cached-component to ucw-standard clinton@unknownlamer.org**20081212213750 Improved the protocol and adjusted names to be more consistent. None of these components are intended to be directly instantiated so they are now labelled as mixin. ] [Check that cached output exists in `component-cache-invalid-p` clinton@unknownlamer.org**20090103200124] [Remove url-prefix from icons/styles/scripts in standard-window clinton@unknownlamer.org**20090103201635 There is no point -- relative URLs work fine when needed ] [Updates to iolib backend for latest iolib clinton@unknownlamer.org**20090208230306 net.sockets -> iolib.sockets io.streams -> iolib.streams ] [ * CCL Fixes I clinton@unknownlamer.org**20090209033623 - Intern generated request-context and session classes in a specific package rather than in the package of whatever backend is in use. - Use MOP `ensure-class' rather than (make-instance 'standard-class ...) to generate the request-context and session classes With this UCW loads and can start an application on CCL 1.2 (at least on x86-64), but it barfs as soon as the first /cc function is called as CCL lacks funcallable instances. Off to hack arnesi into submission now... ] [Fix mod-lisp package clinton@unknownlamer.org**20090213175443 Thanks to ``Erik on #ucw for pointing this out ] [Remove unused :initform translation into defcomponent clinton@unknownlamer.org**20081206054915 Clozure CL does not have (setf slot-definition-initfunction) and the initfunction for a component slot did not have access to its lexical environment (granted, `defcomponent' is generally at the top level and not using non toplevel bindings in :component (class ...) specs). The expansion of the :initform for a :component CLASS or (CLASS . INITARGS) is now done in `defcomponent'. I am fairly certain that this behaves identically (with the exception that INITARGS in :component (CLASS . INITARGS) can reference local bindings). ] [Import `task-component' into ucw-standard clinton@unknownlamer.org**20090216054024 Ignore-this: f0d269b1e8230eecb3ef3a4a480371b7 ] [Move :component processing into ensure-class-using-class clinton@unknownlamer.org**20090404155232 Ignore-this: e0e52ba9556f39aca4e37f725ad9860e This should fix defclass with `:metaclass standard-component-class' ] [Fix ensure-class-using-class STANDARD-COMPONENT-CLASS clinton@unknownlamer.org**20090417184541 Ignore-this: 4bd2abaea6dcc21d95b902058693f7d1 Oops, the :initfunction/:initform were *not* being initialized properly. Explicitly supply an :initfunction and remove :direct-slots from the keyword list. ] [Port TAL support into ucw-standard clinton@unknownlamer.org**20090428043618 Ignore-this: 776b3414b62e07380c4bb7c9f7f8e118 * Tag definitions are half taken from _ajax and half taken from _dev * `tal-application-mixin' replaces `application-with-tal-support' ] [Add `ucw:action-object' tal attribute clinton@unknownlamer.org**20090428200233 Ignore-this: 7b937eb5e661e385b0ab6de16cf3a5e8 Expands to (TAG :action* ...) (-object is used in the name since `action*' is in invalid name in XML it seems). ] [Finally fix :component slot processing (probably) clinton@unknownlamer.org**20090429035809 Ignore-this: 5fb97f48822673582a21bfe8ba07b13a It appears to `ensure-class-using-class' is not re-called with the newly constructed class metaobject after initially constructing the instance (via `ensure-class-using-class null ...'). I can't tell from reading the MOP spec whether this is allowed or not (it seems to make customizing `ensure-class-using-class' more or less pointless), and so for now I've moved the :direct-slot fixup code into `initialize-instance'/`reinitialize-instance'. This necessitated restructuring the :direct-superclasses magic. This still needs to be tested on ccl but *should* work. ] [Rename `template-component' to `tal-component' clinton@unknownlamer.org**20090429162747 Ignore-this: 8bdbedfa43a81ad01dfdf0fada6da0be And actually add the component source (oops) drewc: do you think I should rename template-component tal-component or something (as it is *not* a generic templating component but only supports tal templates and all) unknown_lamer: yes! ] [Fix mod-lisp backend clinton@unknownlamer.org**20090502205527 Ignore-this: 2a6b272ca36ff5ffdd9a43f73394609e Use iolib to parse the remote address into a vector as expected by the code in handlers.lisp ] [Compile :component (CLASS &rest initargs) initfunction clinton@unknownlamer.org**20090503212309 Ignore-this: e818a526ea23ee27e9050a49e32210e6 ikki noticed that :component (switching-container :current-component-key 'example-welcome :contents `((example-welcome . ,(make-instance 'example-welcome)))) did not work; this was because make-instance was being applied to the unexpanded component-spec expression. Compiling a lambda expression containing the component-spec expression gives the desired behavior, but I'm not /entirely/ certain that using compile here does not count as black magic (it seems to be reasonable to call when generating an initfunction, but perhaps there is a better solution). ] [Fix: export new TAL component names clinton@unknownlamer.org**20090503212352 Ignore-this: ec37e8953051b45681dc4da53f4ce8d0 Oops, missed this in the template->tal rename commit ] [Fix application-mixins component dependencies clinton@unknownlamer.org**20090504200458 Ignore-this: 46c08d98a4e7bc9dd7249905a56b9fcf `static-roots-application-mixin' defines entry points and so needs standard-dispatchers. ] [Cleanup `static-roots-application' entry point implementation clinton@unknownlamer.org**20090504200608 Ignore-this: 9119fe7e437910a61ae84b72918f9c11 Uses `merge-pathnames' instead of string concatenation and disables call/cc potentially resulting in a bit of a performance increase. ] [Further tweak static-roots entry points clinton@unknownlamer.org**20090505175144 Ignore-this: 2fbfd208d7cf5c0f66947b364e9cf302 Explicitly disable callbacks, render, and creation of a new frame. ] [mod-lisp backend: send cookies clinton@unknownlamer.org**20090505180225 Ignore-this: 90422bcd0c980e5ce17d50ad2dc2c386 puchacz noticed that cookies were not being set when using mod-lisp. For whatever reason they were not being sent in `mod-lisp-send-headers'. ] [Use `action' rather than `basic-action' in static file entry points clinton@unknownlamer.org**20090506003815 Ignore-this: f6c9f6bfea4769c9672574b982fcbbfb ] [Minor: remove a couple of obsolete unexported functions clinton@unknownlamer.org**20090506052614 Ignore-this: 5edcf93e74eefb74e1266d6b38190470 ] [Fix bug in expansion of `with-request-params' clinton@unknownlamer.org**20090506054210 Ignore-this: 4cbba545ee120291db6bc0640d0ca944 REQUEST was not being used; instead a literal `(context.request *context*)' was unconditionally inserted. ] [Move proper defintion of `ucw-core:make-action' into ucw-core clinton@unknownlamer.org**20090506194052 Ignore-this: abbb3a9c4d7ff9a6addf4f3b5c3cbcff * Use ucw-standard definition and move *default-action-class* into ucw-core with a new default of 'basic-action * Rebind ucw-core:*default-action-class* to 'ucw-standard:standard-action in an :around method on `standard-application's `service' * Export *default-action-class* and `action' from ucw-core packagec ] [Export `with-request-params' clinton@unknownlamer.org**20090506194125 Ignore-this: 66c5892482ba862b7e284cf6626af404 This macro is occasionally useful in lower level dispatching code written externally. ] [Minor decruft clinton@unknownlamer.org**20090506194354 Ignore-this: d5ca0bcdcd7e8012007fa0177d0f1647 * A few whitespace fixes * Fixup a couple of docstrings * Remove unusued special ] [Don't set action options by default in `defentry-point' clinton@unknownlamer.org**20090506194638 Ignore-this: ee79401c2ec24fbfcd93bcafda400d29 Let `make-action' handle class defaulting. This has the same behavior of defaulting to `basic-action' for entry points unless the global value of *default-action-class* has been rebound. ] [minor updates to manual drewc@tech.coop**20090506234426] [check if headers are sent before sending them again. drewc@tech.coop**20090506234643] [remove expired sessions before signalling out-of-session error drewc@tech.coop**20090506234727] [add ,@others to ucw:submit drewc@tech.coop**20090513191641] [Make action class a part of the application drewc@tech.coop**20090618215250] [change FRAME-SOURCE-LOCATION-FOR-EMACS to FRAME-SOURCE-LOCATION to keep up with slime changes upstream drewc@tech.coop**20090720165548] [move manual/ to doc/ in preparation for ... something. drewc@tech.coop**20090722004028] [Re-add isolated actions drewc@tech.coop**20090806175556] [Add an special when a form is being rendered. drewc@tech.coop**20090813174419] [Port `range-view' from ucw_ajax as `paged-list' clinton@unknownlamer.org**20090814192920 Ignore-this: 5f3e5f16cf47ed49747a6548004b4429 * Same interface but s/range/paged/ to better reflect its actual use. * Fixed bug when :page-size is not passed as an initarg ] [Add `paged-list.page-count' method clinton@unknownlamer.org**20090814193329 Ignore-this: dfee7b5c1997b901f4fa23a53a6cece1 ] [Actually add paged-list to ucw.asd clinton@unknownlamer.org**20090814203638 Ignore-this: 95018da2a10cbdc9029f2e5c1c63750f Oops, missed this. ] [Remove MOPP in favor of C2MOP in example code clinton@unknownlamer.org**20090910234801 Ignore-this: 13cc0a94ba1ef73f157c06561851136c The rest of UCW has been de-MOPP-ified so... ] [Push ancient patch to make REDIRECT-COMPONENT work anywhere clinton@unknownlamer.org**20090910234942 Ignore-this: c7c3084c75d5d39c14b4062a3fdf891c Just clears anything in the response already ] [Remove :ucw.examples to :ucw.manual-examples clinton@unknownlamer.org**20090911000306 Ignore-this: b8b841b368d22d5fa1f3df8adc109a55 Mostly because I don't see a good way to unify the example code I am reimporting now and that. ] [Port `option-dialog' from ucw_ajax clinton@unknownlamer.org**20090911022639 Ignore-this: 1d2aa8c1cbea6a5245f2f6b08e99682a * Does not require TAL (but defines a TAL Env so it can be used with a template) * Added default render method ] [Initial port of ucw_{dev,ajax} examples clinton@unknownlamer.org**20090911022820 Ignore-this: 8a13a3f48f2af36df3d5db89c62ea65e Minimal, but working. Multiplication tables and counter examples have been ported, more pending. ] [Readd sum example clinton@unknownlamer.org**20090911024555 Ignore-this: 8ffe82bf160c991c8f3ae84c9ac1a3bc I decided against reimporting the INFO-MESSAGE class because it is more or less just an OPTION-DIALOG but with one option. I am not sure it is /clean/ to do something like have a root DIALOG class with MESSAGE-DIALOG, INFO-DIALOG, and OPTION-DIALOG subclasses; essentially they can all be represented as OPTION-DIALOGs. Perhaps some convenience functions are in order? ] [Fix ` standard-application * Spotted by burban@opopop.net ] [Fix binding bug in nested component initialization Daniel White **20100527232312 Ignore-this: ae57e60e05ed7c49753cc5d34ea39637 The reason for this is that the MAKE-PLACE macro expands into a closure when we're creating a place for each nested component. Since each iteration does not create a new binding, then all the created places refer to the last nested component. ] [Use the provided value for session in WITH-LOCK-HELD-ON-SESSION Daniel White **20090923011904 Ignore-this: 3e936a3bb0278c31062bedfbc0bcd08b ] [Assert that a WRITER or ACCESSOR has been provided to UCW callback tags Daniel White **20091006231404 Ignore-this: 4eb164765216acd126dbccded3427c7 ] [Resolve conflicts in standard-tags and restore :reader behavior in textarea clinton@unknownlamer.org**20100625180415 Ignore-this: fa5b8a0d74cd7a887e201268fb2fb61c * When :reader is provided but a body is not, use that value as the body ] [Make