Annotation of kupuMPIWG/common/kupudrawers/drawer.xsl, revision 1.1.1.1

1.1       dwinter     1: <?xml version="1.0" encoding="utf-8" ?>
                      2: <!--
                      3: ##############################################################################
                      4: #
                      5: # Copyright (c) 2003-2005 Kupu Contributors. All rights reserved.
                      6: #
                      7: # This software is distributed under the terms of the Kupu
                      8: # License. See LICENSE.txt for license text. For a list of Kupu
                      9: # Contributors see CREDITS.txt.
                     10: #
                     11: ##############################################################################
                     12: 
                     13: XSL transformation from Kupu Library XML to HTML for the image library
                     14: drawer.
                     15: 
                     16: $Id: imagedrawer.xsl 4105 2004-04-21 23:56:13Z guido $
                     17: -->
                     18: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
                     19:     xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns="http://www.w3.org/1999/xhtml"
                     20:     xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                     21:     i18n:domain="kupu">
                     22:  <tal:block define="x python:request.RESPONSE.setHeader('Content-Type', 'text/xml;;charset=UTF-8')" />
                     23:     <xsl:param name="drawertype">image</xsl:param>
                     24:     <xsl:param name="drawertitle">Image Drawer</xsl:param>
                     25:     <xsl:param name="showupload"></xsl:param>
                     26:     <xsl:param name="usecaptions"></xsl:param>
                     27:     <xsl:variable name="titlelength" select="60"/>
                     28:         <xsl:variable name="i18n_drawertitle"> 
                     29:         <xsl:choose>
                     30:             <xsl:when i18n:translate="imagedrawer_title" test="$drawertype='image'">Insert Image</xsl:when>
                     31:             <xsl:when i18n:translate="linkdrawer_title"
                     32: test="$drawertype='link'">Insert Link</xsl:when>
                     33:         </xsl:choose>
                     34: </xsl:variable>
                     35:     <xsl:template match="/">
                     36:         <html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
                     37:             <head>
                     38:                 <title>
                     39:                     <xsl:value-of select="$i18n_drawertitle"/>
                     40:                 </title>
                     41:                 <link type="text/css" rel="stylesheet">
                     42:                     <xsl:attribute name="href">kupudrawerstyles.css </xsl:attribute>
                     43:                 </link>
                     44:             </head>
                     45:             <body>
                     46:                 <div style="width: 500px; border: solid black 1px; width: 100px">
                     47:                     <div id="kupu-librarydrawer">
                     48:                         <h1 style="padding: 0;float: left;">
                     49:                             <xsl:value-of select="$i18n_drawertitle"/>
                     50:                         </h1>
                     51:                         <div id="kupu-searchbox" style="text-align: right">
                     52:                             <form onsubmit="return false;">
                     53:                                 <xsl:variable name="search_value" 
                     54:                                               i18n:translate="kupudrawer_search">search</xsl:variable>
                     55:                                 <input id="kupu-searchbox-input"
                     56:                                     class="kupu-searchbox-input nofocus"
                     57:                                     name="searchbox"
                     58:                                     style="font-style: italic;"
                     59:                                     onkeyup="if (event.keyCode == 13 ) drawertool.current_drawer.search();">
                     60:                                    <xsl:attribute name="value">
                     61:                                       <xsl:value-of select="$search_value" />
                     62:                                    </xsl:attribute>
                     63:                                    <xsl:attribute name="onclick">
                     64:                                       if (this.value == '<xsl:value-of select="$search_value" />') this.value = ''; this.style.fontStyle='normal';</xsl:attribute>
                     65:                                 </input>
                     66:                             </form>
                     67:                         </div>
                     68:                         <div class="kupu-panels">
                     69:                             <table>
                     70:                                 <tr class="kupu-panelsrow">
                     71:                                     <td id="kupu-librariespanel" class="panel">
                     72:                                         <div id="kupu-librariesitems" class="overflow">
                     73:                                         <xsl:apply-templates select="/libraries/library"/>
                     74:                                         </div>
                     75:                                     </td>
                     76:                                     <td id="kupu-resourcespanel" class="panel">
                     77:                                         <div id="kupu-resourceitems" class="overflow">
                     78:                                         <xsl:apply-templates select="/libraries/*[@selected]/items"/>
                     79:                                         </div>
                     80:                                     </td>
                     81:                                     <td id="kupu-propertiespanel" class="panel">
                     82:                                         <div id="kupu-properties" class="overflow">
                     83:                                         <xsl:choose>
                     84:                                         <xsl:when test="$drawertype='image'">
                     85:                                             <xsl:if test="//resource[@selected]">
                     86:                                                 <xsl:apply-templates
                     87:                                                 select="/libraries/*[@selected]//resource[@selected]" mode="image-properties"/>
                     88:                                             </xsl:if>
                     89:                                             <!-- use image upload template -->
                     90:                                             <xsl:if test="$showupload='yes'">
                     91:                                                 <xsl:apply-templates select="/libraries/*[@selected]//uploadbutton" mode="image-upload"/>
                     92:                                             </xsl:if>
                     93:                                         </xsl:when>
                     94:                                         <xsl:when test="$drawertype='link'">
                     95:                                         <xsl:apply-templates
                     96:                                         select="/libraries/*[@selected]//resource[@selected]" mode="link-properties"/>
                     97:                                         </xsl:when>
                     98:                                         </xsl:choose>
                     99:                                         </div>
                    100:                                     </td>
                    101:                                 </tr>
                    102:                             </table>
                    103:                         </div>
                    104:                         <div class="kupu-dialogbuttons">                            
                    105:                             <button type="button" 
                    106:                                     class="kupu-dialog-button"
                    107:                                     i18n:translate="" 
                    108:                                     onclick="drawertool.current_drawer.save();">Ok</button>
                    109:                             <button type="button"
                    110:                                     class="kupu-dialog-button" 
                    111:                                     i18n:translate="" 
                    112:                                     onclick="drawertool.closeDrawer();">Cancel</button>
                    113:                         </div>
                    114:                     </div>
                    115:                 </div>
                    116:             </body>
                    117:         </html>
                    118:     </xsl:template>
                    119:     <xsl:template match="library">
                    120:         <div onclick="drawertool.current_drawer.selectLibrary('{@id}');"
                    121:             class="kupu-libsource" title="{title}" style="">
                    122:             <xsl:attribute name="id">
                    123:                 <xsl:value-of select="@id"/>
                    124:             </xsl:attribute>
                    125:             <xsl:apply-templates select="icon"/>
                    126:             <span class="drawer-item-title"><xsl:value-of select="title"/></span>
                    127:         </div>
                    128:     </xsl:template>
                    129:     <xsl:template match="items">
                    130:         <xsl:apply-templates select="collection|resource|uploadbutton" mode="currentpanel"/>
                    131:     </xsl:template>
                    132:     <xsl:template match="resource|collection" mode="currentpanel">
                    133:         <div id="{@id}" class="kupu-{local-name()}" title="{description}">
                    134:             <xsl:attribute name="onclick">
                    135:                 <xsl:choose>
                    136:                     <xsl:when
                    137:                             test="local-name()='collection'">drawertool.current_drawer.selectCollection('<xsl:value-of select="@id"/>');</xsl:when>
                    138: 
                    139:                     <xsl:otherwise>drawertool.current_drawer.selectItem(this, '<xsl:value-of select="@id"/>')</xsl:otherwise>
                    140:                 </xsl:choose>
                    141:             </xsl:attribute>
                    142:             <xsl:apply-templates select="icon"/>
                    143:             <xsl:apply-templates select="(label|title)[1]"/>
                    144:         </div>
                    145:     </xsl:template>
                    146:     <xsl:template match="uploadbutton" mode="currentpanel">
                    147:         <div class="kupu-upload">
                    148:             <xsl:attribute name="onclick">
                    149:                 drawertool.current_drawer.selectUpload();
                    150:             </xsl:attribute>
                    151:             <span class="drawer-item-title" 
                    152:                   i18n:translate="imagedrawer_upload_link">Upload ...</span>
                    153:         </div>
                    154:     </xsl:template>
                    155:     <xsl:template match="icon">
                    156:         <img src="{.}" alt="{../title}">
                    157:             <xsl:attribute name="class">library-icon-<xsl:value-of select="local-name(..)"/>
                    158:             </xsl:attribute>
                    159:         </img>
                    160:     </xsl:template>
                    161:     <xsl:template match="label|title">
                    162:         <span class="drawer-item-title">
                    163:             <xsl:if test="../@selected">
                    164:                 <xsl:attribute name="class">drawer-item-title selected-item</xsl:attribute>
                    165:             </xsl:if>
                    166:             <xsl:choose>
                    167:                 <xsl:when test="string-length() &gt; $titlelength">
                    168:                     <xsl:value-of select="substring(., 0, $titlelength)"/>... </xsl:when>
                    169:                 <xsl:otherwise>
                    170:                     <xsl:value-of select="."/>
                    171:                 </xsl:otherwise>
                    172:             </xsl:choose>
                    173:         </span>
                    174:     </xsl:template>
                    175:     <xsl:template match="resource|collection" mode="image-properties">
                    176:         <div>
                    177:             <xsl:value-of select="title"/>
                    178:         </div>
                    179:         <xsl:choose>
                    180:             <xsl:when test="width">
                    181:                 <div>
                    182:                     <xsl:variable name="h" select="number(height) div 120"/>
                    183:                     <xsl:variable name="w" select="number(width) div 100"/>
                    184:                     <xsl:choose>
                    185:                         <xsl:when test="($h&gt;$w) and $h&gt;1">
                    186:                             <img src="{uri}" title="{title}" height="120"
                    187:                                 width="{width div $h}" alt="{title}"/>
                    188:                         </xsl:when>
                    189:                         <xsl:when test="($w&gt;$h) and $w&gt;1">
                    190:                             <img src="{uri}" title="{title}"
                    191:                                 height="{height div $w}" width="100" alt="{title}"/>
                    192:                         </xsl:when>
                    193:                         <xsl:otherwise>
                    194:                             <img src="{uri}" title="{title}" height="{height}"
                    195:                                 width="{width}" alt="{title}"/>
                    196:                         </xsl:otherwise>
                    197:                     </xsl:choose>
                    198:                 </div>
                    199:             </xsl:when>
                    200:             <xsl:when test="preview">
                    201:                 <tr>
                    202:                     <td>
                    203:                         <strong i18n:translate="imagedrawer_upload_preview_label">Preview</strong>
                    204:                         <br/>
                    205:                         <img src="{preview}" title="{title}" height="{height}"
                    206:                             width="{width}" alt="{title}"/>
                    207:                     </td>
                    208:                 </tr>
                    209:             </xsl:when>
                    210:         </xsl:choose>
                    211:         <div>
                    212:             <xsl:value-of select="size"/>
                    213:             <xsl:if test="width" i18n:translate="imagedrawer_size">(<span i18n:name="width"><xsl:value-of select="width" /></span> by <span i18n:name="height"><xsl:value-of select="height" /></span>)</xsl:if>
                    214:         </div>
                    215:         <div>
                    216:             <xsl:value-of select="description"/>
                    217:         </div>
                    218:         <div>
                    219:             <form onsubmit="return false;">
                    220:                 <strong i18n:translate="imagedrawer_upload_alt_text">ALT-text</strong>
                    221:                 <br/>
                    222:                 <input type="text" id="image_alt" size="20" value="{title}"/>
                    223:                 <br/>
                    224:                 <input type="radio" name="image-align" id="image-align-left"
                    225:                     checked="checked" value="image-left"/>
                    226:                 <label for="image-align-left" i18n:translate="imagedrawer_left">Left</label>
                    227:                 <input type="radio" name="image-align" id="image-align-inline" value="image-inline"/>
                    228:                 <label for="image-align-inline" i18n:translate="imagedrawer_inline">Inline</label>
                    229:                 <input type="radio" name="image-align" id="image-align-right" value="image-right"/>
                    230:                 <label for="image-align-right" i18n:translate="imagedrawer_right">Right</label>
                    231:                 <xsl:if test="$usecaptions='yes'">
                    232:                     <br/>
                    233:                     <input type="checkbox" name="image-caption"
                    234:                         id="image-caption" checked="checked"/>
                    235:                     <label for="image-caption" i18n:translate="imagedrawer_caption_label">Caption</label>
                    236:                 </xsl:if>
                    237:             </form>
                    238:         </div>
                    239:     </xsl:template>
                    240:     <xsl:template match="resource|collection" mode="link-properties">
                    241:         <form onsubmit="return false;">
                    242:             <table>
                    243:                 <tr class="kupu-linkdrawer-title-row">
                    244:                     <td>
                    245:                         <strong i18n:translate="linkdrawer_title_label">Title</strong>
                    246:                         <br/>
                    247:                         <xsl:value-of select="title"/>
                    248:                     </td>
                    249:                 </tr>
                    250:                 <tr class="kupu-linkdrawer-description-row">
                    251:                     <td>
                    252:                         <strong i18n:translate="linkdrawer_description_label">Description</strong>
                    253:                         <br/>
                    254:                         <xsl:value-of select="description"/>
                    255:                     </td>
                    256:                 </tr>
                    257:                 <tr class="kupu-linkdrawer-name-row">
                    258:                     <td>
                    259:                         <strong i18n:translate="linkdrawer_name_label">Name</strong>
                    260:                         <br/>
                    261:                         <input type="text" id="link_name" size="10"/>
                    262:                     </td>
                    263:                 </tr>
                    264:                 <tr class="kupu-linkdrawer-target-row">
                    265:                     <td>
                    266:                         <strong i18n:translate="linkdrawer_target_label">Target</strong>
                    267:                         <br/>
                    268:                         <input type="text" id="link_target" value="_self" 
                    269:                                size="10"/>
                    270:                     </td>
                    271:                 </tr>
                    272:             </table>
                    273:         </form>
                    274:     </xsl:template>
                    275:     
                    276:     <!-- image upload form -->
                    277:     <xsl:template match="uploadbutton" mode="image-upload">
                    278:      <div>
                    279:         <div id="kupu-upload-instructions" i18n:translate="imagedrawer_upload_instructions">
                    280:             Select an image from your computer and click ok to have it
                    281:             automatically uploaded to selected folder and inserted into the
                    282:             editor.
                    283:         </div>
                    284:         <form name="kupu_upload_form" method="POST" action="" scrolling="off" target="kupu_upload_form_target"
                    285:               enctype="multipart/form-data" style="margin: 0; border: 0;">
                    286: 
                    287:             <label for="kupu-upload-file" i18n:translate="imagedrawer_upload_to_label">Upload to: <span i18n:name="folder"><xsl:value-of select='/libraries/*[@selected]/title' /></span></label>
                    288:             <input id="kupu-upload-file" type="file" name="node_prop_image" size="20"/><br/>
                    289:             <label for="kupu-upload-title"
                    290: i18n:translate="imagedrawer_upload_title_label">Title:</label>
                    291:             <input id="kupu-upload-title" type="text" name="node_prop_caption" size="23" value=""/><br/>
                    292:         </form>
                    293: 
                    294:         <iframe id="kupu-upload-form-target" name="kupu_upload_form_target"
                    295:                 src="kupublank.html" scrolling="off" frameborder="0" width="0px" height="0px" display="None">
                    296:         </iframe>
                    297:       </div>
                    298:     </xsl:template>
                    299:     
                    300: </xsl:stylesheet>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>