- icons in comment list
[mir.git] / templates / admin / FUNCTIONS.template
index 4befc08..759ad87 100755 (executable)
-<comment>creates a full table incl. edit/delete entry.id</comment>
-<function ListTable(contentlist, data_keys, column_head_texts, column_head_CSS, listrow1CSS, listrow2CSS, footer_css, module_name)>
+<include "EDITFUNCTIONS.template">
 
-<table cellspacing="2" border="0">
-  
-  <tr>
-    <list column_head_texts as indexVariable>
-      <td class="${column_head_CSS}">
-        <b>${indexVariable}</b> 
-      </td>
-    </list>
-      <td class="${column_head_CSS}">
-        &nbsp;
-      </td> 
-  </tr>
+<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.actionRoot+"?"+anUrl, aLabel)>
+</function>
+<function showGETButton(anUrl, aLabel)>
+  <call showAbsoluteLinkButton(config.actionRoot+"?"+anUrl, aLabel)>
+</function>
+<function showPOSTButton(anUrl, aLabel)>
+  <call showGETButton(anUrl, aLabel)>
+<comment>
+  <form method="POST" action="${utility.encodeHTML(config.actionRoot+"?"+anUrl)}"><input type="submit" class="majorbutton" value="${aLabel}"></form>
+</comment>  
+</function>
 
-  
-<list contentlist as entry>
-  <if grey=="1">
-    <assign grey="0">
-    <tr class="${listrow1CSS}">
-  <else>
-    <assign grey="1"> 
-    <tr class="${listrow2CSS}">
+
+<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, aShowDelete, aShowEdit, aModuleName)>
+  <assign nrColumns="0">
+  <list aHeaders as h>
+    <assign nrColumns=utility.increment(nrColumns)>
+  </list>
+  <if aShowDelete == "1" || aShowEdit == "1" >
+    <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 == "1" || aShowEdit == "1">
+        <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>
+              ${utility.prettyEncodeHTML(entry[i])}
+            </td>
+        </list>
+        <if aShowDelete == "1" || aShowEdit == "1" >
+          <td>
+            <if aShowDelete>
+            <a class="listcommand" href="${config.actionRoot}?module=${aModuleName}&amp;do=delete&amp;id=${entry.id}&amp;okurl=${utility.encodeURI(thisurl)}&amp;cancelurl=${utility.encodeURI(thisurl)}">${lang("delete")}</a>
+            </if>
+            <if aShowDelete == "1" && aShowEdit == "1">
+            | 
+            </if>
+            <if aShowEdit == "1">
+              <a class="listcommand" href="${config.actionRoot}?module=${aModuleName}&do=edit&id=${entry.id}">${lang("edit")}</a>
+            </if>
+          </td>
+        </if>
+      </tr>
+    </list>
     
-  <list data_keys as indexVariable>   
-      <td>
-        ${entry[indexVariable]}
+    
+    <tr>    
+      <td colspan="${nrColumns}" class="${TABLE_FOOT_CLASS}">
+        ${aCount} ${lang("records")} / ${lang("show_from_to", aFrom, aTo)}
       </td>
-  </list>
-    <td>
-      <a class="listcommand" href="${config.actionRoot}?module=${module_name}&do=delete&id=${entry.id}">${lang("delete")}</a>
-      | <a class="listcommand" href="${config.actionRoot}?module=${module_name}&do=edit&id=${entry.id}">${lang("edit")}</a>
-    </td>
-  </tr>
-</list>
-  
+    </tr>
   
-  <tr>    
-    <td colspan="${column_nr}" class="table-foot">
-      ${data.count} ${lang("records")} / ${lang("show_from_to", data.from, data.to)}
-    </td>
-  </tr>
-
-</table>
+  </table>
 </function>
 
-<comment>creates browse links, only called if necessary</comment>
-<function PrevNextPage(module_name)>
-  <p>
-      <if (data.prev || data.next)>
-        <form method="post" action="${config.actionRoot}">
-          <input type="hidden" name="module" value="${module_name}">
-          <input type="hidden" name="where" value="${data.where}">
-          <if data.prev>
-            <input type="hidden" name="do" value="list">
-            <input type="hidden" name="prevoffset" value="${data.prev}">
-            <input type="submit" name="prev" value="${lang("list.previous")}">
-          </if>
-          <if data.next>
-            <input type="hidden" name="do" value="list">
-            <input type="hidden" name="nextoffset" value="${data.next}">
-            <input type="submit" name="next" value="${lang("list.next")}">
-          </if>
-        </form>
+
+<comment>extra navigation</comment>
+<function showAddOrBack(anAllowAdd, anAddModule, aBackModule, aBackMethod)>
+    <p>
+      <if anAllowAdd == "1">
+        <a class="link-box" href="${config.actionRoot}?module=${anAddModule}&do=add">[+] ${lang("add")}</a> &nbsp;
       </if>
+      <a class="link-box" href="${config.actionRoot}?module=${aBackModule}&do=${aBackMethod}">[&lt;] ${lang("back")} </a> &nbsp;
+<comment>      <a class="link-box" href="${config.actionRoot}">[&lt;&lt;&lt;] ${lang("head.start")}</a></comment>
   </p>
 </function>
 
-<comment>extra navigation</comment>
-<function AddOrBack(module_name, module_jumpback, do_jumpback)>
+<function showAddOrBack2(anAllowAdd, anAddModule, aBackUrl)>
     <p>
-      <a class="link-box" href="${config.actionRoot}?module=${module_name}&do=add">[+] ${lang("add")}</a> &nbsp;
-      <a class="link-box" href="${config.actionRoot}?module=${module_jumpback}&do=${do_jumpback}">[&lt;] ${lang("back")} </a> &nbsp;
-      <a class="link-box" href="${config.actionRoot}">[&lt;&lt;&lt;] ${lang("head.start")}</a>
+      <if anAllowAdd == "1">
+        <a class="link-box" href="${config.actionRoot}?module=${anAddModule}&do=add">[+] ${lang("add")}</a> &nbsp;
+      </if>
+      <a class="link-box" href="${config.actionRoot}?${aBackUrl}">[&lt;] ${lang("back")} </a> &nbsp;
   </p>
 </function>
 
+<function showBack(aBackUrl)>
+  <p><a class="link-box" href="${config.actionRoot}?${aBackUrl}">[&lt;] ${lang("back")} </a> &nbsp;</p>
+</function>
 
+<function _PulldownTableRow (label, fieldname, entrieslist, keyfield, valuefield, value, langprefix, aCanEdit)>
+  <if aCanEdit=="1">
+    <call PulldownTableRow (label, fieldname, entrieslist, keyfield, valuefield, value, langprefix)>
+  <else>
+    <call ReadOnlyPulldownTableRow (label, entrieslist, keyfield, valuefield, value, langprefix)>
+  </if>
+</function>
 
+<function ReadOnlyPulldownTableRow (label, entrieslist, keyfield, valuefield, value, langprefix)>
+  <tr>
+     <td align="right" class="table-left">
+       <b>${label}:</b>
+     </td>
+     <td class="listrow2">
+       <list entrieslist as a>
+          <if (a[keyfield] == value)><if langprefix>${lang(langprefix+a[valuefield])}<else>${a[valuefield]}</if></if>
+        </list>
+     </td>
+   </tr>
+</function>   
 
 <function PulldownTableRow (label, fieldname, entrieslist, keyfield, valuefield, value, langprefix)>
   <tr>
    </tr>
 </function>   
 
+<function ReadonlyTextTableRowNormal (label, fieldcontent)>
+  <call ReadonlyTextTableRow(label, fieldcontent, "listrow2")>
+</function>  
+
+
+<function _TextInputTableRow(label, size, maxlength, fieldname, fieldcontent, aCanEdit)>
+  <if aCanEdit=="1">
+    <call TextInputTableRow(label, size, maxlength, fieldname, fieldcontent)>
+  <else>
+    <call ReadonlyTextTableRow(label, fieldcontent, "listrow2")>
+  </if>
+</function>
+
+<function _TextInputTableRowLight(label, size, maxlength, fieldname, fieldcontent, aCanEdit)>
+  <if aCanEdit=="1">
+    <call TextInputTableRowLight(label, size, maxlength, fieldname, fieldcontent)>
+  <else>
+    <call ReadonlyTextTableRow(label, fieldcontent, "listrow1")>
+  </if>
+</function>
 
-<comment>4 functions to create Table rows with input-fields</comment>
 <function TextInputTableRow (label, size, maxlength, fieldname, fieldcontent)>
   <tr>
     <td align="right" class="table-left">
   </tr>
 </function>
 
+<function ReadonlyTextTableRow (label, fieldcontent, class)>
+  <tr>
+    <td align="right" class="table-left">
+      <b>${label}:</b>
+    </td>
+    
+    <td class="${class}">
+      ${utility.encodeHTML(fieldcontent)}
+    </td>
+  </tr>
+</function>
+
 <function PasswordTextInputTableRow (label, size, maxlength, fieldname, fieldcontent)>
   <tr>
     <td align="right" class="table-left">
 </function>
 
 <function CheckboxTableRow (label, fieldname, fieldcontent )>
+  <call EditCheckboxNormal(label, fieldname, fieldcontent)>
+</function> 
+
+<function _CheckboxTableRow (label, fieldname, fieldcontent, aCanEdit)>
+  <if aCanEdit=="1">
+    <call EditCheckboxNormal(label, fieldname, fieldcontent)>
+  <else>
+    <call ReadOnlyCheckboxNormal(label, fieldcontent)>
+  </if>
+</function> 
+
+<function _TextAreaTableRow (label, hint, cols, rows, fieldname, fieldcontent, aCanEdit)>
+  <if aCanEdit=="1">
+    <call TextAreaTableRow (label, hint, cols, rows, fieldname, fieldcontent)>
+  <else>
+    <call ReadOnlyTextAreaTableRow (label, hint, fieldcontent)>
+  </if>
+</function>
+<function ReadOnlyTextAreaTableRow (label, hint, 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">
-      <input type="checkbox" name="${fieldname}" value="1"<if fieldcontent=="1"> checked</if>>&nbsp;&nbsp;
+      ${utility.prettyEncodeHTML(fieldcontent)}
     </td>
   </tr>
-</function> 
-
+</function>
 <function TextAreaTableRow (label, hint, cols, rows, fieldname, fieldcontent )>
   <tr>
     <td align="right" valign="top" class="table-left">
 </function>
 
 <comment>complete search-form for contenentries, not sure if it works from everywhere</comment>
-<function ContentSearch (layout)>
+<function ContentSearch (aLayout)>
 
-      <form method="POST" action="${config.actionRoot}">
+      <form method="GET" action="${config.actionRoot}">
         <input type="hidden" name="module" value="Content">
         <input type="hidden" name="do" value="search">
-        <input type="hidden" name="selectarticleurl" value="${utility.encodeHTML(selectarticleurl)}">
+        <if selectarticleurl>
+          <input type="hidden" name="selectarticleurl" value="${utility.encodeHTML(selectarticleurl)}">
+        </if>
          
         <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 <if !aLayout>class="bg-neutral"</if>>
+            <td <if aLayout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.value")}</td>
+            <td <if aLayout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.field")}</td>
+            <td <if aLayout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.publishedstate")}</td>
+            <td <if aLayout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.articletype")}</td>
+            <td <if aLayout>class="table-head"<else>class="small bg-neutral"</if> valign="bottom"> ${lang("contentsearch.order")}</td>
+      <td <if aLayout>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>>
+            <td <if aLayout>class="listrow2"</if>><input type="text" size="10" maxlength="20" name="searchvalue" value="${searchvalue}"></td>
+            <td <if aLayout>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="title"<if searchfield && searchfield=="title"> selected</if>>${lang("contentsearch.field.title")}</option>
+                  <option value="creator"<if searchfield && searchfield=="creator"> selected</if>>${lang("contentsearch.field.creator")}</option>
+                  <option value="contents"<if searchfield && searchfield=="content"> selected</if>>${lang("contentsearch.field.contents")}</option>
+                  <option value="creator_main_url"<if searchfield && searchfield=="creator_main_url"> selected</if>>${lang("contentsearch.field.creator_main_url")}</option>
+                  <option value="creator_email"<if searchfield && searchfield=="creator_email"> selected</if>>${lang("contentsearch.field.creator_email")}</option>
+                  <option value="comment"<if searchfield && searchfield=="comment"> selected</if>>${lang("contentsearch.field.comment")}</option>
                 </select>
             </td>
-            <td <if layout>class="listrow2"</if>>
+            <td <if aLayout>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>
+                  <option value="0" <if searchispublished && searchispublished=="0"> selected</if>>${lang("contentsearch.publishedstate.hidden")}</option>
+                  <option value="1" <if searchispublished && searchispublished=="1"> selected</if>>${lang("contentsearch.publishedstate.published")}</option>
                 </select>
             </td>
-            <td <if layout>class="listrow2"</if>>
+            <td <if aLayout>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>
+                    <option value="${at.id}" <if searcharticletype && searcharticletype==at.id> selected</if>>${lang("articletypes."+at.name)}</option>
                   </list>
                 </select>
             </td>
-            <td <if layout>class="listrow2"</if>>
+            <td <if aLayout>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>
+                  <option value="datedesc" <if searchorder && searchorder=="datedesc"> selected</if>>${lang("contentsearch.order.datedesc")}</option>
+                  <option value="dateasc" <if searchorder && searchorder=="dateasc"> selected</if>>${lang("contentsearch.order.dateasc")}</option>
+                  <option value="title" <if searchorder && searchorder=="title"> selected</if>>${lang("contentsearch.order.title")}</option>
+                  <option value="creator" <if searchorder && searchorder=="creator"> selected</if>>${lang("contentsearch.order.creator")}</option>
                 </select>
             </td>
-            <td <if layout>class="listrow2"</if>>
+            <td <if aLayout>class="listrow2"</if>>
                 <input class="majorbutton" type="submit" name="search" value="${lang("contentsearch.searchbutton")}">
             </td>
           </tr>
 
 
 <comment>functions to show media for an article/comment edit page</comment>
-<function showArticleAttachments(anArticle)>
-  <call showAttachments(1, anArticle)>
+<function showArticleAttachments(anArticle, aCanEdit, aReturnUrl)>
+  <call showAttachments(1, anArticle, aCanEdit, aReturnUrl)>
 </function>
 
-<function showCommentAttachments(aComment)>
-  <call showAttachments(0, aComment)>
+<function showCommentAttachments(aComment, aReturnUrl)>
+  <call showAttachments(0, aComment, "1", aReturnUrl)>
 </function>
 
-<function showAttachments(anIsArticle, anObject)>
+<function showAttachments(anIsArticle, anObject, aCanEdit, aReturnUrl)>
   <if anIsArticle=="1">
     <assign objectKey="articleid">
     <assign objectModule="Content">
       <td align=right valign=top class="table-left">
         ${lang("content.images")}: 
       </td>
-      <td align="left" valign="top" class="listrow2">
-        <a href="${config.actionRoot}?module=Images&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addimage")}</a> |
-        <a href="${config.actionRoot}?module=Images&do=add&${objectKey}=${anObject.id}">${lang("content.uploadimage")}</a>
-      </td>
+      <if aCanEdit=="1">
+        <td align="left" valign="top" class="listrow2">
+          <a href="${config.actionRoot}?module=Images&amp;do=list&amp;${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">[+] ${lang("content.addimage")}</a> |
+          <a href="${config.actionRoot}?module=Images&amp;do=add&amp;${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("content.uploadimage")}</a> |
+                   <form method="post" action="${config.actionRoot}">
+                    id:
+             <input type="hidden" name="module" value="${objectModule}">
+             <input type="hidden" name="do" value="attach">
+                    <input type="text" size="5" maxlength="10" name="mid" value="">
+             <input type="hidden" name="${objectKey}" value="${anObject.id}">
+                    <input type="submit" class="minorbutton" value="${lang("content.addimage")}">
+                 </form>
+        </td>
+      </if>
     </tr>
     <list anObject.to_all_media_images as m>
       <tr>
       <td align=right valign=top>
-        <a href="${config.actionRoot}?module=Images&do=edit&id=${m["id"]}"><img src="${config.actionRoot}?module=Images&do=getIcon&id=${m["id"]}" alt="edit" border="0"></a>&nbsp;
-      </td>
-      <td align="left" valign="top">
-        <a href="${config.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
+        <a href="${config.actionRoot}?module=Images&amp;do=getMedia&amp;id=${m["id"]}&amp;returnurl=${utility.encodeURI(aReturnUrl)}"><img src="${config.actionRoot}?module=Images&amp;do=getIcon&amp;id=${m["id"]}" alt="edit" border="0"></a>&nbsp;
       </td>
+      <if aCanEdit=="1">
+        <td align="left" valign="top">
+          <a href="${config.actionRoot}?module=${objectModule}&do=dettach&amp;${objectKey}=${anObject.id}&amp;mid=${m["id"]}">[-] ${lang("deattach")}</a> |
+          <a href="${config.actionRoot}?module=Images&amp;do=edit&amp;id=${m.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("edit")}</a>
+        </td>
+      </if>
       </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.actionRoot}?module=Audio&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addaudio")}</a> |
-        <a href="${config.actionRoot}?module=Audio&do=add&${objectKey}=${anObject.id}">${lang("content.uploadaudio")}</a>
-      </td>
+      <if aCanEdit=="1">
+        <td align="left" valign="top" class="listrow2">
+          <a href="${config.actionRoot}?module=Audio&do=list&amp;${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">[+] ${lang("content.addaudio")}</a> |
+          <a href="${config.actionRoot}?module=Audio&do=add&amp;${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("content.uploadaudio")}</a>
+        </td>
+      </if>
     </tr>
     <list anObject.to_all_media_audio as m>
       <tr>
       <td align=right valign=top>
-        <a href="${config.actionRoot}?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.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
+        <a href="${config.actionRoot}?module=Audio&amp;do=getMedia&amp;id=${m["id"]}&amp;returnurl=${utility.encodeURI(aReturnUrl)}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>&nbsp;
       </td>
+      <if aCanEdit=="1">
+        <td align="left" valign="top">
+          <a href="${config.actionRoot}?module=${objectModule}&amp;do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("deattach")}</a> |
+          <a href="${config.actionRoot}?module=Audio&amp;do=edit&amp;id=${m.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("edit")}</a>
+        </td>
+      </if>
       </tr>
     </list>
     
       <td align=right valign=top class="table-left">
         ${lang("content.video")}:
       </td>
-      <td  align="left" valign="top" class="listrow2">
-        <a href="${config.actionRoot}?module=Video&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addvideo")}</a> |
-        <a href="${config.actionRoot}?module=Video&do=add&${objectKey}=${anObject.id}">${lang("content.uploadvideo")}</a>
-      </td>
+      <if aCanEdit=="1">
+        <td  align="left" valign="top" class="listrow2">
+          <a href="${config.actionRoot}?module=Video&amp;do=list&${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">[+] ${lang("content.addvideo")}</a> |
+          <a href="${config.actionRoot}?module=Video&amp;do=add&${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("content.uploadvideo")}</a>
+        </td>
+      </if>
     </tr>
     <list anObject.to_all_media_video as m>
       <tr>
       <td align=right valign=top>
-        <a href="${config.actionRoot}?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.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
+        <a href="${config.actionRoot}?module=Video&amp;do=getMedia&amp;id=${m["id"]}&amp;returnurl=${utility.encodeURI(aReturnUrl)}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>&nbsp;        
       </td>
+      <if aCanEdit=="1">
+        <td align="left" valign="top">
+          <a href="${config.actionRoot}?module=${objectModule}&amp;do=dettach&amp;${objectKey}=${anObject.id}&amp;mid=${m["id"]}">[-] ${lang("deattach")}</a> |
+          <a href="${config.actionRoot}?module=Video&amp;do=edit&amp;id=${m.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("edit")}</a>
+        </td>
+      </if>
       </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.actionRoot}?module=OtherMedia&do=list&${objectKey}=${anObject.id}">[+] ${lang("content.addother")}</a> |
-      <a href="${config.actionRoot}?module=OtherMedia&do=add&${objectKey}=${anObject.id}">${lang("content.uploadother")}</a>
-      </td>
+      <if aCanEdit=="1">
+        <td align="left" valign="top" class="listrow2">
+          <a href="${config.actionRoot}?module=OtherMedia&do=list&amp;${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">[+] ${lang("content.addother")}</a> |
+          <a href="${config.actionRoot}?module=OtherMedia&do=add&amp;${objectKey}=${anObject.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("content.uploadother")}</a>
+        </td>
+      </if>
     </tr>
     <list anObject.to_all_media_other as m>
       <tr>
       <td align=right valign=top">
-      <a href="${config.actionRoot}?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.actionRoot}?module=${objectModule}&do=dettach&${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("delete")}</a>
+      <a href="${config.actionRoot}?module=OtherMedia&amp;do=getMedia&amp;id=${m["id"]}&amp;returnurl=${utility.encodeURI(aReturnUrl)}"><img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0"></a>&nbsp;  
       </td>
+      <if aCanEdit=="1">
+        <td align="left" valign="top">
+          <a href="${config.actionRoot}?module=${objectModule}&amp;do=dettach&amp;${objectKey}=${anObject.id}&mid=${m["id"]}">[-] ${lang("deattach")}</a> |
+          <a href="${config.actionRoot}?module=OtherMedia&amp;do=edit&amp;id=${m.id}&amp;returnurl=${utility.encodeURI(aReturnUrl)}">${lang("edit")}</a>
+        </td>
+      </if>
       </tr>
     </list>
   </table>
 </function>  
 
+<function showCommentAttachment(aComment, aReturnUrl)>
+  <call showAttachment(0, aComment, "1", aReturnUrl)>
+</function>
+
+<function showAttachment(anIsArticle, anObject, aCanEdit, aReturnUrl)>
+    <assign objectKey="commentid">
+    <assign objectModule="Comment">
+    <list anObject.to_all_media_images as m>
+       <a href="${config.actionRoot}?module=Images&amp;do=getMedia&amp;id=${m["id"]}">
+         <img src="${config.actionRoot}?module=Images&amp;do=getIcon&amp;id=${m["id"]}"
+              alt="edit" border="0">
+       </a>
+    </list>
+    <list anObject.to_all_media_audio as m>
+       <img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0">
+    </list>
+    <list anObject.to_all_media_video as m>
+       <img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0">
+    </list>
+    <list anObject.to_all_media_other as m>
+       <img src="${config.docRoot}/img/${m["big_icon"]}" alt="edit" border="0">
+    </list>
+</function>
+