[Jifty-commit] r6510 - in jifty/trunk: lib/Jifty/Plugin

Jifty commits jifty-commit at lists.jifty.org
Thu Feb 26 19:53:33 EST 2009


Author: sartak
Date: Thu Feb 26 19:53:32 2009
New Revision: 6510

Added:
   jifty/trunk/lib/Jifty/Plugin/AccessLog.pm
Modified:
   jifty/trunk/   (props changed)
   jifty/trunk/MANIFEST
   jifty/trunk/META.yml
   jifty/trunk/Makefile.PL

Log:


Modified: jifty/trunk/MANIFEST
==============================================================================
--- jifty/trunk/MANIFEST	(original)
+++ jifty/trunk/MANIFEST	Thu Feb 26 19:53:32 2009
@@ -220,6 +220,7 @@
 lib/Jifty/Param.pm
 lib/Jifty/Param/Schema.pm
 lib/Jifty/Plugin.pm
+lib/Jifty/Plugin/AccessLog.pm
 lib/Jifty/Plugin/ActorMetadata.pm
 lib/Jifty/Plugin/ActorMetadata/Mixin/Model/ActorMetadata.pm
 lib/Jifty/Plugin/AdminUI.pm
@@ -494,350 +495,6 @@
 plugins/Comment/t/TestApp-Plugin-Comments/lib/TestApp/Plugin/Comments/View.pm
 plugins/Comment/t/TestApp-Plugin-Comments/Makefile.PL
 plugins/Comment/t/TestApp-Plugin-Comments/t/00-model-BlogPost.t
-plugins/DumpDispatcher/lib/Jifty/Plugin/DumpDispatcher.pm
-plugins/DumpDispatcher/Makefile.PL
-plugins/EmailErrors/doc/site_config.yml
-plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors.pm
-plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors/Dispatcher.pm
-plugins/EmailErrors/lib/Jifty/Plugin/EmailErrors/Notification/EmailError.pm
-plugins/EmailErrors/Makefile.PL
-plugins/EmailErrors/share/web/templates/.file
-plugins/ExtJS/lib/Jifty/Plugin/ExtJS.pm
-plugins/ExtJS/lib/Jifty/Plugin/ExtJS/Dispatcher.pm
-plugins/ExtJS/Makefile.PL
-plugins/ExtJS/share/web/static/css/extjs/basic-dialog.css
-plugins/ExtJS/share/web/static/css/extjs/box.css
-plugins/ExtJS/share/web/static/css/extjs/button.css
-plugins/ExtJS/share/web/static/css/extjs/combo.css
-plugins/ExtJS/share/web/static/css/extjs/core.css
-plugins/ExtJS/share/web/static/css/extjs/date-picker.css
-plugins/ExtJS/share/web/static/css/extjs/dd.css
-plugins/ExtJS/share/web/static/css/extjs/debug.css
-plugins/ExtJS/share/web/static/css/extjs/ext-all.css
-plugins/ExtJS/share/web/static/css/extjs/form.css
-plugins/ExtJS/share/web/static/css/extjs/grid.css
-plugins/ExtJS/share/web/static/css/extjs/layout.css
-plugins/ExtJS/share/web/static/css/extjs/menu.css
-plugins/ExtJS/share/web/static/css/extjs/qtips.css
-plugins/ExtJS/share/web/static/css/extjs/README.txt
-plugins/ExtJS/share/web/static/css/extjs/reset-min.css
-plugins/ExtJS/share/web/static/css/extjs/resizable.css
-plugins/ExtJS/share/web/static/css/extjs/tabs.css
-plugins/ExtJS/share/web/static/css/extjs/toolbar.css
-plugins/ExtJS/share/web/static/css/extjs/tree.css
-plugins/ExtJS/share/web/static/css/extjs/ytheme-aero.css
-plugins/ExtJS/share/web/static/css/extjs/ytheme-gray.css
-plugins/ExtJS/share/web/static/css/extjs/ytheme-vista.css
-plugins/ExtJS/share/web/static/images/extjs/aero/basic-dialog/aero-close-over.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/basic-dialog/aero-close.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/basic-dialog/bg-center.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/basic-dialog/bg-left.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/basic-dialog/bg-right.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/basic-dialog/close.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/basic-dialog/collapse-over.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/basic-dialog/collapse.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/basic-dialog/e-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/basic-dialog/expand-over.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/basic-dialog/expand.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/basic-dialog/hd-sprite.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/basic-dialog/s-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/basic-dialog/se-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/basic-dialog/w-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/gradient-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/grid/grid-blue-split.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/grid/grid-hrow.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/grid/grid-split.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/grid/grid-vista-hd.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/grid/pspbrwse.jbf
-plugins/ExtJS/share/web/static/images/extjs/aero/grid/sort-col-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/grid/sort_asc.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/grid/sort_desc.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/layout/collapse.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/layout/expand.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/layout/gradient-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/layout/ns-collapse.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/layout/ns-expand.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/layout/panel-close.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/layout/panel-title-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/layout/panel-title-light-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/layout/tab-close-on.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/layout/tab-close.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/qtip/bg.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/s.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/sizer/e-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/sizer/e-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/sizer/ne-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/sizer/ne-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/sizer/nw-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/sizer/nw-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/sizer/s-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/sizer/s-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/sizer/se-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/sizer/se-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/sizer/sw-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/sizer/sw-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/tabs/tab-btm-inactive-left-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/tabs/tab-btm-inactive-right-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/tabs/tab-btm-left-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/tabs/tab-btm-right-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/tabs/tab-sprite.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/tabs/tab-strip-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/tabs/tab-strip-bg.png
-plugins/ExtJS/share/web/static/images/extjs/aero/tabs/tab-strip-btm-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/toolbar/bg.gif
-plugins/ExtJS/share/web/static/images/extjs/aero/toolbar/tb-btn-sprite.gif
-plugins/ExtJS/share/web/static/images/extjs/default/basic-dialog/btn-arrow.gif
-plugins/ExtJS/share/web/static/images/extjs/default/basic-dialog/btn-sprite.gif
-plugins/ExtJS/share/web/static/images/extjs/default/basic-dialog/close.gif
-plugins/ExtJS/share/web/static/images/extjs/default/basic-dialog/collapse.gif
-plugins/ExtJS/share/web/static/images/extjs/default/basic-dialog/e-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/default/basic-dialog/expand.gif
-plugins/ExtJS/share/web/static/images/extjs/default/basic-dialog/hd-sprite.gif
-plugins/ExtJS/share/web/static/images/extjs/default/basic-dialog/progress.gif
-plugins/ExtJS/share/web/static/images/extjs/default/basic-dialog/progress2.gif
-plugins/ExtJS/share/web/static/images/extjs/default/basic-dialog/s-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/default/basic-dialog/se-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/default/box/corners-blue.gif
-plugins/ExtJS/share/web/static/images/extjs/default/box/corners.gif
-plugins/ExtJS/share/web/static/images/extjs/default/box/l-blue.gif
-plugins/ExtJS/share/web/static/images/extjs/default/box/l.gif
-plugins/ExtJS/share/web/static/images/extjs/default/box/r-blue.gif
-plugins/ExtJS/share/web/static/images/extjs/default/box/r.gif
-plugins/ExtJS/share/web/static/images/extjs/default/box/tb-blue.gif
-plugins/ExtJS/share/web/static/images/extjs/default/box/tb.gif
-plugins/ExtJS/share/web/static/images/extjs/default/dd/drop-add.gif
-plugins/ExtJS/share/web/static/images/extjs/default/dd/drop-no.gif
-plugins/ExtJS/share/web/static/images/extjs/default/dd/drop-yes.gif
-plugins/ExtJS/share/web/static/images/extjs/default/form/date-trigger.gif
-plugins/ExtJS/share/web/static/images/extjs/default/form/error-tip-corners.gif
-plugins/ExtJS/share/web/static/images/extjs/default/form/exclamation.gif
-plugins/ExtJS/share/web/static/images/extjs/default/form/text-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/default/form/trigger.gif
-plugins/ExtJS/share/web/static/images/extjs/default/gradient-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/arrow-left-white.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/arrow-right-white.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/col-move-bottom.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/col-move-top.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/dirty.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/done.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/drop-no.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/drop-yes.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/footer-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/grid-blue-hd.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/grid-blue-split.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/grid-hrow.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/grid-loading.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/grid-split.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/grid-vista-hd.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/hmenu-asc.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/hmenu-desc.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/hmenu-lock.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/hmenu-lock.png
-plugins/ExtJS/share/web/static/images/extjs/default/grid/hmenu-unlock.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/hmenu-unlock.png
-plugins/ExtJS/share/web/static/images/extjs/default/grid/invalid_line.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/loading.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/mso-hd.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/nowait.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/page-first-disabled.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/page-first.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/page-last-disabled.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/page-last.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/page-next-disabled.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/page-next.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/page-prev-disabled.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/page-prev.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/pick-button.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/refresh.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/sort_asc.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/sort_desc.gif
-plugins/ExtJS/share/web/static/images/extjs/default/grid/Thumbs.db
-plugins/ExtJS/share/web/static/images/extjs/default/grid/wait.gif
-plugins/ExtJS/share/web/static/images/extjs/default/layout/collapse.gif
-plugins/ExtJS/share/web/static/images/extjs/default/layout/expand.gif
-plugins/ExtJS/share/web/static/images/extjs/default/layout/gradient-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/default/layout/ns-collapse.gif
-plugins/ExtJS/share/web/static/images/extjs/default/layout/ns-expand.gif
-plugins/ExtJS/share/web/static/images/extjs/default/layout/panel-close.gif
-plugins/ExtJS/share/web/static/images/extjs/default/layout/panel-title-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/default/layout/panel-title-light-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/default/layout/stick.gif
-plugins/ExtJS/share/web/static/images/extjs/default/layout/stuck.gif
-plugins/ExtJS/share/web/static/images/extjs/default/layout/tab-close-on.gif
-plugins/ExtJS/share/web/static/images/extjs/default/layout/tab-close.gif
-plugins/ExtJS/share/web/static/images/extjs/default/menu/checked.gif
-plugins/ExtJS/share/web/static/images/extjs/default/menu/group-checked.gif
-plugins/ExtJS/share/web/static/images/extjs/default/menu/menu-parent.gif
-plugins/ExtJS/share/web/static/images/extjs/default/menu/menu.gif
-plugins/ExtJS/share/web/static/images/extjs/default/menu/unchecked.gif
-plugins/ExtJS/share/web/static/images/extjs/default/qtip/bg.gif
-plugins/ExtJS/share/web/static/images/extjs/default/qtip/close.gif
-plugins/ExtJS/share/web/static/images/extjs/default/qtip/tip-sprite.gif
-plugins/ExtJS/share/web/static/images/extjs/default/s.gif
-plugins/ExtJS/share/web/static/images/extjs/default/shadow-lr.png
-plugins/ExtJS/share/web/static/images/extjs/default/shadow.png
-plugins/ExtJS/share/web/static/images/extjs/default/shared/calendar.gif
-plugins/ExtJS/share/web/static/images/extjs/default/shared/left-btn.gif
-plugins/ExtJS/share/web/static/images/extjs/default/shared/right-btn.gif
-plugins/ExtJS/share/web/static/images/extjs/default/shared/warning.gif
-plugins/ExtJS/share/web/static/images/extjs/default/sizer/e-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/default/sizer/e-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/default/sizer/ne-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/default/sizer/ne-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/default/sizer/nw-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/default/sizer/nw-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/default/sizer/s-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/default/sizer/s-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/default/sizer/se-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/default/sizer/se-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/default/sizer/square.gif
-plugins/ExtJS/share/web/static/images/extjs/default/sizer/sw-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/default/sizer/sw-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tabs/tab-btm-inactive-left-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tabs/tab-btm-inactive-right-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tabs/tab-btm-left-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tabs/tab-btm-right-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tabs/tab-sprite.gif
-plugins/ExtJS/share/web/static/images/extjs/default/toolbar/btn-arrow-light.gif
-plugins/ExtJS/share/web/static/images/extjs/default/toolbar/btn-arrow.gif
-plugins/ExtJS/share/web/static/images/extjs/default/toolbar/btn-over-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/default/toolbar/gray-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/default/toolbar/tb-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/default/toolbar/tb-btn-sprite.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/drop-add.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/drop-between.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/drop-no.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/drop-over.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/drop-under.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/drop-yes.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/elbow-end-minus-nl.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/elbow-end-minus.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/elbow-end-plus-nl.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/elbow-end-plus.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/elbow-end.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/elbow-line.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/elbow-minus-nl.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/elbow-minus.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/elbow-plus-nl.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/elbow-plus.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/elbow.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/folder-open.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/folder.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/leaf.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/loading.gif
-plugins/ExtJS/share/web/static/images/extjs/default/tree/s.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/basic-dialog/close.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/basic-dialog/collapse.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/basic-dialog/dlg-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/basic-dialog/e-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/basic-dialog/expand.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/basic-dialog/hd-sprite.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/basic-dialog/s-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/basic-dialog/se-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/gradient-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/grid/grid-hrow.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/layout/collapse.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/layout/expand.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/layout/gradient-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/layout/ns-collapse.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/layout/ns-expand.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/layout/panel-close.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/layout/panel-title-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/layout/panel-title-light-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/layout/stick.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/layout/tab-close-on.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/layout/tab-close.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/menu/checked.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/menu/group-checked.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/menu/menu-parent.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/menu/menu.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/menu/unchecked.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/qtip/bg.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/qtip/tip-sprite.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/s.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/sizer/e-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/sizer/e-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/sizer/ne-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/sizer/ne-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/sizer/nw-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/sizer/nw-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/sizer/s-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/sizer/s-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/sizer/se-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/sizer/se-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/sizer/sw-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/sizer/sw-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/tabs/tab-btm-inactive-left-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/tabs/tab-btm-inactive-right-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/tabs/tab-btm-left-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/tabs/tab-btm-right-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/tabs/tab-sprite.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/toolbar/gray-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/gray/toolbar/tb-btn-sprite.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/basic-dialog/bg-center.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/basic-dialog/bg-left.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/basic-dialog/bg-right.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/basic-dialog/close.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/basic-dialog/collapse.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/basic-dialog/dlg-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/basic-dialog/e-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/basic-dialog/expand.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/basic-dialog/hd-sprite.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/basic-dialog/s-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/basic-dialog/se-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/basic-dialog/w-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/gradient-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/grid/grid-split.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/grid/grid-vista-hd.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/layout/collapse.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/layout/expand.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/layout/gradient-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/layout/ns-collapse.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/layout/ns-expand.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/layout/panel-close.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/layout/panel-title-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/layout/panel-title-light-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/layout/stick.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/layout/tab-close-on.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/layout/tab-close.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/qtip/bg.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/qtip/tip-sprite.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/s.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/sizer/e-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/sizer/e-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/sizer/ne-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/sizer/ne-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/sizer/nw-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/sizer/nw-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/sizer/s-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/sizer/s-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/sizer/se-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/sizer/se-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/sizer/sw-handle-dark.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/sizer/sw-handle.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/tabs/tab-btm-inactive-left-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/tabs/tab-btm-inactive-right-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/tabs/tab-btm-left-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/tabs/tab-btm-right-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/tabs/tab-sprite.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/toolbar/gray-bg.gif
-plugins/ExtJS/share/web/static/images/extjs/vista/toolbar/tb-btn-sprite.gif
-plugins/ExtJS/share/web/static/js/extjs/adapter/jquery/ext-jquery-adapter.js
-plugins/ExtJS/share/web/static/js/extjs/adapter/prototype/ext-prototype-adapter.js
-plugins/ExtJS/share/web/static/js/extjs/adapter/yui/ext-yui-adapter.js
-plugins/ExtJS/share/web/static/js/extjs/adapter/yui/yui-utilities.js
-plugins/ExtJS/share/web/static/js/extjs/ext-all.js
-plugins/ExtJS/share/web/static/js/extjs/ext-config.js
-plugins/Feedback/lib/Jifty/Plugin/Feedback.pm
-plugins/Feedback/lib/Jifty/Plugin/Feedback/Action/SendFeedback.pm
-plugins/Feedback/lib/Jifty/Plugin/Feedback/View.pm
-plugins/Gladiator/lib/Jifty/Plugin/Gladiator.pm
-plugins/Gladiator/lib/Jifty/Plugin/Gladiator/Dispatcher.pm
-plugins/Gladiator/lib/Jifty/Plugin/Gladiator/View.pm
-plugins/GoogleMap/lib/Jifty/Plugin/GoogleMap.pm
-plugins/GoogleMap/lib/Jifty/Plugin/GoogleMap/Widget.pm
-plugins/GoogleMap/share/web/static/css/google_map.css
-plugins/GoogleMap/share/web/static/js/google_map.js
 plugins/JSPageRegion/inc/Module/AutoInstall.pm
 plugins/JSPageRegion/inc/Module/Install.pm
 plugins/JSPageRegion/inc/Module/Install/AutoInstall.pm

Modified: jifty/trunk/META.yml
==============================================================================

Modified: jifty/trunk/Makefile.PL
==============================================================================
--- jifty/trunk/Makefile.PL	(original)
+++ jifty/trunk/Makefile.PL	Thu Feb 26 19:53:32 2009
@@ -2,7 +2,7 @@
 name('Jifty');
 license('Perl');
 perl_version '5.8.3';
-requires('App::CLI' => 0.08 ); # App::CLI::Command::Help App::CLI::Command
+requires('App::CLI' => 0.03 ); # App::CLI::Command::Help App::CLI::Command
 requires('Cache::Cache'); #Cache::FileCache
 requires('Calendar::Simple');
 requires('Class::Accessor'); # Class::Accessor::Fast
@@ -146,6 +146,45 @@
     recommends('Apache2::Const' => 0),
     ;
 
+feature 'OpenID Login Plugin' =>
+    -default => 0,
+    recommends('Net::OpenID::Consumer' => 0),
+    recommends('Cache::FileCache' => 0),
+    recommends('LWPx::ParanoidAgent' => 0),
+    ;
+
+feature 'Facebook Login Plugin' =>
+    -default => 0,
+    recommends('WWW::Facebook::API' => '0.3.6'),
+    ;
+
+feature 'Jifty console' =>
+    -default => 0,
+    recommends('Devel::EvalContext' => 0),
+    ;
+
+feature 'Jifty REPL' =>
+    -default => 0,
+    recommends('Devel::REPL' => 0), # Devel::REPL::Script
+    ;
+
+feature 'Chart Plugin (none of these need to be installed for Charts to work)' =>
+    -default => 0,
+    recommends('Chart::Base' => 0),
+    recommends('GD' => 0),          # for a testing hack
+    recommends('GD::Graph' => 0),
+    recommends('XML::Simple' => 0),
+    recommends('Image::Info' => 0), # for testing
+    ;
+
+feature 'Memory Leak Plugins' =>
+    -default => 0,
+    recommends('Devel::Events::Objects' => '0.02'), # Devel::Events::Handler::ObjectTracker Devel::Events::Generator::Objects
+    recommends('Devel::Size' => 0),
+    recommends('Devel::Gladiator' => 0),
+    recommends('Proc::ProcessTable' => 0),
+    ;
+
 feature 'Improved halos' =>
     -default => 0,
     recommends('Data::Dump::Streamer' => 0),

Added: jifty/trunk/lib/Jifty/Plugin/AccessLog.pm
==============================================================================
--- (empty file)
+++ jifty/trunk/lib/Jifty/Plugin/AccessLog.pm	Thu Feb 26 19:53:32 2009
@@ -0,0 +1,279 @@
+package Jifty::Plugin::AccessLog;
+use strict;
+use warnings;
+use base qw/Jifty::Plugin Class::Data::Inheritable/;
+__PACKAGE__->mk_accessors(qw/path format start/);
+
+use Jifty::Util;
+use CGI::Cookie;
+use Time::HiRes qw();
+
+our $VERSION = 0.01;
+
+=head1 NAME
+
+Jifty::Plugin::AccessLog - Concisely log Jifty requests
+
+=head1 DESCRIPTION
+
+
+=head1 USAGE
+
+Add the following to your site_config.yml
+
+ framework:
+   Plugins:
+     - AccessLog: {}
+
+=head2 OPTIONS
+
+=over 4
+
+=item path
+
+The file to log to; defaults to F<log/access_log>.
+
+=item format
+
+The format string to use when logging.  This module attempts to be as
+Apache-compatible as possible; it supports the following format
+escapes:
+
+=over
+
+=item %%
+
+The percent sign.
+
+=item %a
+
+Remote IP address.
+
+=item %{Foobar}C
+
+The contents of the cookie I<Foobar> in the request sent to the
+server.
+
+=item %D
+
+The time taken to serve the request, in micoseconds.
+
+=item %h
+
+Remote IP address.
+
+=item %{Foobar}n
+
+The content of the I<Foobar> header line(s) in the request.
+
+=item %l
+
+The first 8 characters of the session ID, if any.
+
+=item %m
+
+The request method.
+
+=item %{Foobar}n
+
+The value of the template or request argument I<Foobar>, as sent by
+the client, or set in the dispatcher.
+
+=item %{Foobar}o
+
+The value of the I<Foobar> header line(s) in the response.
+
+=item %p
+
+The canonical port of the server serving the request.  Alternate forms
+include C<%{canonical}p>, C<%{local}p>, and C<%{remote}p>, which are
+the respective connection ports.
+
+=item %P
+
+The process ID that serviced the request.
+
+=item %s
+
+The status code of the response.
+
+=item %t
+
+The time the request was recieved, formatted in Apache's default
+format string (C<[%d/%b/%Y:%T %z]>).  C<%{I<format>}t> can be used to
+provide a C<strftime>-style custom I<format>.
+
+=item %T
+
+The time taken to serve the request, in seconds.
+
+=item %u
+
+The value of L<Jifty::CurrentUser/username>, if any.
+
+=item %U
+
+The path requested.  In the event that the request was for one or more
+regions, the list of regions will be given in square brackets.
+
+=item %v
+
+The canonical server name of the server.
+
+=item %x
+
+The list of active actions run in the request.  Failed actions will be
+followed with an exclamation mark, un-run actions with a tilde.
+
+=item %X
+
+As C<%X>, but also includes all argument values to each action.
+
+=back
+
+=back
+
+=head2 METHODS
+
+=head2 init
+
+Installs the trigger for each request.
+
+=cut
+
+sub init {
+    my $self = shift;
+    my %args = (
+        path => 'log/access_log',
+        format => '%h %l %u %t %m %U %s %T %x',
+        @_,
+    );
+
+    return if $self->_pre_init;
+
+    $self->path(Jifty::Util->absolute_path( $args{path} ));
+    $self->format($args{format});
+    Jifty::Handler->add_trigger(
+        before_cleanup => sub { $self->before_cleanup }
+    );
+}
+
+=head2 new_request
+
+On each request, log when it starts.
+
+=cut
+
+sub new_request {
+    my $self = shift;
+    $self->start(Time::HiRes::time);
+}
+
+=head2 before_cleanup
+
+Open, and append to, the logfile with the format specified.
+
+=cut
+
+sub before_cleanup {
+    my $self = shift;
+    my $cgi  = Jifty->handler->cgi;
+    my $r    = Jifty->web->request;
+    my $a    = Jifty->handler->apache;
+    $a->header_out(Status => 200) unless defined $a->header_out("Status");
+
+    my $actions = sub {
+        my $long = shift;
+
+        my $one_action = sub {
+            my $a = shift;
+            my $base = $a->class;
+            my $result = Jifty->web->response->result($a->moniker);
+            $base .= "~" if not $a->has_run or not $result;
+            $base .= "!" if $result and not $result->success;
+            return $base unless $long;
+            return "($base={"
+                . join( ",",
+                map { "$_=" . $a->argument($_) } keys %{ $a->arguments } )
+                . "})"
+        };
+        return sub {
+            my @a = grep { $_->active } $r->actions;
+            return "-" unless @a;
+            ( $r->just_validating ? "V" : "" ) . "<" . join(
+                ", ",    map {$one_action->($_)} @a) . ">";
+        }
+    };
+
+    my %ESCAPES = (
+        '%' => sub { '%' },
+        a => sub { $cgi->remote_host },
+        C => sub { my $c = { CGI::Cookie->fetch() }->{+shift}; $c ? $c->value : undef },
+        D => sub { sprintf "%.3fms", (Time::HiRes::time - $self->start)*1000 },
+        e => sub { $ENV{+shift} },
+        h => sub { $cgi->remote_host },
+        i => sub { $a->header_in(shift) },
+        l => sub { substr( Jifty->web->session->id || '-', 0, 8 ) },
+        m => sub { $r->request_method },
+        n => sub { $r->template_argument($_[0]) || $r->argument($_[0]) },
+        o => sub { $a->header_out(shift) },
+        p => sub {
+            return Jifty->config->framework("Web")->{Port} if $_[0] eq "canonical";
+            return $ENV{SERVER_PORT} if $_[0] eq "local";
+            return $ENV{REMOTE_PORT} if $_[0] eq "remote";
+            return Jifty->config->framework("Web")->{Port};
+        },
+        P => sub { $$ },
+        s => sub { $a->header_out("Status") },
+        t => sub { DateTime->from_epoch($self->start)->strftime(shift || "[%d/%b/%Y:%T %z]") },
+        T => sub { sprintf "%.3fs", (Time::HiRes::time - $self->start) },
+        u => sub { Jifty->web->current_user->username },
+        U => sub {
+            my @f = $r->fragments;
+            return $r->path unless @f;
+            return '[' . join(", ", map {$_->path} @f ) . ']';
+        },
+        v => sub { URI->new(Jifty->config->framework("Web")->{BaseURL})->host },
+        x => $actions->(0),
+        X => $actions->(1),
+    );
+
+    my $replace = sub {
+        my ($only_on, $string, $format) = @_;
+        if (defined $only_on) {
+            return "" unless grep {$a->header_out("Status") eq $_} split /,/, $only_on;
+        }
+        my $r;
+        if (exists $ESCAPES{$format}) {
+            $r = ref $ESCAPES{$format} ? eval {$ESCAPES{$format}->($string)} : $ESCAPES{$format};
+        } else {
+            $r = "%".$format;
+        }
+        return defined $r ? $r : "-";
+    };
+
+
+    my $s = $self->format;
+    $s =~ s/%(\d+(?:,\d+)*)?(?:{(.*?)})?([a-zA-Z%])/$replace->($1,$2,$3)/ge;
+
+    open my $access_log, '>>', $self->path or do {
+        $self->log->error("Unable to open @{[$self->path]} for writing: $!");
+        return;
+    };
+    $access_log->syswrite( "$s\n" );
+    $access_log->close;
+}
+
+=head1 SEE ALSO
+
+L<Jifty::Plugin::Recorder> for more verbose debugging information.
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright 2009 Best Practical Solutions
+
+This is free software and may be modified and distributed under the same terms as Perl itself.
+
+=cut
+
+1;


More information about the Jifty-commit mailing list