[Python-modules-commits] [django-paintstore] 01/03: import django-paintstore_0.2.orig.tar.gz

Jonas Meurer mejo at moszumanska.debian.org
Thu Sep 14 14:31:18 UTC 2017


This is an automated email from the git hooks/post-receive script.

mejo pushed a commit to branch master
in repository django-paintstore.

commit 29a076e06f9a22cc21c83e101dfedc942d5da60b
Author: Jonas Meurer <jonas at freesources.org>
Date:   Thu Sep 14 15:54:22 2017 +0200

    import django-paintstore_0.2.orig.tar.gz
---
 AUTHORS                                            |    1 +
 LICENSE                                            |    7 +
 MANIFEST.in                                        |    4 +
 PKG-INFO                                           |   61 +
 README.rst                                         |   44 +
 django_paintstore.egg-info/PKG-INFO                |   61 +
 django_paintstore.egg-info/SOURCES.txt             |   31 +
 django_paintstore.egg-info/dependency_links.txt    |    1 +
 django_paintstore.egg-info/not-zip-safe            |    1 +
 django_paintstore.egg-info/top_level.txt           |    1 +
 paintstore/__init__.py                             |    1 +
 paintstore/fields.py                               |   21 +
 paintstore/models.py                               |    1 +
 paintstore/static/paintstore/colorpicker.js        |  477 +
 paintstore/static/paintstore/css/colorpicker.css   |  179 +
 .../paintstore/images/colorpicker_background.png   |  Bin 0 -> 1877 bytes
 .../static/paintstore/images/colorpicker_hex.png   |  Bin 0 -> 506 bytes
 .../static/paintstore/images/colorpicker_hsb_b.png |  Bin 0 -> 858 bytes
 .../static/paintstore/images/colorpicker_hsb_h.png |  Bin 0 -> 853 bytes
 .../static/paintstore/images/colorpicker_hsb_s.png |  Bin 0 -> 882 bytes
 .../static/paintstore/images/colorpicker_indic.gif |  Bin 0 -> 86 bytes
 .../paintstore/images/colorpicker_overlay.png      |  Bin 0 -> 9128 bytes
 .../static/paintstore/images/colorpicker_rgb_b.png |  Bin 0 -> 858 bytes
 .../static/paintstore/images/colorpicker_rgb_g.png |  Bin 0 -> 905 bytes
 .../static/paintstore/images/colorpicker_rgb_r.png |  Bin 0 -> 863 bytes
 .../paintstore/images/colorpicker_select.gif       |  Bin 0 -> 78 bytes
 .../paintstore/images/colorpicker_submit.png       |  Bin 0 -> 919 bytes
 paintstore/static/paintstore/images/select.png     |  Bin 0 -> 363 bytes
 paintstore/static/paintstore/images/select2.png    |  Bin 0 -> 376 bytes
 paintstore/static/paintstore/jquery_1.7.2.js       | 9404 ++++++++++++++++++++
 paintstore/widgets.py                              |   38 +
 setup.cfg                                          |    5 +
 setup.py                                           |   42 +
 33 files changed, 10380 insertions(+)

diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..5ecf6ea
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1 @@
+Glenn Siegman <gsiegman at gsiegman.com>
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..08c0da8
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,7 @@
+Copyright (c) 2012 Glenn Siegman
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..9e29c17
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,4 @@
+include AUTHORS
+include LICENSE
+include README.rst
+recursive-include paintstore/static/paintstore *
\ No newline at end of file
diff --git a/PKG-INFO b/PKG-INFO
new file mode 100644
index 0000000..543256c
--- /dev/null
+++ b/PKG-INFO
@@ -0,0 +1,61 @@
+Metadata-Version: 1.1
+Name: django-paintstore
+Version: 0.2
+Summary: A Django app that integrates jQuery ColorPicker with the Django admin.
+Home-page: https://github.com/gsiegman/django-paintstore
+Author: Glenn Siegman
+Author-email: gsiegman at gsiegman.com
+License: MIT
+Description: django-paintstore
+        ==================
+        
+        ``django-paintstore`` is a Django app that integrates `jQuery ColorPicker`_ with the Django admin
+        
+        
+        Quickstart
+        ----------
+        
+        #. Install the app with your preferred Python packaging utility, for example::
+        
+            pip install django-paintstore
+        
+        #. Add the application to the ``INSTALLED_APPS`` in settings.py::
+        
+                INSTALLED_APPS = (
+                    # ...
+                    'paintstore',
+                )
+        
+        #. Add a ColorPickerField to your model::
+                
+                # ...
+                from paintstore.fields import ColorPickerField
+        
+                class ColorfulModel(models.Model):
+                    title = models.CharField(max_length=25)
+                    color = ColorPickerField()
+        
+        #. Optional: Edit colors directly in your model's change list admin::
+        
+                class ColorfulModelAdmin(admin.ModelAdmin):
+                    list_display = ["title", "color",]
+                    list_editable = ["color",]
+        
+        
+        TODOS
+        --------
+        
+        - Replace text input showing color hex code with a swatch of the color selected
+        - Docs (prep to add to Read the Docs)
+        - Tests
+        
+        .. _`jQuery ColorPicker`: https://github.com/Belelros/jQuery-ColorPicker
+Platform: UNKNOWN
+Classifier: Development Status :: 4 - Beta
+Classifier: Environment :: Web Environment
+Classifier: Framework :: Django
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: MIT License
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Topic :: Utilities
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..2ec7e06
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,44 @@
+django-paintstore
+==================
+
+``django-paintstore`` is a Django app that integrates `jQuery ColorPicker`_ with the Django admin
+
+
+Quickstart
+----------
+
+#. Install the app with your preferred Python packaging utility, for example::
+
+    pip install django-paintstore
+
+#. Add the application to the ``INSTALLED_APPS`` in settings.py::
+
+        INSTALLED_APPS = (
+            # ...
+            'paintstore',
+        )
+
+#. Add a ColorPickerField to your model::
+        
+        # ...
+        from paintstore.fields import ColorPickerField
+
+        class ColorfulModel(models.Model):
+            title = models.CharField(max_length=25)
+            color = ColorPickerField()
+
+#. Optional: Edit colors directly in your model's change list admin::
+
+        class ColorfulModelAdmin(admin.ModelAdmin):
+            list_display = ["title", "color",]
+            list_editable = ["color",]
+
+
+TODOS
+--------
+
+- Replace text input showing color hex code with a swatch of the color selected
+- Docs (prep to add to Read the Docs)
+- Tests
+
+.. _`jQuery ColorPicker`: https://github.com/Belelros/jQuery-ColorPicker
\ No newline at end of file
diff --git a/django_paintstore.egg-info/PKG-INFO b/django_paintstore.egg-info/PKG-INFO
new file mode 100644
index 0000000..543256c
--- /dev/null
+++ b/django_paintstore.egg-info/PKG-INFO
@@ -0,0 +1,61 @@
+Metadata-Version: 1.1
+Name: django-paintstore
+Version: 0.2
+Summary: A Django app that integrates jQuery ColorPicker with the Django admin.
+Home-page: https://github.com/gsiegman/django-paintstore
+Author: Glenn Siegman
+Author-email: gsiegman at gsiegman.com
+License: MIT
+Description: django-paintstore
+        ==================
+        
+        ``django-paintstore`` is a Django app that integrates `jQuery ColorPicker`_ with the Django admin
+        
+        
+        Quickstart
+        ----------
+        
+        #. Install the app with your preferred Python packaging utility, for example::
+        
+            pip install django-paintstore
+        
+        #. Add the application to the ``INSTALLED_APPS`` in settings.py::
+        
+                INSTALLED_APPS = (
+                    # ...
+                    'paintstore',
+                )
+        
+        #. Add a ColorPickerField to your model::
+                
+                # ...
+                from paintstore.fields import ColorPickerField
+        
+                class ColorfulModel(models.Model):
+                    title = models.CharField(max_length=25)
+                    color = ColorPickerField()
+        
+        #. Optional: Edit colors directly in your model's change list admin::
+        
+                class ColorfulModelAdmin(admin.ModelAdmin):
+                    list_display = ["title", "color",]
+                    list_editable = ["color",]
+        
+        
+        TODOS
+        --------
+        
+        - Replace text input showing color hex code with a swatch of the color selected
+        - Docs (prep to add to Read the Docs)
+        - Tests
+        
+        .. _`jQuery ColorPicker`: https://github.com/Belelros/jQuery-ColorPicker
+Platform: UNKNOWN
+Classifier: Development Status :: 4 - Beta
+Classifier: Environment :: Web Environment
+Classifier: Framework :: Django
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: MIT License
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Topic :: Utilities
diff --git a/django_paintstore.egg-info/SOURCES.txt b/django_paintstore.egg-info/SOURCES.txt
new file mode 100644
index 0000000..bb8f459
--- /dev/null
+++ b/django_paintstore.egg-info/SOURCES.txt
@@ -0,0 +1,31 @@
+AUTHORS
+LICENSE
+MANIFEST.in
+README.rst
+setup.py
+django_paintstore.egg-info/PKG-INFO
+django_paintstore.egg-info/SOURCES.txt
+django_paintstore.egg-info/dependency_links.txt
+django_paintstore.egg-info/not-zip-safe
+django_paintstore.egg-info/top_level.txt
+paintstore/__init__.py
+paintstore/fields.py
+paintstore/models.py
+paintstore/widgets.py
+paintstore/static/paintstore/colorpicker.js
+paintstore/static/paintstore/jquery_1.7.2.js
+paintstore/static/paintstore/css/colorpicker.css
+paintstore/static/paintstore/images/colorpicker_background.png
+paintstore/static/paintstore/images/colorpicker_hex.png
+paintstore/static/paintstore/images/colorpicker_hsb_b.png
+paintstore/static/paintstore/images/colorpicker_hsb_h.png
+paintstore/static/paintstore/images/colorpicker_hsb_s.png
+paintstore/static/paintstore/images/colorpicker_indic.gif
+paintstore/static/paintstore/images/colorpicker_overlay.png
+paintstore/static/paintstore/images/colorpicker_rgb_b.png
+paintstore/static/paintstore/images/colorpicker_rgb_g.png
+paintstore/static/paintstore/images/colorpicker_rgb_r.png
+paintstore/static/paintstore/images/colorpicker_select.gif
+paintstore/static/paintstore/images/colorpicker_submit.png
+paintstore/static/paintstore/images/select.png
+paintstore/static/paintstore/images/select2.png
\ No newline at end of file
diff --git a/django_paintstore.egg-info/dependency_links.txt b/django_paintstore.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/django_paintstore.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/django_paintstore.egg-info/not-zip-safe b/django_paintstore.egg-info/not-zip-safe
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/django_paintstore.egg-info/not-zip-safe
@@ -0,0 +1 @@
+
diff --git a/django_paintstore.egg-info/top_level.txt b/django_paintstore.egg-info/top_level.txt
new file mode 100644
index 0000000..9440ec0
--- /dev/null
+++ b/django_paintstore.egg-info/top_level.txt
@@ -0,0 +1 @@
+paintstore
diff --git a/paintstore/__init__.py b/paintstore/__init__.py
new file mode 100644
index 0000000..1068a6f
--- /dev/null
+++ b/paintstore/__init__.py
@@ -0,0 +1 @@
+__version__ = "0.2"
\ No newline at end of file
diff --git a/paintstore/fields.py b/paintstore/fields.py
new file mode 100644
index 0000000..977026a
--- /dev/null
+++ b/paintstore/fields.py
@@ -0,0 +1,21 @@
+from django.db.models import CharField
+
+from paintstore.widgets import ColorPickerWidget
+
+
+class ColorPickerField(CharField):
+
+    def __init__(self, *args, **kwargs):
+        kwargs["max_length"] = 7
+        super(ColorPickerField, self).__init__(*args, **kwargs)
+
+    def formfield(self, **kwargs):
+        kwargs.update({"widget": ColorPickerWidget})
+        return super(ColorPickerField, self).formfield(**kwargs)
+
+
+try:
+    from south.modelsinspector import add_introspection_rules
+    add_introspection_rules([], ["^paintstore\.fields\.ColorPickerField"])
+except ImportError:
+    pass
\ No newline at end of file
diff --git a/paintstore/models.py b/paintstore/models.py
new file mode 100644
index 0000000..0f02227
--- /dev/null
+++ b/paintstore/models.py
@@ -0,0 +1 @@
+from django.db import models
\ No newline at end of file
diff --git a/paintstore/static/paintstore/colorpicker.js b/paintstore/static/paintstore/colorpicker.js
new file mode 100644
index 0000000..0e5ae21
--- /dev/null
+++ b/paintstore/static/paintstore/colorpicker.js
@@ -0,0 +1,477 @@
+(function ($) {
+	var ColorPicker = function () {
+		var
+			ids = {},
+			inAction,
+			charMin = 65,
+			visible,
+			tpl = '<div class="colorpicker"><div class="colorpicker_color"><div><div></div></div></div><div class="colorpicker_hue"><div></div></div><div class="colorpicker_new_color"></div><div class="colorpicker_current_color"></div><div class="colorpicker_hex"><input type="text" maxlength="6" size="6" /></div><div class="colorpicker_rgb_r colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_g colorpicker_field"><input type="text" maxleng [...]
+			defaults = {
+				eventName: 'click',
+				onShow: function () {},
+				onBeforeShow: function(){},
+				onHide: function () {},
+				onChange: function () {},
+				onSubmit: function () {},
+				color: 'ff0000',
+				livePreview: true,
+				flat: false
+			},
+			fillRGBFields = function  (hsb, cal) {
+				var rgb = HSBToRGB(hsb);
+				$(cal).data('colorpicker').fields
+					.eq(1).val(rgb.r).end()
+					.eq(2).val(rgb.g).end()
+					.eq(3).val(rgb.b).end();
+			},
+			fillHSBFields = function  (hsb, cal) {
+				$(cal).data('colorpicker').fields
+					.eq(4).val(hsb.h).end()
+					.eq(5).val(hsb.s).end()
+					.eq(6).val(hsb.b).end();
+			},
+			fillHexFields = function (hsb, cal) {
+				$(cal).data('colorpicker').fields
+					.eq(0).val(HSBToHex(hsb)).end();
+			},
+			setSelector = function (hsb, cal) {
+				$(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100}));
+				$(cal).data('colorpicker').selectorIndic.css({
+					left: parseInt(150 * hsb.s/100, 10),
+					top: parseInt(150 * (100-hsb.b)/100, 10)
+				});
+			},
+			setHue = function (hsb, cal) {
+				$(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10));
+			},
+			setCurrentColor = function (hsb, cal) {
+				$(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb));
+			},
+			setNewColor = function (hsb, cal) {
+				$(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb));
+			},
+			keyDown = function (ev) {
+				var pressedKey = ev.charCode || ev.keyCode || -1;
+				if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) {
+					return false;
+				}
+				var cal = $(this).parent().parent();
+				if (cal.data('colorpicker').livePreview === true) {
+					change.apply(this);
+				}
+			},
+			change = function (ev) {
+				var cal = $(this).parent().parent(), col;
+				if (this.parentNode.className.indexOf('_hex') > 0) {
+					cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value));
+				} else if (this.parentNode.className.indexOf('_hsb') > 0) {
+					cal.data('colorpicker').color = col = fixHSB({
+						h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10),
+						s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10),
+						b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10)
+					});
+				} else {
+					cal.data('colorpicker').color = col = RGBToHSB(fixRGB({
+						r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10),
+						g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10),
+						b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10)
+					}));
+				}
+				if (ev) {
+					fillRGBFields(col, cal.get(0));
+					fillHexFields(col, cal.get(0));
+					fillHSBFields(col, cal.get(0));
+				}
+				setSelector(col, cal.get(0));
+				setHue(col, cal.get(0));
+				setNewColor(col, cal.get(0));
+				cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]);
+			},
+			blur = function (ev) {
+				var cal = $(this).parent().parent();
+				cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus');
+			},
+			focus = function () {
+				charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65;
+				$(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus');
+				$(this).parent().addClass('colorpicker_focus');
+			},
+			downIncrement = function (ev) {
+				var field = $(this).parent().find('input').focus();
+				var current = {
+					el: $(this).parent().addClass('colorpicker_slider'),
+					max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255),
+					y: ev.pageY,
+					field: field,
+					val: parseInt(field.val(), 10),
+					preview: $(this).parent().parent().data('colorpicker').livePreview					
+				};
+				$(document).bind('mouseup', current, upIncrement);
+				$(document).bind('mousemove', current, moveIncrement);
+			},
+			moveIncrement = function (ev) {
+				ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10))));
+				if (ev.data.preview) {
+					change.apply(ev.data.field.get(0), [true]);
+				}
+				return false;
+			},
+			upIncrement = function (ev) {
+				change.apply(ev.data.field.get(0), [true]);
+				ev.data.el.removeClass('colorpicker_slider').find('input').focus();
+				$(document).unbind('mouseup', upIncrement);
+				$(document).unbind('mousemove', moveIncrement);
+				return false;
+			},
+			downHue = function (ev) {
+				var current = {
+					cal: $(this).parent(),
+					y: $(this).offset().top
+				};
+				current.preview = current.cal.data('colorpicker').livePreview;
+				$(document).bind('mouseup', current, upHue);
+				$(document).bind('mousemove', current, moveHue);
+			},
+			moveHue = function (ev) {
+				change.apply(
+					ev.data.cal.data('colorpicker')
+						.fields
+						.eq(4)
+						.val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10))
+						.get(0),
+					[ev.data.preview]
+				);
+				return false;
+			},
+			upHue = function (ev) {
+				fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+				fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+				$(document).unbind('mouseup', upHue);
+				$(document).unbind('mousemove', moveHue);
+				return false;
+			},
+			downSelector = function (ev) {
+				var current = {
+					cal: $(this).parent(),
+					pos: $(this).offset()
+				};
+				current.preview = current.cal.data('colorpicker').livePreview;
+				$(document).bind('mouseup', current, upSelector);
+				$(document).bind('mousemove', current, moveSelector);
+			},
+			moveSelector = function (ev) {
+				change.apply(
+					ev.data.cal.data('colorpicker')
+						.fields
+						.eq(6)
+						.val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10))
+						.end()
+						.eq(5)
+						.val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10))
+						.get(0),
+					[ev.data.preview]
+				);
+				return false;
+			},
+			upSelector = function (ev) {
+				fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+				fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+				$(document).unbind('mouseup', upSelector);
+				$(document).unbind('mousemove', moveSelector);
+				return false;
+			},
+			enterSubmit = function (ev) {
+				$(this).addClass('colorpicker_focus');
+			},
+			leaveSubmit = function (ev) {
+				$(this).removeClass('colorpicker_focus');
+			},
+			clickSubmit = function (ev) {
+				var cal = $(this).parent();
+				var col = cal.data('colorpicker').color;
+				cal.data('colorpicker').origColor = col;
+				setCurrentColor(col, cal.get(0));
+				cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el, cal.data('colorpicker').parent);
+			},
+			show = function (ev) {
+				var cal = $('#' + $(this).data('colorpickerId'));
+				cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]);
+				var pos = $(this).offset();
+				var viewPort = getViewport();
+				var top = pos.top + this.offsetHeight;
+				var left = pos.left;
+				if (top + 176 > viewPort.t + viewPort.h) {
+					top -= this.offsetHeight + 176;
+				}
+				if (left + 356 > viewPort.l + viewPort.w) {
+					left -= 356;
+				}
+				cal.css({left: left + 'px', top: top + 'px'});
+				if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) {
+					cal.show();
+				}
+				$(document).bind('mousedown', {cal: cal}, hide);
+				return false;
+			},
+			hide = function (ev) {
+				if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) {
+					if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) {
+						ev.data.cal.hide();
+					}
+					$(document).unbind('mousedown', hide);
+				}
+			},
+			isChildOf = function(parentEl, el, container) {
+				if (parentEl == el) {
+					return true;
+				}
+				if (parentEl.contains) {
+					return parentEl.contains(el);
+				}
+				if ( parentEl.compareDocumentPosition ) {
+					return !!(parentEl.compareDocumentPosition(el) & 16);
+				}
+				var prEl = el.parentNode;
+				while(prEl && prEl != container) {
+					if (prEl == parentEl)
+						return true;
+					prEl = prEl.parentNode;
+				}
+				return false;
+			},
+			getViewport = function () {
+				var m = document.compatMode == 'CSS1Compat';
+				return {
+					l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft),
+					t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop),
+					w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth),
+					h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight)
+				};
+			},
+			fixHSB = function (hsb) {
+				return {
+					h: Math.min(360, Math.max(0, hsb.h)),
+					s: Math.min(100, Math.max(0, hsb.s)),
+					b: Math.min(100, Math.max(0, hsb.b))
+				};
+			}, 
+			fixRGB = function (rgb) {
+				return {
+					r: Math.min(255, Math.max(0, rgb.r)),
+					g: Math.min(255, Math.max(0, rgb.g)),
+					b: Math.min(255, Math.max(0, rgb.b))
+				};
+			},
+			fixHex = function (hex) {
+				var len = 6 - hex.length;
+				if (len > 0) {
+					var o = [];
+					for (var i=0; i<len; i++) {
+						o.push('0');
+					}
+					o.push(hex);
+					hex = o.join('');
+				}
+				return hex;
+			}, 
+			HexToRGB = function (hex) {
+				var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
+				return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)};
+			},
+			HexToHSB = function (hex) {
+				return RGBToHSB(HexToRGB(hex));
+			},
+			RGBToHSB = function (rgb) {
+				var hsb = {
+					h: 0,
+					s: 0,
+					b: 0
+				};
+				var min = Math.min(rgb.r, rgb.g, rgb.b);
+				var max = Math.max(rgb.r, rgb.g, rgb.b);
+				var delta = max - min;
+				hsb.b = max;
+				if (max != 0) {
+					
+				}
+				hsb.s = max != 0 ? 255 * delta / max : 0;
+				if (hsb.s != 0) {
+					if (rgb.r == max) {
+						hsb.h = (rgb.g - rgb.b) / delta;
+					} else if (rgb.g == max) {
+						hsb.h = 2 + (rgb.b - rgb.r) / delta;
+					} else {
+						hsb.h = 4 + (rgb.r - rgb.g) / delta;
+					}
+				} else {
+					hsb.h = -1;
+				}
+				hsb.h *= 60;
+				if (hsb.h < 0) {
+					hsb.h += 360;
+				}
+				hsb.s *= 100/255;
+				hsb.b *= 100/255;
+				return hsb;
+			},
+			HSBToRGB = function (hsb) {
+				var rgb = {};
+				var h = Math.round(hsb.h);
+				var s = Math.round(hsb.s*255/100);
+				var v = Math.round(hsb.b*255/100);
+				if(s == 0) {
+					rgb.r = rgb.g = rgb.b = v;
+				} else {
+					var t1 = v;
+					var t2 = (255-s)*v/255;
+					var t3 = (t1-t2)*(h%60)/60;
+					if(h==360) h = 0;
+					if(h<60) {rgb.r=t1;	rgb.b=t2; rgb.g=t2+t3}
+					else if(h<120) {rgb.g=t1; rgb.b=t2;	rgb.r=t1-t3}
+					else if(h<180) {rgb.g=t1; rgb.r=t2;	rgb.b=t2+t3}
+					else if(h<240) {rgb.b=t1; rgb.r=t2;	rgb.g=t1-t3}
+					else if(h<300) {rgb.b=t1; rgb.g=t2;	rgb.r=t2+t3}
+					else if(h<360) {rgb.r=t1; rgb.g=t2;	rgb.b=t1-t3}
+					else {rgb.r=0; rgb.g=0;	rgb.b=0}
+				}
+				return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)};
+			},
+			RGBToHex = function (rgb) {
+				var hex = [
+					rgb.r.toString(16),
+					rgb.g.toString(16),
+					rgb.b.toString(16)
+				];
+				$.each(hex, function (nr, val) {
+					if (val.length == 1) {
+						hex[nr] = '0' + val;
+					}
+				});
+				return hex.join('');
+			},
+			HSBToHex = function (hsb) {
+				return RGBToHex(HSBToRGB(hsb));
+			},
+			restoreOriginal = function () {
+				var cal = $(this).parent();
+				var col = cal.data('colorpicker').origColor;
+				cal.data('colorpicker').color = col;
+				fillRGBFields(col, cal.get(0));
+				fillHexFields(col, cal.get(0));
+				fillHSBFields(col, cal.get(0));
+				setSelector(col, cal.get(0));
+				setHue(col, cal.get(0));
+				setNewColor(col, cal.get(0));
+			};
+		return {
+			init: function (opt) {
+				opt = $.extend({}, defaults, opt||{});
+				if (typeof opt.color == 'string') {
+					opt.color = HexToHSB(opt.color);
+				} else if (opt.color.r != undefined && opt.color.g != undefined && opt.color.b != undefined) {
+					opt.color = RGBToHSB(opt.color);
+				} else if (opt.color.h != undefined && opt.color.s != undefined && opt.color.b != undefined) {
+					opt.color = fixHSB(opt.color);
+				} else {
+					return this;
+				}
+				return this.each(function () {
+					if (!$(this).data('colorpickerId')) {
+						var options = $.extend({}, opt);
+						options.origColor = opt.color;
+						var id = 'collorpicker_' + parseInt(Math.random() * 1000);
+						$(this).data('colorpickerId', id);
+                        options.parent = $(this);
+						var cal = $(tpl).attr('id', id).attr('data-parent', $(this).attr('id'));
+						if (options.flat) {
+							cal.appendTo(this).show();
+						} else {
+							cal.appendTo(document.body);
+						}
+						options.fields = cal
+											.find('input')
+												.bind('keyup', keyDown)
+												.bind('change', change)
+												.bind('blur', blur)
+												.bind('focus', focus);
+						cal
+							.find('span').bind('mousedown', downIncrement).end()
+							.find('>div.colorpicker_current_color').bind('click', restoreOriginal);
+						options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector);
+						options.selectorIndic = options.selector.find('div div');
+						options.el = this;
+						options.hue = cal.find('div.colorpicker_hue div');
+						cal.find('div.colorpicker_hue').bind('mousedown', downHue);
+						options.newColor = cal.find('div.colorpicker_new_color');
+						options.currentColor = cal.find('div.colorpicker_current_color');
+						cal.data('colorpicker', options);
+						cal.find('div.colorpicker_submit')
+							.bind('mouseenter', enterSubmit)
+							.bind('mouseleave', leaveSubmit)
+							.bind('click', clickSubmit);
+						fillRGBFields(options.color, cal.get(0));
+						fillHSBFields(options.color, cal.get(0));
+						fillHexFields(options.color, cal.get(0));
+						setHue(options.color, cal.get(0));
+						setSelector(options.color, cal.get(0));
+						setCurrentColor(options.color, cal.get(0));
+						setNewColor(options.color, cal.get(0));
+						if (options.flat) {
+							cal.css({
+								position: 'relative',
+								display: 'block'
+							});
+						} else {
+							$(this).bind(options.eventName, show);
+						}
+					}
+				});
+			},
+			showPicker: function() {
+				return this.each( function () {
+					if ($(this).data('colorpickerId')) {
+						show.apply(this);
+					}
+				});
+			},
+			hidePicker: function() {
+				return this.each( function () {
+					if ($(this).data('colorpickerId')) {
+						$('#' + $(this).data('colorpickerId')).hide();
+					}
+				});
+			},
+			setColor: function(col) {
+				if (typeof col == 'string') {
+					col = HexToHSB(col);
+				} else if (col.r != undefined && col.g != undefined && col.b != undefined) {
+					col = RGBToHSB(col);
+				} else if (col.h != undefined && col.s != undefined && col.b != undefined) {
+					col = fixHSB(col);
+				} else {
+					return this;
+				}
+				return this.each(function(){
+					if ($(this).data('colorpickerId')) {
+						var cal = $('#' + $(this).data('colorpickerId'));
+						cal.data('colorpicker').color = col;
+						cal.data('colorpicker').origColor = col;
+						fillRGBFields(col, cal.get(0));
+						fillHSBFields(col, cal.get(0));
+						fillHexFields(col, cal.get(0));
+						setHue(col, cal.get(0));
+						setSelector(col, cal.get(0));
+						setCurrentColor(col, cal.get(0));
+						setNewColor(col, cal.get(0));
+					}
+				});
+			}
+		};
+	}();
+	$.fn.extend({
+		ColorPicker: ColorPicker.init,
+		ColorPickerHide: ColorPicker.hidePicker,
+		ColorPickerShow: ColorPicker.showPicker,
+		ColorPickerSetColor: ColorPicker.setColor
+	});
+})(jQuery);
\ No newline at end of file
diff --git a/paintstore/static/paintstore/css/colorpicker.css b/paintstore/static/paintstore/css/colorpicker.css
new file mode 100644
index 0000000..1662845
--- /dev/null
+++ b/paintstore/static/paintstore/css/colorpicker.css
@@ -0,0 +1,179 @@
+.colorpicker {
+	width: 356px;
+	height: 176px;
+	overflow: hidden;
+	position: absolute;
+	background: url(../images/colorpicker_background.png);
+	font-family: Arial, Helvetica, sans-serif;
+	display: none;
+    z-index: 999;
+}
+.colorpicker_color {
+	width: 150px;
+	height: 150px;
+	left: 14px;
+	top: 13px;
+	position: absolute;
+	background: #f00;
+	overflow: hidden;
+	cursor: crosshair;
+}
+.colorpicker_color div {
+	position: absolute;
+	top: 0;
+	left: 0;
+	width: 150px;
+	height: 150px;
+	background: url(../images/colorpicker_overlay.png);
+}
+.colorpicker_color div div {
+	position: absolute;
+	top: 0;
+	left: 0;
+	width: 11px;
+	height: 11px;
+	overflow: hidden;
+	background: url(../images/colorpicker_select.gif);
+	margin: -5px 0 0 -5px;
+}
+.colorpicker_hue {
+	position: absolute;
+	top: 13px;
+	left: 171px;
+	width: 35px;
+	height: 150px;
+	cursor: n-resize;
+}
+.colorpicker_hue div {
+	position: absolute;
+	width: 35px;
+	height: 9px;
+	overflow: hidden;
+	background: url(../images/colorpicker_indic.gif) left top;
+	margin: -4px 0 0 0;
+	left: 0px;
+}
+.colorpicker_new_color {
+	position: absolute;
+	width: 60px;
+	height: 30px;
+	left: 213px;
+	top: 13px;
+	background: #f00;
+}
+.colorpicker_current_color {
+	position: absolute;
+	width: 60px;
+	height: 30px;
+	left: 283px;
+	top: 13px;
+	background: #f00;
+}
+.colorpicker input {
+	background-color: transparent;
+	border: 1px solid transparent;
+	position: absolute;
+	font-size: 10px;
+	font-family: Arial, Helvetica, sans-serif;
+	color: #898989;
+	top: 4px;
+	right: 11px;
+	text-align: right;
+	margin: 0;
+	padding: 0;
+	height: 11px;
+}
+.colorpicker_hex {
+	position: absolute;
+	width: 72px;
+	height: 22px;
+	background: url(../images/colorpicker_hex.png) top;
+	left: 212px;
+	top: 142px;
+}
+.colorpicker_hex input {
+	right: 6px;
+}
+.colorpicker_field {
+	height: 22px;
+	width: 62px;
+	background-position: top;
+	position: absolute;
+}
+.colorpicker_field span {
+	position: absolute;
+	width: 12px;
+	height: 22px;
+	overflow: hidden;
+	top: 0;
+	right: 0;
+	cursor: n-resize;
+}
+.colorpicker_rgb_r {
+	background-image: url(../images/colorpicker_rgb_r.png);
+	top: 52px;
+	left: 212px;
+}
+.colorpicker_rgb_g {
+	background-image: url(../images/colorpicker_rgb_g.png);
+	top: 82px;
+	left: 212px;
+}
+.colorpicker_rgb_b {
+	background-image: url(../images/colorpicker_rgb_b.png);
+	top: 112px;
+	left: 212px;
+}
+.colorpicker_hsb_h {
+	background-image: url(../images/colorpicker_hsb_h.png);
+	top: 52px;
+	left: 282px;
+}
+.colorpicker_hsb_s {
+	background-image: url(../images/colorpicker_hsb_s.png);
+	top: 82px;
+	left: 282px;
+}
+.colorpicker_hsb_b {
+	background-image: url(../images/colorpicker_hsb_b.png);
+	top: 112px;
+	left: 282px;
+}
+.colorpicker_submit {
+	position: absolute;
+	width: 22px;
+	height: 22px;
+	background: url(../images/colorpicker_submit.png) top;
+	left: 322px;
+	top: 142px;
... 9602 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/django-paintstore.git



More information about the Python-modules-commits mailing list