git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@1823 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
		
							parent
							
								
									0cbd4fe4ba
								
							
						
					
					
						commit
						22b4b2b2f9
					
				
					 17 changed files with 1935 additions and 23 deletions
				
			
		
							
								
								
									
										140
									
								
								agent/ui/AgentJobView.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										140
									
								
								agent/ui/AgentJobView.html
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,140 @@ | |||
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  | ||||
| <!--<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> //--> | ||||
| <html xmlns:nevow="http://nevow.com/ns/nevow/0.1"> | ||||
| 
 | ||||
| <!-- Job Overview Page for loops.agent UI    Version: 0.1 //--> | ||||
| 
 | ||||
|   <head> | ||||
|     <title>loops</title> | ||||
|     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | ||||
| 
 | ||||
|     <style type="text/css" media="all">@import url("/css/zope3_tablelayout.css");</style> | ||||
| 
 | ||||
|     <style type="text/css" media="screen">@import url("/css/base.css");</style> | ||||
| 
 | ||||
|     <style type="text/css" media="print">@import url("/css/print.css");</style> | ||||
| 
 | ||||
|     <style type="text/css" media="all">@import url("/css/loops.css");</style> | ||||
| 
 | ||||
|     <style type="text/css" media="all">@import url("/css/custom.css");</style> | ||||
| 
 | ||||
| 
 | ||||
|     <script type="text/javascript" | ||||
|             src="loops.js"> | ||||
|     </script> | ||||
| 
 | ||||
|     <link rel="icon" type="image/png" | ||||
|           href="favicon.png" /> | ||||
| 
 | ||||
|     <base href="AgentStart.html"/> | ||||
|   </head> | ||||
| 
 | ||||
|   <body> | ||||
|     <div class="body"> | ||||
|         <div id="global"> | ||||
|           <div class="top"> | ||||
|             <h4><b><font size="20px">loops agent.GUI</font></b></h4> | ||||
|           </div> | ||||
|         </div> | ||||
| 
 | ||||
|     <div id="menu"> | ||||
| 
 | ||||
|         <div class="box"> | ||||
|           <h4>Navigation</h4> | ||||
|           <div class="body"> | ||||
| 
 | ||||
|               <div class="content even menu-1"> | ||||
|                 <a href="http://localhost:8080" class="">Startpage</a> | ||||
|               </div> | ||||
| 
 | ||||
|               <h4>Agent configuration</h4> | ||||
| 
 | ||||
|               <div class="content even menu-3"> | ||||
|                 <a href="http://localhost:8080/joboverview" | ||||
|                    class="">job overview</a> | ||||
|               </div> | ||||
| 
 | ||||
|               <div class="content even menu-3"> | ||||
|                 <a href="http://localhost:8080/collectOutlookMails" | ||||
|                    class="">collect Outlook Mails</a> | ||||
|               </div> | ||||
| 
 | ||||
|               <div class="content odd menu-3"> | ||||
|                 <a href="http://localhost:8080/addjob" | ||||
|                    class="">add job</a> | ||||
|               </div> | ||||
| 
 | ||||
| 
 | ||||
|               <div class="content odd menu-3"> | ||||
|                 <a href="http://localhost:8080/loggingoptions" class="" | ||||
|                    title="">logging options</a> | ||||
|               </div> | ||||
| 
 | ||||
|           </div> | ||||
|         </div> | ||||
| 
 | ||||
|         <br/> | ||||
|         <br/> | ||||
| 
 | ||||
|         <div class="box"> | ||||
|           <h4>User Mode</h4> | ||||
|           <div class="body"> | ||||
|           <b>Current Mode: </b><p nevow:render="getActiveUserMode"/> | ||||
| 
 | ||||
|           </div> | ||||
|         </div> | ||||
| 
 | ||||
|     </div> | ||||
| 
 | ||||
|     <div id="content"> | ||||
|     <div></div> | ||||
|     <div></div> | ||||
| 
 | ||||
|     <div class="content-1" id="2.body" ondblclick=""> | ||||
|         <div class="line-block"> | ||||
|             <div class="line"><br /></div> | ||||
|             </div> | ||||
|             <div class="section"> | ||||
|             <h3><a id="agent-ui-startpage" name="agent-ui-startpage">Agent Job overview</a></h3> | ||||
| 
 | ||||
|             <ul class="simple"> | ||||
|             <li>Here you will get an overview of the current jobs registered in the agent system</li> | ||||
|             </ul> | ||||
|             </div> | ||||
|             <div class="section"> | ||||
|                 <h3><a id="form-overview" name="form-overview">Overview</a></h3> | ||||
|                 <ul class="simple"> | ||||
|                 <li><b>Current jobs </b><div nevow:render="data" nevow:data="displayViewForm"/></li> | ||||
|                 </ul> | ||||
|                 <div align="center"> | ||||
|                 <form action="ViewJobDetails" method="POST"> | ||||
|                     <select name="jobList" size="4"> | ||||
|                         <p nevow:render="fillJobList"> | ||||
|                             <option nevow:pattern="optionsJobList" nevow:render="data"/> | ||||
|                         </p> | ||||
|                     </select> | ||||
|                     <p><input type="submit" value="View details"/></p> | ||||
|                 </form> | ||||
|                 </div> | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
| 
 | ||||
|     <div id="sub-section" define-macro="sub-section"> | ||||
|     </div> | ||||
| 
 | ||||
|     <div id="footer" class="footer" define-macro="footer"> | ||||
| 
 | ||||
|       © Copyright 2007, cyberconcepts IT-Consulting Dr. Helmut Merz | ||||
|       (<a href="http://loops.cy55.de/impressum">Impressum</a>)<br /> | ||||
|       Powered by <b><a href="http://www.python.org">Python</a></b> · | ||||
|       <b><a href="http://wiki.zope.org/zope3">Zope 3</a></b> · | ||||
|       <b><a href="http://loops.cy55.de/projekte/loops">loops</a></b>. | ||||
| 
 | ||||
|     </div> | ||||
| 
 | ||||
|     </div> | ||||
| 
 | ||||
|     </body> | ||||
| 
 | ||||
| </html> | ||||
							
								
								
									
										137
									
								
								agent/ui/AgentJobViewDetail.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								agent/ui/AgentJobViewDetail.html
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,137 @@ | |||
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||||
| <!--<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> //--> | ||||
| <html xmlns:nevow="http://nevow.com/ns/nevow/0.1"> | ||||
| 
 | ||||
| <!-- Detailed Job View Page for loops.agent UI    Version: 0.1 //--> | ||||
| 
 | ||||
|   <head> | ||||
|     <title>loops</title> | ||||
|     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | ||||
| 
 | ||||
|     <style type="text/css" media="all">@import url("/css/zope3_tablelayout.css");</style> | ||||
| 
 | ||||
|     <style type="text/css" media="screen">@import url("/css/base.css");</style> | ||||
| 
 | ||||
|     <style type="text/css" media="print">@import url("/css/print.css");</style> | ||||
| 
 | ||||
|     <style type="text/css" media="all">@import url("/css/loops.css");</style> | ||||
| 
 | ||||
|     <style type="text/css" media="all">@import url("/css/custom.css");</style> | ||||
| 
 | ||||
| 
 | ||||
|     <script type="text/javascript" | ||||
|             src="loops.js"> | ||||
|     </script> | ||||
| 
 | ||||
|     <link rel="icon" type="image/png" | ||||
|           href="favicon.png" /> | ||||
| 
 | ||||
|     <base href="AgentStart.html"/> | ||||
|   </head> | ||||
| 
 | ||||
|   <body> | ||||
|     <div class="body"> | ||||
|         <div id="global"> | ||||
|           <div class="top"> | ||||
|             <h4><b><font size="20px">loops agent.GUI</font></b></h4> | ||||
|           </div> | ||||
|         </div> | ||||
| 
 | ||||
|     <div id="menu"> | ||||
| 
 | ||||
|         <div class="box"> | ||||
|           <h4>Navigation</h4> | ||||
|           <div class="body"> | ||||
| 
 | ||||
|               <div class="content even menu-1"> | ||||
|                 <a href="http://localhost:8080" class="">Startpage</a> | ||||
|               </div> | ||||
| 
 | ||||
|               <h4>Agent configuration</h4> | ||||
| 
 | ||||
|               <div class="content even menu-3"> | ||||
|                 <a href="http://localhost:8080/joboverview" | ||||
|                    class="">job overview</a> | ||||
|               </div> | ||||
| 
 | ||||
|               <div class="content even menu-3"> | ||||
|                 <a href="http://localhost:8080/collectOutlookMails" | ||||
|                    class="">collect Outlook Mails</a> | ||||
|               </div> | ||||
| 
 | ||||
|               <div class="content odd menu-3"> | ||||
|                 <a href="http://localhost:8080/addjob" | ||||
|                    class="">add job</a> | ||||
|               </div> | ||||
| 
 | ||||
| 
 | ||||
|               <div class="content odd menu-3"> | ||||
|                 <a href="http://localhost:8080/loggingoptions" class="" | ||||
|                    title="">logging options</a> | ||||
|               </div> | ||||
| 
 | ||||
|           </div> | ||||
|         </div> | ||||
| 
 | ||||
|         <br/> | ||||
|         <br/> | ||||
| 
 | ||||
|         <div class="box"> | ||||
|           <h4>User Mode</h4> | ||||
|           <div class="body"> | ||||
|           <b>Current Mode: </b><p nevow:render="getActiveUserMode"/> | ||||
| 
 | ||||
|           </div> | ||||
|         </div> | ||||
| 
 | ||||
|     </div> | ||||
| 
 | ||||
|     <div id="content"> | ||||
|     <div></div> | ||||
|     <div></div> | ||||
| 
 | ||||
|     <div class="content-1" id="2.body" ondblclick=""> | ||||
|         <div class="line-block"> | ||||
|             <div class="line"><br /></div> | ||||
|             </div> | ||||
|             <div class="section"> | ||||
|             <h3><a id="agent-ui-startpage" name="agent-ui-startpage">Agent Job overview</a></h3> | ||||
| 
 | ||||
|             <ul class="simple"> | ||||
|             <li>Here you will get an overview of the current jobs registered in the agent system</li> | ||||
|             </ul> | ||||
|             </div> | ||||
|             <div class="section"> | ||||
|                 <h3><a id="form-overview" name="form-overview">Overview</a></h3> | ||||
|                 <ul class="simple"> | ||||
|                 <li><b>Job details</b><div nevow:render="data" nevow:data="displayViewForm"/></li> | ||||
|                 </ul> | ||||
|                 <div align="center"> | ||||
|                 <table border="0" cellpadding="10"> | ||||
|                     <p nevow:render="displayJobDetails"> | ||||
|                         <tr nevow:pattern="jobDetails" nevow:render="data"/> | ||||
|                     </p> | ||||
|                 </table> | ||||
|                 </div> | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
| 
 | ||||
|     <div id="sub-section" define-macro="sub-section"> | ||||
|     </div> | ||||
| 
 | ||||
|     <div id="footer" class="footer" define-macro="footer"> | ||||
| 
 | ||||
|       © Copyright 2007, cyberconcepts IT-Consulting Dr. Helmut Merz | ||||
|       (<a href="http://loops.cy55.de/impressum">Impressum</a>)<br /> | ||||
|       Powered by <b><a href="http://www.python.org">Python</a></b> · | ||||
|       <b><a href="http://wiki.zope.org/zope3">Zope 3</a></b> · | ||||
|       <b><a href="http://loops.cy55.de/projekte/loops">loops</a></b>. | ||||
| 
 | ||||
|     </div> | ||||
| 
 | ||||
|     </div> | ||||
| 
 | ||||
|     </body> | ||||
| 
 | ||||
| </html> | ||||
							
								
								
									
										137
									
								
								agent/ui/AgentOutlookMailView.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								agent/ui/AgentOutlookMailView.html
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,137 @@ | |||
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||||
| <!--<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> //--> | ||||
| <html xmlns:nevow="http://nevow.com/ns/nevow/0.1"> | ||||
| 
 | ||||
| <!-- Outlook Mails Page for loops.agent UI    Version: 0.1 //--> | ||||
| 
 | ||||
|   <head> | ||||
|     <title>loops</title> | ||||
|     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | ||||
| 
 | ||||
|     <style type="text/css" media="all">@import url("/css/zope3_tablelayout.css");</style> | ||||
| 
 | ||||
|     <style type="text/css" media="screen">@import url("/css/base.css");</style> | ||||
| 
 | ||||
|     <style type="text/css" media="print">@import url("/css/print.css");</style> | ||||
| 
 | ||||
|     <style type="text/css" media="all">@import url("/css/loops.css");</style> | ||||
| 
 | ||||
|     <style type="text/css" media="all">@import url("/css/custom.css");</style> | ||||
| 
 | ||||
| 
 | ||||
|     <script type="text/javascript" | ||||
|             src="loops.js"> | ||||
|     </script> | ||||
| 
 | ||||
|     <link rel="icon" type="image/png" | ||||
|           href="favicon.png" /> | ||||
| 
 | ||||
|     <base href="AgentStart.html"/> | ||||
|   </head> | ||||
| 
 | ||||
|   <body> | ||||
|     <div class="body"> | ||||
|         <div id="global"> | ||||
|           <div class="top"> | ||||
|             <h4><b><font size="20px">loops agent.GUI</font></b></h4> | ||||
|           </div> | ||||
|         </div> | ||||
| 
 | ||||
|     <div id="menu"> | ||||
| 
 | ||||
|         <div class="box"> | ||||
|           <h4>Navigation</h4> | ||||
|           <div class="body"> | ||||
| 
 | ||||
|               <div class="content even menu-1"> | ||||
|                 <a href="http://localhost:8080" class="">Startpage</a> | ||||
|               </div> | ||||
| 
 | ||||
|               <h4>Agent configuration</h4> | ||||
| 
 | ||||
|               <div class="content even menu-3"> | ||||
|                 <a href="http://localhost:8080/joboverview" | ||||
|                    class="">job overview</a> | ||||
|               </div> | ||||
| 
 | ||||
|               <div class="content even menu-3"> | ||||
|                 <a href="http://localhost:8080/collectOutlookMails" | ||||
|                    class="">collect Outlook Mails</a> | ||||
|               </div> | ||||
| 
 | ||||
|               <div class="content odd menu-3"> | ||||
|                 <a href="http://localhost:8080/addjob" | ||||
|                    class="">add job</a> | ||||
|               </div> | ||||
| 
 | ||||
| 
 | ||||
|               <div class="content odd menu-3"> | ||||
|                 <a href="http://localhost:8080/loggingoptions" class="" | ||||
|                    title="">logging options</a> | ||||
|               </div> | ||||
| 
 | ||||
|           </div> | ||||
|         </div> | ||||
| 
 | ||||
|         <br/> | ||||
|         <br/> | ||||
| 
 | ||||
|         <div class="box"> | ||||
|           <h4>User Mode</h4> | ||||
|           <div class="body"> | ||||
|           <b>Current Mode: </b><p nevow:render="getActiveUserMode"/> | ||||
| 
 | ||||
|           </div> | ||||
|         </div> | ||||
| 
 | ||||
|     </div> | ||||
| 
 | ||||
|     <div id="content"> | ||||
|     <div></div> | ||||
|     <div></div> | ||||
| 
 | ||||
|     <div class="content-1" id="2.body" ondblclick=""> | ||||
|         <div class="line-block"> | ||||
|             <div class="line"><br /></div> | ||||
|             </div> | ||||
|             <div class="section"> | ||||
|             <h3><a id="agent-ui-startpage" name="agent-ui-startpage">Agent: collected Outlook Mails</a></h3> | ||||
| 
 | ||||
|             <ul class="simple"> | ||||
|             <li>All currently available Outlook Mails collected by the loops agent</li> | ||||
|             </ul> | ||||
|             </div> | ||||
|             <div class="section"> | ||||
|                 <h3><a id="form-overview" name="form-overview">Overview</a></h3> | ||||
|                 <ul class="simple"> | ||||
|                 <li><b>Mail Collection</b><div nevow:render="data" nevow:data="displayViewForm"/></li> | ||||
|                 </ul> | ||||
|                 <div align="center"> | ||||
|                 <table border="0" cellpadding="10"> | ||||
|                     <p nevow:render="displayOutlookMails"> | ||||
|                         <tr nevow:pattern="OutlookMails" nevow:render="data"/> | ||||
|                     </p> | ||||
|                 </table> | ||||
|                 </div> | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
| 
 | ||||
|     <div id="sub-section" define-macro="sub-section"> | ||||
|     </div> | ||||
| 
 | ||||
|     <div id="footer" class="footer" define-macro="footer"> | ||||
| 
 | ||||
|       © Copyright 2007, cyberconcepts IT-Consulting Dr. Helmut Merz | ||||
|       (<a href="http://loops.cy55.de/impressum">Impressum</a>)<br /> | ||||
|       Powered by <b><a href="http://www.python.org">Python</a></b> · | ||||
|       <b><a href="http://wiki.zope.org/zope3">Zope 3</a></b> · | ||||
|       <b><a href="http://loops.cy55.de/projekte/loops">loops</a></b>. | ||||
| 
 | ||||
|     </div> | ||||
| 
 | ||||
|     </div> | ||||
| 
 | ||||
|     </body> | ||||
| 
 | ||||
| </html> | ||||
							
								
								
									
										133
									
								
								agent/ui/AgentStart.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										133
									
								
								agent/ui/AgentStart.html
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,133 @@ | |||
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  | ||||
| <!--<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> //--> | ||||
| <html xmlns:nevow="http://nevow.com/ns/nevow/0.1"> | ||||
| 
 | ||||
| <!-- StartPage for loops.agent UI    Version: 0.1 //--> | ||||
| 
 | ||||
|   <head> | ||||
|     <title>loops</title> | ||||
|     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | ||||
| 
 | ||||
|     <style type="text/css" media="all">@import url("/css/zope3_tablelayout.css");</style> | ||||
| 
 | ||||
|     <style type="text/css" media="screen">@import url("/css/base.css");</style> | ||||
| 
 | ||||
|     <style type="text/css" media="print">@import url("/css/print.css");</style> | ||||
| 
 | ||||
|     <style type="text/css" media="all">@import url("/css/loops.css");</style> | ||||
| 
 | ||||
|     <style type="text/css" media="all">@import url("/css/custom.css");</style> | ||||
| 
 | ||||
| 
 | ||||
|     <script type="text/javascript" | ||||
|             src="loops.js"> | ||||
|     </script> | ||||
| 
 | ||||
|     <link rel="icon" type="image/png" | ||||
|           href="favicon.png" /> | ||||
| 
 | ||||
|     <base href="AgentStart.html"/> | ||||
|   </head> | ||||
| 
 | ||||
|   <body> | ||||
|     <div class="body"> | ||||
|         <div id="global"> | ||||
|           <div class="top"> | ||||
|             <h4><b><font size="20px">loops agent.GUI</font></b></h4> | ||||
|           </div> | ||||
|         </div> | ||||
| 
 | ||||
|     <div id="menu"> | ||||
| 
 | ||||
|         <div class="box"> | ||||
|           <h4>Navigation</h4> | ||||
|           <div class="body"> | ||||
| 
 | ||||
|               <div class="content even menu-1"> | ||||
|                 <a href="http://localhost:8080" class="">Startpage</a> | ||||
|               </div> | ||||
| 
 | ||||
|               <h4>Agent configuration</h4> | ||||
| 
 | ||||
|               <div class="content odd menu-3"> | ||||
|                 <a href="http://localhost:8080/joboverview" | ||||
|                    class="">job overview</a> | ||||
|               </div> | ||||
| 
 | ||||
|               <div class="content even menu-3"> | ||||
|                 <a href="http://localhost:8080/collectOutlookMails" | ||||
|                    class="">collect Outlook Mails</a> | ||||
|               </div> | ||||
| 
 | ||||
|               <div class="content odd menu-3"> | ||||
|                 <a href="http://localhost:8080/addjob" | ||||
|                    class="">add job</a> | ||||
|               </div> | ||||
| 
 | ||||
| 
 | ||||
|               <div class="content odd menu-3"> | ||||
|                 <a href="http://localhost:8080/loggingoptions" class="" | ||||
|                    title="">logging options</a> | ||||
|               </div> | ||||
| 
 | ||||
|           </div> | ||||
|         </div> | ||||
| 
 | ||||
|         <br/> | ||||
|         <br/> | ||||
| 
 | ||||
|         <div class="box"> | ||||
|           <h4>User Mode</h4> | ||||
|           <div class="body"> | ||||
|           <b>Current Mode: </b><p nevow:render="getActiveUserMode"/> | ||||
|               <p><div align="center"><a href="ChangeUserMode"><b>[Switch Mode]</b></a></div></p> | ||||
|           </div> | ||||
|         </div> | ||||
| 
 | ||||
|     </div> | ||||
| 
 | ||||
|     <div id="content"> | ||||
|     <div></div> | ||||
|     <div></div> | ||||
| 
 | ||||
|     <div class="content-1" id="2.body" ondblclick=""> | ||||
|         <div class="line-block"> | ||||
|             <div class="line"><br /></div> | ||||
|             </div> | ||||
|             <div class="section"> | ||||
|             <h3><a id="agent-ui-startpage" name="agent-ui-startpage">Startpage</a></h3> | ||||
| 
 | ||||
|             <ul class="simple"> | ||||
|             <li>This page contains some information about the loops agent UI. On the left side you can find the | ||||
|             navigation panel where you can choose between a general job overview to be displayed, add a job or change the | ||||
|             logging options. Also below this navigation menue you will find a button which switches the User mode between | ||||
|             <i>Professional</i> and <i>Simple Mode</i>. This button is to be found on this start page only.</li> | ||||
|             </ul> | ||||
|             </div> | ||||
|             <div class="section"> | ||||
|                 <h3><a id="agent-version" name="agent-version">Version</a></h3> | ||||
|                 <ul class="simple"> | ||||
|                 <li>Agent: <div nevow:render="getAgentVersion"/></li> | ||||
|                 </ul> | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
| 
 | ||||
|     <div id="sub-section" define-macro="sub-section"> | ||||
|     </div> | ||||
| 
 | ||||
|     <div id="footer" class="footer" define-macro="footer"> | ||||
| 
 | ||||
|       © Copyright 2007, cyberconcepts IT-Consulting Dr. Helmut Merz | ||||
|       (<a href="http://loops.cy55.de/impressum">Impressum</a>)<br /> | ||||
|       Powered by <b><a href="http://www.python.org">Python</a></b> · | ||||
|       <b><a href="http://wiki.zope.org/zope3">Zope 3</a></b> · | ||||
|       <b><a href="http://loops.cy55.de/projekte/loops">loops</a></b>. | ||||
| 
 | ||||
|     </div> | ||||
| 
 | ||||
|     </div> | ||||
| 
 | ||||
|     </body> | ||||
| 
 | ||||
| </html> | ||||
							
								
								
									
										26
									
								
								agent/ui/StartUpAgentUI.tac.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								agent/ui/StartUpAgentUI.tac.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,26 @@ | |||
| #------------------------------------------------- | ||||
| # StartUpAgentUI.tac.py | ||||
| # start the twisted webserver and initialize the | ||||
| # nevow framework/application | ||||
| # author: Juergen Menzinger | ||||
| # version: 01.alpha | ||||
| # start with twistd.py -noy StartUpAgentUI.tac.py | ||||
| # requires AgentStart.html | ||||
| #          AgentJobView.html | ||||
| #          AgentJobViewDetail.html | ||||
| #          AgentOutlookMailView.html | ||||
| #------------------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| from twisted.application import internet | ||||
| from twisted.application import service | ||||
| from nevow import appserver | ||||
| import web | ||||
| import sys, os, socket | ||||
| 
 | ||||
| 
 | ||||
| application = service.Application('loops agent') | ||||
| site = appserver.NevowSite(web.AgentHome()) | ||||
| webServer = internet.TCPServer(8080, site) | ||||
| webServer.setServiceParent(application) | ||||
| 
 | ||||
							
								
								
									
										99
									
								
								agent/ui/css/base.css
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								agent/ui/css/base.css
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,99 @@ | |||
| /* | ||||
|  $Id: base.css 1779 2007-06-07 19:37:44Z helmutm $ | ||||
| 
 | ||||
|  based on http://www.tjkdesign.com/articles/liquid/4.asp | ||||
| 
 | ||||
| */ | ||||
| 
 | ||||
| body { | ||||
|     min-width:640px; | ||||
|     margin: 0; | ||||
|     padding: 0; | ||||
|     font: 9pt Verdana, Tahoma, Arial, Helvetica, sans-serif; | ||||
|     background-color: white; | ||||
|     color: #000040; | ||||
| } | ||||
| 
 | ||||
| #global,#menu,#sub-section,#footer { | ||||
|     overflow: hidden; | ||||
|     display: inline-block; | ||||
| } | ||||
| 
 | ||||
| #content { | ||||
|     display: inline-block; | ||||
| } | ||||
| 
 | ||||
| #global,#footer {width:100%} | ||||
| #menu,#content,#sub-section {float:left} | ||||
| #menu {width:20%} | ||||
| #content {width:62%} | ||||
| #sub-section {width:17%} | ||||
| #footer {clear:left} | ||||
| 
 | ||||
| /* more general stuff */ | ||||
| 
 | ||||
| .top image { | ||||
|     margin-top: -1px; | ||||
| } | ||||
| 
 | ||||
| div.box { | ||||
|     margin: 12px 12px 8px 10px; | ||||
|     border: 1px solid #ccc; | ||||
|     border-bottom: none; | ||||
| } | ||||
| 
 | ||||
| div.box h4 { | ||||
|     font: 110% Verdana, Tahoma, Arial, Helvetica, sans-serif; | ||||
|     color: #000040; | ||||
|     border: none; | ||||
|     border-bottom: 1px solid #ccc; | ||||
|     padding: 4px; | ||||
|     padding-top: 1px; | ||||
|     padding-bottom: 3px; | ||||
|     background-color: #ddd; | ||||
|     height: auto; | ||||
| } | ||||
| 
 | ||||
| table.listing { | ||||
|     margin: 1px; | ||||
|     margin-top: 6px; | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| table.listing th { | ||||
|     font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif; | ||||
|     color: #000040; | ||||
| } | ||||
| 
 | ||||
| .footer { | ||||
|     text-align: center; | ||||
|     border-top: 1px solid #ccc; | ||||
|     border-bottom: none; | ||||
|     margin-top: 12px; | ||||
|     padding-top: 6px; | ||||
| } | ||||
| 
 | ||||
| .itemViews { | ||||
|     border-bottom-width: 2px; | ||||
| } | ||||
| 
 | ||||
| .button { | ||||
|     margin: 1em 0 1em 0; | ||||
| } | ||||
| 
 | ||||
| .button a { | ||||
|     padding: 2px 4px 2px 4px; | ||||
|     background-color: #e8e8e8; | ||||
|     text-decoration: None; | ||||
|     color: Black; | ||||
|     border-width: 2px; | ||||
|     border-style: solid; | ||||
|     border-color: #f4f4f4 #989898 #989898 #f4f4f4; | ||||
| } | ||||
| 
 | ||||
| pre { | ||||
|     background-color: #f4f4f4; | ||||
| } | ||||
| 
 | ||||
| #footer { border-bottom: none; } | ||||
| 
 | ||||
							
								
								
									
										24
									
								
								agent/ui/css/custom.css
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								agent/ui/css/custom.css
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| /* | ||||
|  $Id: custom.css 1302 2006-08-17 15:21:10Z helmutm $ | ||||
| 
 | ||||
|  cyberconcepts specialties | ||||
|   | ||||
| */ | ||||
| 
 | ||||
| body { | ||||
|     color: #242424; | ||||
| } | ||||
| 
 | ||||
| a { | ||||
|     text-decoration: none; | ||||
|     color: #344080; | ||||
|     background-color: transparent; | ||||
| } | ||||
| 
 | ||||
| .top { | ||||
|     border-bottom: 1px solid #d0d0d0; | ||||
|     margin-bottom: 2px; | ||||
|     /*background-image: url('bg_cyberview.gif') | ||||
|     height: 75px;*/ | ||||
| } | ||||
| 
 | ||||
							
								
								
									
										138
									
								
								agent/ui/css/loops.css
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										138
									
								
								agent/ui/css/loops.css
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,138 @@ | |||
| /* | ||||
|  $Id: loops.css 1729 2007-05-13 08:56:47Z helmutm $ | ||||
| 
 | ||||
|  settings specific for view / node objects | ||||
| 
 | ||||
| */ | ||||
| 
 | ||||
| a[href]:hover { | ||||
|     text-decoration: none; | ||||
|     color: #803000; | ||||
| } | ||||
| 
 | ||||
| pre { | ||||
|     overflow: scroll; | ||||
|     max-height: 35em; | ||||
| } | ||||
| 
 | ||||
| .box div.body div.even { | ||||
|     background-color: #f4f4f4; | ||||
| } | ||||
| 
 | ||||
| .box { | ||||
|     margin: 12px; | ||||
| } | ||||
| 
 | ||||
| #body { | ||||
|     margin-left: 5px; | ||||
| } | ||||
| 
 | ||||
| /*.content-1 h1 { */ | ||||
| h1 { | ||||
|     font-size: 160%; | ||||
|     font-weight: bold; | ||||
| } | ||||
| 
 | ||||
| .content-2 h1, h2 { | ||||
|     font-size: 140%; | ||||
| } | ||||
| 
 | ||||
| .content-3 h1, .content-2 h2, h3 { | ||||
|     font-size: 130%; | ||||
|     font-weight: bold; | ||||
| } | ||||
| 
 | ||||
| .content-4 h1, .content-3 h2, .content-2 h3, .content-1 h4 { | ||||
|     font-size: 120%; | ||||
| } | ||||
| 
 | ||||
| .content-5 h1, .content-4 h2, .content-3 h3, content-2 h4 { | ||||
|     font-size: 100%; | ||||
|     border: none; | ||||
| } | ||||
| 
 | ||||
| .subcolumn { | ||||
|     display: inline; | ||||
|     float: left; | ||||
| } | ||||
| 
 | ||||
| .box { | ||||
|     margin: 5px; | ||||
|     padding: 6px; | ||||
|     padding-top: 0; | ||||
| } | ||||
| 
 | ||||
| .box h1, .box h2, .box h3 { | ||||
|     border-bottom: None; | ||||
| } | ||||
| 
 | ||||
| div.menu-1, div.menu-2 { | ||||
|     border-top: 1px solid #eeeeee; | ||||
|     font-weight: bold; | ||||
| } | ||||
| 
 | ||||
| .box div.body div.menu-3 { | ||||
|     border-top: none; | ||||
|     padding-left: 1.5em; | ||||
| } | ||||
| 
 | ||||
| .box div.body div.menu-4 { | ||||
|     padding-left: 3em; | ||||
|     font-size: 90% | ||||
| } | ||||
| 
 | ||||
| .flow-left { | ||||
|     float: left; | ||||
| } | ||||
| 
 | ||||
| .flow-right { | ||||
|     float: right; | ||||
| } | ||||
| 
 | ||||
| div.image { | ||||
|     margin-top: 10px; | ||||
|     margin-right: 5px; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| /* search stuff */ | ||||
| 
 | ||||
| .searchForm input.button, input.submit { | ||||
|     padding: 2px; | ||||
| } | ||||
| 
 | ||||
| .searchForm input.submit { | ||||
|     font-weight: bold; | ||||
| } | ||||
| 
 | ||||
| /* dojo stuff */ | ||||
| 
 | ||||
| /*.dojoComboBox { | ||||
|     width: 200px; | ||||
| }*/ | ||||
| 
 | ||||
| .dojoDialog { | ||||
|     background: #eee; | ||||
|     border: 1px solid #999; | ||||
|     -moz-border-radius: 5px; | ||||
|     padding: 4px; | ||||
| } | ||||
| 
 | ||||
| .dojoDialog th { | ||||
|     font-size: 120%; | ||||
|     padding: 0 5px 8px 5px; | ||||
| } | ||||
| 
 | ||||
| .dojoDialog .headline { | ||||
|     font-weight: bold; | ||||
| } | ||||
| 
 | ||||
| .dojoDialog input.text { | ||||
|     width: 100%; | ||||
|     margin-right: 10px; | ||||
| } | ||||
| 
 | ||||
| .dojoDialog input.submit { | ||||
|     font-weight: bold; | ||||
| } | ||||
| 
 | ||||
							
								
								
									
										13
									
								
								agent/ui/css/print.css
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								agent/ui/css/print.css
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | |||
| /* | ||||
|  $Id: print.css 1340 2006-09-12 08:39:40Z helmutm $ | ||||
| 
 | ||||
| */ | ||||
| 
 | ||||
| .top, #header, #menu, #sub-section, #footer { | ||||
|     display: none; | ||||
| } | ||||
| 
 | ||||
| #content { | ||||
|     width: 100%; | ||||
|     color: Black; | ||||
| } | ||||
							
								
								
									
										662
									
								
								agent/ui/css/zope3_tablelayout.css
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										662
									
								
								agent/ui/css/zope3_tablelayout.css
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,662 @@ | |||
| /* | ||||
| ** Zope3 style sheet for CSS2-capable browsers. | ||||
| ** For future skin see zope.app.boston. | ||||
| */ | ||||
| 
 | ||||
| /* | ||||
| * { border: 1px dotted red } | ||||
| */ | ||||
| 
 | ||||
| 
 | ||||
| /* Basic Elements */ | ||||
| 
 | ||||
| body { | ||||
|     font: 85% Helvetica, Arial, sans-serif; | ||||
|     background: White; | ||||
|     color: Black; | ||||
|     margin: 0; | ||||
|     padding: 0; | ||||
| /* These work in IE only, changes the look of the scrollbar + textareas */ | ||||
|     scrollbar-base-color: White; | ||||
|     scrollbar-highlight-color: White; | ||||
|     scrollbar-track-color: #F8F8F8; | ||||
|     scrollbar-darkshadow-color: #F8F8F8; | ||||
|     scrollbar-3dlight-color: #369; | ||||
|     scrollbar-shadow-color: #369; | ||||
|     scrollbar-arrow-color: Black; | ||||
| } | ||||
| 
 | ||||
| table { | ||||
|     border-collapse: collapse; | ||||
|     font-size: 100%; | ||||
| } | ||||
| 
 | ||||
| a { | ||||
|     text-decoration: none; | ||||
|     color: #369; | ||||
|     background-color: transparent; | ||||
| } | ||||
| 
 | ||||
| a[href]:active { | ||||
|     text-decoration: underline; | ||||
| } | ||||
| 
 | ||||
| img { | ||||
|     border: none; | ||||
|     vertical-align: middle; | ||||
| } | ||||
| 
 | ||||
| p { | ||||
|     margin: 0.5em 0em 1em 0em; | ||||
|     line-height: 1.5em; | ||||
| } | ||||
| 
 | ||||
| p a:visited { | ||||
|     color: Purple; | ||||
|     background-color: transparent; | ||||
| } | ||||
| 
 | ||||
| p a:active { | ||||
|     color: Red; | ||||
|     background-color: transparent; | ||||
| } | ||||
| 
 | ||||
| p img { | ||||
|     border: 0; | ||||
|     margin: 0; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| hr { | ||||
|     clear: both; | ||||
|     height: 1px; | ||||
|     color: #369; | ||||
|     background-color: transparent; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| h1, h2, h3, h4, h5, h6 { | ||||
|     color: Black; | ||||
|     clear: left; | ||||
|     font: 100% bold Verdana, Helvetica, Arial, sans-serif; | ||||
|     margin: 0; | ||||
|     padding-top: 0.5em; | ||||
|     border-bottom: 1px solid #369; | ||||
| } | ||||
| 
 | ||||
| h1 { | ||||
|     font-size: 160%; | ||||
| } | ||||
| 
 | ||||
| h2 { | ||||
|     font-size: 150%; | ||||
| } | ||||
| 
 | ||||
| h3 { | ||||
|     font-size: 140%; | ||||
| } | ||||
| 
 | ||||
| h4 { | ||||
|     font-size: 120%; | ||||
| } | ||||
| 
 | ||||
| h5 { | ||||
|     font-size: 100%; | ||||
| } | ||||
| 
 | ||||
| h6 { | ||||
|     font-size: 80%; | ||||
| } | ||||
| 
 | ||||
| ul { | ||||
|     line-height: 1.5em; | ||||
|     /* list-style-image: url("bullet.gif"); */ | ||||
|     margin-left: 2em; | ||||
|     padding:0; | ||||
| } | ||||
| 
 | ||||
| ol { | ||||
|     line-height: 1.5em; | ||||
|     margin-left: 2em; | ||||
|     padding:0; | ||||
| } | ||||
| 
 | ||||
| dl { | ||||
| } | ||||
| 
 | ||||
| dt { | ||||
|     font-weight: bold; | ||||
| } | ||||
| 
 | ||||
| dd { | ||||
|     line-height: 1.5em; | ||||
|     margin-bottom: 1em; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| fieldset { | ||||
|     border: 1px solid #A0A0A0; | ||||
|     /* | ||||
|     margin: 2em 0em 1em 0em; | ||||
|     padding: 1em 0em; | ||||
|     */ | ||||
|     margin: 0em 0em 2em 0em; | ||||
|     padding: 0 1em 1em 1em; | ||||
| } | ||||
| 
 | ||||
| legend { | ||||
|     background: White; | ||||
|     padding: 0.5em; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| form { | ||||
|     border: none; | ||||
|     margin: 0; | ||||
| } | ||||
| 
 | ||||
| textarea { | ||||
|     color: Black; | ||||
|     width: 88%; | ||||
|     padding: 0.1em; | ||||
| } | ||||
| 
 | ||||
| input { | ||||
|     font: normal 100% Verdana, Helvetica, Arial, sans-serif; | ||||
|     color: Black; | ||||
|     vertical-align: middle; | ||||
|     margin-bottom: 1px; /* IE bug fix */ | ||||
|     padding: 0.1em; | ||||
| } | ||||
| 
 | ||||
| select { | ||||
|     font: normal 100% Verdana, Helvetica, Arial, sans-serif; | ||||
|     vertical-align: top; | ||||
| } | ||||
| 
 | ||||
| abbr, acronym, .explain { | ||||
|     border-bottom: 1px dotted Black; | ||||
|     color: Black; | ||||
|     background-color: transparent; | ||||
|     cursor: help; | ||||
| } | ||||
| 
 | ||||
| q { | ||||
|     font-family: Times, "Times New Roman", serif; | ||||
|     font-style: italic; | ||||
|     font-size: 120%; | ||||
| } | ||||
| 
 | ||||
| blockquote { | ||||
|     font-family: Times, "Times New Roman", serif; | ||||
|     font-style: italic; | ||||
|     font-size: 120%; | ||||
| } | ||||
| 
 | ||||
| code { | ||||
|     font-size: 120%; | ||||
|     color: Black; | ||||
|     background-color: #CCCCCC; | ||||
| } | ||||
| 
 | ||||
| pre { | ||||
|     font-size: 120%; | ||||
|     padding: 1em; | ||||
|     border: 1px solid #A0A0A0; | ||||
|     color: Black; | ||||
|     background-color: #CCCCCC; | ||||
| } | ||||
| 
 | ||||
| .netscape4 { | ||||
|     display: none; | ||||
| } | ||||
| 
 | ||||
| /* layout table | ||||
| */ | ||||
| 
 | ||||
| #layout { | ||||
|     width: 100%; | ||||
|     table-layout: auto; | ||||
|     font-size: 100%; | ||||
|     border-collapse: collapse; | ||||
|     padding: 0px; | ||||
|     margin: 0px; | ||||
| } | ||||
| 
 | ||||
| #layout td { | ||||
|     vertical-align: top; | ||||
| } | ||||
| 
 | ||||
| #layout td.global { | ||||
|     width: 100%; | ||||
| } | ||||
| 
 | ||||
| #layout td.navigators { | ||||
|     width: 200px; | ||||
| } | ||||
| 
 | ||||
| #layout td.workspace { | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| /*  Styles for xmltree | ||||
| */ | ||||
| 
 | ||||
| #navtreecontents { | ||||
|     padding-right: 35px; | ||||
| } | ||||
| 
 | ||||
| #navtreecontents a { | ||||
|        cursor: pointer; | ||||
|        height: 20px; | ||||
| } | ||||
| 
 | ||||
| #navtreecontents loading { | ||||
|        display: block; | ||||
|        padding-left: 31px; | ||||
|        height: 18px; | ||||
| } | ||||
| 
 | ||||
| #navtreecontents expand { | ||||
|        background-repeat: no-repeat; | ||||
|        padding-left: 14px; | ||||
|        display: inline; | ||||
|        cursor: pointer; | ||||
| } | ||||
| 
 | ||||
| #navtreecontents icon { | ||||
|        background-repeat: no-repeat; | ||||
|        padding-left: 20px; | ||||
|        display: inline; | ||||
|        cursor: auto; | ||||
| } | ||||
| 
 | ||||
| #navtreecontents collection { | ||||
|        display: block; | ||||
|        margin-left: 10px; | ||||
| /*     border: red solid 1pt;  */ | ||||
|        height: auto; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| /* Structural elements | ||||
| */ | ||||
| 
 | ||||
| #top { | ||||
|     border-bottom: 0.1em solid black; | ||||
| } | ||||
| 
 | ||||
| #top #userDetails { | ||||
|     float:right; | ||||
|     margin-top: 1.2em; | ||||
|     padding-right: 0.5em; | ||||
| } | ||||
| 
 | ||||
| div#action { | ||||
|     height: 24px; | ||||
|     width: 100%; | ||||
|     background-color: #336699; | ||||
| } | ||||
| 
 | ||||
| div#action ul { | ||||
|     line-height: 24px; | ||||
|     color: #FFF; | ||||
|     white-space: nowrap; | ||||
|     float: right; | ||||
|     margin: 0px; | ||||
|     padding: 0px 5px 0px 0px; | ||||
| } | ||||
| 
 | ||||
| div#action li { | ||||
|     list-style-type: none; | ||||
|     display: inline; | ||||
| } | ||||
| 
 | ||||
| div#action li a { | ||||
|     color: #FFF; | ||||
|     text-decoration: none; | ||||
|     border-left: 1px dashed white; | ||||
|     padding: 0px 5px; | ||||
| } | ||||
| 
 | ||||
| div#action li a:link { | ||||
|     color: #FFF; | ||||
| } | ||||
| 
 | ||||
| div#action li a:hover { | ||||
|     color: black; | ||||
|     background-color: white; | ||||
| } | ||||
| 
 | ||||
| #breadcrumbs { | ||||
|     margin: 0; | ||||
|     padding: 5px 5px 5px 5px; | ||||
| } | ||||
| 
 | ||||
| #navigation { | ||||
|     width: 200px; | ||||
|     vertical-align: top; | ||||
|     padding: 0px; | ||||
|     margin: 0px; | ||||
| } | ||||
| 
 | ||||
| #navigators { | ||||
|     padding: 10px 20px 0px 5px; | ||||
| } | ||||
| 
 | ||||
| /* slot boxes | ||||
| */ | ||||
| 
 | ||||
| div.box { | ||||
|     background: #CCCCCC; | ||||
|     border-right: 1px solid #CCCCCC; | ||||
|     border-left: 1px solid #CCCCCC; | ||||
|     margin-bottom: 10px; | ||||
|     padding: 0px; | ||||
| } | ||||
| 
 | ||||
| div.box h4 { | ||||
|     background: #CCCCCC; | ||||
|     border: 1px solid #CCCCCC; | ||||
|     border-style: solid solid none solid; | ||||
|     color: #808080; | ||||
|     padding: 0px 5px; | ||||
|     display: block; | ||||
|     height: 22px; | ||||
| } | ||||
| 
 | ||||
| .box div.body { | ||||
|     background: white; | ||||
|     border-bottom: 1px solid #CCCCCC; | ||||
| } | ||||
| 
 | ||||
| .box div.body div { | ||||
|     color: #777777; | ||||
|     padding: 2px 0px 5px 5px; | ||||
|     margin: 0px; | ||||
| } | ||||
| 
 | ||||
| .box div.treebody { | ||||
|     background: white; | ||||
|     border-bottom: 1px solid #CCCCCC; | ||||
| } | ||||
| 
 | ||||
| .box div.treebody table { | ||||
|     margin: 2px; | ||||
| } | ||||
| 
 | ||||
| .box div.body div.tip { | ||||
|     color: #B30000; | ||||
|     padding: 2px 0px 5px 5px; | ||||
| } | ||||
| 
 | ||||
| .box div.body div.even { | ||||
|     background: #EBEBE2; | ||||
|     padding: 4px; | ||||
| } | ||||
| 
 | ||||
| .box div.body div.odd { | ||||
|     padding: 4px; | ||||
| } | ||||
| 
 | ||||
| .box .content { | ||||
|     padding: 0.5em; | ||||
| } | ||||
| 
 | ||||
| .box h1, | ||||
| .box h2, | ||||
| .box h3, | ||||
| .box h4 { | ||||
|     margin: 0; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| #content { | ||||
| } | ||||
| 
 | ||||
| #context_information { | ||||
|     padding-top: 1em; | ||||
|     width: 15%; | ||||
|     float: left; | ||||
|     padding-left: 0.5em; | ||||
| } | ||||
| 
 | ||||
| #workspace { | ||||
|     width: 100%; | ||||
| } | ||||
| 
 | ||||
| #helpers { | ||||
| } | ||||
| 
 | ||||
| #inspectors { | ||||
| } | ||||
| 
 | ||||
| #footer { | ||||
|     border-bottom: 1px solid black; | ||||
|     float: left; | ||||
|     clear: both; | ||||
| } | ||||
| 
 | ||||
| input.textType { | ||||
|     width: 88%; /* Same as textarea */ | ||||
| } | ||||
| 
 | ||||
| input.editcheck { | ||||
|     float:left; | ||||
|     position:relative; | ||||
|     top:1em; | ||||
| } | ||||
| 
 | ||||
| div.row { | ||||
|     padding-top: 1em; | ||||
| } | ||||
| 
 | ||||
| /* | ||||
| div.label { | ||||
|     #clear: both; | ||||
|     padding-top: 10px; | ||||
| } | ||||
| */ | ||||
| 
 | ||||
| /* div.row div.field doesn't appear to be selecting. div.row div | ||||
|        is a workaround */ | ||||
| /* This seems to work in Firefox 1.0 and IE6. */ | ||||
| 
 | ||||
| div.row div.field { | ||||
|     clear: left; | ||||
|     padding-top: 1px; | ||||
| } | ||||
| 
 | ||||
| div.row div.label { | ||||
|     background: #369; | ||||
|     color: #fff; | ||||
|     padding: 0.1em 0.5em 0.1em 0.5em; /* Same as .itemViews */ | ||||
|     border: 1px solid #369; /* Same as .itemViews */ | ||||
|     margin: 0; | ||||
|     float: left; | ||||
|     clear: both; | ||||
| } | ||||
| 
 | ||||
| div.row span.error { | ||||
|     background: red; | ||||
|     color: white; | ||||
|     padding: 0.1em 0.5em 0.1em 0.5em; /* Same as .itemViews */ | ||||
|     border: 1px solid red; /* Same as .itemViews */ | ||||
|     margin: 0; | ||||
|     float: left; | ||||
|     clear: both; | ||||
| } | ||||
| /* | ||||
| div.row div.error:before { | ||||
|     content: "\2190  "; | ||||
| } | ||||
| */ | ||||
| 
 | ||||
| #metadata .label { | ||||
|     font-size: 80%; | ||||
| } | ||||
| 
 | ||||
| .itemViews { | ||||
|     background: transparent; | ||||
|     border-collapse: collapse; | ||||
|     border-bottom: 1px solid #369; | ||||
|     padding-top: 1px; | ||||
|     padding-bottom: 1px; | ||||
|     padding-left: 1em; | ||||
|     margin-top: 0.8em; | ||||
|     white-space: nowrap; | ||||
| } | ||||
| 
 | ||||
| .itemViews a { | ||||
|     background: transparent; | ||||
|     border: 1px solid #369; | ||||
|     color: Black; | ||||
|     font-weight: normal; | ||||
|     margin-right: 0.5em; | ||||
|     padding: 0.1em 0.5em 0.1em 0.5em; | ||||
| } | ||||
| 
 | ||||
| .itemViews a.selected { | ||||
|     background: #369; | ||||
|     border-bottom: #369 1px solid; | ||||
|     color: White; | ||||
|     font-weight: normal; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| .itemViews a:hover { | ||||
|     background-color: #369; | ||||
|     color: White; | ||||
| } | ||||
| 
 | ||||
| #viewspace { | ||||
|     border-collapse: collapse; | ||||
|     margin: 0; | ||||
| } | ||||
| 
 | ||||
| table.listingdescription, table.listing { | ||||
|     /* The default table for document listings. Contains name, document types, modification times etc in a file-browser-like fashion */ | ||||
|     border-collapse: collapse; | ||||
|     border-left: 1px solid #CCCCCC; | ||||
|     border-bottom: 1px solid #CCCCCC; | ||||
|     margin: 1em 0em 1em 0em; | ||||
| /*    clear: both; */ | ||||
| } | ||||
| 
 | ||||
| table.listingdescription { | ||||
|     width: 100%; | ||||
| } | ||||
| 
 | ||||
| table.listingdescription th, table.listing th { | ||||
|     background: #CCCCCC; | ||||
|     border-top: 1px solid #CCCCCC; | ||||
|     border-bottom: 1px solid #CCCCCC; | ||||
|     border-right: 1px solid #CCCCCC; | ||||
|     color: #808080; | ||||
|     font-weight: normal; | ||||
|     padding: 0em 1em 0em 1em; | ||||
|     white-space: nowrap; | ||||
| } | ||||
| 
 | ||||
| table.listingdescription td.top, table.listing td.top { | ||||
|     border-left: 1px solid White; | ||||
|     border-top: 1px solid White ! important; | ||||
|     border-right: 1px solid White ! important; | ||||
|     text-align: right ! important; | ||||
|     padding: 0em 0em 1em 0em; | ||||
|     /* insane IE row bug workaround */ | ||||
|     position: relative; | ||||
|     left: -1px; | ||||
|     top: -1px; | ||||
| } | ||||
| 
 | ||||
| table.listingdescription tr.odd, table.listing tr.odd { | ||||
|     /*every second line should be shaded */ | ||||
|     background: White; | ||||
| } | ||||
| 
 | ||||
| table.listingdescription tr.even, table.listing tr.even { | ||||
|     background: #F8F8F8; | ||||
| } | ||||
| 
 | ||||
| table.listing td { | ||||
|     border-right: 1px solid #CCCCCC; | ||||
|     padding: 0em 0.3em; | ||||
|     text-align: left; | ||||
|      white-space: nowrap; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| table.listingdescription img, table.listing img { | ||||
|     vertical-align: middle; | ||||
| } | ||||
| 
 | ||||
| table.listingdescription td { | ||||
|     border-right: 1px solid #CCCCCC; | ||||
|     padding: 5px; | ||||
|     text-align: left; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| /*colorize the matrix table used in grant.html*/ | ||||
| table.matrix td.default { | ||||
|     background: green; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| table.matrix td.changed { | ||||
|     background: red; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| div.spacer { | ||||
|     clear: both; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| .registrationSummary { | ||||
|     margin-left: 2em; | ||||
|     margin-bottom: 1em; | ||||
| } | ||||
| .registrationSummary .usageSummary { | ||||
|     font-weight: bold; | ||||
| } | ||||
| .registrationSummary .modificationLink { | ||||
|     display: block; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| div.message { | ||||
|     background: #FFCE7B; | ||||
|     border: 1px solid #FFA500; | ||||
|     color: Black; | ||||
|     font: bold 80% Verdana, Helvetica, Arial, sans-serif; | ||||
|     margin: 2em 0em 1em 0em; | ||||
|     padding: 0.5em 1em; | ||||
|     vertical-align: middle; | ||||
| } | ||||
| 
 | ||||
| div.message a { | ||||
|     color: Black; | ||||
| } | ||||
| 
 | ||||
| /* Style for page error divs.  Use this for displaying errors for a | ||||
|    page as a whole. | ||||
|  */ | ||||
| div.page_error { | ||||
|     background: #FFCE7B; | ||||
|     font: bold 80% Verdana, Helvetica, Arial, sans-serif; | ||||
|     padding: 0.5em 1em; | ||||
|     vertical-align: middle; | ||||
| } | ||||
| 
 | ||||
| div.bug { | ||||
|     background: #FFCE7B; | ||||
|     border: 1px solid #FFA500; | ||||
|     color: Black; | ||||
|     font: bold 80% Verdana, Helvetica, Arial, sans-serif; | ||||
|     margin: 2em 1em 1em 0em; | ||||
|     padding: 0.5em 1em; | ||||
|     vertical-align: middle; | ||||
| } | ||||
| 
 | ||||
							
								
								
									
										
											BIN
										
									
								
								agent/ui/images/favicon.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								agent/ui/images/favicon.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 580 B | 
							
								
								
									
										
											BIN
										
									
								
								agent/ui/images/loops_logo2.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								agent/ui/images/loops_logo2.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 13 KiB | 
							
								
								
									
										4
									
								
								agent/ui/joblist.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								agent/ui/joblist.txt
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | |||
| FileSysCont_1234;C:\Documents;*.doc;daily;transfer(http:loops.sampleserver.de) | ||||
| MailCrawl_2121;Outlook(Account_Root);daily;transfer(http:loops.sampleserver.de) | ||||
| MailCrawl_4040;Outlook(Subj:Update);20s;transfer(http:loops.sampleserver.de) | ||||
| FileSysCont_8797;C:\Tmp;size<100kByte;transfer(http:loops.sampleserver.de) | ||||
							
								
								
									
										126
									
								
								agent/ui/loops.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										126
									
								
								agent/ui/loops.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,126 @@ | |||
| /* $Id: loops.js 1667 2007-03-26 10:43:15Z helmutm $ */ | ||||
| 
 | ||||
| function openEditWindow(url) { | ||||
|     zmi = window.open(url, 'zmi'); | ||||
|     zmi.focus(); | ||||
|     return false; | ||||
| } | ||||
| 
 | ||||
| function focusOpener() { | ||||
|     if (typeof(opener) != 'undefined' && opener != null) { | ||||
|         opener.location.reload(); | ||||
|         opener.focus(); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| function replaceFieldsNode(targetId, typeId, url) { | ||||
|     token = dojo.byId(typeId).value; | ||||
|     uri = url + '?form.type=' + token; | ||||
|     dojo.io.updateNode(targetId, uri); | ||||
| } | ||||
| 
 | ||||
| function submitReplacing(targetId, formId, actionUrl) { | ||||
|     dojo.io.updateNode(targetId, { | ||||
|             url: actionUrl, | ||||
|             formNode: dojo.byId(formId), | ||||
|             method: 'post' | ||||
|         }); | ||||
|     return false; | ||||
| } | ||||
| 
 | ||||
| function inlineEdit(id, saveUrl) { | ||||
|     var iconNode = dojo.byId('inlineedit_icon'); | ||||
|     iconNode.style.visibility = 'hidden'; | ||||
|     editor = dojo.widget.createWidget('Editor', | ||||
|         {items: ['save', '|', 'formatblock', '|', | ||||
|                  'insertunorderedlist', 'insertorderedlist', '|', | ||||
|                  'bold', 'italic', '|', 'createLink', 'insertimage'], | ||||
|          saveUrl: saveUrl, | ||||
|          //closeOnSave: true,
 | ||||
|          htmlEditing: true | ||||
|         //onClose: function() {
 | ||||
|         /* onSave: function() { | ||||
|             this.disableToolbar(true); | ||||
|             iconNode.style.visibility = 'visible'; | ||||
|             //window.location.reload();
 | ||||
|          }*/ | ||||
|     }, dojo.byId(id)); | ||||
|     editor._save = function (e) { | ||||
|             if (!this._richText.isClosed) { | ||||
|                 if (this.saveUrl.length) { | ||||
|                     var content = {}; | ||||
|                     this._richText.contentFilters = []; | ||||
|                     content[this.saveArgName] = this.getHtml(); | ||||
|                     content['version'] = 'this'; | ||||
|                     dojo.io.bind({method:this.saveMethod, | ||||
|                                   url:this.saveUrl, | ||||
|                                   content:content, | ||||
|                                   handle:function(type, data, ti, kwargs) { | ||||
|                                     location.reload(false); | ||||
|                                   } | ||||
|                                  }); //alert('save');
 | ||||
|                 } else { | ||||
|                     dojo.debug("please set a saveUrl for the editor"); | ||||
|                 } | ||||
|                 if (this.closeOnSave) { | ||||
|                     this._richText.close(e.getName().toLowerCase() == "save"); | ||||
|                 } | ||||
|             } | ||||
|     } | ||||
|     return false; | ||||
| } | ||||
| 
 | ||||
| function setConceptTypeForComboBox(typeId, cbId) { | ||||
|     var t = dojo.byId(typeId).value; | ||||
|     var cb = dojo.widget.manager.getWidgetById(cbId) | ||||
|     var dp = cb.dataProvider; | ||||
|     var baseUrl = dp.searchUrl.split('&')[0]; | ||||
|     var newUrl = baseUrl + '&searchType=' + t; | ||||
|     dp.searchUrl = newUrl; | ||||
|     cb.setValue(''); | ||||
| } | ||||
| 
 | ||||
| var dialogs = {} | ||||
| 
 | ||||
| function objectDialog(dlgName, url) { | ||||
|     dojo.require('dojo.widget.Dialog'); | ||||
|     dojo.require('dojo.widget.ComboBox'); | ||||
|     dlg = dialogs[dlgName]; | ||||
|     if (!dlg) { | ||||
|         //dlg = dojo.widget.fromScript('Dialog',
 | ||||
|         dlg = dojo.widget.createWidget('Dialog', | ||||
|             {bgColor: 'white', bgOpacity: 0.5, toggle: 'fade', toggleDuration: 250, | ||||
|              executeScripts: true, | ||||
|              href: url | ||||
|             }, dojo.byId('dialog.' + dlgName)); | ||||
|         dialogs[dlgName] = dlg; | ||||
|     } | ||||
|     dlg.show(); | ||||
| } | ||||
| 
 | ||||
| function addConceptAssignment() { | ||||
|     dojo.require('dojo.html') | ||||
|     node = dojo.byId('form.assignments'); | ||||
|     els = document.forms[0].elements; | ||||
|     for (var i=0; i<els.length; i++) { //getElementsByName does not work here in IE
 | ||||
|         el = els[i]; | ||||
|         if (el.name == 'concept.search.text_selected') { | ||||
|             cToken = el.value; | ||||
|         } else if (el.name == 'concept.search.text') { | ||||
|             title = el.value; | ||||
|         } | ||||
|     } | ||||
|     if (cToken.length == 0) { | ||||
|         alert('Please select a concept!'); | ||||
|         return false; | ||||
|     } | ||||
|     pToken = dojo.byId('concept.search.predicate').value; | ||||
|     token = cToken + ':' + pToken; | ||||
|     var td = document.createElement('td'); | ||||
|     td.colSpan = 5; | ||||
|     td.innerHTML = '<input type="checkbox" name="form.assignments.selected:list" value="' + token + '" checked><span>' + title + '</span>'; | ||||
|     var tr = document.createElement('tr'); | ||||
|     tr.appendChild(td); | ||||
|     node.appendChild(tr); | ||||
| } | ||||
| 
 | ||||
							
								
								
									
										21
									
								
								agent/ui/twistd.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								agent/ui/twistd.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| #!C:\Python25\python.exe | ||||
| 
 | ||||
| # Twisted, the Framework of Your Internet | ||||
| # Copyright (c) 2001-2004 Twisted Matrix Laboratories. | ||||
| # See LICENSE for details. | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### Twisted Preamble | ||||
| # This makes sure that users don't have to set up their environment | ||||
| # specially in order to run these programs from bin/. | ||||
| import sys, os, string | ||||
| if string.find(os.path.abspath(sys.argv[0]), os.sep+'Twisted') != -1: | ||||
|     sys.path.insert(0, os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]), os.pardir, os.pardir))) | ||||
| if hasattr(os, "getuid") and os.getuid() != 0: | ||||
|     sys.path.insert(0, os.path.abspath(os.getcwd())) | ||||
| ### end of preamble | ||||
| 
 | ||||
| 
 | ||||
| from twisted.scripts.twistd import run | ||||
| run() | ||||
							
								
								
									
										1
									
								
								agent/ui/usermode.ini
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								agent/ui/usermode.ini
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| UserMode:Simple | ||||
							
								
								
									
										297
									
								
								agent/ui/web.py
									
										
									
									
									
								
							
							
						
						
									
										297
									
								
								agent/ui/web.py
									
										
									
									
									
								
							|  | @ -1,32 +1,283 @@ | |||
| # | ||||
| #  Copyright (c) 2007 Helmut Merz helmutm@cy55.de | ||||
| # | ||||
| #  This program is free software; you can redistribute it and/or modify | ||||
| #  it under the terms of the GNU General Public License as published by | ||||
| #  the Free Software Foundation; either version 2 of the License, or | ||||
| #  (at your option) any later version. | ||||
| # | ||||
| #  This program is distributed in the hope that it will be useful, | ||||
| #  but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| #  GNU General Public License for more details. | ||||
| # | ||||
| #  You should have received a copy of the GNU General Public License | ||||
| #  along with this program; if not, write to the Free Software | ||||
| #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | ||||
| # | ||||
| #------------------------------------------------------ | ||||
| # AgentHome.py | ||||
| # source file for agent UI | ||||
| # author: Juergen Menzinger | ||||
| # version: 0.1 | ||||
| #------------------------------------------------------ | ||||
| 
 | ||||
| # one possibility is to always stay in the same class by calling its object instance as | ||||
| # a return value when returning from a methodCall'. But this would require to change the current | ||||
| # __init__ procedure so that the changes concerning the ini file are always directly written | ||||
| # to the file or there is a routine which starts one time to initialize (maybe for example reading the | ||||
| # whole ini File into the self.IniDict if it is not already filled and for each setting just chnaging the | ||||
| # self.IniDict | ||||
| 
 | ||||
| from nevow import loaders, rend, static, url, inevow | ||||
| from nevow.inevow import IRequest | ||||
| from twisted.internet import defer | ||||
| 
 | ||||
| """ | ||||
| Web interfaces for the loops agent. | ||||
| 
 | ||||
| $Id$ | ||||
| Import could look like this: | ||||
| from loops.agent.crawl.MailCrawler import MailCrawler | ||||
| """ | ||||
| 
 | ||||
| from nevow import loaders, rend | ||||
| 
 | ||||
| # ---- global definitions --------------------------------- | ||||
| # THIS SECTION IS USED FOR PROJECT INTERNAL DEBUG ONLY | ||||
| INIFILE = "usermode.ini" | ||||
| JOBFILE = "joblist.txt" | ||||
| #---------------------------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| #///////////////////////////////////////////////////////////////////////////////////////////// | ||||
| #----------------------------    AgentHome    -------------------------------------------------- | ||||
| # root page of the Agent UI | ||||
| # every method called on the agent ui has it s child | ||||
| # method inside here | ||||
| 
 | ||||
| class AgentHome(rend.Page): | ||||
| 
 | ||||
|     addSlash = True | ||||
|     docFactory = loaders.xmlfile('ui/agent.html') | ||||
|     child_css = static.File('css') | ||||
|     child_images = static.File('images') | ||||
|     docFactory = loaders.xmlfile('AgentStart.html') | ||||
| 
 | ||||
| 
 | ||||
|     def __init__(self,IniDict={}): | ||||
|          | ||||
|         #TODO: implement automatic reading of default ini file, or one passed via constructor | ||||
|         #-------- ini settings ------------------------ | ||||
|         # THIS SECTION IS USED FOR PROJECT INTERNAL DEBUG ONLY | ||||
|         self.iniFile = INIFILE | ||||
|         self.IniDict = IniDict | ||||
|         #----------------------------------------------- | ||||
|          | ||||
|         #-------- get ini settings from file -------- | ||||
|         # stores IniFile settings in self.IniDict | ||||
| 
 | ||||
|         if self.IniDict == {}: | ||||
| 
 | ||||
|             fPointer = open(self.iniFile,"r") | ||||
|             IniSettings = fPointer.readlines() | ||||
|   | ||||
|             for iniLine in IniSettings: | ||||
|                 elem = iniLine.split(":") | ||||
|                 self.IniDict[elem[0]] = elem[1] | ||||
|                  | ||||
|             fPointer.close() | ||||
| 
 | ||||
|         print "[AgentHome] self.UserMode: ", self.IniDict["UserMode"] | ||||
| 
 | ||||
| 
 | ||||
|     """ | ||||
|     def locateChild(self, ctx, segments): | ||||
|         return self, () | ||||
|         """ | ||||
|     # see nevow.url.py ? | ||||
| 
 | ||||
|     #/////////////////////////////////////////////////////////////////// | ||||
|     #----------AgentHome: CHILD PAGES SECTION-------------------------------------- | ||||
|     # this code section contains all child methods that load | ||||
|     # a new (html-) page | ||||
| 
 | ||||
|     def child_joboverview(self,context): | ||||
| 
 | ||||
|         """ User requested page from menue: "job overview" """ | ||||
|         return JobOverView(self.IniDict) | ||||
| 
 | ||||
|     #////////////////////////////////////////////////////////////////// | ||||
|     #--------AgentHome: CHILD METHODS SECTION------------------------------------- | ||||
|     # this code section contains all form methods invoked in AgentHome | ||||
|     # including their callback methods | ||||
| 
 | ||||
|     #---- page "Startpage" methods (class AgentHome) ---- | ||||
| 
 | ||||
|     def child_ChangeUserMode(self,context): | ||||
| 
 | ||||
|         """User has klicked the Change User Mode button | ||||
|            change UserMode from Simple <-> Professional""" | ||||
| 
 | ||||
|         print "[child_ChangeUserMode] UserMode: ", self.IniDict["UserMode"] | ||||
|         print "[child_ChangeUserMode] ----retrieving form values----" | ||||
|          | ||||
|         form = IRequest(context).args | ||||
| 
 | ||||
|         if form != {}: | ||||
| 
 | ||||
|             for elem in form: | ||||
|                 print "[child_ChangeUserMode] ", form[elem] | ||||
| 
 | ||||
|         if self.IniDict["UserMode"] == "Simple": | ||||
|             self.IniDict["UserMode"] = "Advanced" | ||||
| 
 | ||||
|         else: | ||||
|             self.IniDict["UserMode"] = "Simple" | ||||
|             print "[child_ChangeUserMode] : ", self.IniDict["UserMode"] | ||||
| 
 | ||||
|             """ | ||||
|             Write changed setting back to the iniFile ? | ||||
|             filePointer = open(self.iniFile,"rw") | ||||
|             """ | ||||
|              | ||||
|         return AgentHome(self.IniDict) | ||||
| 
 | ||||
| 
 | ||||
|     def child_collectOutlookMails(self,context): | ||||
| 
 | ||||
|         """User requested page from menue: "Collect Outlook Mails" """ | ||||
| 
 | ||||
|         """ | ||||
|         deferred = MailCrawler.getOutlookMails() | ||||
|         deferred.addCallback(self.defMailCrawl,context) | ||||
|         deferred.addErrback(self.defMailCrawlError,context) | ||||
| 
 | ||||
|         return deferred | ||||
|         """ | ||||
| 
 | ||||
|         return AgentOutlookMailView(self.IniDict) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     def defMailCrawl(self,MailCollection,context): | ||||
| 
 | ||||
|         """here the returned collection is forwared to the page | ||||
|         that is displaying it""" | ||||
| 
 | ||||
|         return AgentOutlookMailView(self.IniDict,MailCollection) | ||||
| 
 | ||||
| 
 | ||||
|     def defMailCrawlError(self,ErrorMessage,context): | ||||
| 
 | ||||
|         """handles errors that ocurred in the MailCrawler""" | ||||
| 
 | ||||
|         return AgentHome(self.IniDict) | ||||
|          | ||||
| 
 | ||||
|     #---- page "job overview" methods (class JobOverView)---- | ||||
| 
 | ||||
|     def child_ViewJobDetails(self,context): | ||||
|          | ||||
|         form = IRequest(context).args | ||||
|         selectedJob = form['jobList'][0] | ||||
|          | ||||
|         return JobOverViewDetails(self.IniDict, selectedJob) | ||||
| 
 | ||||
| 
 | ||||
|     #//////////////////////////////////////////////////////////// | ||||
|     #-------------AgentHome: RENDER SECTION------------------------ | ||||
|     # this code section contains the Nevow Rendering Methods | ||||
|     # for building the page element tree | ||||
|          | ||||
|     def render_getActiveUserMode(self,context,data): | ||||
|         return self.IniDict["UserMode"] | ||||
| 
 | ||||
| 
 | ||||
|     def render_getAgentVersion(self,context,data): | ||||
|         return "0.1 alpha" | ||||
| 
 | ||||
| 
 | ||||
|      | ||||
| 
 | ||||
| #/////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||||
| #-----------------    PAGES SECTION    ------------------------------------------------------------------------- | ||||
| # all classes in this section are pages called via the navigation menue of AgentHome | ||||
| 
 | ||||
| class JobOverView(rend.Page): | ||||
|      | ||||
|     docFactory = loaders.xmlfile('AgentJobView.html') | ||||
| 
 | ||||
|     def __init__(self, IniDict): | ||||
| 
 | ||||
|         self.IniSettings = IniDict | ||||
| 
 | ||||
|     #-------------RENDER SECTION--------------------------------- | ||||
|     # this code section contains the Nevow Rendering Methods | ||||
|     # for building the page element tree | ||||
| 
 | ||||
|     def data_displayViewForm(self,context,data): | ||||
|         return "Overview of all running Crawling jobs" | ||||
| 
 | ||||
|     def render_getActiveUserMode(self,context,data): | ||||
|         return self.IniSettings["UserMode"] | ||||
| 
 | ||||
|     def render_fillJobList(self,ctx,data): | ||||
| 
 | ||||
|         #---- get the registered jobs from the jobfile ---- | ||||
|         # | ||||
|         fpJobFile = open(JOBFILE,"r") | ||||
|         lines = fpJobFile.readlines() | ||||
|         fpJobFile.close() | ||||
|         patternList = [] | ||||
|         gen_pattern = inevow.IQ(ctx).patternGenerator('optionsJobList') | ||||
| 
 | ||||
|         for elem in lines: | ||||
|             patternList.append(gen_pattern(data=elem)) | ||||
|   | ||||
|         return patternList | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| class JobOverViewDetails(rend.Page): | ||||
| 
 | ||||
|     docFactory = loaders.xmlfile('AgentJobViewDetail.html') | ||||
| 
 | ||||
|     def __init__(self, IniDict={}, selectedJob=""): | ||||
| 
 | ||||
|         self.IniSettings = IniDict | ||||
|         self.jobdetails = selectedJob | ||||
| 
 | ||||
| 
 | ||||
|     #-------------RENDER SECTION--------------------------------- | ||||
|     # this code section contains the Nevow Rendering Methods | ||||
|     # for building the page element tree | ||||
| 
 | ||||
|     def data_displayViewForm(self,context,data): | ||||
|         return "Detailed view of crawling job." | ||||
| 
 | ||||
|     def render_getActiveUserMode(self,context,data): | ||||
|         return self.IniSettings["UserMode"] | ||||
| 
 | ||||
|     def render_displayJobDetails(self,ctx,data): | ||||
| 
 | ||||
|         print "*******************************************************" | ||||
|         print "[render_displayJobDetails] received form: ", str(self.jobdetails) | ||||
|         print "[render_displayJobDetails] received IniForm: ", str(self.IniSettings) | ||||
|         print "*******************************************************" | ||||
| 
 | ||||
|         patternList = [] | ||||
|         gen_pattern = inevow.IQ(ctx).patternGenerator('jobDetails') | ||||
| 
 | ||||
|         for elem in self.jobdetails: | ||||
|             patternList.append(gen_pattern(data=elem)) | ||||
|   | ||||
|         return patternList | ||||
| 
 | ||||
| 
 | ||||
| class AgentOutlookMailView(rend.Page): | ||||
| 
 | ||||
|     docFactory = loaders.xmlfile('AgentOutlookMailView.html') | ||||
| 
 | ||||
|     def __init__(self, IniDict={}, MailCollection=[]): | ||||
| 
 | ||||
|         self.IniDict = IniDict | ||||
|         self.MailCollection = MailCollection | ||||
| 
 | ||||
|     #-------------RENDER SECTION--------------------------------- | ||||
|     # this code section contains the Nevow Rendering Methods | ||||
|     # for building the page element tree | ||||
| 
 | ||||
|     def data_displayViewForm(self,context,data): | ||||
|         return "Detailed view of all collected Outlook Mails. [DEMO]" | ||||
| 
 | ||||
|     def render_getActiveUserMode(self,context,data): | ||||
|         return self.IniDict["UserMode"] | ||||
| 
 | ||||
|     def render_displayOutlookMails(self,ctx,data): | ||||
| 
 | ||||
|         patternList = [] | ||||
|         gen_pattern = inevow.IQ(ctx).patternGenerator('OutlookMails') | ||||
| 
 | ||||
|         for elem in self.MailCollection: | ||||
|             patternList.append(gen_pattern(data=elem)) | ||||
|   | ||||
|         return patternList | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 scrat
						scrat