Fork of WebGUI 7.10, maintained by Oqapi https://git.oqapi.nl/oqapi/webgui
Find a file
Scott Walters 1ac133d955 refactor WebGUI.Admin.prototype.gotoAsset slightly to avoid code duplication
WebGUI.Admin.prototype.addPasteHandler: guessing but fix use of 'this' vs 'self'
currentTabName() to avoid code duplication for figuring out which context we're running in (Tree/View)
WebGUI.Admin.prototype.pasteAsset:  handle pasting in the Tree view by flopping over to the View view first
removed WebGUI.Admin.Tree.prototype.runHelperForSelected and relatedly WebGUI.Admin.Tree.prototype.cut, copy, shortcut, duplicate, delete; these are dead code
WebGUI.Admin.Tree.prototype.goto: better error handling/debugging
added this FIXME to WebGUI.Admin.prototype.gotoAsset:
a lot of Tree view operations fail after this point.  where the View version just directly goes to the URL, the Tree view tries to modify the URL to pass the extjs-style grid's parameters back.  this winds up creating unworkable URLs that try to do two things at once, with two '?'s, two 'op='s, etc.  there are two ways to fix this:  if we're trying to go to an asset (gotoAsset) and we're in Tree view, flop back to View mode first; or else two distinct requests, one for the remote request (which might generate additional requests to draw in dialog boxes, progress bars, forms, etc) and then when that's all done, refresh the grid view.  WebGUI.Admin.prototype.pasteAsset takes the route of flopping to Tree view first.
2013-09-24 12:28:51 -05:00
docs Revert "testenvironment does not check for correct perl version (#12377)" ... apparently this was either already done or done separately 2012-11-11 23:16:05 -05:00
eg Add a missing newline. 2010-06-24 08:43:12 -07:00
etc Remove admin console off link since it's trapped by the admin console and does nothing. 2013-09-11 09:54:32 -07:00
lib the 'cut' drop down (AssetHelper) operation basically worked, but the screen wasn't redrawn after the change, and the JSON returned during Fork polling in WebGUI::AssetHelper::Cut didn't match what the YAHOO.WebGUI.Fork.poll callback in WebGUI.Admin.prototype.openForkDialog was expecting so status communication had to be wired up. wG::ProgressTree exposes 'flat' now too for the sake of computing a progress bar. looking at only the roots nodes is ineffective; in this case, the number of root nodes would only ever be 1 though the number of child nodes to be processed could be much higher. WebGUI.Admin.prototype.openForkDialog's callback to YAHOO.WebGUI.Fork.poll handles a status JSON message (JSON inside of JSON, ugh) of "reload" and there's an admin.reload() method now. that's also callable from WebGUI.Admin.prototype.processPlugin and was done in the style of its handlers. 2013-09-24 12:28:51 -05:00
sbin spectre.pl requires Devel::Size; wasn't tested for in testEnvironment.pl 2013-02-24 19:45:09 -05:00
selenium added install parameter 2012-09-20 14:55:10 -04:00
share Revert "when flipping between Tree and View tabs with edit on, clear out the containers for the toolbars before re-adding the toolbars -- this time in YUI" 2013-09-12 13:02:01 -05:00
t remove load of nonexistant, unused modules from a test 2012-11-17 15:59:33 -05:00
www refactor WebGUI.Admin.prototype.gotoAsset slightly to avoid code duplication 2013-09-24 12:28:51 -05:00
.gitignore Fixed #10967: Using a round bracket (parenthesis) in a macro. Unbalanced parentheses can now be escaped in macro calls using the backslash character. 2009-09-14 14:27:14 -04:00
.perltidyrc perltidyrc now placed where it can do the most good 2009-05-29 18:50:01 +00:00
.proverc adding proverc file 2010-06-13 06:15:34 -05:00
app.psgi use Plack::Util instead of relying on someone leaking it. 2012-02-10 08:30:31 -08:00
benchmark.pl Logging fallback 2010-04-13 17:46:43 -04:00
README more details in the concise instructions 2012-04-16 14:16:37 -04:00
TODO Minor improvements 2010-04-18 14:51:24 -04:00

This is the PSGI branch of WebGUI8

To try this out:

 0) Start from WebGUI 7.10.23 or the example .conf and create.sql that comes with WebGUI 8.
 1) Run testEnvironment.pl to install all new requirements.
 2) Get a new wgd from http://haarg.org/wgd
 3) Copy etc/WebGUI.conf.original to www.whatever.com.conf; edit it and set dbuser, dbpass, 
    dsn, uploadsPath (eg to /data/domains/www.example.com/public/uploads/), extrasPath, 
    maintenancePage and siteName
 4) Set WEBGUI_CONFIG to point at your new config file
 5) $ export PERL5LIB='/data/WebGUI/lib'
 6) $ wgd reset --upgrade
 7) $ cd /data/WebGUI (or whereever you unpacked it)
 8) $ rsync -r -a (or cp -a) /data/WebGUI/www/extras /data/domains/www.example.com/public/
    (from whereever you unpacked it to whereever you pointed extrasPath to; note 'extras'
    goes inside 'public', both under where extrasPath points to)

To start it:

 8) $ plackup app.psgi

See docs/install.txt for more detailed installation instructions.

Currently, the best performance is achieved via:

 plackup -E none -s Starman --workers 10 --disable-keepalive

You can benchmark your server via:

 ab -t 3 -c 10 -k http://dev.localhost.localdomain:5000/ | grep Req

I'm currently getting 370 requests/second, whereas I'm getting 430/second on the non-PSGI WebGUI8 branch.

= ARCHITECTURE =

* The root level app.psgi file loads all the config files found and
  loads the site specific psgi file for each, linking them to the
  proper host names.
* The site psgi file uses the WEBGUI_CONFIG environment variable to find the config.
* It instantiates the $wg WebGUI object (one per app).
* $wg creates and stores the WebGUI::Config (one per app)
* $wg creates the $app PSGI app code ref (one per app)
* WebGUI::Middleware::Session is wrapped around $app at the outer-most layer so that it can open and
  close the $session WebGUI::Session. Any other wG middleware that needs $session should go in between
  it and $app ($session created one per request)
* $session creates the $request WebGUI::Session::Request and $response WebGUI::Session::Response
  objects (one per request)