source: trunk/www/admin/mimetypes/edit_mimetype.jsp @ 3679

Last change on this file since 3679 was 3679, checked in by Jari Häkkinen, 14 years ago

Changing the pesky "a (ä) character to a.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 6.9 KB
Line 
1<%-- $Id: edit_mimetype.jsp 3679 2007-08-17 07:18:29Z jari $
2  ------------------------------------------------------------------
3  Copyright (C) 2005 Nicklas Nordborg
4  Copyright (C) 2006 Jari Hakkinen, Nicklas Nordborg, Martin Svensson
5
6  This file is part of BASE - BioArray Software Environment.
7  Available at http://base.thep.lu.se/
8
9  BASE is free software; you can redistribute it and/or
10  modify it under the terms of the GNU General Public License
11  as published by the Free Software Foundation; either version 2
12  of the License, or (at your option) any later version.
13
14  BASE is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  GNU General Public License for more details.
18
19  You should have received a copy of the GNU General Public License
20  along with this program; if not, write to the Free Software
21  Foundation, Inc., 59 Temple Place - Suite 330,
22  Boston, MA  02111-1307, USA.
23  ------------------------------------------------------------------
24
25
26  @author Nicklas
27  @version 2.0
28--%>
29<%@ page session="false"
30  import="net.sf.basedb.core.SessionControl"
31  import="net.sf.basedb.core.DbControl"
32  import="net.sf.basedb.core.Item"
33  import="net.sf.basedb.core.ItemContext"
34  import="net.sf.basedb.core.Permission"
35  import="net.sf.basedb.core.MimeType"
36  import="net.sf.basedb.core.FileType"
37  import="net.sf.basedb.core.ItemQuery"
38  import="net.sf.basedb.core.ItemResultList"
39  import="net.sf.basedb.core.query.Hql"
40  import="net.sf.basedb.core.query.Orders"
41  import="net.sf.basedb.core.PermissionDeniedException"
42  import="net.sf.basedb.clients.web.Base"
43  import="net.sf.basedb.clients.web.util.HTML"
44  import="net.sf.basedb.util.Values"
45%>
46<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
47<%@ taglib prefix="t" uri="/WEB-INF/tab.tld" %>
48<%
49final Item itemType = Item.MIMETYPE;
50final SessionControl sc = Base.getExistingSessionControl(pageContext, true);
51final ItemContext cc = Base.getAndSetCurrentContext(sc, itemType, null, null);
52final int itemId = cc.getId();
53final String ID = sc.getId();
54final float scale = Base.getScale(sc);
55final DbControl dc = sc.newDbControl();
56try
57{
58  String title = null;
59  MimeType mimeType = null;
60  boolean readCurrentFileType = true;
61  int currentFileTypeId = 0;
62
63  if (itemId == 0)
64  {
65    title = "Create mime type";
66    cc.removeObject("item");
67    currentFileTypeId = Values.getInt(cc.getPropertyValue("fileType"), 0);
68    if (currentFileTypeId == 0)
69    {
70      currentFileTypeId = Values.getInt(cc.getRecent(Item.FILETYPE.name(), 0), 0);
71    }
72  }
73  else
74  {
75    mimeType = MimeType.getById(dc, itemId);
76    cc.setObject("item", mimeType);
77    title = "Edit MIME type -- " + HTML.encodeTags(mimeType.getName() + " (" + mimeType.getExtension() + ")");
78    try
79    {
80      FileType ft = mimeType.getFileType();
81      if (ft != null) currentFileTypeId = ft.getId();
82    }
83    catch (PermissionDeniedException ex)
84    {
85      readCurrentFileType = false;
86    }
87  }
88  if (mimeType != null) mimeType.checkPermission(Permission.WRITE);
89 
90  // Query to retrieve file types
91  final ItemQuery<FileType> fileTypeQuery = FileType.getQuery();
92  fileTypeQuery.order(Orders.asc(Hql.property("name")));
93  fileTypeQuery.setCacheResult(true);
94 
95  final String clazz = "class=\"text\"";
96  final String requiredClazz = "class=\"text required\"";
97  %>
98
99  <base:page type="popup" title="<%=title%>">
100  <base:head scripts="tabcontrol.js" styles="tabcontrol.css">
101    <script language="JavaScript">
102    // Validate the "MimeType" tab
103    function validateMimeType()
104    {
105      var frm = document.forms['mimeType'];
106      if (Main.trimString(frm.name.value) == '')
107      {
108        alert("You must enter a MIME type");
109        frm.name.focus();
110        return false;
111      }
112      if (Main.trimString(frm.extension.value) == '')
113      {
114        alert("You must enter a file extension");
115        frm.name.focus();
116        return false;
117      }
118      return true;
119    }
120
121    // Submit the form
122    function saveSettings()
123    {
124      var frm = document.forms['mimeType'];
125      if (TabControl.validateActiveTab('settings'))
126      {
127        frm.submit();
128      }
129    }
130   
131    function init()
132    {
133      <%
134      if (mimeType == null)
135      {
136        %>
137        var frm = document.forms['mimeType'];
138        frm.name.focus();
139        frm.name.select();
140        <%
141      }
142      %>
143    }
144    </script>
145  </base:head>
146  <base:body onload="init()">
147    <p>
148    <form action="index.jsp?ID=<%=ID%>" method="post" name="mimeType" onsubmit="return false;">
149    <input type="hidden" name="cmd" value="UpdateItem">
150
151    <h3 class="docked"><%=title%> <base:help tabcontrol="settings" /></h3>
152    <t:tabcontrol id="settings" contentstyle="<%="height: "+(int)(scale*200)+"px;"%>" 
153      position="bottom" remember="<%=mimeType != null%>">
154    <t:tab id="info" title="MIME type" validate="validateMimeType()" helpid="mimetype.edit">
155      <table class="form" cellspacing=0>
156      <tr>
157        <td class="prompt">File extension</td>
158        <td><input <%=requiredClazz%> type="text" name="extension" 
159          value="<%=HTML.encodeTags(mimeType == null ? cc.getPropertyValue("extension") : mimeType.getExtension())%>" 
160          size="40" maxlength="<%=MimeType.MAX_NAME_LENGTH%>"></td>
161      </tr>
162      <tr>
163        <td class="prompt">MIME type</td>
164        <td><input <%=requiredClazz%> type="text" name="name" 
165          value="<%=HTML.encodeTags(mimeType == null ? Values.getString(cc.getPropertyValue("name"), "New MIME type") : mimeType.getName())%>" 
166          size="40" maxlength="<%=MimeType.MAX_NAME_LENGTH%>"></td>
167      </tr>
168      <tr valign="top">
169        <td class="prompt">File type</td>
170        <td colspan="2">
171          <select name="filetype_id" <%=!readCurrentFileType ? "disabled readonly class=\"disabled\"" : ""%>>
172          <%
173          if (!readCurrentFileType)
174          {
175            %>
176            <option value="-1">- denied -
177            <%
178          }
179          else
180          {
181            %>
182            <option value="0">- none -
183            <%
184            ItemResultList<FileType> fileTypes = fileTypeQuery.list(dc);
185            for (FileType fileType : fileTypes)
186            {
187              int id = fileType.getId();
188              %>
189              <option 
190                value="<%=mimeType != null && id == currentFileTypeId ? -id : id%>" 
191                <%=id == currentFileTypeId ? "selected" : ""%>
192                ><%=HTML.encodeTags(fileType.getName())%>
193              <%
194            }
195          }
196          %>
197          </select>
198        </td>
199      </tr>
200      <tr valign=top>
201        <td class="prompt">Description</td>
202        <td nowrap>
203          <textarea <%=clazz%> rows="4" cols="40" name="description" wrap="virtual"
204            ><%=HTML.encodeTags(mimeType == null ? cc.getPropertyValue("description") : mimeType.getDescription())%></textarea>
205          <a href="javascript:Main.zoom('Description', 'mimeType', 'description')"
206            title="Edit in larger window"><base:icon image="zoom.gif" /></a>
207        </td>
208      </tr>
209      </table>
210      <div align=right>&nbsp;<i><base:icon image="required.gif" /> = required information</i></div>
211    </t:tab>
212    </t:tabcontrol>
213
214    <table align="center">
215    <tr>
216      <td width="50%"><base:button onclick="saveSettings()" title="Save" /></td>
217      <td width="50%"><base:button onclick="window.close()" title="Cancel" /></td>
218    </tr>
219    </table>
220    </form>
221  </base:body>
222  </base:page>
223  <%
224}
225finally
226{
227  if (dc != null) dc.close();
228}
229%>
Note: See TracBrowser for help on using the repository browser.