source: trunk/skins/lemill/wysiwym.pt @ 423

Revision 423, 7.9 KB checked in by jukka, 13 years ago (diff)

Fixed #500, spent 30min. Stupid tests.

  • Property svn:eol-style set to LF
Line 
1<html xmlns="http://www.w3.org/1999/xhtml"
2      xmlns:tal="http://xml.zope.org/namespaces/tal"
3      xmlns:metal="http://xml.zope.org/namespaces/metal"
4      xmlns:i18n="http://xml.zope.org/namespaces/i18n"
5      i18n:domain="plone">
6
7  <head><title></title></head>
8
9  <body>
10
11    <!-- TextArea Widgets -->
12
13    <metal:view_macro define-macro="view" tal:define="WYSIWYMLines widget/WYSIWYMLines | nothing; ">
14        <tal:lines condition="WYSIWYMLines">
15            <ul>
16            <span tal:repeat="line accessor" tal:omit-tag="">
17                <li><p tal:replace="structure line" /></li>
18            </span>
19            </ul>
20        </tal:lines>
21        <tal:area condition="not:widget/WYSIWYMLines" tal:replace="structure accessor" />
22    </metal:view_macro>
23
24    <metal:define define-macro="area_edit">
25      <tal:define
26          define="base python:hasattr(value, 'isUnit');
27                  binary python:base and value.isBinary() or here.isBinary(fieldName);
28                  content python: not not base and value.getRaw() or value;
29                  content python: not binary and content or '';
30                  content_length python:len(content);
31                  append_only python: getattr(widget, 'append_only', None);
32                  WYSIWYMLines widget/WYSIWYMLines | nothing; ">
33
34        <textarea
35            tabindex="#"
36            tal:attributes="name fieldName;
37                            id fieldName;
38                            cols widget/cols;
39                            rows widget/rows;                           
40                            tabindex tabindex/next;
41                            "
42            tal:define="
43             content python:not append_only and content or '';
44             content python:test(WYSIWYMLines, '\n'.join(list(content)), content)"
45            tal:content="content">content</textarea>
46
47
48
49            <tal:lines condition="WYSIWYMLines">
50                <table class="guidelines">
51                    <tr>
52                        <th width="50%">To get this effect...</th>
53                        <th width="50%">Type this...</th>
54                    </tr>
55           
56                    <tr>
57                        <td><a href="http://www.eun.org">EUN</a></td>
58                        <td>[http://www.eun.org EUN]</td>
59                    </tr>
60                    <tr>
61                        <td colspan="2">Write links to separate lines</td>
62                    </tr>
63                </table>
64            </tal:lines>
65            <tal:area condition="not:WYSIWYMLines">           
66                <div id="show_guide">
67                <p>LeMill uses simple syntax to format your text. Check the
68                <a href="javascript:show_div('guide');hide_div('show_guide');">formatting guide</a> to easily make bold, italic, lists and more.</p>
69                </div>
70   
71                <div id="guide">
72                <p><strong>Formatting guide</strong> -
73                <a href="javascript:hide_div('guide');show_div('show_guide');">Close this</a></p>
74   
75                <table class="guidelines">
76                    <tr>
77                        <th width="50%">To get this effect...</th>
78                        <th width="50%">Type this...</th>
79                    </tr>
80                    <tr>
81                        <td><strong>Bold phrase</strong></td>
82                        <td>*Bold phrase*</td>
83                    </tr>
84                    <tr>
85                        <td><em>Italic phrase</em></td>
86                        <td>_Italic phrase_</td>
87                    </tr>
88                    <tr>
89                        <td>
90                            <ul>
91                                <li>Bulleted list</li>
92                                <li>Bulleted list</li>
93                            </ul>
94                        </td>
95                        <td>* Bulleted list<br />
96                        * Bulleted list</td>
97                    </tr>
98                    <tr>
99                        <td>
100                            <ol>
101                                <li>Numbered list</li>
102                                <li>Numbered list</li>
103                            </ol>
104                        </td>
105                        <td># Numbered list<br />
106                        # Numbered list</td>
107                    </tr>
108                    <tr>
109                        <td><a href="http://www.eun.org">EUN</a></td>
110                        <td>[http://www.eun.org EUN]</td>
111                    </tr>
112                </table>
113                </div>
114            </tal:area>           
115            <!-- WYSIWYM Editor -->
116
117            <fieldset tal:condition="append_only">
118              <legend i18n:translate=""
119                      tal:define="label widget/label"
120                      tal:content="string:HISTORY: ${label}">
121                label
122              </legend>
123              <span i18n:translate=""
124                    tal:condition="python:(content_length &lt; 333)"
125                    tal:content="structure accessor">content</span>
126                    <textarea readonly="readonly" i18n:translate=""
127                              tal:condition="python:(content_length &gt;= 333)"
128                              tal:content="content"
129                              tal:attributes="cols widget/cols;
130                                              rows widget/rows;">
131                      content
132                    </textarea>
133            </fieldset>
134
135      </tal:define>
136    </metal:define>
137
138    <metal:define define-macro="area_format">
139      <tal:define
140          define="field_text_format string:${fieldName}_text_format;
141                  contentType python:request.get(field_text_format, here.getContentType(fieldName));
142                  allowable_ct python:getattr(field, 'allowable_content_types', ());
143                  mimetypes python:[t for t in allowable_ct if t.startswith('text/')];
144                  contenttype python:hasattr(field, 'getContentType') and field.getContentType(here) or ''">
145
146        <tal:condition condition="python:len(mimetypes) &gt; 1">
147        <div style="text-align: right; margin-right: 0.75em;">
148          <label i18n:translate="label_format">Format</label>
149          <select tal:attributes="id string:${fieldName}_text_format;
150                                  name string:${fieldName}_text_format;
151                                  tabindex tabindex/next">
152            <option selected="selected"
153                    value=""
154                    tal:attributes="value contentType"
155                    tal:condition="python:contenttype not in mimetypes">
156              (no change)
157            </option>
158            <option tal:repeat="item mimetypes"
159                    tal:content="python:here.lookupMime(item)"
160                    tal:attributes="value item;
161                                    selected python:test(here.checkSelected(item, contenttype, contenttypes=1), 'selected', None);"
162                    />
163          </select>
164        </div>
165        </tal:condition>
166        <tal:condition condition="python:len(mimetypes) == 1">
167          <input type="hidden"
168                 name=""
169                 value=""
170                 tal:attributes="name field_text_format;
171                                 value python:mimetypes[0]"
172                 />
173        </tal:condition>
174      </tal:define>
175    </metal:define>
176
177    <metal:define define-macro="edit">
178       <metal:use use-macro="field_macro | here/widgets/field/macros/edit">
179        <metal:fill fill-slot="widget_body">
180          <metal:block use-macro="here/wysiwym/macros/area_edit" />
181          <metal:block use-macro="here/wysiwym/macros/area_format" />
182        </metal:fill>
183      </metal:use>
184    </metal:define>
185
186    <metal:define define-macro="search">
187      <metal:use use-macro="here/widgets/field/macros/edit">
188        <metal:fill fill-slot="widget_body">
189
190          <metal:block use-macro="here/wysiwym/macros/area_edit" />
191
192        </metal:fill>
193      </metal:use>
194    </metal:define>
195
196  </body>
197
198</html>
Note: See TracBrowser for help on using the repository browser.