53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
 | 
						|
* Scheme of things:
 | 
						|
 | 
						|
main:
 | 
						|
#
 | 
						|
# Initial entry - route is "/<whatever>"
 | 
						|
#
 | 
						|
set initial panel
 | 
						|
for initial panel:
 | 
						|
	load up _data hash with DB fields
 | 
						|
	load up stash with pointer(s) to control fields hash(= get-))
 | 
						|
		and a pointer to the prefix_data hash
 | 
						|
render initial panel
 | 
						|
 | 
						|
do_update:
 | 
						|
#
 | 
						|
# Return after submit pushed on panel (this is a post) - route is "/<whatever>u"
 | 
						|
# parameters in the params hash.
 | 
						|
#
 | 
						|
load up all params into prefix_data hash:
 | 
						|
By panel (series of if statements - only one executed):
 | 
						|
		call validate-PANEL() - return ret = ok or error message
 | 
						|
			
 | 
						|
if validation not ok:
 | 
						|
	render back to current panel with error message in stash
 | 
						|
otherwise:
 | 
						|
	By panel (series of if statements - only one executed):
 | 
						|
		Copy back to DB all relevant params (is this just the DB params for this panel?)
 | 
						|
		do whatever is required: call perform-PANEL() - return "ok" or Error Message
 | 
						|
			call signal-event for any global actions specified (check it exists - error and continue?)
 | 
						|
			if action smeserver-<whatever>-update exists
 | 
						|
				signal_event smeserver-<whatever>-update
 | 
						|
			call signal-event for any specific actions for thids panel (check it exists first - error and continue)
 | 
						|
		set success in stash
 | 
						|
		if no "nextpanel" entry:
 | 
						|
			set firstpanel
 | 
						|
		else 
 | 
						|
			set nextpanel
 | 
						|
		call render
 | 
						|
 | 
						|
do_display:
 | 
						|
#
 | 
						|
# Return after link clicked in table (this is a get) - route is "/<whatever>d"
 | 
						|
# Expects ?trt=PANEL&selected="TableRowName" plus any other required
 | 
						|
#
 | 
						|
load up all supplied params into prefix_data hash
 | 
						|
call get-selected-PANEL() - returns hash of all relevent parameters
 | 
						|
load up returned hash into prefix_data
 | 
						|
render - to called panel
 | 
						|
 | 
						|
 | 
						|
 |