~ubuntu-branches/ubuntu/natty/moin/natty-updates

« back to all changes in this revision

Viewing changes to MoinMoin/action/fckdialog.py

  • Committer: Bazaar Package Importer
  • Author(s): Jonas Smedegaard
  • Date: 2008-06-22 21:17:13 UTC
  • mfrom: (0.9.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20080622211713-fpo2zrq3s5dfecxg
Tags: 1.7.0-3
Simplify /etc/moin/wikilist format: "USER URL" (drop unneeded middle
CONFIG_DIR that was wrongly advertised as DATA_DIR).  Make
moin-mass-migrate handle both formats and warn about deprecation of
the old one.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
"""
3
3
    MoinMoin - feed some FCKeditor dialogues
4
4
 
5
 
    @copyright: (c) Bastian Blank, Florian Festi, Thomas Waldmann
 
5
    @copyright: 2005-2006 Bastian Blank, Florian Festi, Thomas Waldmann
6
6
    @license: GNU GPL, see COPYING for details.
7
7
"""
8
8
 
15
15
 
16
16
def macro_dialog(request):
17
17
    help = get_macro_help(request)
18
 
    request.http_headers()
 
18
    request.emit_http_headers()
19
19
    request.write(
20
20
        '''<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
21
21
<html>
23
23
  <title>Insert Macro</title>
24
24
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
25
25
  <meta content="noindex,nofollow" name="robots">
26
 
  <script src="%s/applets/FCKeditor/editor/dialog/common/fck_dialog_common.js" type="text/javascript"></script>  
 
26
  <script src="%s/applets/FCKeditor/editor/dialog/common/fck_dialog_common.js" type="text/javascript"></script>
27
27
  <script language="javascript">
28
28
 
29
29
var oEditor = window.parent.InnerDialogLoaded() ;
34
34
{
35
35
 // First of all, translate the dialog box texts
36
36
 oEditor.FCKLanguageManager.TranslatePage( document ) ;
37
 
 
 
37
 
38
38
 OnChange( "BR" );
39
 
 
 
39
 
40
40
 // Show the "Ok" button.
41
 
 window.parent.SetOkButton( true ) ; 
 
41
 window.parent.SetOkButton( true ) ;
42
42
}
43
43
 
44
44
function Ok()
48
48
  alert( FCKLang.MacroErrNoName ) ;
49
49
  return false ;
50
50
 }
51
 
 
 
51
 
52
52
 FCKMacros.Add( txtName.value ) ;
53
53
 return true ;
54
54
}
87
87
       <td valign="top">
88
88
       <span fckLang="MacroDlgName">Macro Name</span><br>
89
89
       <select id="txtName" size="10" onchange="OnChange(this.value);">
90
 
''' % request.cfg.url_prefix)
 
90
''' % request.cfg.url_prefix_static)
91
91
 
92
92
    macros = []
93
93
    for macro in macro_list(request):
95
95
            selected = ' selected="selected"'
96
96
        else:
97
97
            selected = ''
98
 
        if help.has_key(macro):
 
98
        if macro in help:
99
99
            macros.append('<option value="%s"%s>%s</option>' %
100
100
                          (help[macro].group('prototype'), selected, macro))
101
101
        else:
110
110
 
111
111
    helptexts = []
112
112
    for macro in macro_list(request):
113
 
        if help.has_key(macro):
 
113
        if macro in help:
114
114
            match = help[macro]
115
115
            prototype = match.group('prototype')
116
116
            helptext = match.group('help')
119
119
            helptext = ""
120
120
        helptexts.append(
121
121
            '''<div id="%s" style="DISPLAY: none">
122
 
               <b>[[%s]]</b>
 
122
               <b>&lt;&lt;%s&gt;&gt;</b>
123
123
               <br/>
124
124
               <textarea style="color:#000000" cols="37" rows="10" disabled="disabled">%s</textarea>
125
125
               </div>'''
136
136
</body>
137
137
</html>
138
138
''')
139
 
        
 
139
 
140
140
def macro_list(request):
141
 
    from MoinMoin import wikimacro
142
 
    macros = wikimacro.getNames(request.cfg)
 
141
    from MoinMoin import macro
 
142
    macros = macro.getNames(request.cfg)
143
143
    macros.sort()
144
144
    return macros
145
145
 
146
146
def get_macro_help(request):
147
147
    """ Read help texts from SystemPage('HelpOnMacros')"""
148
 
    helppage = wikiutil.getSysPage(request, "HelpOnMacros")
 
148
    helppage = wikiutil.getLocalizedPage(request, "HelpOnMacros")
149
149
    content = helppage.get_raw_body()
150
150
    macro_re = re.compile(
151
 
        r"\|\|(<.*?>)?\{\{\{\[\[" +
152
 
        r"(?P<prototype>(?P<macro>\w*).*)" +
153
 
        r"\]\]\}\}\}\s*\|\|" + 
154
 
        r"\s*(?P<help>.*?)\s*\|\|\s*(?P<example>.*?)\s*\|\|$", re.U + re.M)
 
151
        r"\|\|(<.*?>)?\{\{\{" +
 
152
        r"<<(?P<prototype>(?P<macro>\w*).*)>>" +
 
153
        r"\}\}\}\s*\|\|" +
 
154
        r"[^|]*\|\|[^|]*\|\|<[^>]*>" +
 
155
        r"\s*(?P<help>.*?)\s*\|\|\s*(?P<example>.*?)\s*(<<[^>]*>>)*\s*\|\|$", re.U|re.M)
155
156
    help = {}
156
157
    for match in macro_re.finditer(content):
157
158
        help[match.group('macro')] = match
163
164
 
164
165
def page_list(request):
165
166
    from MoinMoin import search
166
 
    name = request.form.get("pagename",[""])[0]
 
167
    name = request.form.get("pagename", [""])[0]
167
168
    if name:
168
 
        searchresult = search.searchPages(
169
 
            request,
170
 
            search.QueryParser().parse_query('t:"%s"' % name))
171
 
        
 
169
        searchresult = search.searchPages(request, 't:"%s"' % name)
172
170
        pages = [p.page_name for p in searchresult.hits]
173
171
    else:
174
172
        pages = [name]
175
 
    request.http_headers()
 
173
    request.emit_http_headers()
176
174
    request.write(
177
175
        '''<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
178
176
<html>
203
201
''' % "".join(["<option>%s</option>\n" % p for p in pages]))
204
202
 
205
203
def link_dialog(request):
206
 
    request.http_headers()
 
204
    request.emit_http_headers()
207
205
    # list of wiki pages
208
206
    name = request.form.get("pagename", [""])[0]
209
207
    if name:
210
208
        from MoinMoin import search
211
209
        # XXX error handling!
212
 
        searchresult = search.searchPages(
213
 
            request,
214
 
            search.QueryParser().parse_query('t:"%s"' % name))
215
 
        
 
210
        searchresult = search.searchPages(request, 't:"%s"' % name)
 
211
 
216
212
        pages = [p.page_name for p in searchresult.hits]
217
213
        pages.sort()
218
214
        pages[0:0] = [name]
219
 
        page_list ='''
 
215
        page_list = '''
220
216
         <tr>
221
217
          <td colspan=2>
222
218
           <select id="sctPagename" size="1" onchange="OnChangePagename(this.value);">
223
219
           %s
224
220
           </select>
225
221
          <td>
226
 
         </tr> 
 
222
         </tr>
227
223
''' % "\n".join(['<option value="%s">%s</option>' % (page, page)
228
224
                 for page in pages])
229
225
    else:
230
226
        page_list = ""
231
 
    
 
227
 
232
228
    # list of interwiki names
233
 
    wikiutil.resolve_wiki(request, "Self:FrontPage")
234
 
    interwiki = request.cfg._interwiki_list.keys()
 
229
    interwiki_list = wikiutil.load_wikimap(request)
 
230
    interwiki = interwiki_list.keys()
235
231
    interwiki.sort()
236
 
    iwpreferred = request.cfg.interwiki_preferred[:] # make a copy of list!
237
 
    if not iwpreferred or iwpreferred and iwpreferred[-1] != None:
 
232
    iwpreferred = request.cfg.interwiki_preferred[:]
 
233
    if not iwpreferred or iwpreferred and iwpreferred[-1] is not None:
238
234
        resultlist = iwpreferred
239
235
        for iw in interwiki:
240
236
            if not iw in iwpreferred:
245
241
        ['<option value="%s">%s</option>' % (key, key) for key in resultlist])
246
242
 
247
243
    # wiki url
248
 
    url_prefix = request.cfg.url_prefix
 
244
    url_prefix_static = request.cfg.url_prefix_static
249
245
    scriptname = request.getScriptname()
250
246
    if not scriptname or scriptname[-1] != "/":
251
247
        scriptname += "/"
255
251
<!--
256
252
 * FCKeditor - The text editor for internet
257
253
 * Copyright (C) 2003-2004 Frederico Caldeira Knabben
258
 
 * 
 
254
 *
259
255
 * Licensed under the terms of the GNU Lesser General Public License:
260
256
 *   http://www.opensource.org/licenses/lgpl-license.php
261
 
 * 
 
257
 *
262
258
 * For further information visit:
263
259
 *   http://www.fckeditor.net/
264
 
 * 
 
260
 *
265
261
 * File Name: fck_link.html
266
262
 *  Link dialog window.
267
 
 * 
 
263
 *
268
264
 * Version:  2.0 FC (Preview)
269
265
 * Modified: 2005-02-18 23:55:22
270
 
 * 
 
266
 *
271
267
 * File Authors:
272
268
 *   Frederico Caldeira Knabben (fredck@fckeditor.net)
273
269
-->
279
275
  <title>Link Properties</title>
280
276
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
281
277
  <meta name="robots" content="noindex,nofollow" />
282
 
  <script src="%(url_prefix)s/applets/FCKeditor/editor/dialog/common/fck_dialog_common.js" type="text/javascript"></script>
283
 
  <script src="%(url_prefix)s/applets/moinFCKplugins/moinlink/fck_link.js" type="text/javascript"></script>
284
 
  <script src="%(url_prefix)s/applets/moinFCKplugins/moinurllib.js" type="text/javascript"></script>
 
278
  <script src="%(url_prefix_static)s/applets/FCKeditor/editor/dialog/common/fck_dialog_common.js" type="text/javascript"></script>
 
279
  <script src="%(url_prefix_static)s/applets/moinFCKplugins/moinlink/fck_link.js" type="text/javascript"></script>
 
280
  <script src="%(url_prefix_static)s/applets/moinFCKplugins/moinurllib.js" type="text/javascript"></script>
285
281
 </head>
286
282
 <body scroll="no" style="OVERFLOW: hidden">
287
283
  <div id="divInfo" style="DISPLAY: none">
313
309
        </tr>
314
310
        %(page_list)s
315
311
       </table>
316
 
       </form> 
 
312
       </form>
317
313
      </td>
318
314
     </tr>
319
315
    </table>
361
357
    </table>
362
358
    <br />
363
359
   </div>
364
 
  </div> 
 
360
  </div>
365
361
 </body>
366
362
</html>
367
363
''' % locals())
371
367
##############################################################################
372
368
 
373
369
def attachment_dialog(request):
374
 
    request.http_headers()
 
370
    request.emit_http_headers()
375
371
    # list of wiki pages
376
372
    name = request.form.get("pagename", [""])[0]
377
373
    if name:
378
374
        from MoinMoin import search
379
375
        # XXX error handling!
380
 
        searchresult = search.searchPages(
381
 
            request,
382
 
            search.QueryParser().parse_query('t:"%s"' % name))
383
 
        
 
376
        searchresult = search.searchPages(request, 't:"%s"' % name)
 
377
 
384
378
        pages = [p.page_name for p in searchresult.hits]
385
379
        pages.sort()
386
380
        pages[0:0] = [name]
387
 
        page_list ='''
 
381
        page_list = '''
388
382
         <tr>
389
383
          <td colspan=2>
390
384
           <select id="sctPagename" size="1" onchange="OnChangePagename(this.value);">
391
385
           %s
392
386
           </select>
393
387
          <td>
394
 
         </tr> 
 
388
         </tr>
395
389
''' % "\n".join(['<option value="%s">%s</option>' % (page, page)
396
390
                 for page in pages])
397
391
    else:
398
392
        page_list = ""
399
 
    
 
393
 
400
394
    # wiki url
401
 
    url_prefix = request.cfg.url_prefix
 
395
    url_prefix_static = request.cfg.url_prefix_static
402
396
    scriptname = request.getScriptname()
403
397
    if not scriptname or scriptname[-1] != "/":
404
398
        scriptname += "/"
407
401
<!--
408
402
 * FCKeditor - The text editor for internet
409
403
 * Copyright (C) 2003-2004 Frederico Caldeira Knabben
410
 
 * 
 
404
 *
411
405
 * Licensed under the terms of the GNU Lesser General Public License:
412
406
 *   http://www.opensource.org/licenses/lgpl-license.php
413
 
 * 
 
407
 *
414
408
 * For further information visit:
415
409
 *   http://www.fckeditor.net/
416
 
 * 
 
410
 *
417
411
 * File Name: fck_attachment.html
418
412
 *  Attachment dialog window.
419
 
 * 
 
413
 *
420
414
 * Version:  2.0 FC (Preview)
421
415
 * Modified: 2005-02-18 23:55:22
422
 
 * 
 
416
 *
423
417
 * File Authors:
424
418
 *   Frederico Caldeira Knabben (fredck@fckeditor.net)
425
419
-->
431
425
  <title>Attachment Properties</title>
432
426
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
433
427
  <meta name="robots" content="noindex,nofollow" />
434
 
  <script src="%(url_prefix)s/applets/FCKeditor/editor/dialog/common/fck_dialog_common.js" type="text/javascript"></script>
435
 
  <script src="%(url_prefix)s/applets/moinFCKplugins/moinattachment/fck_attachment.js" type="text/javascript"></script>
436
 
  <script src="%(url_prefix)s/applets/moinFCKplugins/moinurllib.js" type="text/javascript"></script>
 
428
  <script src="%(url_prefix_static)s/applets/FCKeditor/editor/dialog/common/fck_dialog_common.js" type="text/javascript"></script>
 
429
  <script src="%(url_prefix_static)s/applets/moinFCKplugins/moinattachment/fck_attachment.js" type="text/javascript"></script>
 
430
  <script src="%(url_prefix_static)s/applets/moinFCKplugins/moinurllib.js" type="text/javascript"></script>
437
431
 </head>
438
432
 <body scroll="no" style="OVERFLOW: hidden">
439
433
  <div id="divInfo">
452
446
         </td>
453
447
        </tr>
454
448
       </table>
455
 
       </form> 
 
449
       </form>
456
450
      </td>
457
451
     </tr>
458
452
    </table>
459
453
   </div>
460
 
  </div> 
 
454
  </div>
461
455
 </body>
462
456
</html>
463
457
''' % locals())
467
461
##############################################################################
468
462
 
469
463
def image_dialog(request):
470
 
    request.http_headers()
471
 
    url_prefix = request.cfg.url_prefix
 
464
    request.emit_http_headers()
 
465
    url_prefix_static = request.cfg.url_prefix_static
472
466
    request.write('''
473
467
<!--
474
468
 * FCKeditor - The text editor for internet
475
469
 * Copyright (C) 2003-2004 Frederico Caldeira Knabben
476
 
 * 
 
470
 *
477
471
 * Licensed under the terms of the GNU Lesser General Public License:
478
472
 *   http://www.opensource.org/licenses/lgpl-license.php
479
 
 * 
 
473
 *
480
474
 * For further information visit:
481
475
 *   http://www.fckeditor.net/
482
 
 * 
 
476
 *
483
477
 * File Authors:
484
478
 *   Frederico Caldeira Knabben (fredck@fckeditor.net)
485
479
 *   Florian Festi
490
484
  <title>Link Properties</title>
491
485
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
492
486
  <meta name="robots" content="noindex,nofollow" />
493
 
  <script src="%(url_prefix)s/applets/FCKeditor/editor/dialog/common/fck_dialog_common.js" type="text/javascript"></script>
494
 
  <script src="%(url_prefix)s/applets/moinFCKplugins/moinimage/fck_image.js" type="text/javascript"></script>
495
 
  <script src="%(url_prefix)s/applets/moinFCKplugins/moinurllib.js" type="text/javascript"></script>
 
487
  <script src="%(url_prefix_static)s/applets/FCKeditor/editor/dialog/common/fck_dialog_common.js" type="text/javascript"></script>
 
488
  <script src="%(url_prefix_static)s/applets/moinFCKplugins/moinimage/fck_image.js" type="text/javascript"></script>
 
489
  <script src="%(url_prefix_static)s/applets/moinFCKplugins/moinurllib.js" type="text/javascript"></script>
496
490
 </head>
497
491
 <body scroll="no" style="OVERFLOW: hidden">
498
492
    <table cellspacing="0" cellpadding="0" width="100%%" border="0">
535
529
    if dialog == "macro":
536
530
        macro_dialog(request)
537
531
    elif dialog == "macrolist":
538
 
        macrolist(request)
 
532
        macro_list(request)
539
533
    elif dialog == "pagelist":
540
534
        page_list(request)
541
535
    elif dialog == "link":
546
540
        image_dialog(request)
547
541
    else:
548
542
        from MoinMoin.Page import Page
549
 
        Page(request, pagename).send_page(request, msg="Dialog unknown!")
 
543
        request.theme.add_msg("Dialog unknown!", "error")
 
544
        Page(request, pagename).send_page()
550
545