root/trunk/grails-app/views/templateEditor/template.gsp @ 1077

Revision 1077, 5.2 KB (checked in by robert@…, 3 years ago)

Resolved bugs in adding ontology-template-fields to a template. See also bug #84

  • Property svn:keywords set to Author Date Rev
Line 
1<%
2        /**
3        * Template Editor overview template
4        *
5        * @author Jeroen Wesbeek
6        * @since 20100422
7        * @package wizard
8        * @see dbnp.studycapturing.TemplateEditorController
9        *
10        * Revision information:
11        * $Rev$
12        * $Author$
13        * $Date$
14        */
15%>
16<%@ page contentType="text/html;charset=UTF-8" %>
17<html>
18        <head>
19                <meta name="layout" content="${layout}"/>
20                <title>template editor</title>
21                <script src="${createLinkTo(dir: 'js', file: 'templateEditor.js')}" type="text/javascript"></script>
22                <link rel="stylesheet" href="${createLinkTo(dir: 'css', file: 'templateEditor.css')}" />
23                <g:if env="production">
24                        <script type="text/javascript" src="${resource(dir: 'js', file: 'jquery.ui.autocomplete.html.min.js')}"></script>
25                        <script type="text/javascript" src="${resource(dir: 'js', file: 'ontology-chooser.min.js')}"></script>
26                </g:if><g:else>
27                        <script type="text/javascript" src="${resource(dir: 'js', file: 'jquery.ui.autocomplete.html.js')}"></script>
28                  <script type="text/javascript" src="${resource(dir: 'js', file: 'ontology-chooser.js')}"></script>
29                </g:else>
30
31                <style type="text/css">
32                  #content .templateEditorStep { font-size: 0.8em; }
33                </style>
34        </head>
35        <body>
36
37                <script type="text/javascript">
38                        $(function() {
39                                // Enable sorting of template fields
40                                $("#selectedTemplateFields").sortable({
41                                        placeholder: 'ui-state-highlight',
42                                        items: 'li:not(.domain)',
43                                        cancel: '.empty, input, select, button, textarea, form, label',
44                                        connectWith: '.templateFields',
45                                        update: updateTemplateFieldPosition,
46                                        receive: addTemplateFieldEvent,
47                                        remove: removeTemplateFieldEvent,
48                                        start: savePosition
49                                }).disableSelection();
50
51
52                                $("#availableTemplateFields").sortable({
53                                        placeholder: 'ui-state-highlight',
54                                        cancel: '.empty, input, select, button, textarea, form, label',
55                                        connectWith: '.templateFields',
56                                        start: savePosition
57                                }).disableSelection();
58
59
60                                $("#ontologyDialog").dialog({
61                                  autoOpen: false,
62                                  title: 'Search for ontology',
63                                  height: 290,
64                                  width: 350,
65                                  modal: true,
66                                  buttons: {
67                                          'Add': addOntology,
68                                          Cancel: function() {
69                                                  $(this).dialog('close');
70                                          }
71                                  },
72                                  close: function() {
73                                  }
74
75                                });
76
77                        });
78                </script>
79               
80                <g:form action="template" name="templateChoice">
81                        <g:hiddenField name="entity" value="${encryptedEntity}" />
82                        <g:hiddenField name="ontologies" value="${ontologies}" />
83                        <input type="hidden" name="template" id="templateSelect" value="${template?.id}">
84                </g:form>
85
86                <g:if test="${template}">
87                        <div class="templateEditorStep" id="step2_selectedFields">
88                                <h3 class="templateName">${template.name} (<a class="switch" href="${createLink(action:'index',params: [ 'entity': encryptedEntity ] + extraparams )}">switch</a>)</h3>
89
90                                <p>Currently, this template contains the following fields. Drag fields to reorder. Drag fields to the list of available fields to remove the field from the template.</p>
91                                <ol id="domainFields" class="templateFields <g:if test="${template.inUse()}">inUse</g:if>">
92                                        <g:render template="elements/domainField" var="domainField" collection="${domainFields}" model="['template':template]"/>
93                                </ol>
94                                <ol id="selectedTemplateFields" class="templateFields <g:if test="${template.inUse()}">inUse</g:if>">
95                                        <g:render template="elements/selected" var="templateField" collection="${template.fields}" model="['template':template]"/>
96                                        <% /* NB: this empty field should always be the last in the list! */ %>
97                                        <li class="empty ui-state-default" <g:if test="${template.fields?.size() > 0 }">style='display: none;'</g:if>>This template does not yet contain any fields. Drag a field to this list or use the 'Add field button'.</li>
98                                </ol>
99                        </div>
100                        <div class="templateEditorStep" id="step3_availableFields">
101                                <h3>Available fields</h3>
102
103                                <p>These fields are available for adding to the template. Drag a field to the template to add it.</p>
104                                <ol id="availableTemplateFields" class="templateFields">
105                                        <g:render template="elements/available" var="templateField" collection="${allFields - template.fields}" />
106                                        <li class="empty ui-state-default" <g:if test="${allFields.size() > template.fields.size()}">style='display: none;'</g:if>>There are no additional fields that can be added. Use the 'Create new field' button to create new fields.</li>
107                                </ol>
108
109                                <div id="addNew">
110                                        <a href="#" onClick="showTemplateFieldForm( 'templateField_new' ); this.blur(); return false;">
111                                                <b>Create new field</b>
112                                        </a>
113
114                                        <form class="templateField_form" id="templateField_new_form" action="createField">
115                                                <g:hiddenField name="entity" value="${encryptedEntity}" />
116                                                <g:render template="elements/fieldForm" model="['templateField': null, 'fieldTypes': fieldTypes]"/>
117                                                <div class="templateFieldButtons">
118                                                        <input type="button" value="Save" onClick="createTemplateField( 'new' );">
119                                                        <input type="button" value="Cancel" onClick="hideTemplateFieldForm( 'new' );">
120                                                </div>
121                                        </form>
122                                </div>
123                        </div>
124                </g:if>
125                <br clear="all" />
126                <div id="ontologyDialog">
127                  <g:render template="ontologyDialog" />
128                </div>
129
130                <div id="wait" class="wait">
131                  &nbsp;
132                </div>
133                <div class="wait_text wait">
134                  <img src="<g:resource dir="images" file="spinner.gif" />"> Please wait
135                </div>
136                </body>
137</html>
Note: See TracBrowser for help on using the browser.