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

Revision 418, 7.7 KB checked in by jukka, 13 years ago (diff)

Closed #441, spent 3h. There is a new field in group blogs and templates look for that field to exist, so if your environment displays blank pages, try to update your Archetype_tool / object schemas.

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