##// END OF EJS Templates
wiki:...
Jean-Philippe Lang -
r324:a54a15523b1f
parent child
Show More
1 NO CONTENT: new file 100644, binary diff hidden
@@ -0,0 +1,32
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
4 <title>Wiki formatting</title>
5 <link rel="stylesheet" href="html.css" type="text/css">
6 <style>
7 table td { vertical-align: top; background-color: #eee; }
8 table td code { font-size: 1.2em; }
9 </style>
10 </head>
11 <body>
12
13 <table width="100%">
14 <tr><th colspan="3"><p><strong>Font Styles</strong></p></th></tr>
15 <tr><th><img src="../../images/jstoolbar/bt_strong.png" style="border: 1px solid #bbb;" /></th><td>*Strong*</td><td><strong>Strong</strong></td></tr>
16 <tr><th><img src="../../images/jstoolbar/bt_em.png" style="border: 1px solid #bbb;" /></th><td>_Italic_</td><td><em>Italic</em></td></tr>
17 <tr><th><img src="../../images/jstoolbar/bt_ins.png" style="border: 1px solid #bbb;" /></th><td>+Underline+</td><td><ins>Underline</ins></td></tr>
18 <tr><th><img src="../../images/jstoolbar/bt_del.png" style="border: 1px solid #bbb;" /></th><td>-Deleted-</td><td><del>Deleted</del></td></tr>
19 <tr><th><img src="../../images/jstoolbar/bt_quote.png" style="border: 1px solid #bbb;" /></th><td>??Quote??</td><td><cite>Quote</cite></td></tr>
20 <tr><th><img src="../../images/jstoolbar/bt_code.png" style="border: 1px solid #bbb;" /></th><td>@Code@</td><td><code>Code</code></td></tr>
21 <tr><th colspan="3"><p><strong>Lists</strong></p></th></tr>
22 <tr><th><img src="../../images/jstoolbar/bt_ul.png" style="border: 1px solid #bbb;" /></th><td>* Item 1<br />* Item 2</td><td><ul><li>Item 1</li><li>Item 2</li></ul></td></tr>
23 <tr><th><img src="../../images/jstoolbar/bt_ol.png" style="border: 1px solid #bbb;" /></th><td># Item 1<br /># Item 2</td><td><ol><li>Item 1</li><li>Item 2</li></ol></td></tr>
24 <tr><th colspan="3"><p><strong>Titles</strong></p></th></tr>
25 <tr><th><img src="../../images/jstoolbar/bt_heading.png" style="border: 1px solid #bbb;" /></th><td>h2. Title 2</td><td><h2>Title 2</h2></td></tr>
26 <tr><th colspan="3"><p><strong>Links</strong></p></th></tr>
27 <tr><th><img src="../../images/jstoolbar/bt_link.png" style="border: 1px solid #bbb;" /></th><td>[[Wiki page]]</td><td><a href="#">Wiki page</a></td></tr>
28 <tr><th></th><td>Issue #12</td><td>Issue <a href="#">#12</a></td></tr>
29 <tr><th></th><td>Revision r43</td><td>Revision <a href="#">r43</a></td></tr></table>
30
31 </body>
32 </html> No newline at end of file
@@ -0,0 +1,32
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
4 <title>Formatage Wiki</title>
5 <link rel="stylesheet" href="html.css" type="text/css">
6 <style>
7 table td { vertical-align: top; background-color: #eee; }
8 table td code { font-size: 1.2em; }
9 </style>
10 </head>
11 <body>
12
13 <table width="100%">
14 <tr><th colspan="3"><p><strong>Mise en forme</strong></p></th></tr>
15 <tr><th><img src="../../images/jstoolbar/bt_strong.png" style="border: 1px solid #bbb;" /></th><td>*Gras*</td><td><strong>Gras</strong></td></tr>
16 <tr><th><img src="../../images/jstoolbar/bt_em.png" style="border: 1px solid #bbb;" /></th><td>_Italique_</td><td><em>Italique</em></td></tr>
17 <tr><th><img src="../../images/jstoolbar/bt_ins.png" style="border: 1px solid #bbb;" /></th><td>+Souligné+</td><td><ins>Souligné</ins></td></tr>
18 <tr><th><img src="../../images/jstoolbar/bt_del.png" style="border: 1px solid #bbb;" /></th><td>-Rayé-</td><td><del>Rayé</del></td></tr>
19 <tr><th><img src="../../images/jstoolbar/bt_quote.png" style="border: 1px solid #bbb;" /></th><td>??Citation??</td><td><cite>Citation</cite></td></tr>
20 <tr><th><img src="../../images/jstoolbar/bt_code.png" style="border: 1px solid #bbb;" /></th><td>@Code@</td><td><code>Code</code></td></tr>
21 <tr><th colspan="3"><p><strong>Listes</strong></p></th></tr>
22 <tr><th><img src="../../images/jstoolbar/bt_ul.png" style="border: 1px solid #bbb;" /></th><td>* Item 1<br />* Item 2</td><td><ul><li>Item 1</li><li>Item 2</li></ul></td></tr>
23 <tr><th><img src="../../images/jstoolbar/bt_ol.png" style="border: 1px solid #bbb;" /></th><td># Item 1<br /># Item 2</td><td><ol><li>Item 1</li><li>Item 2</li></ol></td></tr>
24 <tr><th colspan="3"><p><strong>Titres</strong></p></th></tr>
25 <tr><th><img src="../../images/jstoolbar/bt_heading.png" style="border: 1px solid #bbb;" /></th><td>h2. Titre 2</td><td><h2>Titre 2</h2></td></tr>
26 <tr><th colspan="3"><p><strong>Liens</strong></p></th></tr>
27 <tr><th><img src="../../images/jstoolbar/bt_link.png" style="border: 1px solid #bbb;" /></th><td>[[Page wiki]]</td><td><a href="#">Page wiki</a></td></tr>
28 <tr><th></th><td>Demande #12</td><td>Demande <a href="#">#12</a></td></tr>
29 <tr><th></th><td>Révision r43</td><td>Révision <a href="#">r43</a></td></tr></table>
30
31 </body>
32 </html> No newline at end of file
@@ -1,39 +1,44
1 1 <div class="contextual">
2 2 <%= link_to(l(:label_page_index), {:action => 'special', :page => 'Page_index'}, :class => 'icon icon-index') %>
3 3 </div>
4 4
5 5 <h2><%= @page.pretty_title %></h2>
6 6
7 7 <% form_for :content, @content, :url => {:action => 'edit', :page => @page.title}, :html => {:id => 'wiki_form'} do |f| %>
8 8 <%= error_messages_for 'content' %>
9 <p><%= f.text_area :text, :cols => 100, :rows => 25, :style => "width:99%;" %></p>
9 <div class="contextual">
10 <%= l(:setting_text_formatting) %>:
11 <%= link_to l(:label_help), {:controller => 'help', :ctrl => 'wiki', :page => 'syntax' },
12 :onclick => "window.open('#{ url_for :controller => 'help', :ctrl => 'wiki', :page => 'syntax' }', '', 'resizable=yes, location=no, width=300, height=500, menubar=no, status=no, scrollbars=yes'); return false;" %>
13 </div>
14 <p><%= f.text_area :text, :cols => 100, :rows => 25, :style => "width:99.5%;" %></p>
10 15 <p><label><%= l(:field_comment) %></label><br /><%= f.text_field :comment, :size => 120 %></p>
11 16 <p><%= submit_tag l(:button_save) %>
12 17 <%= link_to_remote l(:label_preview),
13 18 { :url => { :controller => 'wiki', :action => 'preview', :id => @project },
14 19 :method => 'get',
15 20 :update => 'preview',
16 21 :with => "Form.serialize('wiki_form')",
17 22 :loading => "Element.show('indicator')",
18 23 :loaded => "Element.hide('indicator')"
19 24 } %>
20 25 <span id="indicator" style="display:none"><%= image_tag "loading.gif", :align => "absmiddle" %></span>
21 26 </p>
22 27
23 28 <% end %>
24 29
25 30 <% if Setting.text_formatting == 'textile' %>
26 31 <%= javascript_include_tag 'jstoolbar' %>
27 32 <script type="text/javascript">
28 33 //<![CDATA[
29 34 if (document.getElementById) {
30 35 if (document.getElementById('content_text')) {
31 36 var commentTb = new jsToolBar(document.getElementById('content_text'));
32 37 commentTb.draw();
33 38 }
34 39 }
35 40 //]]>
36 41 </script>
37 42 <% end %>
38 43
39 44 <div id="preview" class="wiki"></div> No newline at end of file
@@ -1,76 +1,78
1 1 # redMine - project management software
2 2 # Copyright (C) 2006 Jean-Philippe Lang
3 3 #
4 4 # This program is free software; you can redistribute it and/or
5 5 # modify it under the terms of the GNU General Public License
6 6 # as published by the Free Software Foundation; either version 2
7 7 # of the License, or (at your option) any later version.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU General Public License
15 15 # along with this program; if not, write to the Free Software
16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 18 # available languages for help pages
19 19 langs:
20 20 - en
21 21 - fr
22 22
23 23 # mapping between controller/action and help pages
24 24 # if action is not defined here, 'index' page will be displayed
25 25 pages:
26 26 # administration
27 27 admin:
28 28 index: ch01.html
29 29 mail_options: ch01s09.html
30 30 info: ch01s12.html
31 31 users:
32 32 index: ch01s02.html
33 33 roles:
34 34 index: ch01s03.html
35 35 workflow: ch01s07.html
36 36 trackers:
37 37 index: ch01s04.html
38 38 issue_statuses:
39 39 index: ch01s06.html
40 40 settings:
41 41 index: ch01s11.html
42 42 # projects
43 43 projects:
44 44 index: ch02.html
45 45 add: ch01s01.html
46 46 show: ch02s01.html
47 47 gantt: ch02s02.html
48 48 calendar: ch02s02.html
49 49 add_document: ch02s07.html
50 50 list_documents: ch02s07.html
51 51 add_issue: ch02s03.html
52 52 list_issues: ch02s03.html
53 53 add_news: ch02s06.html
54 54 list_news: ch02s06.html
55 55 add_file: ch02s08.html
56 56 list_files: ch02s08.html
57 57 changelog: ch02s05.html
58 58 issues:
59 59 index: ch02s03.html
60 60 documents:
61 61 index: ch02s07.html
62 62 news:
63 63 index: ch02s06.html
64 64 versions:
65 65 index: ch02s09.html
66 66 reports:
67 67 index: ch02s04.html
68 68 # accounts
69 69 my:
70 70 index: ch03.html
71 71 account: ch03s01.html
72 72 page: ch03s02.html
73 73 account:
74 74 index: ch03.html
75 75 lost_password: ch03s03.html
76 register: ch03s04.html No newline at end of file
76 register: ch03s04.html
77 wiki:
78 syntax: wiki_syntax.html No newline at end of file
@@ -1,440 +1,464
1 1 /* ***** BEGIN LICENSE BLOCK *****
2 2 * This file is part of DotClear.
3 3 * Copyright (c) 2005 Nicolas Martin & Olivier Meunier and contributors. All
4 4 * rights reserved.
5 5 *
6 6 * DotClear is free software; you can redistribute it and/or modify
7 7 * it under the terms of the GNU General Public License as published by
8 8 * the Free Software Foundation; either version 2 of the License, or
9 9 * (at your option) any later version.
10 10 *
11 11 * DotClear is distributed in the hope that it will be useful,
12 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 14 * GNU General Public License for more details.
15 15 *
16 16 * You should have received a copy of the GNU General Public License
17 17 * along with DotClear; if not, write to the Free Software
18 18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 19 *
20 20 * ***** END LICENSE BLOCK *****
21 21 */
22 22
23 23 /* Modified by JP LANG for textile formatting */
24 24
25 25 function jsToolBar(textarea) {
26 26 if (!document.createElement) { return; }
27 27
28 28 if (!textarea) { return; }
29 29
30 30 if ((typeof(document["selection"]) == "undefined")
31 31 && (typeof(textarea["setSelectionRange"]) == "undefined")) {
32 32 return;
33 33 }
34 34
35 35 this.textarea = textarea;
36 36
37 37 this.editor = document.createElement('div');
38 38 this.editor.className = 'jstEditor';
39 39
40 40 this.textarea.parentNode.insertBefore(this.editor,this.textarea);
41 41 this.editor.appendChild(this.textarea);
42 42
43 43 this.toolbar = document.createElement("div");
44 44 this.toolbar.className = 'jstElements';
45 45 this.editor.parentNode.insertBefore(this.toolbar,this.editor);
46 46
47 47 // Dragable resizing (only for gecko)
48 48 if (this.editor.addEventListener)
49 49 {
50 50 this.handle = document.createElement('div');
51 51 this.handle.className = 'jstHandle';
52 52 var dragStart = this.resizeDragStart;
53 53 var This = this;
54 54 this.handle.addEventListener('mousedown',function(event) { dragStart.call(This,event); },false);
55 55 // fix memory leak in Firefox (bug #241518)
56 56 window.addEventListener('unload',function() {
57 57 var del = This.handle.parentNode.removeChild(This.handle);
58 58 delete(This.handle);
59 59 },false);
60 60
61 61 this.editor.parentNode.insertBefore(this.handle,this.editor.nextSibling);
62 62 }
63 63
64 64 this.context = null;
65 65 this.toolNodes = {}; // lorsque la toolbar est dessinée , cet objet est garni
66 66 // de raccourcis vers les éléments DOM correspondants aux outils.
67 67 }
68 68
69 69 function jsButton(title, fn, scope, className) {
70 70 this.title = title || null;
71 71 this.fn = fn || function(){};
72 72 this.scope = scope || null;
73 73 this.className = className || null;
74 74 }
75 75 jsButton.prototype.draw = function() {
76 76 if (!this.scope) return null;
77 77
78 78 var button = document.createElement('button');
79 79 button.setAttribute('type','button');
80 80 if (this.className) button.className = this.className;
81 81 button.title = this.title;
82 82 var span = document.createElement('span');
83 83 span.appendChild(document.createTextNode(this.title));
84 84 button.appendChild(span);
85 85
86 86 if (this.icon != undefined) {
87 87 button.style.backgroundImage = 'url('+this.icon+')';
88 88 }
89 89 if (typeof(this.fn) == 'function') {
90 90 var This = this;
91 91 button.onclick = function() { try { This.fn.apply(This.scope, arguments) } catch (e) {} return false; };
92 92 }
93 93 return button;
94 94 }
95 95
96 96 function jsSpace(id) {
97 97 this.id = id || null;
98 98 this.width = null;
99 99 }
100 100 jsSpace.prototype.draw = function() {
101 101 var span = document.createElement('span');
102 102 if (this.id) span.id = this.id;
103 103 span.appendChild(document.createTextNode(String.fromCharCode(160)));
104 104 span.className = 'jstSpacer';
105 105 if (this.width) span.style.marginRight = this.width+'px';
106 106
107 107 return span;
108 108 }
109 109
110 110 function jsCombo(title, options, scope, fn, className) {
111 111 this.title = title || null;
112 112 this.options = options || null;
113 113 this.scope = scope || null;
114 114 this.fn = fn || function(){};
115 115 this.className = className || null;
116 116 }
117 117 jsCombo.prototype.draw = function() {
118 118 if (!this.scope || !this.options) return null;
119 119
120 120 var select = document.createElement('select');
121 121 if (this.className) select.className = className;
122 122 select.title = this.title;
123 123
124 124 for (var o in this.options) {
125 125 //var opt = this.options[o];
126 126 var option = document.createElement('option');
127 127 option.value = o;
128 128 option.appendChild(document.createTextNode(this.options[o]));
129 129 select.appendChild(option);
130 130 }
131 131
132 132 var This = this;
133 133 select.onchange = function() {
134 134 try {
135 135 This.fn.call(This.scope, this.value);
136 136 } catch (e) { alert(e); }
137 137
138 138 return false;
139 139 }
140 140
141 141 return select;
142 142 }
143 143
144 144
145 145 jsToolBar.prototype = {
146 146 base_url: '',
147 147 mode: 'wiki',
148 148 elements: {},
149 149
150 150 getMode: function() {
151 151 return this.mode;
152 152 },
153 153
154 154 setMode: function(mode) {
155 155 this.mode = mode || 'wiki';
156 156 },
157 157
158 158 switchMode: function(mode) {
159 159 mode = mode || 'wiki';
160 160 this.draw(mode);
161 161 },
162 162
163 163 button: function(toolName) {
164 164 var tool = this.elements[toolName];
165 165 if (typeof tool.fn[this.mode] != 'function') return null;
166 166 var b = new jsButton(tool.title, tool.fn[this.mode], this, 'jstb_'+toolName);
167 167 if (tool.icon != undefined) b.icon = tool.icon;
168 168 return b;
169 169 },
170 170 space: function(toolName) {
171 171 var tool = new jsSpace(toolName)
172 172 if (this.elements[toolName].width !== undefined)
173 173 tool.width = this.elements[toolName].width;
174 174 return tool;
175 175 },
176 176 combo: function(toolName) {
177 177 var tool = this.elements[toolName];
178 178 var length = tool[this.mode].list.length;
179 179
180 180 if (typeof tool[this.mode].fn != 'function' || length == 0) {
181 181 return null;
182 182 } else {
183 183 var options = {};
184 184 for (var i=0; i < length; i++) {
185 185 var opt = tool[this.mode].list[i];
186 186 options[opt] = tool.options[opt];
187 187 }
188 188 return new jsCombo(tool.title, options, this, tool[this.mode].fn);
189 189 }
190 190 },
191 191 draw: function(mode) {
192 192 this.setMode(mode);
193 193
194 194 // Empty toolbar
195 195 while (this.toolbar.hasChildNodes()) {
196 196 this.toolbar.removeChild(this.toolbar.firstChild)
197 197 }
198 198 this.toolNodes = {}; // vide les raccourcis DOM/**/
199 199
200 200 // Draw toolbar elements
201 201 var b, tool, newTool;
202 202
203 203 for (var i in this.elements) {
204 204 b = this.elements[i];
205 205
206 206 var disabled =
207 207 b.type == undefined || b.type == ''
208 208 || (b.disabled != undefined && b.disabled)
209 209 || (b.context != undefined && b.context != null && b.context != this.context);
210 210
211 211 if (!disabled && typeof this[b.type] == 'function') {
212 212 tool = this[b.type](i);
213 213 if (tool) newTool = tool.draw();
214 214 if (newTool) {
215 215 this.toolNodes[i] = newTool; //mémorise l'accès DOM pour usage éventuel ultérieur
216 216 this.toolbar.appendChild(newTool);
217 217 }
218 218 }
219 219 }
220 220 },
221 221
222 222 singleTag: function(stag,etag) {
223 223 stag = stag || null;
224 224 etag = etag || stag;
225 225
226 226 if (!stag || !etag) { return; }
227 227
228 228 this.encloseSelection(stag,etag);
229 229 },
230 230
231 231 encloseSelection: function(prefix, suffix, fn) {
232 232 this.textarea.focus();
233 233
234 234 prefix = prefix || '';
235 235 suffix = suffix || '';
236 236
237 237 var start, end, sel, scrollPos, subst, res;
238 238
239 239 if (typeof(document["selection"]) != "undefined") {
240 240 sel = document.selection.createRange().text;
241 241 } else if (typeof(this.textarea["setSelectionRange"]) != "undefined") {
242 242 start = this.textarea.selectionStart;
243 243 end = this.textarea.selectionEnd;
244 244 scrollPos = this.textarea.scrollTop;
245 245 sel = this.textarea.value.substring(start, end);
246 246 }
247 247
248 248 if (sel.match(/ $/)) { // exclude ending space char, if any
249 249 sel = sel.substring(0, sel.length - 1);
250 250 suffix = suffix + " ";
251 251 }
252 252
253 253 if (typeof(fn) == 'function') {
254 254 res = (sel) ? fn.call(this,sel) : fn('');
255 255 } else {
256 256 res = (sel) ? sel : '';
257 257 }
258 258
259 259 subst = prefix + res + suffix;
260 260
261 261 if (typeof(document["selection"]) != "undefined") {
262 262 var range = document.selection.createRange().text = subst;
263 263 this.textarea.caretPos -= suffix.length;
264 264 } else if (typeof(this.textarea["setSelectionRange"]) != "undefined") {
265 265 this.textarea.value = this.textarea.value.substring(0, start) + subst +
266 266 this.textarea.value.substring(end);
267 267 if (sel) {
268 268 this.textarea.setSelectionRange(start + subst.length, start + subst.length);
269 269 } else {
270 270 this.textarea.setSelectionRange(start + prefix.length, start + prefix.length);
271 271 }
272 272 this.textarea.scrollTop = scrollPos;
273 273 }
274 274 },
275 275
276 276 stripBaseURL: function(url) {
277 277 if (this.base_url != '') {
278 278 var pos = url.indexOf(this.base_url);
279 279 if (pos == 0) {
280 280 url = url.substr(this.base_url.length);
281 281 }
282 282 }
283 283
284 284 return url;
285 285 }
286 286 };
287 287
288 288 /** Resizer
289 289 -------------------------------------------------------- */
290 290 jsToolBar.prototype.resizeSetStartH = function() {
291 291 this.dragStartH = this.textarea.offsetHeight + 0;
292 292 };
293 293 jsToolBar.prototype.resizeDragStart = function(event) {
294 294 var This = this;
295 295 this.dragStartY = event.clientY;
296 296 this.resizeSetStartH();
297 297 document.addEventListener('mousemove', this.dragMoveHdlr=function(event){This.resizeDragMove(event);}, false);
298 298 document.addEventListener('mouseup', this.dragStopHdlr=function(event){This.resizeDragStop(event);}, false);
299 299 };
300 300
301 301 jsToolBar.prototype.resizeDragMove = function(event) {
302 302 this.textarea.style.height = (this.dragStartH+event.clientY-this.dragStartY)+'px';
303 303 };
304 304
305 305 jsToolBar.prototype.resizeDragStop = function(event) {
306 306 document.removeEventListener('mousemove', this.dragMoveHdlr, false);
307 307 document.removeEventListener('mouseup', this.dragStopHdlr, false);
308 308 };
309 309
310 310 // Elements definition ------------------------------------
311 311
312 312 // strong
313 313 jsToolBar.prototype.elements.strong = {
314 314 type: 'button',
315 315 title: 'Strong emphasis',
316 316 fn: {
317 317 wiki: function() { this.singleTag('*') }
318 318 }
319 319 }
320 320
321 321 // em
322 322 jsToolBar.prototype.elements.em = {
323 323 type: 'button',
324 324 title: 'Emphasis',
325 325 fn: {
326 326 wiki: function() { this.singleTag("_") }
327 327 }
328 328 }
329 329
330 330 // ins
331 331 jsToolBar.prototype.elements.ins = {
332 332 type: 'button',
333 333 title: 'Inserted',
334 334 fn: {
335 335 wiki: function() { this.singleTag('+') }
336 336 }
337 337 }
338 338
339 339 // del
340 340 jsToolBar.prototype.elements.del = {
341 341 type: 'button',
342 342 title: 'Deleted',
343 343 fn: {
344 344 wiki: function() { this.singleTag('-') }
345 345 }
346 346 }
347 347
348 348 // quote
349 //jsToolBar.prototype.elements.quote = {
350 // type: 'button',
351 // title: 'Inline quote',
352 // fn: {
353 // wiki: function() { this.singleTag('{{','}}') }
354 // }
355 //}
349 jsToolBar.prototype.elements.quote = {
350 type: 'button',
351 title: 'Inline quote',
352 fn: {
353 wiki: function() { this.singleTag('??') }
354 }
355 }
356 356
357 357 // code
358 358 jsToolBar.prototype.elements.code = {
359 359 type: 'button',
360 360 title: 'Code',
361 361 fn: {
362 362 wiki: function() { this.singleTag('@') }
363 363 }
364 364 }
365 365
366 366 // spacer
367 //jsToolBar.prototype.elements.space1 = {type: 'space'}
367 jsToolBar.prototype.elements.space1 = {type: 'space'}
368
369 // heading
370 jsToolBar.prototype.elements.heading = {
371 type: 'button',
372 title: 'Heading',
373 fn: {
374 wiki: function() {
375 this.encloseSelection('','',function(str) {
376 str = str.replace(/\r/g,'');
377 return 'h2. '+str.replace(/\n/g,"\n* ");
378 });
379 }
380 }
381 }
368 382
369 383 // br
370 384 //jsToolBar.prototype.elements.br = {
371 385 // type: 'button',
372 386 // title: 'Line break',
373 387 // fn: {
374 388 // wiki: function() { this.encloseSelection("%%%\n",'') }
375 389 // }
376 390 //}
377 391
378 392 // spacer
379 393 jsToolBar.prototype.elements.space2 = {type: 'space'}
380 394
381 395 // ul
382 396 jsToolBar.prototype.elements.ul = {
383 397 type: 'button',
384 398 title: 'Unordered list',
385 399 fn: {
386 400 wiki: function() {
387 401 this.encloseSelection('','',function(str) {
388 402 str = str.replace(/\r/g,'');
389 403 return '* '+str.replace(/\n/g,"\n* ");
390 404 });
391 405 }
392 406 }
393 407 }
394 408
395 409 // ol
396 410 jsToolBar.prototype.elements.ol = {
397 411 type: 'button',
398 412 title: 'Ordered list',
399 413 fn: {
400 414 wiki: function() {
401 415 this.encloseSelection('','',function(str) {
402 416 str = str.replace(/\r/g,'');
403 417 return '# '+str.replace(/\n/g,"\n# ");
404 418 });
405 419 }
406 420 }
407 421 }
408 422
409 423 // spacer
410 424 jsToolBar.prototype.elements.space3 = {type: 'space'}
411 425
412 426 // link
427 /*
413 428 jsToolBar.prototype.elements.link = {
414 429 type: 'button',
415 430 title: 'Link',
416 431 fn: {},
417 432 href_prompt: 'Please give page URL:',
418 433 hreflang_prompt: 'Language of this page:',
419 434 default_hreflang: '',
420 435 prompt: function(href,hreflang) {
421 436 href = href || '';
422 437 hreflang = hreflang || this.elements.link.default_hreflang;
423 438
424 439 href = window.prompt(this.elements.link.href_prompt,href);
425 440 if (!href) { return false; }
426 441
427 442 hreflang = ""
428 443
429 444 return { href: this.stripBaseURL(href), hreflang: hreflang };
430 445 }
431 446 }
432 447
433 448 jsToolBar.prototype.elements.link.fn.wiki = function() {
434 449 var link = this.elements.link.prompt.call(this);
435 450 if (link) {
436 451 var stag = '"';
437 452 var etag = '":'+link.href;
438 453 this.encloseSelection(stag,etag);
439 454 }
440 455 };
456 */
457 // link or wiki page
458 jsToolBar.prototype.elements.link = {
459 type: 'button',
460 title: 'Link',
461 fn: {
462 wiki: function() { this.encloseSelection("[[", "]]") }
463 }
464 }
@@ -1,602 +1,606
1 1 /* andreas08 - an open source xhtml/css website layout by Andreas Viklund - http://andreasviklund.com . Free to use in any way and for any purpose as long as the proper credits are given to the original designer. Version: 1.0, November 28, 2005 */
2 2 /* Edited by Jean-Philippe Lang *>
3 3 /**************** Body and tag styles ****************/
4 4
5 5 #header * {margin:0; padding:0;}
6 6 p, ul, ol, li {margin:0; padding:0;}
7 7
8 8 body{
9 9 font:76% Verdana,Tahoma,Arial,sans-serif;
10 10 line-height:1.4em;
11 11 text-align:center;
12 12 color:#303030;
13 13 background:#e8eaec;
14 14 margin:0;
15 15 }
16 16
17 17 a{color:#467aa7;font-weight:bold;text-decoration:none;background-color:inherit;}
18 18 a:hover{color:#2a5a8a; text-decoration:none; background-color:inherit;}
19 19 a img{border:none;}
20 20
21 21 p{margin:0 0 1em 0;}
22 22 p form{margin-top:0; margin-bottom:20px;}
23 23
24 24 img.left,img.center,img.right{padding:4px; border:1px solid #a0a0a0;}
25 25 img.left{float:left; margin:0 12px 5px 0;}
26 26 img.center{display:block; margin:0 auto 5px auto;}
27 27 img.right{float:right; margin:0 0 5px 12px;}
28 28
29 29 /**************** Header and navigation styles ****************/
30 30
31 31 #container{
32 32 width:100%;
33 33 min-width: 800px;
34 34 margin:0;
35 35 padding:0;
36 36 text-align:left;
37 37 background:#ffffff;
38 38 color:#303030;
39 39 }
40 40
41 41 #header{
42 42 height:4.5em;
43 43 margin:0;
44 44 background:#467aa7;
45 45 color:#ffffff;
46 46 margin-bottom:1px;
47 47 }
48 48
49 49 #header h1{
50 50 padding:10px 0 0 20px;
51 51 font-size:2em;
52 52 background-color:inherit;
53 53 color:#fff;
54 54 letter-spacing:-1px;
55 55 font-weight:bold;
56 56 font-family: Trebuchet MS,Georgia,"Times New Roman",serif;
57 57 }
58 58
59 59 #header h2{
60 60 margin:3px 0 0 40px;
61 61 font-size:1.5em;
62 62 background-color:inherit;
63 63 color:#f0f2f4;
64 64 letter-spacing:-1px;
65 65 font-weight:normal;
66 66 font-family: Trebuchet MS,Georgia,"Times New Roman",serif;
67 67 }
68 68
69 69 #navigation{
70 70 height:2.2em;
71 71 line-height:2.2em;
72 72 margin:0;
73 73 background:#578bb8;
74 74 color:#ffffff;
75 75 }
76 76
77 77 #navigation li{
78 78 float:left;
79 79 list-style-type:none;
80 80 border-right:1px solid #ffffff;
81 81 white-space:nowrap;
82 82 }
83 83
84 84 #navigation li.right {
85 85 float:right;
86 86 list-style-type:none;
87 87 border-right:0;
88 88 border-left:1px solid #ffffff;
89 89 white-space:nowrap;
90 90 }
91 91
92 92 #navigation li a{
93 93 display:block;
94 94 padding:0px 10px 0px 22px;
95 95 font-size:0.8em;
96 96 font-weight:normal;
97 97 text-decoration:none;
98 98 background-color:inherit;
99 99 color: #ffffff;
100 100 }
101 101
102 102 #navigation li.submenu {background:url(../images/arrow_down.png) 96% 80% no-repeat;}
103 103 #navigation li.submenu a {padding:0px 16px 0px 22px;}
104 104 * html #navigation a {width:1%;}
105 105
106 106 #navigation .selected,#navigation a:hover{
107 107 color:#ffffff;
108 108 text-decoration:none;
109 109 background-color: #80b0da;
110 110 }
111 111
112 112 /**************** Icons *******************/
113 113 .icon {
114 114 background-position: 0% 40%;
115 115 background-repeat: no-repeat;
116 116 padding-left: 20px;
117 117 padding-top: 2px;
118 118 padding-bottom: 3px;
119 119 vertical-align: middle;
120 120 }
121 121
122 122 #navigation .icon {
123 123 background-position: 4px 50%;
124 124 }
125 125
126 126 .icon22 {
127 127 background-position: 0% 40%;
128 128 background-repeat: no-repeat;
129 129 padding-left: 26px;
130 130 line-height: 22px;
131 131 vertical-align: middle;
132 132 }
133 133
134 134 .icon-add { background-image: url(../images/add.png); }
135 135 .icon-edit { background-image: url(../images/edit.png); }
136 136 .icon-del { background-image: url(../images/delete.png); }
137 137 .icon-move { background-image: url(../images/move.png); }
138 138 .icon-save { background-image: url(../images/save.png); }
139 139 .icon-cancel { background-image: url(../images/cancel.png); }
140 140 .icon-pdf { background-image: url(../images/pdf.png); }
141 141 .icon-csv { background-image: url(../images/csv.png); }
142 142 .icon-html { background-image: url(../images/html.png); }
143 143 .icon-txt { background-image: url(../images/txt.png); }
144 144 .icon-file { background-image: url(../images/file.png); }
145 145 .icon-folder { background-image: url(../images/folder.png); }
146 146 .icon-package { background-image: url(../images/package.png); }
147 147 .icon-home { background-image: url(../images/home.png); }
148 148 .icon-user { background-image: url(../images/user.png); }
149 149 .icon-mypage { background-image: url(../images/user_page.png); }
150 150 .icon-admin { background-image: url(../images/admin.png); }
151 151 .icon-projects { background-image: url(../images/projects.png); }
152 152 .icon-logout { background-image: url(../images/logout.png); }
153 153 .icon-help { background-image: url(../images/help.png); }
154 154 .icon-attachment { background-image: url(../images/attachment.png); }
155 155 .icon-index { background-image: url(../images/index.png); }
156 156 .icon-history { background-image: url(../images/history.png); }
157 157
158 158 .icon22-projects { background-image: url(../images/22x22/projects.png); }
159 159 .icon22-users { background-image: url(../images/22x22/users.png); }
160 160 .icon22-tracker { background-image: url(../images/22x22/tracker.png); }
161 161 .icon22-role { background-image: url(../images/22x22/role.png); }
162 162 .icon22-workflow { background-image: url(../images/22x22/workflow.png); }
163 163 .icon22-options { background-image: url(../images/22x22/options.png); }
164 164 .icon22-notifications { background-image: url(../images/22x22/notifications.png); }
165 165 .icon22-authent { background-image: url(../images/22x22/authent.png); }
166 166 .icon22-info { background-image: url(../images/22x22/info.png); }
167 167 .icon22-comment { background-image: url(../images/22x22/comment.png); }
168 168 .icon22-package { background-image: url(../images/22x22/package.png); }
169 169 .icon22-settings { background-image: url(../images/22x22/settings.png); }
170 170
171 171 /**************** Content styles ****************/
172 172
173 173 html>body #content {
174 174 height: auto;
175 175 min-height: 500px;
176 176 }
177 177
178 178 #content{
179 179 width: auto;
180 180 height:500px;
181 181 font-size:0.9em;
182 182 padding:20px 10px 10px 20px;
183 183 margin-left: 120px;
184 184 border-left: 1px dashed #c0c0c0;
185 185
186 186 }
187 187
188 188 #content h2, #content div.wiki h1 {
189 189 display:block;
190 190 margin:0 0 16px 0;
191 191 font-size:1.7em;
192 192 font-weight:normal;
193 193 letter-spacing:-1px;
194 194 color:#606060;
195 195 background-color:inherit;
196 196 font-family: Trebuchet MS,Georgia,"Times New Roman",serif;
197 197 }
198 198
199 199 #content h2 a{font-weight:normal;}
200 200 #content h3{margin:0 0 12px 0; font-size:1.4em;color:#707070;font-family: Trebuchet MS,Georgia,"Times New Roman",serif;}
201 201 #content h4{font-size: 1em; margin-bottom: 12px; margin-top: 20px; font-weight: normal; border-bottom: dotted 1px #c0c0c0;}
202 202 #content a:hover,#subcontent a:hover{text-decoration:underline;}
203 203 #content ul,#content ol{margin:0 5px 16px 35px;}
204 204 #content dl{margin:0 5px 10px 25px;}
205 205 #content dt{font-weight:bold; margin-bottom:5px;}
206 206 #content dd{margin:0 0 10px 15px;}
207 207
208 208 #content .tabs{height: 2.6em;}
209 209 #content .tabs ul{margin:0;}
210 210 #content .tabs ul li{
211 211 float:left;
212 212 list-style-type:none;
213 213 white-space:nowrap;
214 214 margin-right:8px;
215 215 background:#fff;
216 216 }
217 217 #content .tabs ul li a{
218 218 display:block;
219 219 font-size: 0.9em;
220 220 text-decoration:none;
221 221 line-height:1em;
222 222 padding:4px;
223 223 border: 1px solid #c0c0c0;
224 224 }
225 225
226 226 #content .tabs ul li a.selected, #content .tabs ul li a:hover{
227 227 background-color: #80b0da;
228 228 border: 1px solid #80b0da;
229 229 color: #fff;
230 230 text-decoration:none;
231 231 }
232 232
233 233 /***********************************************/
234 234
235 235 form {display: inline;}
236 236 blockquote {padding-left: 6px; border-left: 2px solid #ccc;}
237 237 input, select {vertical-align: middle; margin-bottom: 4px;}
238 238
239 239 input.button-small {font-size: 0.8em;}
240 240 .select-small {font-size: 0.8em;}
241 241 label {font-weight: bold; font-size: 1em; color: #505050;}
242 242 fieldset {border:1px solid #c0c0c0; padding: 6px;}
243 243 legend {color: #505050;}
244 244 .required {color: #bb0000;}
245 245 .odd {background-color:#f6f7f8;}
246 246 .even {background-color: #fff;}
247 247 hr { border:0; border-top: dotted 1px #fff; border-bottom: dotted 1px #c0c0c0; }
248 248 table p {margin:0; padding:0;}
249 249
250 250 .highlight { background-color: #FCFD8D;}
251 251
252 252 div.square {
253 253 border: 1px solid #999;
254 254 float: left;
255 255 margin: .4em .5em 0 0;
256 256 overflow: hidden;
257 257 width: .6em; height: .6em;
258 258 }
259 259
260 260 ul.documents {
261 261 list-style-type: none;
262 262 padding: 0;
263 263 margin: 0;
264 264 }
265 265
266 266 ul.documents li {
267 267 background-image: url(../images/32x32/file.png);
268 268 background-repeat: no-repeat;
269 269 background-position: 0 1px;
270 270 padding-left: 36px;
271 271 margin-bottom: 10px;
272 272 margin-left: -37px;
273 273 }
274 274
275 275 /********** Table used to display lists of things ***********/
276 276
277 277 table.list {
278 278 width:100%;
279 279 border-collapse: collapse;
280 280 border: 1px dotted #d0d0d0;
281 281 margin-bottom: 6px;
282 282 }
283 283
284 284 table.with-cells td {
285 285 border: 1px solid #d7d7d7;
286 286 }
287 287
288 288 table.list td {
289 289 padding:2px;
290 290 }
291 291
292 292 table.list thead th {
293 293 text-align: center;
294 294 background: #eee;
295 295 border: 1px solid #d7d7d7;
296 296 color: #777;
297 297 }
298 298
299 299 table.list tbody th {
300 300 font-weight: normal;
301 301 background: #eed;
302 302 border: 1px solid #d7d7d7;
303 303 }
304 304
305 305 /********** Validation error messages *************/
306 306 #errorExplanation {
307 307 width: 400px;
308 308 border: 0;
309 309 padding: 7px;
310 310 padding-bottom: 3px;
311 311 margin-bottom: 0px;
312 312 }
313 313
314 314 #errorExplanation h2 {
315 315 text-align: left;
316 316 font-weight: bold;
317 317 padding: 5px 5px 10px 26px;
318 318 font-size: 1em;
319 319 margin: -7px;
320 320 background: url(../images/alert.png) no-repeat 6px 6px;
321 321 }
322 322
323 323 #errorExplanation p {
324 324 color: #333;
325 325 margin-bottom: 0;
326 326 padding: 5px;
327 327 }
328 328
329 329 #errorExplanation ul li {
330 330 font-size: 1em;
331 331 list-style: none;
332 332 margin-left: -16px;
333 333 }
334 334
335 335 /*========== Drop down menu ==============*/
336 336 div.menu {
337 337 background-color: #FFFFFF;
338 338 border-style: solid;
339 339 border-width: 1px;
340 340 border-color: #7F9DB9;
341 341 position: absolute;
342 342 top: 0px;
343 343 left: 0px;
344 344 padding: 0;
345 345 visibility: hidden;
346 346 z-index: 101;
347 347 }
348 348
349 349 div.menu a.menuItem {
350 350 font-size: 10px;
351 351 font-weight: normal;
352 352 line-height: 2em;
353 353 color: #000000;
354 354 background-color: #FFFFFF;
355 355 cursor: default;
356 356 display: block;
357 357 padding: 0 1em;
358 358 margin: 0;
359 359 border: 0;
360 360 text-decoration: none;
361 361 white-space: nowrap;
362 362 }
363 363
364 364 div.menu a.menuItem:hover, div.menu a.menuItemHighlight {
365 365 background-color: #80b0da;
366 366 color: #ffffff;
367 367 }
368 368
369 369 div.menu a.menuItem span.menuItemText {}
370 370
371 371 div.menu a.menuItem span.menuItemArrow {
372 372 margin-right: -.75em;
373 373 }
374 374
375 375 /**************** Sidebar styles ****************/
376 376
377 377 #subcontent{
378 378 position: absolute;
379 379 left: 0px;
380 380 width:110px;
381 381 padding:20px 20px 10px 5px;
382 382 }
383 383
384 384 #subcontent h2{
385 385 display:block;
386 386 margin:0 0 5px 0;
387 387 font-size:1.0em;
388 388 font-weight:bold;
389 389 text-align:left;
390 390 color:#606060;
391 391 background-color:inherit;
392 392 font-family: Trebuchet MS,Georgia,"Times New Roman",serif;
393 393 }
394 394
395 395 #subcontent p{margin:0 0 16px 0; font-size:0.9em;}
396 396
397 397 /**************** Menublock styles ****************/
398 398
399 399 .menublock{margin:0 0 20px 8px; font-size:0.8em;}
400 400 .menublock li{list-style:none; display:block; padding:1px; margin-bottom:0px;}
401 401 .menublock li a{font-weight:bold; text-decoration:none;}
402 402 .menublock li a:hover{text-decoration:none;}
403 403 .menublock li ul{margin:0; font-size:1em; font-weight:normal;}
404 404 .menublock li ul li{margin-bottom:0;}
405 405 .menublock li ul a{font-weight:normal;}
406 406
407 407 /**************** Footer styles ****************/
408 408
409 409 #footer{
410 410 clear:both;
411 411 padding:5px 0;
412 412 margin:0;
413 413 font-size:0.9em;
414 414 color:#f0f0f0;
415 415 background:#467aa7;
416 416 }
417 417
418 418 #footer p{padding:0; margin:0; text-align:center;}
419 419 #footer a{color:#f0f0f0; background-color:inherit; font-weight:bold;}
420 420 #footer a:hover{color:#ffffff; background-color:inherit; text-decoration: underline;}
421 421
422 422 /**************** Misc classes and styles ****************/
423 423
424 424 .splitcontentleft{float:left; width:49%;}
425 425 .splitcontentright{float:right; width:49%;}
426 426 .clear{clear:both;}
427 427 .small{font-size:0.8em;line-height:1.4em;padding:0 0 0 0;}
428 428 .hide{display:none;}
429 429 .textcenter{text-align:center;}
430 430 .textright{text-align:right;}
431 431 .important{color:#f02025; background-color:inherit; font-weight:bold;}
432 432
433 433 .box{
434 434 margin:0 0 20px 0;
435 435 padding:10px;
436 436 border:1px solid #c0c0c0;
437 437 background-color:#fafbfc;
438 438 color:#505050;
439 439 line-height:1.5em;
440 440 }
441 441
442 442 a.close-icon {
443 443 display:block;
444 444 margin-top:3px;
445 445 overflow:hidden;
446 446 width:12px;
447 447 height:12px;
448 448 background-repeat: no-repeat;
449 449 cursor:pointer;
450 450 background-image:url('../images/close.png');
451 451 }
452 452
453 453 a.close-icon:hover {
454 454 background-image:url('../images/close_hl.png');
455 455 }
456 456
457 457 .rightbox{
458 458 background: #fafbfc;
459 459 border: 1px solid #c0c0c0;
460 460 float: right;
461 461 padding: 8px;
462 462 position: relative;
463 463 margin: 0 5px 5px;
464 464 }
465 465
466 466 .layout-active {
467 467 background: #ECF3E1;
468 468 }
469 469
470 470 .block-receiver {
471 471 border:1px dashed #c0c0c0;
472 472 margin-bottom: 20px;
473 473 padding: 15px 0 15px 0;
474 474 }
475 475
476 476 .mypage-box {
477 477 margin:0 0 20px 0;
478 478 color:#505050;
479 479 line-height:1.5em;
480 480 }
481 481
482 482 .handle {
483 483 cursor: move;
484 484 }
485 485
486 486 .login {
487 487 width: 50%;
488 488 text-align: left;
489 489 }
490 490
491 491 img.calendar-trigger {
492 492 cursor: pointer;
493 493 vertical-align: middle;
494 494 margin-left: 4px;
495 495 }
496 496
497 497 #history p {
498 498 margin-left: 34px;
499 499 }
500 500
501 501 /***** Contextual links div *****/
502 502 .contextual {
503 503 float: right;
504 504 font-size: 0.8em;
505 505 line-height: 16px;
506 506 padding: 2px;
507 507 }
508 508
509 509 .contextual select, .contextual input {
510 510 font-size: 1em;
511 511 }
512 512
513 513 /***** Gantt chart *****/
514 514 .gantt_hdr {
515 515 position:absolute;
516 516 top:0;
517 517 height:16px;
518 518 border-top: 1px solid #c0c0c0;
519 519 border-bottom: 1px solid #c0c0c0;
520 520 border-right: 1px solid #c0c0c0;
521 521 text-align: center;
522 522 overflow: hidden;
523 523 }
524 524
525 525 .task {
526 526 position: absolute;
527 527 height:8px;
528 528 font-size:0.8em;
529 529 color:#888;
530 530 padding:0;
531 531 margin:0;
532 532 line-height:0.8em;
533 533 }
534 534
535 535 .task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; }
536 536 .task_done { background:#66f url(../images/task_done.png); border: 1px solid #66f; }
537 537 .task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; }
538 538
539 539 /***** Tooltips ******/
540 540 .tooltip{position:relative;z-index:24;}
541 541 .tooltip:hover{z-index:25;color:#000;}
542 542 .tooltip span.tip{display: none}
543 543
544 544 div.tooltip:hover span.tip{
545 545 display:block;
546 546 position:absolute;
547 547 top:12px; left:24px; width:270px;
548 548 border:1px solid #555;
549 549 background-color:#fff;
550 550 padding: 4px;
551 551 font-size: 0.8em;
552 552 color:#505050;
553 553 }
554 554
555 555 /***** CSS FORM ******/
556 556 .tabular p{
557 557 margin: 0;
558 558 padding: 5px 0 8px 0;
559 559 padding-left: 180px; /*width of left column containing the label elements*/
560 560 height: 1%;
561 561 }
562 562
563 563 .tabular label{
564 564 font-weight: bold;
565 565 float: left;
566 566 margin-left: -180px; /*width of left column*/
567 567 width: 175px; /*width of labels. Should be smaller than left column to create some right
568 568 margin*/
569 569 }
570 570
571 571 .error {
572 572 color: #cc0000;
573 573 }
574 574
575 575
576 576 /*.threepxfix class below:
577 577 Targets IE6- ONLY. Adds 3 pixel indent for multi-line form contents.
578 578 to account for 3 pixel bug: http://www.positioniseverything.net/explorer/threepxtest.html
579 579 */
580 580
581 581 * html .threepxfix{
582 582 margin-left: 3px;
583 583 }
584 584
585 585 /***** Wiki sections ****/
586 586 #content div.wiki { font-size: 110%}
587 587
588 588 #content div.wiki h2, div.wiki h3 { font-family: Trebuchet MS,Georgia,"Times New Roman",serif; color:#606060; }
589 589 #content div.wiki h2 { font-size: 1.4em;}
590 590 #content div.wiki h3 { font-size: 1.2em;}
591 591
592 592 div.wiki table {
593 593 border: 1px solid #505050;
594 594 border-collapse: collapse;
595 595 }
596 596
597 597 div.wiki table, div.wiki td {
598 598 border: 1px solid #bbb;
599 599 padding: 4px;
600 600 }
601 601
602 div.wiki code {
603 font-size: 1.2em;
604 }
605
602 606 #preview .preview { background: #fafbfc url(../images/draft.png); }
@@ -1,78 +1,81
1 1 .jstEditor {
2 2 padding-left: 0px;
3 3 }
4 4 .jstEditor textarea, .jstEditor iframe {
5 5 margin: 0;
6 6 }
7 7
8 8 .jstHandle {
9 9 height: 16px;
10 10 font-size: 0.1em;
11 11 cursor: s-resize;
12 12 /*background: transparent url(img/resizer.png) no-repeat 45% 50%;*/
13 13 }
14 14
15 15 .jstElements {
16 16 padding: 3px 3px;
17 17 }
18 18
19 19 .jstElements button {
20 20 margin-right : 6px;
21 21 width : 24px;
22 22 height: 24px;
23 23 padding: 4px;
24 24 border-style: solid;
25 25 border-width: 1px;
26 26 border-color: #ddd;
27 27 background-color : #f7f7f7;
28 28 background-position : 50% 50%;
29 29 background-repeat: no-repeat;
30 30 }
31 31 .jstElements button:hover {
32 32 border-color : #000;
33 33 }
34 34 .jstElements button span {
35 35 display : none;
36 36 }
37 37 .jstElements span {
38 38 display : inline;
39 39 }
40 40
41 41 .jstSpacer {
42 42 width : 0px;
43 43 font-size: 1px;
44 44 margin-right: 4px;
45 45 }
46 46
47 47 /* Buttons
48 48 -------------------------------------------------------- */
49 49 .jstb_strong {
50 50 background-image: url(../images/jstoolbar/bt_strong.png);
51 51 }
52 52 .jstb_em {
53 53 background-image: url(../images/jstoolbar/bt_em.png);
54 54 }
55 55 .jstb_ins {
56 56 background-image: url(../images/jstoolbar/bt_ins.png);
57 57 }
58 58 .jstb_del {
59 59 background-image: url(../images/jstoolbar/bt_del.png);
60 60 }
61 61 .jstb_quote {
62 62 background-image: url(../images/jstoolbar/bt_quote.png);
63 63 }
64 64 .jstb_code {
65 65 background-image: url(../images/jstoolbar/bt_code.png);
66 66 }
67 67 .jstb_br {
68 68 background-image: url(../images/jstoolbar/bt_br.png);
69 69 }
70 .jstb_heading {
71 background-image: url(../images/jstoolbar/bt_heading.png);
72 }
70 73 .jstb_ul {
71 74 background-image: url(../images/jstoolbar/bt_ul.png);
72 75 }
73 76 .jstb_ol {
74 77 background-image: url(../images/jstoolbar/bt_ol.png);
75 78 }
76 79 .jstb_link {
77 80 background-image: url(../images/jstoolbar/bt_link.png);
78 81 }
General Comments 0
You need to be logged in to leave comments. Login now