summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorParth Buch2012-07-20 18:20:49 +0530
committerParth Buch2012-07-20 18:20:49 +0530
commit1c9f444205a42394986b0cdb4def7ea289acc887 (patch)
tree1a4cc8a6d63125b214c77dbd7dcfb28cf148c4f1
parent2202ad3104f235e9d218a588abaf5369afe2d238 (diff)
downloadstproject-1c9f444205a42394986b0cdb4def7ea289acc887.tar.gz
stproject-1c9f444205a42394986b0cdb4def7ea289acc887.tar.bz2
stproject-1c9f444205a42394986b0cdb4def7ea289acc887.zip
Added Dojo's dijit.Editor
-rw-r--r--stapp/static/admin/css/editor.css21
-rw-r--r--stapp/static/admin/js/editor.js47
-rw-r--r--stapp/video/admin.py27
3 files changed, 93 insertions, 2 deletions
diff --git a/stapp/static/admin/css/editor.css b/stapp/static/admin/css/editor.css
new file mode 100644
index 0000000..92af0ad
--- /dev/null
+++ b/stapp/static/admin/css/editor.css
@@ -0,0 +1,21 @@
+/* Import standard Dojo CSS files */
+@import "https://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dijit/themes/claro/claro.css";
+
+/* Import custom style sheets for plugins */
+@import "https://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dojox/editor/plugins/resources/css/FindReplace.css";
+@import "https://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dojox/editor/plugins/resources/css/ShowBlockNodes.css";
+@import "https://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dojox/editor/plugins/resources/css/InsertEntity.css";
+@import "https://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dojox/editor/plugins/resources/css/CollapsibleToolbar.css";
+@import "https://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dojox/editor/plugins/resources/css/Blockquote.css";
+@import "https://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dojox/editor/plugins/resources/css/PasteFromWord.css";
+@import "https://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dojox/editor/plugins/resources/css/InsertAnchor.css";
+@import "https://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dojox/editor/plugins/resources/css/TextColor.css";
+@import "https://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dojox/editor/plugins/resources/css/SpellCheck.css";
+@import "https://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dojox/editor/plugins/resources/css/PasteFromWord.css";
+@import "https://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dojox/editor/plugins/resources/css/PasteFromWord.css";
+@import "https://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dojox/editor/plugins/resources/css/PasteFromWord.css";
+
+/* update CSS rules to cater for Django Admin */
+.dijitEditor {display: inline-block;}
+.dijitEditor .dijitToolbar .dijitTextBox {width: 20ex;}
+.dijitEditor .dijitToolbar label {display: inline; float: none; width: auto;}
diff --git a/stapp/static/admin/js/editor.js b/stapp/static/admin/js/editor.js
new file mode 100644
index 0000000..6f92bc8
--- /dev/null
+++ b/stapp/static/admin/js/editor.js
@@ -0,0 +1,47 @@
+dojo.require("dijit.Editor");
+
+// extra plugins
+dojo.require("dijit._editor.plugins.FontChoice");
+dojo.require("dojox.editor.plugins.TextColor");
+dojo.require("dojox.editor.plugins.Blockquote");
+dojo.require("dijit._editor.plugins.LinkDialog");
+dojo.require("dojox.editor.plugins.InsertAnchor");
+dojo.require("dojox.editor.plugins.FindReplace");
+dojo.require("dojox.editor.plugins.ShowBlockNodes");
+dojo.require("dojox.editor.plugins.PasteFromWord");
+dojo.require("dijit._editor.plugins.ViewSource");
+dojo.require("dijit._editor.plugins.FullScreen");
+dojo.require("dojox.editor.plugins.InsertEntity");
+
+// headless plugins
+dojo.require("dojox.editor.plugins.CollapsibleToolbar");
+dojo.require("dojox.editor.plugins.NormalizeIndentOutdent");
+dojo.require("dojox.editor.plugins.PrettyPrint"); // let's pretty-print our HTML
+dojo.require("dojox.editor.plugins.AutoUrlLink");
+dojo.require("dojox.editor.plugins.ToolbarLineBreak");
+
+dojo.ready(function(){
+ var textareas = dojo.query("textarea");
+ if(textareas && textareas.length){
+ dojo.addClass(dojo.body(), "claro");
+ textareas.instantiate(dijit.Editor, {
+ styleSheets: "/appmedia/style.css;/appmedia/blog/style.css",
+ plugins: [
+ "collapsibletoolbar",
+ "fullscreen", "viewsource", "|",
+ "undo", "redo", "|",
+ "cut", "copy", "paste", "|",
+ "bold", "italic", "underline", "strikethrough", "|",
+ "insertOrderedList", "insertUnorderedList", "indent", "outdent", "||",
+ "formatBlock", "fontName", "fontSize", "||",
+ "findreplace", "insertEntity", "blockquote", "|",
+ "createLink", "insertImage", "insertanchor", "|",
+ "foreColor", "hiliteColor", "|",
+ "showblocknodes", "pastefromword",
+ // headless plugins
+ "normalizeindentoutdent", "prettyprint",
+ "autourllink", "dijit._editor.plugins.EnterKeyHandling"
+ ]
+ });
+ }
+});
diff --git a/stapp/video/admin.py b/stapp/video/admin.py
index 8b24e55..a13f0ea 100644
--- a/stapp/video/admin.py
+++ b/stapp/video/admin.py
@@ -1,5 +1,28 @@
from video.models import Video, Module
from django.contrib import admin
+from django.contrib.admin import site, ModelAdmin
-admin.site.register(Video)
-admin.site.register(Module)
+# we define our resources to add to admin pages
+class CommonMedia:
+ js = (
+ 'https://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dojo/dojo.xd.js',
+ '/static/admin/js/editor.js',
+ )
+ css = {
+ 'all': ('/static/admin/css/editor.css',),
+ }
+
+# let's add it to this model
+site.register(Video,
+ list_display = ('description',),
+ search_fields = ['description',],
+ Media = CommonMedia,
+)
+
+site.register(Module,
+ list_display = ('description',),
+ search_fields = ['description',],
+ Media = CommonMedia,
+)
+#admin.site.register(Video)
+#admin.site.register(Module)