Actions
Feature #2634
closednew base form for appionloop web GUI forms
Status:
Closed
Priority:
Normal
Assignee:
Amber Herold
Category:
Web interface
Target version:
Start date:
01/21/2014
Due date:
% Done:
0%
Estimated time:
Description
I've written a new abstraction for the appion loop web forms. Everything is backward compatible, so no rush to convert forms.
Now, all appion loop forms can be written with a single .inc file placed in processing/inc/forms.
The page is displayed in the browser by going to runAppionLoop.php and providing the name of the form class.
For example,
betamyamiweb/processing/runAppionLoop.php?expId=8556&form=MakeDDStackFormwill display the makeDDStackForm by looking in processing/inc/forms for the makeddStackForm.inc file. The file is then loaded and the form class is instantiated in the runAppionLoop.php file.
New appionloop forms will be based on the new BasicLoopForm class. New forms will simply set the parameters for the base class like this:
// Set the publications to be references on the web pages $pubList = array('appion'); $this->setPublications( $pubList ); $this->setJobType( 'makeddrawframestack' ); $this->setOutputDirectory( 'ddstack' ); $this->setBaseRunName( 'ddstack' ); $this->setTitle( 'makeDDRawFrameStack.py Launcher' ); $this->setHeading( 'Create a Direct Detector Frame Stack' ); $this->setExeFile( 'makeDDRawFrameStack.py' ); $this->setGuideURL( "http://emg.nysbc.org/projects/appion/wiki/Appion_Processing" ); $this->setTestable( True ); // True to activate "test single image". $this->setUseLegOutDir( False ); // The output directory will be created in the Appion run directory rather than Leginon. $this->setShowDesc( True ); // Flag to hide the description field of the run parameters.
This takes care of all the gui stuff that is common to most Appion Loop interfaces.
Then you just need to write a function to display parameters specific to the method that the interface is for, and also a function that handles displaying any "test single image" results, since that changes depending on what is being tested.
The createAppionLoopTable() function has been rewritten to use the BasicForm class in appionLoopTable.inc.
Will check this in asap, hopefully after an in person code review with Anchi, since the changes are pretty far reaching.
Actions