├── .gitignore
├── README.md
├── __init__.py
├── controllers
├── appadmin.py
├── default.py
└── plugin_ckeditor.py
├── create_plugin.sh
├── models
└── db.py
├── modules
├── __init__.py
└── plugin_ckeditor.py
├── static
├── 403.html
├── 404.html
├── 500.html
├── css
│ ├── bootstrap-responsive.min.css
│ ├── bootstrap.min.css
│ ├── calendar.css
│ ├── web2py.css
│ ├── web2py_bootstrap.css
│ └── web2py_bootstrap_nojs.css
├── images
│ ├── facebook.png
│ ├── favicon.ico
│ ├── favicon.png
│ ├── glyphicons-halflings-white.png
│ ├── glyphicons-halflings.png
│ ├── gplus-32.png
│ └── twitter.png
├── js
│ ├── analytics.min.js
│ ├── bootstrap.min.js
│ ├── calendar.js
│ ├── dd_belatedpng.js
│ ├── jquery.js
│ ├── modernizr.custom.js
│ ├── share.js
│ ├── web2py.js
│ └── web2py_bootstrap.js
└── plugin_ckeditor
│ ├── CHANGES.md
│ ├── LICENSE.md
│ ├── README.md
│ ├── adapters
│ └── jquery.js
│ ├── build-config.js
│ ├── ckeditor.js
│ ├── config.js
│ ├── contents.css
│ ├── lang
│ ├── af.js
│ ├── ar.js
│ ├── bg.js
│ ├── bn.js
│ ├── bs.js
│ ├── ca.js
│ ├── cs.js
│ ├── cy.js
│ ├── da.js
│ ├── de-ch.js
│ ├── de.js
│ ├── el.js
│ ├── en-au.js
│ ├── en-ca.js
│ ├── en-gb.js
│ ├── en.js
│ ├── eo.js
│ ├── es.js
│ ├── et.js
│ ├── eu.js
│ ├── fa.js
│ ├── fi.js
│ ├── fo.js
│ ├── fr-ca.js
│ ├── fr.js
│ ├── gl.js
│ ├── gu.js
│ ├── he.js
│ ├── hi.js
│ ├── hr.js
│ ├── hu.js
│ ├── id.js
│ ├── is.js
│ ├── it.js
│ ├── ja.js
│ ├── ka.js
│ ├── km.js
│ ├── ko.js
│ ├── ku.js
│ ├── lt.js
│ ├── lv.js
│ ├── mk.js
│ ├── mn.js
│ ├── ms.js
│ ├── nb.js
│ ├── nl.js
│ ├── no.js
│ ├── pl.js
│ ├── pt-br.js
│ ├── pt.js
│ ├── ro.js
│ ├── ru.js
│ ├── si.js
│ ├── sk.js
│ ├── sl.js
│ ├── sq.js
│ ├── sr-latn.js
│ ├── sr.js
│ ├── sv.js
│ ├── th.js
│ ├── tr.js
│ ├── tt.js
│ ├── ug.js
│ ├── uk.js
│ ├── vi.js
│ ├── zh-cn.js
│ └── zh.js
│ ├── plugins
│ ├── a11yhelp
│ │ └── dialogs
│ │ │ ├── a11yhelp.js
│ │ │ └── lang
│ │ │ ├── _translationstatus.txt
│ │ │ ├── af.js
│ │ │ ├── ar.js
│ │ │ ├── bg.js
│ │ │ ├── ca.js
│ │ │ ├── cs.js
│ │ │ ├── cy.js
│ │ │ ├── da.js
│ │ │ ├── de-ch.js
│ │ │ ├── de.js
│ │ │ ├── el.js
│ │ │ ├── en-gb.js
│ │ │ ├── en.js
│ │ │ ├── eo.js
│ │ │ ├── es.js
│ │ │ ├── et.js
│ │ │ ├── eu.js
│ │ │ ├── fa.js
│ │ │ ├── fi.js
│ │ │ ├── fo.js
│ │ │ ├── fr-ca.js
│ │ │ ├── fr.js
│ │ │ ├── gl.js
│ │ │ ├── gu.js
│ │ │ ├── he.js
│ │ │ ├── hi.js
│ │ │ ├── hr.js
│ │ │ ├── hu.js
│ │ │ ├── id.js
│ │ │ ├── it.js
│ │ │ ├── ja.js
│ │ │ ├── km.js
│ │ │ ├── ko.js
│ │ │ ├── ku.js
│ │ │ ├── lt.js
│ │ │ ├── lv.js
│ │ │ ├── mk.js
│ │ │ ├── mn.js
│ │ │ ├── nb.js
│ │ │ ├── nl.js
│ │ │ ├── no.js
│ │ │ ├── pl.js
│ │ │ ├── pt-br.js
│ │ │ ├── pt.js
│ │ │ ├── ro.js
│ │ │ ├── ru.js
│ │ │ ├── si.js
│ │ │ ├── sk.js
│ │ │ ├── sl.js
│ │ │ ├── sq.js
│ │ │ ├── sr-latn.js
│ │ │ ├── sr.js
│ │ │ ├── sv.js
│ │ │ ├── th.js
│ │ │ ├── tr.js
│ │ │ ├── tt.js
│ │ │ ├── ug.js
│ │ │ ├── uk.js
│ │ │ ├── vi.js
│ │ │ ├── zh-cn.js
│ │ │ └── zh.js
│ ├── about
│ │ └── dialogs
│ │ │ ├── about.js
│ │ │ ├── hidpi
│ │ │ └── logo_ckeditor.png
│ │ │ └── logo_ckeditor.png
│ ├── clipboard
│ │ └── dialogs
│ │ │ └── paste.js
│ ├── colordialog
│ │ └── dialogs
│ │ │ └── colordialog.js
│ ├── dialog
│ │ └── dialogDefinition.js
│ ├── div
│ │ └── dialogs
│ │ │ └── div.js
│ ├── find
│ │ └── dialogs
│ │ │ └── find.js
│ ├── flash
│ │ ├── dialogs
│ │ │ └── flash.js
│ │ └── images
│ │ │ └── placeholder.png
│ ├── forms
│ │ ├── dialogs
│ │ │ ├── button.js
│ │ │ ├── checkbox.js
│ │ │ ├── form.js
│ │ │ ├── hiddenfield.js
│ │ │ ├── radio.js
│ │ │ ├── select.js
│ │ │ ├── textarea.js
│ │ │ └── textfield.js
│ │ └── images
│ │ │ └── hiddenfield.gif
│ ├── icons.png
│ ├── icons_hidpi.png
│ ├── iframe
│ │ ├── dialogs
│ │ │ └── iframe.js
│ │ └── images
│ │ │ └── placeholder.png
│ ├── image
│ │ ├── dialogs
│ │ │ └── image.js
│ │ └── images
│ │ │ └── noimage.png
│ ├── link
│ │ ├── dialogs
│ │ │ ├── anchor.js
│ │ │ └── link.js
│ │ └── images
│ │ │ ├── anchor.png
│ │ │ └── hidpi
│ │ │ └── anchor.png
│ ├── liststyle
│ │ └── dialogs
│ │ │ └── liststyle.js
│ ├── magicline
│ │ └── images
│ │ │ ├── hidpi
│ │ │ ├── icon-rtl.png
│ │ │ └── icon.png
│ │ │ ├── icon-rtl.png
│ │ │ └── icon.png
│ ├── pagebreak
│ │ └── images
│ │ │ └── pagebreak.gif
│ ├── pastefromword
│ │ └── filter
│ │ │ └── default.js
│ ├── preview
│ │ └── preview.html
│ ├── scayt
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ └── dialogs
│ │ │ ├── options.js
│ │ │ └── toolbar.css
│ ├── showblocks
│ │ └── images
│ │ │ ├── block_address.png
│ │ │ ├── block_blockquote.png
│ │ │ ├── block_div.png
│ │ │ ├── block_h1.png
│ │ │ ├── block_h2.png
│ │ │ ├── block_h3.png
│ │ │ ├── block_h4.png
│ │ │ ├── block_h5.png
│ │ │ ├── block_h6.png
│ │ │ ├── block_p.png
│ │ │ └── block_pre.png
│ ├── smiley
│ │ ├── dialogs
│ │ │ └── smiley.js
│ │ └── images
│ │ │ ├── angel_smile.gif
│ │ │ ├── angel_smile.png
│ │ │ ├── angry_smile.gif
│ │ │ ├── angry_smile.png
│ │ │ ├── broken_heart.gif
│ │ │ ├── broken_heart.png
│ │ │ ├── confused_smile.gif
│ │ │ ├── confused_smile.png
│ │ │ ├── cry_smile.gif
│ │ │ ├── cry_smile.png
│ │ │ ├── devil_smile.gif
│ │ │ ├── devil_smile.png
│ │ │ ├── embaressed_smile.gif
│ │ │ ├── embarrassed_smile.gif
│ │ │ ├── embarrassed_smile.png
│ │ │ ├── envelope.gif
│ │ │ ├── envelope.png
│ │ │ ├── heart.gif
│ │ │ ├── heart.png
│ │ │ ├── kiss.gif
│ │ │ ├── kiss.png
│ │ │ ├── lightbulb.gif
│ │ │ ├── lightbulb.png
│ │ │ ├── omg_smile.gif
│ │ │ ├── omg_smile.png
│ │ │ ├── regular_smile.gif
│ │ │ ├── regular_smile.png
│ │ │ ├── sad_smile.gif
│ │ │ ├── sad_smile.png
│ │ │ ├── shades_smile.gif
│ │ │ ├── shades_smile.png
│ │ │ ├── teeth_smile.gif
│ │ │ ├── teeth_smile.png
│ │ │ ├── thumbs_down.gif
│ │ │ ├── thumbs_down.png
│ │ │ ├── thumbs_up.gif
│ │ │ ├── thumbs_up.png
│ │ │ ├── tongue_smile.gif
│ │ │ ├── tongue_smile.png
│ │ │ ├── tounge_smile.gif
│ │ │ ├── whatchutalkingabout_smile.gif
│ │ │ ├── whatchutalkingabout_smile.png
│ │ │ ├── wink_smile.gif
│ │ │ └── wink_smile.png
│ ├── specialchar
│ │ └── dialogs
│ │ │ ├── lang
│ │ │ ├── _translationstatus.txt
│ │ │ ├── af.js
│ │ │ ├── ar.js
│ │ │ ├── bg.js
│ │ │ ├── ca.js
│ │ │ ├── cs.js
│ │ │ ├── cy.js
│ │ │ ├── da.js
│ │ │ ├── de-ch.js
│ │ │ ├── de.js
│ │ │ ├── el.js
│ │ │ ├── en-gb.js
│ │ │ ├── en.js
│ │ │ ├── eo.js
│ │ │ ├── es.js
│ │ │ ├── et.js
│ │ │ ├── eu.js
│ │ │ ├── fa.js
│ │ │ ├── fi.js
│ │ │ ├── fr-ca.js
│ │ │ ├── fr.js
│ │ │ ├── gl.js
│ │ │ ├── he.js
│ │ │ ├── hr.js
│ │ │ ├── hu.js
│ │ │ ├── id.js
│ │ │ ├── it.js
│ │ │ ├── ja.js
│ │ │ ├── km.js
│ │ │ ├── ko.js
│ │ │ ├── ku.js
│ │ │ ├── lt.js
│ │ │ ├── lv.js
│ │ │ ├── nb.js
│ │ │ ├── nl.js
│ │ │ ├── no.js
│ │ │ ├── pl.js
│ │ │ ├── pt-br.js
│ │ │ ├── pt.js
│ │ │ ├── ru.js
│ │ │ ├── si.js
│ │ │ ├── sk.js
│ │ │ ├── sl.js
│ │ │ ├── sq.js
│ │ │ ├── sv.js
│ │ │ ├── th.js
│ │ │ ├── tr.js
│ │ │ ├── tt.js
│ │ │ ├── ug.js
│ │ │ ├── uk.js
│ │ │ ├── vi.js
│ │ │ ├── zh-cn.js
│ │ │ └── zh.js
│ │ │ └── specialchar.js
│ ├── table
│ │ └── dialogs
│ │ │ └── table.js
│ ├── tabletools
│ │ └── dialogs
│ │ │ └── tableCell.js
│ ├── templates
│ │ ├── dialogs
│ │ │ ├── templates.css
│ │ │ └── templates.js
│ │ └── templates
│ │ │ ├── default.js
│ │ │ └── images
│ │ │ ├── template1.gif
│ │ │ ├── template2.gif
│ │ │ └── template3.gif
│ └── wsc
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ └── dialogs
│ │ ├── ciframe.html
│ │ ├── tmpFrameset.html
│ │ ├── wsc.css
│ │ ├── wsc.js
│ │ └── wsc_ie.js
│ ├── samples
│ ├── css
│ │ └── samples.css
│ ├── img
│ │ ├── github-top.png
│ │ ├── header-bg.png
│ │ ├── header-separator.png
│ │ ├── logo.png
│ │ └── navigation-tip.png
│ ├── index.html
│ ├── js
│ │ ├── sample.js
│ │ └── sf.js
│ ├── old
│ │ ├── ajax.html
│ │ ├── api.html
│ │ ├── appendto.html
│ │ ├── assets
│ │ │ ├── inlineall
│ │ │ │ └── logo.png
│ │ │ ├── outputxhtml
│ │ │ │ └── outputxhtml.css
│ │ │ ├── posteddata.php
│ │ │ ├── sample.jpg
│ │ │ └── uilanguages
│ │ │ │ └── languages.js
│ │ ├── datafiltering.html
│ │ ├── dialog
│ │ │ ├── assets
│ │ │ │ └── my_dialog.js
│ │ │ └── dialog.html
│ │ ├── divreplace.html
│ │ ├── enterkey
│ │ │ └── enterkey.html
│ │ ├── htmlwriter
│ │ │ ├── assets
│ │ │ │ └── outputforflash
│ │ │ │ │ ├── outputforflash.fla
│ │ │ │ │ ├── outputforflash.swf
│ │ │ │ │ └── swfobject.js
│ │ │ ├── outputforflash.html
│ │ │ └── outputhtml.html
│ │ ├── index.html
│ │ ├── inlineall.html
│ │ ├── inlinebycode.html
│ │ ├── inlinetextarea.html
│ │ ├── jquery.html
│ │ ├── magicline
│ │ │ └── magicline.html
│ │ ├── readonly.html
│ │ ├── replacebyclass.html
│ │ ├── replacebycode.html
│ │ ├── sample.css
│ │ ├── sample.js
│ │ ├── sample_posteddata.php
│ │ ├── tabindex.html
│ │ ├── toolbar
│ │ │ └── toolbar.html
│ │ ├── uicolor.html
│ │ ├── uilanguages.html
│ │ ├── wysiwygarea
│ │ │ └── fullpage.html
│ │ └── xhtmlstyle.html
│ └── toolbarconfigurator
│ │ ├── css
│ │ └── fontello.css
│ │ ├── font
│ │ ├── LICENSE.txt
│ │ ├── config.json
│ │ ├── fontello.eot
│ │ ├── fontello.svg
│ │ ├── fontello.ttf
│ │ └── fontello.woff
│ │ ├── index.html
│ │ ├── js
│ │ ├── abstracttoolbarmodifier.js
│ │ ├── fulltoolbareditor.js
│ │ ├── toolbarmodifier.js
│ │ └── toolbartextmodifier.js
│ │ └── lib
│ │ └── codemirror
│ │ ├── LICENSE
│ │ ├── codemirror.css
│ │ ├── codemirror.js
│ │ ├── javascript.js
│ │ ├── neo.css
│ │ ├── show-hint.css
│ │ └── show-hint.js
│ ├── skins
│ └── moono
│ │ ├── dialog.css
│ │ ├── dialog_ie.css
│ │ ├── dialog_ie7.css
│ │ ├── dialog_ie8.css
│ │ ├── dialog_iequirks.css
│ │ ├── editor.css
│ │ ├── editor_gecko.css
│ │ ├── editor_ie.css
│ │ ├── editor_ie7.css
│ │ ├── editor_ie8.css
│ │ ├── editor_iequirks.css
│ │ ├── icons.png
│ │ ├── icons_hidpi.png
│ │ ├── images
│ │ ├── arrow.png
│ │ ├── close.png
│ │ ├── hidpi
│ │ │ ├── close.png
│ │ │ ├── lock-open.png
│ │ │ ├── lock.png
│ │ │ └── refresh.png
│ │ ├── lock-open.png
│ │ ├── lock.png
│ │ ├── refresh.png
│ │ └── spinner.gif
│ │ └── readme.md
│ └── styles.js
└── views
├── __init__.py
├── appadmin.html
├── default
├── index.html
└── user.html
├── generic.html
├── generic.ics
├── generic.json
├── generic.jsonp
├── generic.load
├── generic.map
├── generic.pdf
├── generic.rss
├── generic.xml
├── layout.html
├── plugin_ckeditor
├── browse.html
└── upload.html
└── web2py_ajax.html
/.gitignore:
--------------------------------------------------------------------------------
1 | .*
2 | *.pyc
3 | *.pyo
4 | *~
5 | #*
6 | *.1
7 | *.bak
8 | *.bak2
9 | *.svn
10 | *.w2p
11 | *.class
12 | *.rej
13 | *.orig
14 | Thumbs.db
15 | .DS_Store
16 | index.yaml
17 | routes.py
18 | logging.conf
19 | httpserver.log
20 | httpserver.pid
21 | parameters*.py
22 | /ssl
23 | /docs
24 | /logs
25 | ./*.zip
26 | cron.master
27 | databases/*
28 | sessions/*
29 | errors/*
30 | cache/*
31 | uploads/*
32 | cron/*
33 | .idea/*
34 |
--------------------------------------------------------------------------------
/__init__.py:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/controllers/default.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # this file is released under public domain and you can use without limitations
3 |
4 | #########################################################################
5 | ## This is a sample controller
6 | ## - index is the default action of any application
7 | ## - user is required for authentication and authorization
8 | ## - download is for downloading files uploaded in the db (does streaming)
9 | ## - call exposes all registered services (none by default)
10 | #########################################################################
11 |
12 |
13 | def index():
14 | """
15 | example action using the internationalization operator T and flash
16 | rendered by views/default/index.html or views/generic.html
17 |
18 | if you need a simple wiki simply replace the two lines below with:
19 | return auth.wiki()
20 | """
21 | response.flash = T("Welcome to web2py!")
22 | form = SQLFORM.grid(db.person)
23 | return locals()
24 |
25 | def user():
26 | """
27 | exposes:
28 | http://..../[app]/default/user/login
29 | http://..../[app]/default/user/logout
30 | http://..../[app]/default/user/register
31 | http://..../[app]/default/user/profile
32 | http://..../[app]/default/user/retrieve_password
33 | http://..../[app]/default/user/change_password
34 | http://..../[app]/default/user/manage_users (requires membership in
35 | use @auth.requires_login()
36 | @auth.requires_membership('group name')
37 | @auth.requires_permission('read','table name',record_id)
38 | to decorate functions that need access control
39 | """
40 | return dict(form=auth())
41 |
42 | @cache.action()
43 | def download():
44 | """
45 | allows downloading of uploaded files
46 | http://..../[app]/default/download/[filename]
47 | """
48 | return response.download(request, db)
49 |
50 |
51 | def call():
52 | """
53 | exposes services. for example:
54 | http://..../[app]/default/call/jsonrpc
55 | decorate with @services.jsonrpc the functions to expose
56 | supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv
57 | """
58 | return service()
59 |
60 |
61 | @auth.requires_signature()
62 | def data():
63 | """
64 | http://..../[app]/default/data/tables
65 | http://..../[app]/default/data/create/[table]
66 | http://..../[app]/default/data/read/[table]/[id]
67 | http://..../[app]/default/data/update/[table]/[id]
68 | http://..../[app]/default/data/delete/[table]/[id]
69 | http://..../[app]/default/data/select/[table]
70 | http://..../[app]/default/data/search/[table]
71 | but URLs must be signed, i.e. linked with
72 | A('table',_href=URL('data/tables',user_signature=True))
73 | or with the signed load operator
74 | LOAD('default','data.load',args='tables',ajax=True,user_signature=True)
75 | """
76 | return dict(form=crud())
77 |
--------------------------------------------------------------------------------
/controllers/plugin_ckeditor.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import os
4 | from gluon import *
5 |
6 | def upload():
7 | (new_filename, old_filename, length,
8 | mime_type) = current.plugin_ckeditor.handle_upload()
9 |
10 | title = os.path.splitext(old_filename)[0]
11 |
12 | result = current.plugin_ckeditor.settings.table_upload.validate_and_insert(
13 | title=title,
14 | filename=old_filename,
15 | upload=new_filename,
16 | flength=length,
17 | mime_type=mime_type
18 | )
19 |
20 | text = ''
21 | url = URL(*current.plugin_ckeditor.settings.download_url,
22 | args=[new_filename])
23 |
24 | if not result.id:
25 | text = result.errors
26 |
27 | return dict(text=text, cknum=request.vars.CKEditorFuncNum, url=url)
28 |
29 | def browse():
30 | db = current.plugin_ckeditor.db
31 | table_upload = current.plugin_ckeditor.settings.table_upload
32 | browse_filter = current.plugin_ckeditor.settings.browse_filter
33 | set = db(table_upload.id>0)
34 | for key, val in browse_filter.items():
35 | if value[0] == '<':
36 | set = set(table_upload[key]':
38 | set = set(table_upload[key]>value[1:])
39 | elif value[0] == '!':
40 | set = set(table_upload[key]!=value[1:])
41 | else:
42 | set = set(table_upload[key]==value)
43 |
44 | rows = set.select(orderby=table_upload.title)
45 |
46 | return dict(rows=rows, cknum=request.vars.CKEditorFuncNum)
47 |
48 | def delete():
49 | filename = request.args(0)
50 | if not filename:
51 | raise HTTP(401, 'Required argument filename missing.')
52 |
53 | db = current.plugin_ckeditor.db
54 | table_upload = current.plugin_ckeditor.settings.table_upload
55 | db(table_upload.upload == filename).delete()
56 |
57 | # delete the file from storage
58 | current.plugin_ckeditor.unlink(filename)
59 |
60 |
--------------------------------------------------------------------------------
/create_plugin.sh:
--------------------------------------------------------------------------------
1 | #! /usr/bin/env sh
2 |
3 | # paths to add are
4 | # controllers/plugin_ckeditor.py
5 | # modules/plugin_ckeditor.py
6 | # static/plugin_ckeditor
7 | # views/plugin_ckeditor
8 | tar czvf web2py.plugin.ckeditor.w2p --exclude='*.sh' controllers/plugin_ckeditor.py modules/plugin_ckeditor.py static/plugin_ckeditor views/plugin_ckeditor
9 |
--------------------------------------------------------------------------------
/modules/__init__.py:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/static/403.html:
--------------------------------------------------------------------------------
1 | 403
2 |
--------------------------------------------------------------------------------
/static/404.html:
--------------------------------------------------------------------------------
1 | 404
2 |
--------------------------------------------------------------------------------
/static/500.html:
--------------------------------------------------------------------------------
1 | 500
2 |
--------------------------------------------------------------------------------
/static/css/calendar.css:
--------------------------------------------------------------------------------
1 | .calendar{z-index:2000;position:relative;display:none;background:#fff;border:2px solid #000;font-size:11px;color:#000;cursor:default;font-family:Arial,Helvetica,sans-serif;
2 | border-radius: 10px;
3 | -moz-border-radius: 10px;
4 | -webkit-border-radius: 10px;
5 | }.calendar table{margin:0px;font-size:11px;color:#000;cursor:default;font-family:tahoma,verdana,sans-serif;}.calendar .button{text-align:center;padding:1px;color:#fff;background:#000;}.calendar .nav{background:#000;color:#fff}.calendar thead .title{font-weight:bold;padding:1px;background:#000;color:#fff;text-align:center;}.calendar thead .name{padding:2px;text-align:center;background:#bbb;}.calendar thead .weekend{color:#f00;}.calendar thead .hilite {background-color:#666;}.calendar thead .active{padding:2px 0 0 2px;background-color:#c4c0b8;}.calendar tbody .day{width:2em;text-align:right;padding:2px 4px 2px 2px;}.calendar tbody .day.othermonth{color:#aaa;}.calendar tbody .day.othermonth.oweekend{color:#faa;}.calendar table .wn{padding:2px 3px 2px 2px;background:#bbb;}.calendar tbody .rowhilite td{background:#ddd;}.calendar tbody td.hilite{background:#bbb;}.calendar tbody td.active{background:#bbb;}.calendar tbody td.selected{font-weight:bold;background:#ddd;}.calendar tbody td.weekend{color:#f00;}.calendar tbody td.today{font-weight:bold;color:#00f;}.calendar tbody .disabled{color:#999;}.calendar tbody .emptycell{visibility:hidden;}.calendar tbody .emptyrow{display:none;}.calendar tfoot .ttip{background:#bbb;padding:1px;background:#000;color:#fff;text-align:center;}.calendar tfoot .hilite{background:#ddd;}.calendar tfoot .active{}.calendar .combo{position:absolute;display:none;width:4em;top:0;left:0;cursor:default;background:#e4e0d8;padding:1px;z-index:2001;}.calendar .combo .label,.calendar .combo .label-IEfix{text-align:center;padding:1px;}.calendar .combo .label-IEfix{width:4em;}.calendar .combo .active{background:#c4c0b8;}.calendar .combo .hilite{background:#048;color:#fea;}.calendar td.time{padding:1px 0;text-align:center;background-color:#bbb;}.calendar td.time .hour,.calendar td.time .minute,.calendar td.time .ampm{padding:0 3px 0 4px;font-weight:bold;}.calendar td.time .ampm{text-align:center;}.calendar td.time .colon{padding:0 2px 0 3px;font-weight:bold;}.calendar td.time span.hilite{}.calendar td.time span.active{border-color:#f00;background-color:#000;color:#0f0;}.hour,.minute{font-size:2em;}
6 |
7 | #CP_hourcont{z-index:2000;padding:0;position:absolute;border:1px dashed #666;background-color:#eee;display:none;}#CP_minutecont{z-index:2000;background-color:#ddd;padding:1px;position:absolute;width:45px;display:none;}.floatleft{float:left;}.CP_hour{z-index:2000;padding:1px;font-family:Arial,Helvetica,sans-serif;font-size:9px;white-space:nowrap;cursor:pointer;width:35px;}.CP_minute{z-index:2000;padding:1px;font-family:Arial,Helvetica,sans-serif;font-size:9px;white-space:nowrap;cursor:pointer;width:auto;}.CP_over{background-color:#fff;z-index:2000}
8 |
--------------------------------------------------------------------------------
/static/images/facebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/images/facebook.png
--------------------------------------------------------------------------------
/static/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/images/favicon.ico
--------------------------------------------------------------------------------
/static/images/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/images/favicon.png
--------------------------------------------------------------------------------
/static/images/glyphicons-halflings-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/images/glyphicons-halflings-white.png
--------------------------------------------------------------------------------
/static/images/glyphicons-halflings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/images/glyphicons-halflings.png
--------------------------------------------------------------------------------
/static/images/gplus-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/images/gplus-32.png
--------------------------------------------------------------------------------
/static/images/twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/images/twitter.png
--------------------------------------------------------------------------------
/static/js/share.js:
--------------------------------------------------------------------------------
1 | /**
2 |
3 | Created and copyrighted by Massimo Di Pierro
4 | (MIT license)
5 |
6 | Example:
7 |
8 |
9 |
10 | **/
11 |
12 | jQuery(function(){
13 | var script_source = jQuery('script[src*="share.js"]').attr('src');
14 | var params = function(name,default_value) {
15 | var match = RegExp('[?&]' + name + '=([^&]*)').exec(script_source);
16 | return match && decodeURIComponent(match[1].replace(/\+/g, ' '))||default_value;
17 | }
18 | var path = params('static','social');
19 | var url = encodeURIComponent(window.location.href);
20 | var host = window.location.hostname;
21 | var title = escape(jQuery('title').text());
22 | var twit = 'http://twitter.com/home?status='+title+'%20'+url;
23 | var facebook = 'http://www.facebook.com/sharer.php?u='+url;
24 | var gplus = 'https://plus.google.com/share?url='+url;
25 | var tbar = '';
26 | // Add the share tool bar.
27 | jQuery('body').append(tbar);
28 | var st = jQuery('#socialdrawer');
29 | st.css({'opacity':'.7','z-index':'3000','background':'#FFF','border':'solid 1px #666','border-width':' 1px 0 0 1px','height':'20px','width':'40px','position':'fixed','bottom':'0','right':'0','padding':'2px 5px','overflow':'hidden','-webkit-border-top-left-radius':' 12px','-moz-border-radius-topleft':' 12px','border-top-left-radius':' 12px','-moz-box-shadow':' -3px -3px 3px rgba(0,0,0,0.5)','-webkit-box-shadow':' -3px -3px 3px rgba(0,0,0,0.5)','box-shadow':' -3px -3px 3px rgba(0,0,0,0.5)'});
30 | jQuery('#socialdrawer a').css({'float':'left','width':'32px','margin':'3px 2px 2px 2px','padding':'0','cursor':'pointer'});
31 | jQuery('#socialdrawer span').css({'float':'left','margin':'2px 3px','text-shadow':' 1px 1px 1px #FFF','color':'#444','font-size':'12px','line-height':'1em'});
32 | jQuery('#socialdrawer img').hide();
33 | // hover
34 | st.click(function(){
35 | jQuery(this).animate({height:'40px', width:'160px', opacity: 0.95}, 300);
36 | jQuery('#socialdrawer img').show();
37 | });
38 | //leave
39 | st.mouseleave(function(){
40 | st.animate({height:'20px', width: '40px', opacity: .7}, 300);
41 | jQuery('#socialdrawer img').hide();
42 | return false;
43 | } );
44 | });
45 |
--------------------------------------------------------------------------------
/static/js/web2py_bootstrap.js:
--------------------------------------------------------------------------------
1 | // this code improves bootstrap menus and adds dropdown support
2 | jQuery(function(){
3 | jQuery('.nav>li>a').each(function(){
4 | if(jQuery(this).parent().find('ul').length)
5 | jQuery(this).attr({'class':'dropdown-toggle','data-toggle':'dropdown'}).append(' ');
6 | });
7 | jQuery('.nav li li').each(function(){
8 | if(jQuery(this).find('ul').length)
9 | jQuery(this).addClass('dropdown-submenu');
10 | });
11 | function adjust_height_of_collapsed_nav() {
12 | var cn = jQuery('div.collapse');
13 | if (cn.get(0)) {
14 | var cnh = cn.get(0).style.height;
15 | if (cnh>'0px'){
16 | cn.css('height','auto');
17 | }
18 | }
19 | }
20 | function hoverMenu(){
21 | jQuery('ul.nav a.dropdown-toggle').parent().hover(function(){
22 | adjust_height_of_collapsed_nav();
23 | var mi = jQuery(this).addClass('open');
24 | mi.children('.dropdown-menu').stop(true, true).delay(200).fadeIn(400);
25 | }, function(){
26 | var mi = jQuery(this);
27 | mi.children('.dropdown-menu').stop(true, true).delay(200).fadeOut(function(){mi.removeClass('open')});
28 | });
29 | }
30 | hoverMenu(); // first page load
31 | jQuery(window).resize(hoverMenu); // on resize event
32 | jQuery('ul.nav li.dropdown a').click(function(){window.location=jQuery(this).attr('href');});
33 | });
34 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/README.md:
--------------------------------------------------------------------------------
1 | CKEditor 4
2 | ==========
3 |
4 | Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
5 | http://ckeditor.com - See LICENSE.md for license information.
6 |
7 | CKEditor is a text editor to be used inside web pages. It's not a replacement
8 | for desktop text editors like Word or OpenOffice, but a component to be used as
9 | part of web applications and websites.
10 |
11 | ## Documentation
12 |
13 | The full editor documentation is available online at the following address:
14 | http://docs.ckeditor.com
15 |
16 | ## Installation
17 |
18 | Installing CKEditor is an easy task. Just follow these simple steps:
19 |
20 | 1. **Download** the latest version from the CKEditor website:
21 | http://ckeditor.com. You should have already completed this step, but be
22 | sure you have the very latest version.
23 | 2. **Extract** (decompress) the downloaded file into the root of your website.
24 |
25 | **Note:** CKEditor is by default installed in the `ckeditor` folder. You can
26 | place the files in whichever you want though.
27 |
28 | ## Checking Your Installation
29 |
30 | The editor comes with a few sample pages that can be used to verify that
31 | installation proceeded properly. Take a look at the `samples` directory.
32 |
33 | To test your installation, just call the following page at your website:
34 |
35 | http:////samples/index.html
36 |
37 | For example:
38 |
39 | http://www.example.com/ckeditor/samples/index.html
40 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/adapters/jquery.js:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
3 | For licensing, see LICENSE.md or http://ckeditor.com/license
4 | */
5 | (function(a){if("undefined"==typeof a)throw Error("jQuery should be loaded before CKEditor jQuery adapter.");if("undefined"==typeof CKEDITOR)throw Error("CKEditor should be loaded before CKEditor jQuery adapter.");CKEDITOR.config.jqueryOverrideVal="undefined"==typeof CKEDITOR.config.jqueryOverrideVal?!0:CKEDITOR.config.jqueryOverrideVal;a.extend(a.fn,{ckeditorGet:function(){var a=this.eq(0).data("ckeditorInstance");if(!a)throw"CKEditor is not initialized yet, use ckeditor() with a callback.";return a},
6 | ckeditor:function(g,d){if(!CKEDITOR.env.isCompatible)throw Error("The environment is incompatible.");if(!a.isFunction(g)){var m=d;d=g;g=m}var k=[];d=d||{};this.each(function(){var b=a(this),c=b.data("ckeditorInstance"),f=b.data("_ckeditorInstanceLock"),h=this,l=new a.Deferred;k.push(l.promise());if(c&&!f)g&&g.apply(c,[this]),l.resolve();else if(f)c.once("instanceReady",function(){setTimeout(function(){c.element?(c.element.$==h&&g&&g.apply(c,[h]),l.resolve()):setTimeout(arguments.callee,100)},0)},
7 | null,null,9999);else{if(d.autoUpdateElement||"undefined"==typeof d.autoUpdateElement&&CKEDITOR.config.autoUpdateElement)d.autoUpdateElementJquery=!0;d.autoUpdateElement=!1;b.data("_ckeditorInstanceLock",!0);c=a(this).is("textarea")?CKEDITOR.replace(h,d):CKEDITOR.inline(h,d);b.data("ckeditorInstance",c);c.on("instanceReady",function(d){var e=d.editor;setTimeout(function(){if(e.element){d.removeListener();e.on("dataReady",function(){b.trigger("dataReady.ckeditor",[e])});e.on("setData",function(a){b.trigger("setData.ckeditor",
8 | [e,a.data])});e.on("getData",function(a){b.trigger("getData.ckeditor",[e,a.data])},999);e.on("destroy",function(){b.trigger("destroy.ckeditor",[e])});e.on("save",function(){a(h.form).submit();return!1},null,null,20);if(e.config.autoUpdateElementJquery&&b.is("textarea")&&a(h.form).length){var c=function(){b.ckeditor(function(){e.updateElement()})};a(h.form).submit(c);a(h.form).bind("form-pre-serialize",c);b.bind("destroy.ckeditor",function(){a(h.form).unbind("submit",c);a(h.form).unbind("form-pre-serialize",
9 | c)})}e.on("destroy",function(){b.removeData("ckeditorInstance")});b.removeData("_ckeditorInstanceLock");b.trigger("instanceReady.ckeditor",[e]);g&&g.apply(e,[h]);l.resolve()}else setTimeout(arguments.callee,100)},0)},null,null,9999)}});var f=new a.Deferred;this.promise=f.promise();a.when.apply(this,k).then(function(){f.resolve()});this.editor=this.eq(0).data("ckeditorInstance");return this}});CKEDITOR.config.jqueryOverrideVal&&(a.fn.val=CKEDITOR.tools.override(a.fn.val,function(g){return function(d){if(arguments.length){var m=
10 | this,k=[],f=this.each(function(){var b=a(this),c=b.data("ckeditorInstance");if(b.is("textarea")&&c){var f=new a.Deferred;c.setData(d,function(){f.resolve()});k.push(f.promise());return!0}return g.call(b,d)});if(k.length){var b=new a.Deferred;a.when.apply(this,k).done(function(){b.resolveWith(m)});return b.promise()}return f}var f=a(this).eq(0),c=f.data("ckeditorInstance");return f.is("textarea")&&c?c.getData():g.call(f)}}))})(window.jQuery);
--------------------------------------------------------------------------------
/static/plugin_ckeditor/config.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
3 | * For licensing, see LICENSE.md or http://ckeditor.com/license
4 | */
5 |
6 | CKEDITOR.editorConfig = function( config ) {
7 | // Define changes to default configuration here. For example:
8 | // config.language = 'fr';
9 | // config.uiColor = '#AADC6E';
10 | };
11 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/contents.css:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
3 | For licensing, see LICENSE.md or http://ckeditor.com/license
4 | */
5 |
6 | body
7 | {
8 | /* Font */
9 | font-family: sans-serif, Arial, Verdana, "Trebuchet MS";
10 | font-size: 12px;
11 |
12 | /* Text color */
13 | color: #333;
14 |
15 | /* Remove the background color to make it transparent */
16 | background-color: #fff;
17 |
18 | margin: 20px;
19 | }
20 |
21 | .cke_editable
22 | {
23 | font-size: 13px;
24 | line-height: 1.6;
25 | }
26 |
27 | blockquote
28 | {
29 | font-style: italic;
30 | font-family: Georgia, Times, "Times New Roman", serif;
31 | padding: 2px 0;
32 | border-style: solid;
33 | border-color: #ccc;
34 | border-width: 0;
35 | }
36 |
37 | .cke_contents_ltr blockquote
38 | {
39 | padding-left: 20px;
40 | padding-right: 8px;
41 | border-left-width: 5px;
42 | }
43 |
44 | .cke_contents_rtl blockquote
45 | {
46 | padding-left: 8px;
47 | padding-right: 20px;
48 | border-right-width: 5px;
49 | }
50 |
51 | a
52 | {
53 | color: #0782C1;
54 | }
55 |
56 | ol,ul,dl
57 | {
58 | /* IE7: reset rtl list margin. (#7334) */
59 | *margin-right: 0px;
60 | /* preserved spaces for list items with text direction other than the list. (#6249,#8049)*/
61 | padding: 0 40px;
62 | }
63 |
64 | h1,h2,h3,h4,h5,h6
65 | {
66 | font-weight: normal;
67 | line-height: 1.2;
68 | }
69 |
70 | hr
71 | {
72 | border: 0px;
73 | border-top: 1px solid #ccc;
74 | }
75 |
76 | img.right
77 | {
78 | border: 1px solid #ccc;
79 | float: right;
80 | margin-left: 15px;
81 | padding: 5px;
82 | }
83 |
84 | img.left
85 | {
86 | border: 1px solid #ccc;
87 | float: left;
88 | margin-right: 15px;
89 | padding: 5px;
90 | }
91 |
92 | pre
93 | {
94 | white-space: pre-wrap; /* CSS 2.1 */
95 | word-wrap: break-word; /* IE7 */
96 | -moz-tab-size: 4;
97 | tab-size: 4;
98 | }
99 |
100 | .marker
101 | {
102 | background-color: Yellow;
103 | }
104 |
105 | span[lang]
106 | {
107 | font-style: italic;
108 | }
109 |
110 | figure
111 | {
112 | text-align: center;
113 | border: solid 1px #ccc;
114 | border-radius: 2px;
115 | background: rgba(0,0,0,0.05);
116 | padding: 10px;
117 | margin: 10px 20px;
118 | display: inline-block;
119 | }
120 |
121 | figure > figcaption
122 | {
123 | text-align: center;
124 | display: block; /* For IE8 */
125 | }
126 |
127 | a > img {
128 | padding: 1px;
129 | margin: 1px;
130 | border: none;
131 | outline: 1px solid #0782C1;
132 | }
133 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
3 | For licensing, see LICENSE.md or http://ckeditor.com/license
4 | */
5 | CKEDITOR.dialog.add("a11yHelp",function(l){var a=l.lang.a11yhelp,n=CKEDITOR.tools.getNextId(),e={8:a.backspace,9:a.tab,13:a.enter,16:a.shift,17:a.ctrl,18:a.alt,19:a.pause,20:a.capslock,27:a.escape,33:a.pageUp,34:a.pageDown,35:a.end,36:a.home,37:a.leftArrow,38:a.upArrow,39:a.rightArrow,40:a.downArrow,45:a.insert,46:a["delete"],91:a.leftWindowKey,92:a.rightWindowKey,93:a.selectKey,96:a.numpad0,97:a.numpad1,98:a.numpad2,99:a.numpad3,100:a.numpad4,101:a.numpad5,102:a.numpad6,103:a.numpad7,104:a.numpad8,
6 | 105:a.numpad9,106:a.multiply,107:a.add,109:a.subtract,110:a.decimalPoint,111:a.divide,112:a.f1,113:a.f2,114:a.f3,115:a.f4,116:a.f5,117:a.f6,118:a.f7,119:a.f8,120:a.f9,121:a.f10,122:a.f11,123:a.f12,144:a.numLock,145:a.scrollLock,186:a.semiColon,187:a.equalSign,188:a.comma,189:a.dash,190:a.period,191:a.forwardSlash,192:a.graveAccent,219:a.openBracket,220:a.backSlash,221:a.closeBracket,222:a.singleQuote};e[CKEDITOR.ALT]=a.alt;e[CKEDITOR.SHIFT]=a.shift;e[CKEDITOR.CTRL]=a.ctrl;var f=[CKEDITOR.ALT,CKEDITOR.SHIFT,
7 | CKEDITOR.CTRL],p=/\$\{(.*?)\}/g,t=function(){var a=l.keystrokeHandler.keystrokes,g={},c;for(c in a)g[a[c]]=c;return function(a,c){var b;if(g[c]){b=g[c];for(var h,k,m=[],d=0;d=h&&(b-=k,m.push(e[k]));m.push(e[b]||String.fromCharCode(b));b=m.join("+")}else b=a;return b}}();return{title:a.title,minWidth:600,minHeight:400,contents:[{id:"info",label:l.lang.common.generalTab,expand:!0,elements:[{type:"html",id:"legends",style:"white-space:normal;",focus:function(){this.getElement().focus()},
8 | html:function(){for(var e='\x3cdiv class\x3d"cke_accessibility_legend" role\x3d"document" aria-labelledby\x3d"'+n+'_arialbl" tabIndex\x3d"-1"\x3e%1\x3c/div\x3e\x3cspan id\x3d"'+n+'_arialbl" class\x3d"cke_voice_label"\x3e'+a.contents+" \x3c/span\x3e",g=[],c=a.legend,l=c.length,f=0;fCKEDITOR.document.$.documentMode?b.document.createElement('\x3cinput name\x3d"'+CKEDITOR.tools.htmlEncode(a)+'"\x3e'):b.document.createElement("input");a.setAttribute("type","hidden");this.commitContent(a);a=b.createFakeElement(a,"cke_hidden","hiddenfield");this.hiddenField?(a.replace(this.hiddenField),b.getSelection().selectElement(a)):b.insertElement(a);return!0},contents:[{id:"info",label:d.lang.forms.hidden.title,title:d.lang.forms.hidden.title,elements:[{id:"_cke_saved_name",
7 | type:"text",label:d.lang.forms.hidden.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.setAttribute("name",this.getValue()):a.removeAttribute("name")}},{id:"value",type:"text",label:d.lang.forms.hidden.value,"default":"",accessKey:"V",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:function(a){this.getValue()?a.setAttribute("value",this.getValue()):a.removeAttribute("value")}}]}]}});
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/forms/dialogs/radio.js:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
3 | For licensing, see LICENSE.md or http://ckeditor.com/license
4 | */
5 | CKEDITOR.dialog.add("radio",function(b){return{title:b.lang.forms.checkboxAndRadio.radioTitle,minWidth:350,minHeight:140,onShow:function(){delete this.radioButton;var a=this.getParentEditor().getSelection().getSelectedElement();a&&"input"==a.getName()&&"radio"==a.getAttribute("type")&&(this.radioButton=a,this.setupContent(a))},onOk:function(){var a,c=this.radioButton,b=!c;b&&(a=this.getParentEditor(),c=a.document.createElement("input"),c.setAttribute("type","radio"));b&&a.insertElement(c);this.commitContent({element:c})},
6 | contents:[{id:"info",label:b.lang.forms.checkboxAndRadio.radioTitle,title:b.lang.forms.checkboxAndRadio.radioTitle,elements:[{id:"name",type:"text",label:b.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"value",type:"text",label:b.lang.forms.checkboxAndRadio.value,"default":"",
7 | accessKey:"V",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:function(a){a=a.element;this.getValue()?a.setAttribute("value",this.getValue()):a.removeAttribute("value")}},{id:"checked",type:"checkbox",label:b.lang.forms.checkboxAndRadio.selected,"default":"",accessKey:"S",value:"checked",setup:function(a){this.setValue(a.getAttribute("checked"))},commit:function(a){var c=a.element;if(CKEDITOR.env.ie){var d=c.getAttribute("checked"),e=!!this.getValue();d!=e&&(d=CKEDITOR.dom.element.createFromHtml('\x3cinput type\x3d"radio"'+
8 | (e?' checked\x3d"checked"':"")+"\x3e\x3c/input\x3e",b.document),c.copyAttributes(d,{type:1,checked:1}),d.replace(c),b.getSelection().selectElement(d),a.element=d)}else this.getValue()?c.setAttribute("checked","checked"):c.removeAttribute("checked")}},{id:"required",type:"checkbox",label:b.lang.forms.checkboxAndRadio.required,"default":"",accessKey:"Q",value:"required",setup:function(a){this.setValue(a.getAttribute("required"))},commit:function(a){a=a.element;this.getValue()?a.setAttribute("required",
9 | "required"):a.removeAttribute("required")}}]}]}});
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/forms/dialogs/textarea.js:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
3 | For licensing, see LICENSE.md or http://ckeditor.com/license
4 | */
5 | CKEDITOR.dialog.add("textarea",function(b){return{title:b.lang.forms.textarea.title,minWidth:350,minHeight:220,onShow:function(){delete this.textarea;var a=this.getParentEditor().getSelection().getSelectedElement();a&&"textarea"==a.getName()&&(this.textarea=a,this.setupContent(a))},onOk:function(){var a,b=this.textarea,c=!b;c&&(a=this.getParentEditor(),b=a.document.createElement("textarea"));this.commitContent(b);c&&a.insertElement(b)},contents:[{id:"info",label:b.lang.forms.textarea.title,title:b.lang.forms.textarea.title,
6 | elements:[{id:"_cke_saved_name",type:"text",label:b.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{type:"hbox",widths:["50%","50%"],children:[{id:"cols",type:"text",label:b.lang.forms.textarea.cols,"default":"",accessKey:"C",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed),
7 | setup:function(a){a=a.hasAttribute("cols")&&a.getAttribute("cols");this.setValue(a||"")},commit:function(a){this.getValue()?a.setAttribute("cols",this.getValue()):a.removeAttribute("cols")}},{id:"rows",type:"text",label:b.lang.forms.textarea.rows,"default":"",accessKey:"R",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed),setup:function(a){a=a.hasAttribute("rows")&&a.getAttribute("rows");this.setValue(a||"")},commit:function(a){this.getValue()?a.setAttribute("rows",
8 | this.getValue()):a.removeAttribute("rows")}}]},{id:"value",type:"textarea",label:b.lang.forms.textfield.value,"default":"",setup:function(a){this.setValue(a.$.defaultValue)},commit:function(a){a.$.value=a.$.defaultValue=this.getValue()}},{id:"required",type:"checkbox",label:b.lang.forms.textfield.required,"default":"",accessKey:"Q",value:"required",setup:function(a){this.setValue(a.getAttribute("required"))},commit:function(a){this.getValue()?a.setAttribute("required","required"):a.removeAttribute("required")}}]}]}});
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/forms/dialogs/textfield.js:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
3 | For licensing, see LICENSE.md or http://ckeditor.com/license
4 | */
5 | CKEDITOR.dialog.add("textfield",function(b){function e(a){a=a.element;var b=this.getValue();b?a.setAttribute(this.id,b):a.removeAttribute(this.id)}function f(a){a=a.hasAttribute(this.id)&&a.getAttribute(this.id);this.setValue(a||"")}var g={email:1,password:1,search:1,tel:1,text:1,url:1};return{title:b.lang.forms.textfield.title,minWidth:350,minHeight:150,onShow:function(){delete this.textField;var a=this.getParentEditor().getSelection().getSelectedElement();!a||"input"!=a.getName()||!g[a.getAttribute("type")]&&
6 | a.getAttribute("type")||(this.textField=a,this.setupContent(a))},onOk:function(){var a=this.getParentEditor(),b=this.textField,c=!b;c&&(b=a.document.createElement("input"),b.setAttribute("type","text"));b={element:b};c&&a.insertElement(b.element);this.commitContent(b);c||a.getSelection().selectElement(b.element)},onLoad:function(){this.foreach(function(a){a.getValue&&(a.setup||(a.setup=f),a.commit||(a.commit=e))})},contents:[{id:"info",label:b.lang.forms.textfield.title,title:b.lang.forms.textfield.title,
7 | elements:[{type:"hbox",widths:["50%","50%"],children:[{id:"_cke_saved_name",type:"text",label:b.lang.forms.textfield.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"value",type:"text",label:b.lang.forms.textfield.value,"default":"",accessKey:"V",commit:function(a){if(CKEDITOR.env.ie&&
8 | !this.getValue()){var d=a.element,c=new CKEDITOR.dom.element("input",b.document);d.copyAttributes(c,{value:1});c.replace(d);a.element=c}else e.call(this,a)}}]},{type:"hbox",widths:["50%","50%"],children:[{id:"size",type:"text",label:b.lang.forms.textfield.charWidth,"default":"",accessKey:"C",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed)},{id:"maxLength",type:"text",label:b.lang.forms.textfield.maxChars,"default":"",accessKey:"M",style:"width:50px",
9 | validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed)}],onLoad:function(){CKEDITOR.env.ie7Compat&&this.getElement().setStyle("zoom","100%")}},{id:"type",type:"select",label:b.lang.forms.textfield.type,"default":"text",accessKey:"M",items:[[b.lang.forms.textfield.typeEmail,"email"],[b.lang.forms.textfield.typePass,"password"],[b.lang.forms.textfield.typeSearch,"search"],[b.lang.forms.textfield.typeTel,"tel"],[b.lang.forms.textfield.typeText,"text"],[b.lang.forms.textfield.typeUrl,
10 | "url"]],setup:function(a){this.setValue(a.getAttribute("type"))},commit:function(a){var d=a.element;if(CKEDITOR.env.ie){var c=d.getAttribute("type"),e=this.getValue();c!=e&&(c=CKEDITOR.dom.element.createFromHtml('\x3cinput type\x3d"'+e+'"\x3e\x3c/input\x3e',b.document),d.copyAttributes(c,{type:1}),c.replace(d),a.element=c)}else d.setAttribute("type",this.getValue())}},{id:"required",type:"checkbox",label:b.lang.forms.textfield.required,"default":"",accessKey:"Q",value:"required",setup:function(a){this.setValue(a.getAttribute("required"))},
11 | commit:function(a){a=a.element;this.getValue()?a.setAttribute("required","required"):a.removeAttribute("required")}}]}]}});
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/forms/images/hiddenfield.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/plugins/forms/images/hiddenfield.gif
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/plugins/icons.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/icons_hidpi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/plugins/icons_hidpi.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/iframe/dialogs/iframe.js:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
3 | For licensing, see LICENSE.md or http://ckeditor.com/license
4 | */
5 | (function(){function c(b){var c=this instanceof CKEDITOR.ui.dialog.checkbox;b.hasAttribute(this.id)&&(b=b.getAttribute(this.id),c?this.setValue(e[this.id]["true"]==b.toLowerCase()):this.setValue(b))}function d(b){var c=""===this.getValue(),a=this instanceof CKEDITOR.ui.dialog.checkbox,d=this.getValue();c?b.removeAttribute(this.att||this.id):a?b.setAttribute(this.id,e[this.id][d]):b.setAttribute(this.att||this.id,d)}var e={scrolling:{"true":"yes","false":"no"},frameborder:{"true":"1","false":"0"}};
6 | CKEDITOR.dialog.add("iframe",function(b){var f=b.lang.iframe,a=b.lang.common,e=b.plugins.dialogadvtab;return{title:f.title,minWidth:350,minHeight:260,onShow:function(){this.fakeImage=this.iframeNode=null;var a=this.getSelectedElement();a&&a.data("cke-real-element-type")&&"iframe"==a.data("cke-real-element-type")&&(this.fakeImage=a,this.iframeNode=a=b.restoreRealElement(a),this.setupContent(a))},onOk:function(){var a;a=this.fakeImage?this.iframeNode:new CKEDITOR.dom.element("iframe");var c={},d={};
7 | this.commitContent(a,c,d);a=b.createFakeElement(a,"cke_iframe","iframe",!0);a.setAttributes(d);a.setStyles(c);this.fakeImage?(a.replace(this.fakeImage),b.getSelection().selectElement(a)):b.insertElement(a)},contents:[{id:"info",label:a.generalTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{id:"src",type:"text",label:a.url,required:!0,validate:CKEDITOR.dialog.validate.notEmpty(f.noUrl),setup:c,commit:d}]},{type:"hbox",children:[{id:"width",type:"text",requiredContent:"iframe[width]",
8 | style:"width:100%",labelLayout:"vertical",label:a.width,validate:CKEDITOR.dialog.validate.htmlLength(a.invalidHtmlLength.replace("%1",a.width)),setup:c,commit:d},{id:"height",type:"text",requiredContent:"iframe[height]",style:"width:100%",labelLayout:"vertical",label:a.height,validate:CKEDITOR.dialog.validate.htmlLength(a.invalidHtmlLength.replace("%1",a.height)),setup:c,commit:d},{id:"align",type:"select",requiredContent:"iframe[align]","default":"",items:[[a.notSet,""],[a.alignLeft,"left"],[a.alignRight,
9 | "right"],[a.alignTop,"top"],[a.alignMiddle,"middle"],[a.alignBottom,"bottom"]],style:"width:100%",labelLayout:"vertical",label:a.align,setup:function(a,b){c.apply(this,arguments);if(b){var d=b.getAttribute("align");this.setValue(d&&d.toLowerCase()||"")}},commit:function(a,b,c){d.apply(this,arguments);this.getValue()&&(c.align=this.getValue())}}]},{type:"hbox",widths:["50%","50%"],children:[{id:"scrolling",type:"checkbox",requiredContent:"iframe[scrolling]",label:f.scrolling,setup:c,commit:d},{id:"frameborder",
10 | type:"checkbox",requiredContent:"iframe[frameborder]",label:f.border,setup:c,commit:d}]},{type:"hbox",widths:["50%","50%"],children:[{id:"name",type:"text",requiredContent:"iframe[name]",label:a.name,setup:c,commit:d},{id:"title",type:"text",requiredContent:"iframe[title]",label:a.advisoryTitle,setup:c,commit:d}]},{id:"longdesc",type:"text",requiredContent:"iframe[longdesc]",label:a.longDescr,setup:c,commit:d}]},e&&e.createAdvancedTab(b,{id:1,classes:1,styles:1},"iframe")]}})})();
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/iframe/images/placeholder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/plugins/iframe/images/placeholder.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/image/images/noimage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/plugins/image/images/noimage.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/link/dialogs/anchor.js:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
3 | For licensing, see LICENSE.md or http://ckeditor.com/license
4 | */
5 | CKEDITOR.dialog.add("anchor",function(c){function d(a,b){return a.createFakeElement(a.document.createElement("a",{attributes:b}),"cke_anchor","anchor")}return{title:c.lang.link.anchor.title,minWidth:300,minHeight:60,onOk:function(){var a=CKEDITOR.tools.trim(this.getValueOf("info","txtName")),a={id:a,name:a,"data-cke-saved-name":a};if(this._.selectedElement)this._.selectedElement.data("cke-realelement")?(a=d(c,a),a.replace(this._.selectedElement),CKEDITOR.env.ie&&c.getSelection().selectElement(a)):
6 | this._.selectedElement.setAttributes(a);else{var b=c.getSelection(),b=b&&b.getRanges()[0];b.collapsed?(a=d(c,a),b.insertNode(a)):(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(a["class"]="cke_anchor"),a=new CKEDITOR.style({element:"a",attributes:a}),a.type=CKEDITOR.STYLE_INLINE,c.applyStyle(a))}},onHide:function(){delete this._.selectedElement},onShow:function(){var a=c.getSelection(),b=a.getSelectedElement(),d=b&&b.data("cke-realelement"),e=d?CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,b):CKEDITOR.plugins.link.getSelectedLink(c);
7 | if(e){this._.selectedElement=e;var f=e.data("cke-saved-name");this.setValueOf("info","txtName",f||"");!d&&a.selectElement(e);b&&(this._.selectedElement=b)}this.getContentElement("info","txtName").focus()},contents:[{id:"info",label:c.lang.link.anchor.title,accessKey:"I",elements:[{type:"text",id:"txtName",label:c.lang.link.anchor.name,required:!0,validate:function(){return this.getValue()?!0:(alert(c.lang.link.anchor.errorName),!1)}}]}]}});
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/link/images/anchor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/plugins/link/images/anchor.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/link/images/hidpi/anchor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/plugins/link/images/hidpi/anchor.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/liststyle/dialogs/liststyle.js:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
3 | For licensing, see LICENSE.md or http://ckeditor.com/license
4 | */
5 | (function(){function d(c,d){var b;try{b=c.getSelection().getRanges()[0]}catch(f){return null}b.shrink(CKEDITOR.SHRINK_TEXT);return c.elementPath(b.getCommonAncestor()).contains(d,1)}function e(c,e){var b=c.lang.liststyle;if("bulletedListStyle"==e)return{title:b.bulletedTitle,minWidth:300,minHeight:50,contents:[{id:"info",accessKey:"I",elements:[{type:"select",label:b.type,id:"type",align:"center",style:"width:150px",items:[[b.notset,""],[b.circle,"circle"],[b.disc,"disc"],[b.square,"square"]],setup:function(a){a=
6 | a.getStyle("list-style-type")||h[a.getAttribute("type")]||a.getAttribute("type")||"";this.setValue(a)},commit:function(a){var b=this.getValue();b?a.setStyle("list-style-type",b):a.removeStyle("list-style-type")}}]}],onShow:function(){var a=this.getParentEditor();(a=d(a,"ul"))&&this.setupContent(a)},onOk:function(){var a=this.getParentEditor();(a=d(a,"ul"))&&this.commitContent(a)}};if("numberedListStyle"==e){var g=[[b.notset,""],[b.lowerRoman,"lower-roman"],[b.upperRoman,"upper-roman"],[b.lowerAlpha,
7 | "lower-alpha"],[b.upperAlpha,"upper-alpha"],[b.decimal,"decimal"]];(!CKEDITOR.env.ie||7
2 |
3 | // Prevent from DOM clobbering.
4 | if ( typeof window.opener._cke_htmlToLoad == 'string' ) {
5 | var doc = document;
6 | doc.open();
7 | doc.write( window.opener._cke_htmlToLoad );
8 | doc.close();
9 |
10 | delete window.opener._cke_htmlToLoad;
11 | }
12 |
13 |
14 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/scayt/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | SCAYT plugin for CKEditor 4 Changelog
2 | ====================
3 | ### CKEditor 4.5.6
4 |
5 | New Features:
6 | * CKEditor [language addon](http://ckeditor.com/addon/language) support
7 | * CKEditor [placeholder addon](http://ckeditor.com/addon/placeholder) support
8 | * Drag and Drop support
9 | * *Experimental* GRAYT functionality http://www.webspellchecker.net/samples/scayt-ckeditor-plugin.html#25
10 |
11 | Fixed issues:
12 | * [#98](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/98) SCAYT Affects Dialog Double Click. Fixed in SCAYT Core.
13 | * [#102](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/102) SCAYT Core performance enhancements
14 | * [#104](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/104) SCAYT's spans leak into the clipboard and after pasting
15 | * [#105](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/105) Javascript error fired in case of multiple instances of CKEditor in one page
16 | * [#107](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/107) SCAYT should not check non-editable parts of content
17 | * [#108](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/108) Latest SCAYT copies id of editor element to the iframe
18 | * SCAYT stops working when CKEditor Undo plug-in not enabled
19 | * Issue with pasting SCAYT markup in CKEditor
20 | * [#32](https://github.com/WebSpellChecker/ckeditor-plugin-wsc/issues/32) SCAYT stops working after pressing Cancel button in WSC dialog
21 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/scayt/LICENSE.md:
--------------------------------------------------------------------------------
1 | Software License Agreement
2 | ==========================
3 |
4 | **CKEditor SCAYT Plugin**
5 | Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved.
6 |
7 | Licensed under the terms of any of the following licenses at your choice:
8 |
9 | * GNU General Public License Version 2 or later (the "GPL"):
10 | http://www.gnu.org/licenses/gpl.html
11 |
12 | * GNU Lesser General Public License Version 2.1 or later (the "LGPL"):
13 | http://www.gnu.org/licenses/lgpl.html
14 |
15 | * Mozilla Public License Version 1.1 or later (the "MPL"):
16 | http://www.mozilla.org/MPL/MPL-1.1.html
17 |
18 | You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice.
19 |
20 | Sources of Intellectual Property Included in this plugin
21 | --------------------------------------------------------
22 |
23 | Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission.
24 |
25 | Trademarks
26 | ----------
27 |
28 | CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders.
29 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/scayt/README.md:
--------------------------------------------------------------------------------
1 | CKEditor SCAYT Plugin
2 | =====================
3 |
4 | This plugin brings Spell Check As You Type (SCAYT) into up to CKEditor 4+.
5 |
6 | SCAYT is a "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution.
7 |
8 | Installation
9 | ------------
10 |
11 | 1. Clone/copy this repository contents in a new "plugins/scayt" folder in your CKEditor installation.
12 | 2. Enable the "scayt" plugin in the CKEditor configuration file (config.js):
13 |
14 | config.extraPlugins = 'scayt';
15 |
16 | That's all. SCAYT will appear on the editor toolbar and will be ready to use.
17 |
18 | License
19 | -------
20 |
21 | Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html).
22 |
23 | See LICENSE.md for more information.
24 |
25 | Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/).
26 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/scayt/dialogs/toolbar.css:
--------------------------------------------------------------------------------
1 | a
2 | {
3 | text-decoration:none;
4 | padding: 2px 4px 4px 6px;
5 | display : block;
6 | border-width: 1px;
7 | border-style: solid;
8 | margin : 0px;
9 | }
10 |
11 | a.cke_scayt_toogle:hover,
12 | a.cke_scayt_toogle:focus,
13 | a.cke_scayt_toogle:active
14 | {
15 | border-color: #316ac5;
16 | background-color: #dff1ff;
17 | color : #000;
18 | cursor: pointer;
19 | margin : 0px;
20 | }
21 | a.cke_scayt_toogle {
22 | color : #316ac5;
23 | border-color: #fff;
24 | }
25 | .scayt_enabled a.cke_scayt_item {
26 | color : #316ac5;
27 | border-color: #fff;
28 | margin : 0px;
29 | }
30 | .scayt_disabled a.cke_scayt_item {
31 | color : gray;
32 | border-color : #fff;
33 | }
34 | .scayt_enabled a.cke_scayt_item:hover,
35 | .scayt_enabled a.cke_scayt_item:focus,
36 | .scayt_enabled a.cke_scayt_item:active
37 | {
38 | border-color: #316ac5;
39 | background-color: #dff1ff;
40 | color : #000;
41 | cursor: pointer;
42 | }
43 | .scayt_disabled a.cke_scayt_item:hover,
44 | .scayt_disabled a.cke_scayt_item:focus,
45 | .scayt_disabled a.cke_scayt_item:active
46 | {
47 | border-color: gray;
48 | background-color: #dff1ff;
49 | color : gray;
50 | cursor: no-drop;
51 | }
52 | .cke_scayt_set_on, .cke_scayt_set_off
53 | {
54 | display: none;
55 | }
56 | .scayt_enabled .cke_scayt_set_on
57 | {
58 | display: none;
59 | }
60 | .scayt_disabled .cke_scayt_set_on
61 | {
62 | display: inline;
63 | }
64 | .scayt_disabled .cke_scayt_set_off
65 | {
66 | display: none;
67 | }
68 | .scayt_enabled .cke_scayt_set_off
69 | {
70 | display: inline;
71 | }
72 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/showblocks/images/block_address.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/plugins/showblocks/images/block_address.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/showblocks/images/block_blockquote.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/plugins/showblocks/images/block_blockquote.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/showblocks/images/block_div.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/plugins/showblocks/images/block_div.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/showblocks/images/block_h1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/plugins/showblocks/images/block_h1.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/showblocks/images/block_h2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/plugins/showblocks/images/block_h2.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/showblocks/images/block_h3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/plugins/showblocks/images/block_h3.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/showblocks/images/block_h4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/plugins/showblocks/images/block_h4.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/showblocks/images/block_h5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/plugins/showblocks/images/block_h5.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/showblocks/images/block_h6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/plugins/showblocks/images/block_h6.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/showblocks/images/block_p.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/plugins/showblocks/images/block_p.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/showblocks/images/block_pre.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/plugins/showblocks/images/block_pre.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/smiley/dialogs/smiley.js:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
3 | For licensing, see LICENSE.md or http://ckeditor.com/license
4 | */
5 | CKEDITOR.dialog.add("smiley",function(f){for(var e=f.config,a=f.lang.smiley,h=e.smiley_images,g=e.smiley_columns||8,k,m=function(l){var c=l.data.getTarget(),b=c.getName();if("a"==b)c=c.getChild(0);else if("img"!=b)return;var b=c.getAttribute("cke_src"),a=c.getAttribute("title"),c=f.document.createElement("img",{attributes:{src:b,"data-cke-saved-src":b,title:a,alt:a,width:c.$.width,height:c.$.height}});f.insertElement(c);k.hide();l.data.preventDefault()},q=CKEDITOR.tools.addFunction(function(a,c){a=
6 | new CKEDITOR.dom.event(a);c=new CKEDITOR.dom.element(c);var b;b=a.getKeystroke();var d="rtl"==f.lang.dir;switch(b){case 38:if(b=c.getParent().getParent().getPrevious())b=b.getChild([c.getParent().getIndex(),0]),b.focus();a.preventDefault();break;case 40:(b=c.getParent().getParent().getNext())&&(b=b.getChild([c.getParent().getIndex(),0]))&&b.focus();a.preventDefault();break;case 32:m({data:a});a.preventDefault();break;case d?37:39:if(b=c.getParent().getNext())b=b.getChild(0),b.focus(),a.preventDefault(!0);
7 | else if(b=c.getParent().getParent().getNext())(b=b.getChild([0,0]))&&b.focus(),a.preventDefault(!0);break;case d?39:37:if(b=c.getParent().getPrevious())b=b.getChild(0),b.focus(),a.preventDefault(!0);else if(b=c.getParent().getParent().getPrevious())b=b.getLast().getChild(0),b.focus(),a.preventDefault(!0)}}),d=CKEDITOR.tools.getNextId()+"_smiley_emtions_label",d=['\x3cdiv\x3e\x3cspan id\x3d"'+d+'" class\x3d"cke_voice_label"\x3e'+a.options+"\x3c/span\x3e",'\x3ctable role\x3d"listbox" aria-labelledby\x3d"'+
8 | d+'" style\x3d"width:100%;height:100%;border-collapse:separate;" cellspacing\x3d"2" cellpadding\x3d"2"',CKEDITOR.env.ie&&CKEDITOR.env.quirks?' style\x3d"position:absolute;"':"","\x3e\x3ctbody\x3e"],n=h.length,a=0;a
2 |
6 |
7 |
8 |
9 |
10 |
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/wsc/dialogs/tmpFrameset.html:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
10 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/wsc/dialogs/wsc.css:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3 | For licensing, see LICENSE.html or http://ckeditor.com/license
4 | */
5 |
6 | html, body
7 | {
8 | background-color: transparent;
9 | margin: 0px;
10 | padding: 0px;
11 | }
12 |
13 | body
14 | {
15 | padding: 10px;
16 | }
17 |
18 | body, td, input, select, textarea
19 | {
20 | font-size: 11px;
21 | font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;
22 | }
23 |
24 | .midtext
25 | {
26 | padding:0px;
27 | margin:10px;
28 | }
29 |
30 | .midtext p
31 | {
32 | padding:0px;
33 | margin:10px;
34 | }
35 |
36 | .Button
37 | {
38 | border: #737357 1px solid;
39 | color: #3b3b1f;
40 | background-color: #c7c78f;
41 | }
42 |
43 | .PopupTabArea
44 | {
45 | color: #737357;
46 | background-color: #e3e3c7;
47 | }
48 |
49 | .PopupTitleBorder
50 | {
51 | border-bottom: #d5d59d 1px solid;
52 | }
53 | .PopupTabEmptyArea
54 | {
55 | padding-left: 10px;
56 | border-bottom: #d5d59d 1px solid;
57 | }
58 |
59 | .PopupTab, .PopupTabSelected
60 | {
61 | border-right: #d5d59d 1px solid;
62 | border-top: #d5d59d 1px solid;
63 | border-left: #d5d59d 1px solid;
64 | padding: 3px 5px 3px 5px;
65 | color: #737357;
66 | }
67 |
68 | .PopupTab
69 | {
70 | margin-top: 1px;
71 | border-bottom: #d5d59d 1px solid;
72 | cursor: pointer;
73 | }
74 |
75 | .PopupTabSelected
76 | {
77 | font-weight: bold;
78 | cursor: default;
79 | padding-top: 4px;
80 | border-bottom: #f1f1e3 1px solid;
81 | background-color: #f1f1e3;
82 | }
83 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/plugins/wsc/dialogs/wsc_ie.js:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
3 | For licensing, see LICENSE.html or http://ckeditor.com/license
4 | */
5 | CKEDITOR.dialog.add("checkspell",function(a){function c(a,c){var d=0;return function(){"function"==typeof window.doSpell?("undefined"!=typeof e&&window.clearInterval(e),l(a)):180==d++&&window._cancelOnError(c)}}function l(c){var f=new window._SP_FCK_LangCompare,b=CKEDITOR.getUrl(a.plugins.wsc.path+"dialogs/"),e=b+"tmpFrameset.html";window.gFCKPluginName="wsc";f.setDefaulLangCode(a.config.defaultLanguage);window.doSpell({ctrl:g,lang:a.config.wsc_lang||f.getSPLangCode(a.langCode),intLang:a.config.wsc_uiLang||
6 | f.getSPLangCode(a.langCode),winType:d,onCancel:function(){c.hide()},onFinish:function(b){a.focus();c.getParentEditor().setData(b.value);c.hide()},staticFrame:e,framesetPath:e,iframePath:b+"ciframe.html",schemaURI:b+"wsc.css",userDictionaryName:a.config.wsc_userDictionaryName,customDictionaryName:a.config.wsc_customDictionaryIds&&a.config.wsc_customDictionaryIds.split(","),domainName:a.config.wsc_domainName});CKEDITOR.document.getById(h).setStyle("display","none");CKEDITOR.document.getById(d).setStyle("display",
7 | "block")}var b=CKEDITOR.tools.getNextNumber(),d="cke_frame_"+b,g="cke_data_"+b,h="cke_error_"+b,e,b=document.location.protocol||"http:",k=a.lang.wsc.notAvailable,m='\x3ctextarea style\x3d"display: none" id\x3d"'+g+'" rows\x3d"10" cols\x3d"40"\x3e \x3c/textarea\x3e\x3cdiv id\x3d"'+h+'" style\x3d"display:none;color:red;font-size:16px;font-weight:bold;padding-top:160px;text-align:center;z-index:11;"\x3e\x3c/div\x3e\x3ciframe src\x3d"" style\x3d"width:100%;background-color:#f1f1e3;" frameborder\x3d"0" name\x3d"'+
8 | d+'" id\x3d"'+d+'" allowtransparency\x3d"1"\x3e\x3c/iframe\x3e',n=a.config.wsc_customLoaderScript||b+"//loader.webspellchecker.net/sproxy_fck/sproxy.php?plugin\x3dfck2\x26customerid\x3d"+a.config.wsc_customerId+"\x26cmd\x3dscript\x26doc\x3dwsc\x26schema\x3d22";a.config.wsc_customLoaderScript&&(k+='\x3cp style\x3d"color:#000;font-size:11px;font-weight: normal;text-align:center;padding-top:10px"\x3e'+a.lang.wsc.errorLoading.replace(/%s/g,a.config.wsc_customLoaderScript)+"\x3c/p\x3e");window._cancelOnError=
9 | function(c){if("undefined"==typeof window.WSC_Error){CKEDITOR.document.getById(d).setStyle("display","none");var b=CKEDITOR.document.getById(h);b.setStyle("display","block");b.setHtml(c||a.lang.wsc.notAvailable)}};return{title:a.config.wsc_dialogTitle||a.lang.wsc.title,minWidth:485,minHeight:380,buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var b=this.getContentElement("general","content").getElement();b.setHtml(m);b.getChild(2).setStyle("height",this._.contentSize.height+"px");"function"!=
10 | typeof window.doSpell&&CKEDITOR.document.getHead().append(CKEDITOR.document.createElement("script",{attributes:{type:"text/javascript",src:n}}));b=a.getData();CKEDITOR.document.getById(g).setValue(b);e=window.setInterval(c(this,k),250)},onHide:function(){window.ooo=void 0;window.int_framsetLoaded=void 0;window.framesetLoaded=void 0;window.is_window_opened=!1},contents:[{id:"general",label:a.config.wsc_dialogTitle||a.lang.wsc.title,padding:0,elements:[{type:"html",id:"content",html:""}]}]}});
11 | CKEDITOR.dialog.on("resize",function(a){a=a.data;var c=a.dialog;"checkspell"==c._.name&&((c=(c=c.getContentElement("general","content").getElement())&&c.getChild(2))&&c.setSize("height",a.height),c&&c.setSize("width",a.width))});
--------------------------------------------------------------------------------
/static/plugin_ckeditor/samples/img/github-top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/samples/img/github-top.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/samples/img/header-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/samples/img/header-bg.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/samples/img/header-separator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/samples/img/header-separator.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/samples/img/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/samples/img/logo.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/samples/img/navigation-tip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/samples/img/navigation-tip.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/samples/js/sample.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
3 | * For licensing, see LICENSE.md or http://ckeditor.com/license
4 | */
5 |
6 | /* exported initSample */
7 |
8 | if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 )
9 | CKEDITOR.tools.enableHtml5Elements( document );
10 |
11 | // The trick to keep the editor in the sample quite small
12 | // unless user specified own height.
13 | CKEDITOR.config.height = 150;
14 | CKEDITOR.config.width = 'auto';
15 |
16 | var initSample = ( function() {
17 | var wysiwygareaAvailable = isWysiwygareaAvailable(),
18 | isBBCodeBuiltIn = !!CKEDITOR.plugins.get( 'bbcode' );
19 |
20 | return function() {
21 | var editorElement = CKEDITOR.document.getById( 'editor' );
22 |
23 | // :(((
24 | if ( isBBCodeBuiltIn ) {
25 | editorElement.setHtml(
26 | 'Hello world!\n\n' +
27 | 'I\'m an instance of [url=http://ckeditor.com]CKEditor[/url].'
28 | );
29 | }
30 |
31 | // Depending on the wysiwygare plugin availability initialize classic or inline editor.
32 | if ( wysiwygareaAvailable ) {
33 | CKEDITOR.replace( 'editor' );
34 | } else {
35 | editorElement.setAttribute( 'contenteditable', 'true' );
36 | CKEDITOR.inline( 'editor' );
37 |
38 | // TODO we can consider displaying some info box that
39 | // without wysiwygarea the classic editor may not work.
40 | }
41 | };
42 |
43 | function isWysiwygareaAvailable() {
44 | // If in development mode, then the wysiwygarea must be available.
45 | // Split REV into two strings so builder does not replace it :D.
46 | if ( CKEDITOR.revision == ( '%RE' + 'V%' ) ) {
47 | return true;
48 | }
49 |
50 | return !!CKEDITOR.plugins.get( 'wysiwygarea' );
51 | }
52 | } )();
53 |
54 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/samples/old/ajax.html:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 | Ajax — CKEditor Sample
10 |
11 |
12 |
40 |
41 |
42 |
43 | CKEditor Samples » Create and Destroy Editor Instances for Ajax Applications
44 |
45 |
48 |
49 |
50 | This sample shows how to create and destroy CKEditor instances on the fly. After the removal of CKEditor the content created inside the editing
51 | area will be displayed in a <div>
element.
52 |
53 |
54 | For details of how to create this setup check the source code of this sample page
55 | for JavaScript code responsible for the creation and destruction of a CKEditor instance.
56 |
57 |
58 | Click the buttons to create and remove a CKEditor instance.
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 | Edited Contents:
69 |
70 |
71 |
72 |
73 |
74 |
84 |
85 |
86 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/samples/old/appendto.html:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 | Append To Page Element Using JavaScript Code — CKEditor Sample
10 |
11 |
12 |
13 |
14 |
15 | CKEditor Samples » Append To Page Element Using JavaScript Code
16 |
17 |
20 |
21 |
22 |
23 | The CKEDITOR.appendTo()
method serves to to place editors inside existing DOM elements. Unlike CKEDITOR.replace()
,
24 | a target container to be replaced is no longer necessary. A new editor
25 | instance is inserted directly wherever it is desired.
26 |
27 |
CKEDITOR.appendTo( 'container_id ',
28 | { /* Configuration options to be used. */ }
29 | 'Editor content to be used.'
30 | );
31 |
32 |
46 |
47 |
48 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/samples/old/assets/inlineall/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/samples/old/assets/inlineall/logo.png
--------------------------------------------------------------------------------
/static/plugin_ckeditor/samples/old/assets/outputxhtml/outputxhtml.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
3 | * For licensing, see LICENSE.md or http://ckeditor.com/license
4 | *
5 | * Styles used by the XHTML 1.1 sample page (xhtml.html).
6 | */
7 |
8 | /**
9 | * Basic definitions for the editing area.
10 | */
11 | body
12 | {
13 | font-family: Arial, Verdana, sans-serif;
14 | font-size: 80%;
15 | color: #000000;
16 | background-color: #ffffff;
17 | padding: 5px;
18 | margin: 0px;
19 | }
20 |
21 | /**
22 | * Core styles.
23 | */
24 |
25 | .Bold
26 | {
27 | font-weight: bold;
28 | }
29 |
30 | .Italic
31 | {
32 | font-style: italic;
33 | }
34 |
35 | .Underline
36 | {
37 | text-decoration: underline;
38 | }
39 |
40 | .StrikeThrough
41 | {
42 | text-decoration: line-through;
43 | }
44 |
45 | .Subscript
46 | {
47 | vertical-align: sub;
48 | font-size: smaller;
49 | }
50 |
51 | .Superscript
52 | {
53 | vertical-align: super;
54 | font-size: smaller;
55 | }
56 |
57 | /**
58 | * Font faces.
59 | */
60 |
61 | .FontComic
62 | {
63 | font-family: 'Comic Sans MS';
64 | }
65 |
66 | .FontCourier
67 | {
68 | font-family: 'Courier New';
69 | }
70 |
71 | .FontTimes
72 | {
73 | font-family: 'Times New Roman';
74 | }
75 |
76 | /**
77 | * Font sizes.
78 | */
79 |
80 | .FontSmaller
81 | {
82 | font-size: smaller;
83 | }
84 |
85 | .FontLarger
86 | {
87 | font-size: larger;
88 | }
89 |
90 | .FontSmall
91 | {
92 | font-size: 8pt;
93 | }
94 |
95 | .FontBig
96 | {
97 | font-size: 14pt;
98 | }
99 |
100 | .FontDouble
101 | {
102 | font-size: 200%;
103 | }
104 |
105 | /**
106 | * Font colors.
107 | */
108 | .FontColor1
109 | {
110 | color: #ff9900;
111 | }
112 |
113 | .FontColor2
114 | {
115 | color: #0066cc;
116 | }
117 |
118 | .FontColor3
119 | {
120 | color: #ff0000;
121 | }
122 |
123 | .FontColor1BG
124 | {
125 | background-color: #ff9900;
126 | }
127 |
128 | .FontColor2BG
129 | {
130 | background-color: #0066cc;
131 | }
132 |
133 | .FontColor3BG
134 | {
135 | background-color: #ff0000;
136 | }
137 |
138 | /**
139 | * Indentation.
140 | */
141 |
142 | .Indent1
143 | {
144 | margin-left: 40px;
145 | }
146 |
147 | .Indent2
148 | {
149 | margin-left: 80px;
150 | }
151 |
152 | .Indent3
153 | {
154 | margin-left: 120px;
155 | }
156 |
157 | /**
158 | * Alignment.
159 | */
160 |
161 | .JustifyLeft
162 | {
163 | text-align: left;
164 | }
165 |
166 | .JustifyRight
167 | {
168 | text-align: right;
169 | }
170 |
171 | .JustifyCenter
172 | {
173 | text-align: center;
174 | }
175 |
176 | .JustifyFull
177 | {
178 | text-align: justify;
179 | }
180 |
181 | /**
182 | * Other.
183 | */
184 |
185 | code
186 | {
187 | font-family: courier, monospace;
188 | background-color: #eeeeee;
189 | padding-left: 1px;
190 | padding-right: 1px;
191 | border: #c0c0c0 1px solid;
192 | }
193 |
194 | kbd
195 | {
196 | padding: 0px 1px 0px 1px;
197 | border-width: 1px 2px 2px 1px;
198 | border-style: solid;
199 | }
200 |
201 | blockquote
202 | {
203 | color: #808080;
204 | }
205 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/samples/old/assets/posteddata.php:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 | Sample — CKEditor
12 |
13 |
14 |
15 |
16 | CKEditor — Posted Data
17 |
18 |
19 |
20 |
21 |
22 | Field Name
23 | Value
24 |
25 |
26 | $value )
31 | {
32 | if ( ( !is_string($value) && !is_numeric($value) ) || !is_string($key) )
33 | continue;
34 |
35 | if ( get_magic_quotes_gpc() )
36 | $value = htmlspecialchars( stripslashes((string)$value) );
37 | else
38 | $value = htmlspecialchars( (string)$value );
39 | ?>
40 |
41 |
42 |
43 |
44 |
48 |
49 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/samples/old/assets/sample.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/timrichardson/web2py_ckeditor4/397d02eb2dfc688757d0c82dfc2dbc6a04b07da1/static/plugin_ckeditor/samples/old/assets/sample.jpg
--------------------------------------------------------------------------------
/static/plugin_ckeditor/samples/old/assets/uilanguages/languages.js:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
3 | For licensing, see LICENSE.md or http://ckeditor.com/license
4 | */
5 | var CKEDITOR_LANGS=function(){var c={af:"Afrikaans",ar:"Arabic",bg:"Bulgarian",bn:"Bengali/Bangla",bs:"Bosnian",ca:"Catalan",cs:"Czech",cy:"Welsh",da:"Danish",de:"German","de-ch":"German (Switzerland)",el:"Greek",en:"English","en-au":"English (Australia)","en-ca":"English (Canadian)","en-gb":"English (United Kingdom)",eo:"Esperanto",es:"Spanish",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fo:"Faroese",fr:"French","fr-ca":"French (Canada)",gl:"Galician",gu:"Gujarati",he:"Hebrew",hi:"Hindi",
6 | hr:"Croatian",hu:"Hungarian",id:"Indonesian",is:"Icelandic",it:"Italian",ja:"Japanese",ka:"Georgian",km:"Khmer",ko:"Korean",ku:"Kurdish",lt:"Lithuanian",lv:"Latvian",mk:"Macedonian",mn:"Mongolian",ms:"Malay",nb:"Norwegian Bokmal",nl:"Dutch",no:"Norwegian",pl:"Polish",pt:"Portuguese (Portugal)","pt-br":"Portuguese (Brazil)",ro:"Romanian",ru:"Russian",si:"Sinhala",sk:"Slovak",sq:"Albanian",sl:"Slovenian",sr:"Serbian (Cyrillic)","sr-latn":"Serbian (Latin)",sv:"Swedish",th:"Thai",tr:"Turkish",tt:"Tatar",
7 | ug:"Uighur",uk:"Ukrainian",vi:"Vietnamese",zh:"Chinese Traditional","zh-cn":"Chinese Simplified"},b=[],a;for(a in CKEDITOR.lang.languages)b.push({code:a,name:c[a]||a});b.sort(function(a,b){return a.name
2 |
6 |
7 |
8 |
9 | Using the CKEditor Read-Only API — CKEditor Sample
10 |
11 |
12 |
38 |
39 |
40 |
41 | CKEditor Samples » Using the CKEditor Read-Only API
42 |
43 |
46 |
47 |
48 | This sample shows how to use the
49 | setReadOnly
50 | API to put editor into the read-only state that makes it impossible for users to change the editor contents.
51 |
52 |
53 | For details on how to create this setup check the source code of this sample page.
54 |
55 |
56 |
65 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/samples/old/sample.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
3 | * For licensing, see LICENSE.md or http://ckeditor.com/license
4 | */
5 |
6 | // Tool scripts for the sample pages.
7 | // This file can be ignored and is not required to make use of CKEditor.
8 |
9 | ( function() {
10 | CKEDITOR.on( 'instanceReady', function( ev ) {
11 | // Check for sample compliance.
12 | var editor = ev.editor,
13 | meta = CKEDITOR.document.$.getElementsByName( 'ckeditor-sample-required-plugins' ),
14 | requires = meta.length ? CKEDITOR.dom.element.get( meta[ 0 ] ).getAttribute( 'content' ).split( ',' ) : [],
15 | missing = [],
16 | i;
17 |
18 | if ( requires.length ) {
19 | for ( i = 0; i < requires.length; i++ ) {
20 | if ( !editor.plugins[ requires[ i ] ] )
21 | missing.push( '' + requires[ i ] + '
' );
22 | }
23 |
24 | if ( missing.length ) {
25 | var warn = CKEDITOR.dom.element.createFromHtml(
26 | '' +
27 | 'To fully experience this demo, the ' + missing.join( ', ' ) + ' plugin' + ( missing.length > 1 ? 's are' : ' is' ) + ' required. ' +
28 | '
'
29 | );
30 | warn.insertBefore( editor.container );
31 | }
32 | }
33 |
34 | // Set icons.
35 | var doc = new CKEDITOR.dom.document( document ),
36 | icons = doc.find( '.button_icon' );
37 |
38 | for ( i = 0; i < icons.count(); i++ ) {
39 | var icon = icons.getItem( i ),
40 | name = icon.getAttribute( 'data-icon' ),
41 | style = CKEDITOR.skin.getIconStyle( name, ( CKEDITOR.lang.dir == 'rtl' ) );
42 |
43 | icon.addClass( 'cke_button_icon' );
44 | icon.addClass( 'cke_button__' + name + '_icon' );
45 | icon.setAttribute( 'style', style );
46 | icon.setStyle( 'float', 'none' );
47 |
48 | }
49 | } );
50 | } )();
51 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/samples/old/sample_posteddata.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | -------------------------------------------------------------------------------------------
4 | CKEditor - Posted Data
5 |
6 | We are sorry, but your Web server does not support the PHP language used in this script.
7 |
8 | Please note that CKEditor can be used with any other server-side language than just PHP.
9 | To save the content created with CKEditor you need to read the POST data on the server
10 | side and write it to a file or the database.
11 |
12 | Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
13 | For licensing, see LICENSE.md or http://ckeditor.com/license
14 | -------------------------------------------------------------------------------------------
15 |
16 |
44 |
45 | CKEditor Samples » TAB Key-Based Navigation
46 |
47 |
50 |
51 |
52 | This sample shows how tab key navigation among editor instances is
53 | affected by the tabIndex
attribute from
54 | the original page element. Use TAB key to move between the editors.
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
77 | */ include "assets/posteddata.php"; ?>
17 |
--------------------------------------------------------------------------------
/static/plugin_ckeditor/samples/old/tabindex.html:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |