new templates for using struts
authoridfx <idfx>
Sun, 7 Sep 2003 16:51:42 +0000 (16:51 +0000)
committeridfx <idfx>
Sun, 7 Sep 2003 16:51:42 +0000 (16:51 +0000)
templates/admin/FUNCTIONS.tmpl [new file with mode: 0755]
templates/admin/head.tmpl [new file with mode: 0755]
templates/admin/index.tmpl [new file with mode: 0755]
templates/admin/logon.tmpl [new file with mode: 0755]
templates/admin/messagelist.tmpl [new file with mode: 0755]

diff --git a/templates/admin/FUNCTIONS.tmpl b/templates/admin/FUNCTIONS.tmpl
new file mode 100755 (executable)
index 0000000..b453a50
--- /dev/null
@@ -0,0 +1,457 @@
+<include "EDITFUNCTIONS.template">
+
+<function showAbsoluteLinkButton(anUrl, aLabel)>
+    <span class="link-box-div">
+  <a class="link-box" href="${utility.encodeHTML(anUrl)}">${aLabel}</a>
+    </span>
+</function>
+<function showButton(anUrl, aLabel)>
+  <call showAbsoluteLinkButton(config.docRoot+"?"+anUrl, aLabel)>
+</function>
+
+
+<assign TABLE_HEAD_CLASS          "table-head">
+<assign TABLE_FOOT_CLASS          "table-foot">
+<assign LIST_ROW_CLASS             "listrow1">
+<assign LIST_ROW_CLASS_ALTERNATIVE "listrow2">
+
+<function EntityTable(anEntityList, aDataKeys, aHeaders, aFrom, aTo, aCount, aDeleteUri, aEditUri, aModuleName)>
+  <assign nrColumns="0">
+  <list aHeaders as h>
+    <assign nrColumns=utility.increment(nrColumns)>
+  </list>
+  <if aDeleteUri || aEditUri >
+    <assign nrColumns=utility.increment(nrColumns)>
+  </if>
+
+  <table cellspacing="2" border="0">
+    <tr>
+      <list aHeaders as i>
+        <td class="${TABLE_HEAD_CLASS}">
+          <b>${i}</b> 
+        </td>
+      </list>
+      <if aShowDelete || aShowEdit>
+        <td class="${TABLE_HEAD_CLASS}">
+          &nbsp;
+        </td> 
+      </if>
+    </tr>
+    <assign alternative="0">
+    
+    <list anEntityList as entry>
+      <if alternative=="0">
+        <assign alternative="1">
+        <tr class="${LIST_ROW_CLASS}">
+      <else>
+        <assign alternative="0">
+        <tr class="${LIST_ROW_CLASS_ALTERNATIVE}">
+      </if>
+        
+        <list aDataKeys as i>   
+            <td>
+              ${entry[i]}
+            </td>
+        </list>
+        <if aDeleteUri || aEditUri>
+          <td>
+            <if aDeleteUri>
+            <a class="listcommand" href="${config.docRoot}/admin/${aDeleteUri}?id=${entry.id}">${lang("delete")}</a>
+            </if>
+            <if aShowDelete && aShowEdit>
+            | 
+            </if>
+            <if aEditUri>
+              <a class="listcommand" href="${config.docRoot}/admin/${aEditUri}&id=${entry.id}">${lang("edit")}</a>
+            </if>
+          </td>
+        </if>
+      </tr>
+    </list>
+    
+    
+    <tr>    
+      <td colspan="${nrColumns}" class="${TABLE_FOOT_CLASS}">
+        ${aCount} ${lang("records")} / ${lang("show_from_to", aFrom, aTo)}
+      </td>
+    </tr>
+  
+  </table>
+</function>
+
+
+<comment>extra navigation</comment>
+<function AddOrBack(module_name, module_jumpback, do_jumpback)>
+    <p>
+      <a class="link-box" href="${config.docRoot}?module=${module_name}&do=add">[+] ${lang("add")}</a> &nbsp;
+      <a class="link-box" href="${config.docRoot}?module=${module_jumpback}&do=${do_jumpback}">[&lt;] ${lang("back")} </a> &nbsp;
+      <a class="link-box" href="${config.docRoot}">[&lt;&lt;&lt;] ${lang("head.start")}</a>
+  </p>
+</function>
+
+<function showAddOrBack(anAllowAdd, anAddModule, aBackModule, aBackParams, )>
+    <p>
+      <if anAllowAdd == "1">
+        <a class="link-box" href="${config.docRoot}/admin/${anAddModule}">[+] ${lang("add")}</a> &nbsp;
+      </if>
+      <a class="link-box" href="${config.docRoot}/admin/${aBackModule}?${aBackParams}">[&lt;] ${lang("back")} </a> &nbsp;
+<comment>      <a class="link-box" href="${config.docRoot}">[&lt;&lt;&lt;] ${lang("head.start")}</a></comment>
+  </p>
+</function>
+
+<function showBack(aBackUrl)>
+  <p><a class="link-box" href="${config.docRoot}?${aBackUrl}">[&lt;] ${lang("back")} </a> &nbsp;</p>
+</function>
+
+<function PulldownTableRow (label, fieldname, entrieslist, keyfield, valuefield, value, langprefix)>
+  <tr>
+     <td align="right" class="table-left">
+       <b>${label}:</b>
+     </td>
+     <td class="listrow2">
+       <select name="${fieldname}">
+         <list entrieslist as a>
+           <option value="${a[keyfield]}" <if (a[keyfield] == value)>selected</if>><if langprefix>${lang(langprefix+a[valuefield])}<else>${a[valuefield]}</if></option>
+         </list>
+       </select>
+     </td>
+   </tr>
+</function>   
+
+
+
+
+
+
+
+
+
+<function TextInputTableRow (label, size, maxlength, fieldname, fieldcontent)>
+  <tr>
+    <td align="right" class="table-left">
+      <b>${label}:</b>
+    </td>
+    
+    <td class="listrow2">
+      <input type="text" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
+    </td>
+  </tr>
+</function>
+
+<function ReadonlyTextTableRow (label, fieldcontent)>
+  <tr>
+    <td align="right" class="table-left">
+      <b>${label}:</b>
+    </td>
+    
+    <td class="listrow2">
+      ${utility.encodeHTML(fieldcontent)}
+    </td>
+  </tr>
+</function>
+
+<function PasswordTextInputTableRow (label, size, maxlength, fieldname, fieldcontent)>
+  <tr>
+    <td align="right" class="table-left">
+      <b>${label}:</b>
+    </td>
+    
+    <td class="listrow2">
+      <input type="password" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
+    </td>
+  </tr>
+</function>
+
+<function TextInputTableRowLight (label, size, maxlength, fieldname, fieldcontent)>
+  <tr>
+    <td align="right" class="table-left-light">
+      <b>${label}:</b>
+    </td>
+    
+    <td class="listrow1">
+      <input type="text" size="${size}" maxlength="${maxlength}" name="${fieldname}" value="${utility.encodeHTML(fieldcontent)}">
+    </td>
+  </tr>
+</function>
+
+<function CheckboxTableRow (label, fieldname, fieldcontent )>
+  <call EditCheckboxNormal(label, fieldname, fieldcontent)>
+<comment>
+  <tr>
+    <td align="right" valign="top" class="table-left">
+      <b>${label}:</b>
+    </td>
+    
+    <td class="listrow2">
+      <input type="checkbox" name="${fieldname}" value="1"<if fieldcontent=="1"> checked</if>>&nbsp;&nbsp;
+    </td>
+  </tr>
+</comment>  
+</function> 
+
+<function TextAreaTableRow (label, hint, cols, rows, fieldname, fieldcontent )>
+  <tr>
+    <td align="right" valign="top" class="table-left">
+      <b>${label}:</b>
+      <if hint>
+        <br>
+        <span class="small">${hint}</span>      
+      </if>
+    </td>
+    
+    <td class="listrow2">
+      <textarea cols="${cols}" rows="${rows}" name="${fieldname}" wrap="virtual">${utility.encodeHTML(fieldcontent)}</textarea>
+    </td>
+  </tr>
+</function>
+
+
+<function TextAreaTableRowLight (label, hint, cols, rows, fieldname, fieldcontent )>
+  <tr>
+    <td align="right" valign="top" class="table-left-light">
+      <b>${label}:</b>
+      <if hint>
+        <br>
+        <span class="small">${hint}</span>      
+      </if>
+    </td>
+    
+    <td class="listrow1">
+      <textarea cols="${cols}" rows="${rows}" name="${fieldname}" wrap="virtual">${utility.encodeHTML(fieldcontent)}</textarea>
+    </td>
+  </tr>
+</function>
+
+<comment>complete search-form for contenentries, not sure if it works from everywhere</comment>
+<function ContentSearch (layout)>
+
+      <form method="POST" action="${config.docRoot}">
+        <input type="hidden" name="module" value="Content">
+        <input type="hidden" name="do" value="search">
+        <input type="hidden" name="selectarticleurl" value="${utility.encodeHTML(selectarticleurl)}">
+         
+        <table border="0" cellpadding="2" cellspacing="3">
+          <tr <if !layout>class="bg-neutral"</if>>
+            <td <if layout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.value")}</td>
+            <td <if layout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.field")}</td>
+            <td <if layout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.publishedstate")}</td>
+            <td <if layout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.articletype")}</td>
+            <td <if layout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.order")}</td>
+      <td <if layout>class="table_head"<else>class="small bg_neutral"</if> valign="bottom"> &nbsp;</td>
+          </tr>
+          <tr>
+            <td <if layout>class="listrow2"</if>><input type="text" size="10" maxlength="20" name="searchvalue" value="${searchvalue}"></td>
+            <td <if layout>class="listrow2"</if>>
+                <select name="searchfield">
+                  <option value="title"<if searchfield=="title"> selected</if>>${lang("contentsearch.field.title")}</option>
+                  <option value="creator"<if searchfield=="creator"> selected</if>>${lang("contentsearch.field.creator")}</option>
+                  <option value="contents"<if searchfield=="content"> selected</if>>${lang("contentsearch.field.contents")}</option>
+                  <option value="creator_main_url"<if searchfield=="creator_main_url"> selected</if>>${lang("contentsearch.field.creator_main_url")}</option>
+                  <option value="creator_email"<if searchfield=="creator_email"> selected</if>>${lang("contentsearch.field.creator_email")}</option>
+                </select>
+            </td>
+            <td <if layout>class="listrow2"</if>>
+                <select name="searchispublished">
+                  <option value="">--</option>
+                  <option value="0" <if searchispublished=="0"> selected</if>>${lang("contentsearch.publishedstate.hidden")}</option>
+                  <option value="1" <if searchispublished=="1"> selected</if>>${lang("contentsearch.publishedstate.published")}</option>
+                </select>
+            </td>
+            <td <if layout>class="listrow2"</if>>
+                <select name="searcharticletype">
+                  <option value="">--</option>
+                  <list articletypes as at>
+                    <option value="${at.id}" <if searcharticletype==at.id> selected</if>>${lang("articletypes."+at.name)}</option>
+                  </list>
+                </select>
+            </td>
+            <td <if layout>class="listrow2"</if>>
+                <select name="searchorder">
+                  <option value="datedesc" <if searchorder=="datedesc"> selected</if>>${lang("contentsearch.order.datedesc")}</option>
+                  <option value="dateasc" <if searchorder=="dateasc"> selected</if>>${lang("contentsearch.order.dateasc")}</option>
+                  <option value="title" <if searchorder=="title"> selected</if>>${lang("contentsearch.order.title")}</option>
+                  <option value="creator" <if searchorder=="creator"> selected</if>>${lang("contentsearch.order.creator")}</option>
+                </select>
+            </td>
+            <td <if layout>class="listrow2"</if>>
+                <input class="majorbutton" type="submit" name="search" value="${lang("contentsearch.searchbutton")}">
+            </td>
+          </tr>
+        </table>
+      </form>
+
+</function>
+
+<comment>browse function, only called if necessary</comment>
+<function PrevNext (align)>
+  <if prevurl || nexturl>      
+    <p align="${align}">
+    <if prevurl>
+      <a class="link-box" href="${config.docRoot}?${prevurl}"> [ &lt; ] ${lang("list.previous")}</a>&nbsp;&nbsp; 
+    </if>
+    <if nexturl>
+      <a  class="link-box" href="${config.docRoot}?${nexturl}">   ${lang("list.next")} [ &gt; ]</a>
+    </if>
+    </p>
+  </if>
+</function>
+
+
+<comment>previous next links</comment>
+<function showPrevNextLinks (aPreviousUrl, aNextUrl, anAlignment)>
+  <if aPreviousUrl || aNextUrl>      
+    <p align="${anAlignment}">
+    <if aPreviousUrl>
+      <a class="link-box" href="${config.docRoot}${aPreviousUrl}"> [ &lt; ] ${lang("list.previous")}</a>
+    </if>
+    <if aPreviousUrl && aNextUrl>      
+      &nbsp;&nbsp; 
+    </if>
+    <if aNextUrl>
+      <a class="link-box" href="${config.docRoot}${aNextUrl}">   ${lang("list.next")} [ &gt; ]</a>
+    </if>
+    </p>
+  </if>
+</function>
+
+
+<comment>multifunctional help - popup or not - big or small designs</comment>
+<function Help (HelpUrl, popup, big )>
+  <if popup>
+    
+    <Script Language="JavaScript">
+      <!-- 
+      function openwindowlink() {
+      newwin = window.open("${HelpUrl}","windowname","height=320,width=320,top=200,left=300, scrollbars,resizable")
+      }
+      // end hiding -->
+    </Script>
+    
+    <a href="JavaScript: openwindowlink()">
+      <if big><span class="link-help"><else><span class="link-help-small"></if>
+        <if big> [ ? ] ${lang("help")}<else>[?]</if>
+      </span>
+    </a>    
+  
+  <else>
+    
+    <if big>
+      <a href="${HelpUrl}" target="_blank"><span class="link-help"> [ ? ] ${lang("help")}</span></a>
+    <else>
+      <a href="${HelpUrl}" target="_blank"><span class="link-help-small">[?]</span></a>   
+    </if>
+  </if>
+</function>
+
+
+
+<comment>functions to show media for an article/comment edit page</comment>
+<function showArticleAttachments(anArticle)>
+  <call showAttachments(1, anArticle)>
+</function>
+
+<function showCommentAttachments(aComment)>
+  <call showAttachments(0, aComment)>
+</function>
+
+<function showAttachments(anIsArticle, anObject)>
+  <if anIsArticle=="1">
+    <assign objectKey="articleid">
+    <assign objectModule="Content">
+  <else>
+    <assign objectKey="commentid">
+    <assign objectModule="Comment">
+  </if>
+
+  <table cellspacing="2" cellpadding="2">
+    <tr>
+      <td class="table-head" colspan="2">
+        ${lang("content.attachments")}
+      </td>
+    </tr>
+
+    <tr>
+      <td align=right valign=top class="table-left">
+        ${lang("content.images")}: 
+      </td>
+      <td align="left" valign="top" class="listrow2">
+        <a href="${config.docRoot}?module=Images&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addimage")}</a> |
+        <a href="${config.docRoot}?module=Images&do=add&${objectKey}=${anObject.id}">${lang("content.uploadimage")}</a>
+      </td>
+    </tr>
+    <list anObject.to_all_media_images as m>
+      <tr>
+      <td align=right valign=top>
+        <a href="${config.docRoot}?module=Images&do=edit&id=${m["id"]}"><img src="${config.docRoot}?module=Images&do=getIcon&id=${m["id"]}" alt="edit" border="0"></a>&nbsp;
+      </td>
+      <td align="left" valign="top">
+        <a href="${config.docRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
+      </td>
+      </tr>
+    </list>
+    
+
+    <tr>
+      <td align=right valign=top class="table-left">
+      ${lang("content.audio")}:
+      </td>
+      <td align="left" valign="top" class="listrow2">
+        <a href="${config.docRoot}?module=Audio&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addaudio")}</a> |
+        <a href="${config.docRoot}?module=Audio&do=add&${objectKey}=${anObject.id}">${lang("content.uploadaudio")}</a>
+      </td>
+    </tr>
+    <list anObject.to_all_media_audio as m>
+      <tr>
+      <td align=right valign=top>
+        <a href="${config.docRoot}?module=Audio&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>&nbsp;
+      </td>
+      <td align="left" valign="top">
+        <a href="${config.docRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
+      </td>
+      </tr>
+    </list>
+    
+
+    <tr>
+      <td align=right valign=top class="table-left">
+        ${lang("content.video")}:
+      </td>
+      <td  align="left" valign="top" class="listrow2">
+        <a href="${config.docRoot}?module=Video&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addvideo")}</a> |
+        <a href="${config.docRoot}?module=Video&do=add&${objectKey}=${anObject.id}">${lang("content.uploadvideo")}</a>
+      </td>
+    </tr>
+    <list anObject.to_all_media_video as m>
+      <tr>
+      <td align=right valign=top>
+        <a href="${config.docRoot}?module=Video&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>&nbsp;        
+      </td>
+      <td align="left" valign="top">
+        <a href="${config.docRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
+      </td>
+      </tr>
+    </list>
+    
+    <tr>
+      <td align=right valign=top class="table-left">
+        ${lang("content.other")}:
+      </td>
+      <td align="left" valign="top" class="listrow2">
+      <a href="${config.docRoot}?module=OtherMedia&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addother")}</a> |
+      <a href="${config.docRoot}?module=OtherMedia&do=add&${objectKey}=${anObject.id}">${lang("content.uploadother")}</a>
+      </td>
+    </tr>
+    <list anObject.to_all_media_other as m>
+      <tr>
+      <td align=right valign=top">
+      <a href="${config.docRoot}?module=Video&do=edit&id=${m["id"]}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>&nbsp;  
+      </td>
+      <td align="left" valign="top">
+        <a href="${config.docRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
+      </td>
+      </tr>
+    </list>
+  </table>
+</function>  
+
+
diff --git a/templates/admin/head.tmpl b/templates/admin/head.tmpl
new file mode 100755 (executable)
index 0000000..344dc0d
--- /dev/null
@@ -0,0 +1,21 @@
+<a name="top"></a>
+
+<table class="table-head" width="100%" cellspacing="0" cellpadding="0">
+  <tr>
+    <td><img src="${config.docRoot}/img/logo_small.gif" border="0" align="left"></td>
+    <td>
+      ${config["Mir.Name"]} &nbsp; | &nbsp; ${config.now.format(config["Mir.DefaultDateTimeFormat"])} 
+    </td>
+    <td class="table-head" align="right">
+      <a href="${utility.encodeLink(config.docRoot+"/admin/changePassword.do?id="+session.user.id+"&amp;returnurl=")}"><span class="table-head">${lang("head.changepassword")}</span></a> &nbsp; | &nbsp;
+      <if request.returnurl>
+        <a href="${utility.encodeLink(config.docRoot+request.returnurl)}"><span class="table-head">[ &lt; ] ${lang("back")}</span></a> &nbsp; | &nbsp;
+      </if> 
+      <a href="${utility.encodeLink(config.docRoot+"/admin/index.do")}"><span class="table-head">${lang("head.start")}</span></a> &nbsp; | &nbsp;
+      <a href="${utility.encodeLink(config.docRoot+"/admin/logoff.do")}"><span class="table-head">${lang("head.logout")}
+      <if session.user> <i>${session.user.login}</i> </if>
+      </span></a>
+    </td>
+  </tr>
+</table>
+<hr>
diff --git a/templates/admin/index.tmpl b/templates/admin/index.tmpl
new file mode 100755 (executable)
index 0000000..716b375
--- /dev/null
@@ -0,0 +1,182 @@
+<html>
+  <head>
+    <title>${config["Mir.Name"]} | ${lang("start.htmltitle")}</title>
+    <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css"
+  </head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+  <include "FUNCTIONS.template">
+  <include "head.tmpl">
+
+<table border="0" width="100%">
+  <tr>
+    <td valign="top" width="40%">
+    <!-- ###### left column ###### -->
+    <p class="box-head"><b>${lang("start.administer.title")}</b></p>
+    <p class="box"> 
+      <list administeroperations as a>
+          <a href="${config.docRoot}/admin/${a.url}">${lang("start.administer."+a.name)}</a><br>
+      </list>
+    </p>
+
+    <p class="box-head"><b>${lang("start.articles.title")}</b></p>  
+    <p class="box">
+      <list articletypes as a>
+          <a href="${config.docRoot}?module=Content&do=search&searcharticletype=${a.id}&searchorder=datedesc">&gt; ${lang("start.allarticlesoftype", lang("articletypes."+a.name))}</a><br>
+      </list>
+      <br>  
+      <a href="${config.docRoot}?module=Content&do=list&where=${utility.encodeURI("is_published='f'")}&order=${utility.encodeURI("webdb_create desc")}" >&gt; ${lang("start.content.not_published")}</a><br>
+      <a href="${config.docRoot}?module=Content&do=list&where=${utility.encodeURI("id in (select content_id from content_x_media, media where media.id=media_id)")}&order=${utility.encodeURI("webdb_create desc")}">&gt; ${lang("start.content.with_media")}</a><br>
+      <a href="${config.docRoot}?module=Content&do=list&where=&order=${utility.encodeURI("webdb_lastchange desc")}">&gt; ${lang("start.content.last_changes")}</a><br>
+      <a href="${config.docRoot}?module=Content&do=list&where=${utility.encodeURI("not (comment is null or comment like '')")}&order=${utility.encodeURI("webdb_create desc")}">&gt; ${lang("start.content.with_comments")}</a><br>
+      <br>
+      <a href="${config.docRoot}?module=Content&do=list&where=&order=${utility.encodeURI("webdb_create desc")}">&gt; ${lang("start.content.all")}</a><br>
+    </p>
+    <p class="box-head"><b>${lang("start.comments.title")}</b></p>  
+    <p class="box">
+      <list commentstatuses as a>
+          <a href="${config.docRoot}?module=Comment&do=list&where=to_comment_status%3D${a.id}&order=webdb_create%20desc">&gt; ${lang("start.allcommentswithstatus", lang("commentstatus."+a.name))}</a><br>
+      </list>
+    </p>
+
+
+    <p class="box-head"><b>${lang("start.extra.title")}</b></p>   
+    <p class="box"> 
+      <a href="${config.docRoot}?module=Hidden&do=list">&gt; ${lang("start.content.hidden")}</a>
+      <list fileeditentries as e>
+        <br>
+          <a href="${config.docRoot}?module=FileEdit&do=list&entry=${e}">&gt; ${lang("start.fileedit."+e+".title")}</a>
+      </list>
+    </p>
+</td>
+
+<!-- ###### end left column ###### -->
+
+<td width="2%">&nbsp;</td>
+<!-- ###### Spacer-column ###### -->
+
+<comment> Middle column </comment>
+      
+    <td valign="top" width="30%">
+    
+    <p class="box-head"><b>${lang("start.addandedit.title")}</b></p>
+    <div class="box">
+      <a href="${config.docRoot}?module=Content&do=add&where=aktuell">&gt; ${lang("start.content.new")}</a>
+      <br>
+      
+      <a href="${config.docRoot}?module=Breaking&do=list">&gt; ${lang("start.breaking.title")}</a>&nbsp;
+      <a href="${config.docRoot}?module=Breaking&do=add">[+]</a>
+      <form>
+        <input type="hidden" name="module" value="Content">
+        <input type="hidden" name="do" value="edit">
+        ${lang("start.content.open_by_id")}: 
+        <input type="text" name="id" value="" size="7">
+        <input type="submit" value=" &gt; ">
+      </form>
+      <form>
+        <input type="hidden" name="module" value="Comment">
+        <input type="hidden" name="do" value="edit">
+        ${lang("start.comment.open_by_id")}: 
+        <input type="text" name="id" value="" size="7">
+        <input type="submit" value=" &gt; ">
+      </form>
+      
+      
+    </div>
+    
+    <p class="box-head"><b>${lang("start.media.title")}</b></p> 
+    <div class="box">
+      
+      <a href="${config.docRoot}?module=Images&do=list">&gt; ${lang("start.images.title")}</a>&nbsp;
+      <a href="${config.docRoot}?module=Images&do=add">[+]</a><br>
+
+      <a href="${config.docRoot}?module=Audio&do=list">&gt; ${lang("start.audio.title")}</a>&nbsp;
+      <a href="${config.docRoot}?module=Audio&do=add">[+]</a><br>
+
+      
+      <a href="${config.docRoot}?module=Video&do=list">&gt; ${lang("start.video.title")}</a>&nbsp;
+      <a href="${config.docRoot}?module=Video&do=add">[+]</a><br>
+
+      
+      <a href="${config.docRoot}?module=OtherMedia&do=list">&gt; ${lang("start.other_media.title")}</a>&nbsp;
+      <a href="${config.docRoot}?module=OtherMedia&do=add" >[+]</a><br>
+
+      <br>
+      <a href="${config.docRoot}?module=Mediafolder&do=list">&gt; ${lang("start.mediafolder.title")}</a>&nbsp;
+      <a href="${config.docRoot}?module=Mediafolder&do=add">[+]</a><br>
+    </div>
+    
+    
+    
+    <p class="box-head"><b>${lang("start.producers.title")}</b></p>
+    <p class="box">
+      <a href="${config.docRoot}?module=Producer&do=produceAllNew">&gt; ${lang("start.producers.produceAllNew")}</a><br>
+      <a href="${config.docRoot}?module=Producer&do=showProducerQueueStatus">&gt; ${lang("start.producers.advanced")}</a>
+    </p>
+    
+    <p class="box bg-neutral">
+      <a href="${config.docRoot}?module=Admin&do=superusermenu">${lang("start.superusermenu")}</a>   
+    </p>
+
+  </td>
+
+    <td width="2%">&nbsp;</td>
+
+<comment> RIGHT COLUMN </comment>
+
+  <td valign="top" width="26%" rowspan="2">
+
+  <comment>internal messageboard</comment>
+
+
+    <p class="box-head"><b>${lang("start.messageboard.title")}</b></p>
+    <div class="box-bg">
+      <span class="small">
+        <a href="${config.docRoot}/admin/messageAdd.do">[ + ${lang("add")}]</a> 
+        <a href="${config.docRoot}/admin/messageList.do">[${lang("edit")}]</a>
+      </span>
+      <if request.messages>
+        <list request.messages as m>
+          <p class="x-small">
+            <if m.title><b>${m.title}</b><br></if>
+            ${m.description}<br>
+            <span class="x-small">
+              <if m.creator><i>by: ${m.creator}</i> / </if>${m.webdbCreate.format(config["Mir.DefaultDateTimeFormat"])}}<br>
+            </span>
+          </p>
+        </list>
+      <else>
+        <p><i>${lang("start.messageboard.no_messages")}</i>
+      </if></span>
+    </div>
+  </td>
+
+  </tr>
+  
+  <comment> BOTTOM ROW FOR SEARCH </comment>
+  <tr>
+    <td colspan="3" valign="top">
+      <p class="box-head"><b>${lang("start.search.title")}</b></p>
+      <div class="box">
+        <call ContentSearch ("")>
+      </div>
+
+<comment>      
+      <!-- HELP -DEMO -->
+      <p class="box">
+        <b>HELP-Demo:</b><br>
+        popup small-link: <call Help ("../help/content_datum.html", "1", "" )>&nbsp;&nbsp;  popup big-link: <call Help ("../help/content_datum.html", "1", "1" )><br><br>
+        newwin small-link: <call Help ("../help/content_datum.html", "", "" )>&nbsp;&nbsp; newwin big-link: <call Help ("../help/content_datum.html", "", "1" )>
+      </p>
+</comment>      
+      
+    </td>
+  </tr>
+  
+</table>
+
+  <include "foot.template">
+
+  </body>
+</html>
diff --git a/templates/admin/logon.tmpl b/templates/admin/logon.tmpl
new file mode 100755 (executable)
index 0000000..d223ccf
--- /dev/null
@@ -0,0 +1,77 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+  <head>
+    <title>${config["Mir.Name"]} | ${lang("login.htmltitle")}</title>
+    <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+    <script language="JavaScript">
+      function placeFocus() {
+        document.forms[0].elements[1].focus();
+      }
+    </script>
+  </head>
+  <body onLoad="placeFocus()" marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+    
+  <include "head_nonavi.template">
+
+<center>
+      <p>
+          ${lang("login.info", 
+                 "<a href=\"mailto:" + config["Mir.Contact-email.address"] +
+                 "\">" + 
+                 config["Mir.Contact-email.name"] + 
+                 "</a>"
+                 )
+           }
+      </p>
+      
+    <hr>
+<div style="width:300px;">
+
+  <div class="box-head"><b>${lang("login.title")}</b></div>
+  
+  <div class="box">
+    
+    
+      <form method="post" action="${utility.encodeLink("logon.do")}">
+        
+    <input type="hidden" name="module" value="login">
+
+    <table cellpadding="4">
+    <tbody>
+      <tr>
+      <td align="right">${lang("login.name")}:</td>
+      <td align="left"><input type="text" name="login" size="15"></td>
+      </tr>
+      <tr>
+      <td align="right">${lang("login.password")}:</td>
+      <td align="left"><input type="password" name="password" size="15"></td>
+      </tr>
+      <tr>
+      <td align="right">${lang("login.language")}:</td>
+      <td align="left">  
+        <select name="language">
+        <list application.languages as l>
+          <option value="${l.code}" <if l.code==application.defaultlanguage>selected</if> >${l.name}</option>
+        </list>
+        </select>
+      </td>
+      </tr>  
+    <tr>
+      <td colspan="2" align="right">
+        <input type="submit" value="${lang("login.submit")}">
+      </td>
+    </tr>
+    </tbody>
+    </table>                
+
+      </form>
+  </div>
+</div>
+<br>
+</center>
+    
+    <include "foot.template">
+  
+  </body>
+</html>
+
diff --git a/templates/admin/messagelist.tmpl b/templates/admin/messagelist.tmpl
new file mode 100755 (executable)
index 0000000..4294784
--- /dev/null
@@ -0,0 +1,30 @@
+<html>
+<head>
+  <title>${config["Mir.Name"]} | ${lang("messagelist.htmltitle")}</title>
+  <link rel="stylesheet" type="text/css" href="${config.docRoot}/style/admin.css">
+</head>
+
+<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
+
+    <include "FUNCTIONS.tmpl">
+    <include "head.tmpl">
+    
+    <call showAddOrBack("1", "messageAdd.shtml", "index.do", "")>
+
+    <if request.messages>
+      <assign baselisturl = "/admin/messageList.do?offset=">
+      <call showPrevNextLinks(baselisturl+request.lastoffset, baselisturl+request.nextoffset, "left")>
+      <call EntityTable(request.messages, [
+           "id", "title", "creator", "description"], 
+           [ lang("message.id"), lang("message.title"), lang("message.creator"), lang("message.text")], 
+          request.offset, request.nextoffset, "", "messageDelete.do", "messageEdit.do", "messagesEdit.do")>
+      <call showPrevNextLinks(baselisturl+request.lastoffset, baselisturl+request.nextoffset, "left")>
+      <call showAddOrBack("1", "messageAdd.shtml", "index.do", "")>
+    <else>
+      <P align="center">${lang("no_matches_found")}</p>
+    </if>
+
+    <include "foot.template">
+
+</body>
+</html>