Skip to content

Instantly share code, notes, and snippets.

@alej0varas
Created September 12, 2014 16:03
Show Gist options
  • Select an option

  • Save alej0varas/64e07b1f585f46f0fab2 to your computer and use it in GitHub Desktop.

Select an option

Save alej0varas/64e07b1f585f46f0fab2 to your computer and use it in GitHub Desktop.

Revisions

  1. alej0varas created this gist Sep 12, 2014.
    46 changes: 46 additions & 0 deletions colorpickerpanel.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,46 @@
    from django.conf import settings
    from django.utils.safestring import mark_safe

    from wagtail.wagtailadmin.edit_handlers import BaseFieldPanel


    class BaseColorFieldPanel(BaseFieldPanel):
    def render_js(self):
    big_javascript_block = """
    (function() {
    var cpjs = document.createElement('script');
    cpjs.type = 'text/javascript';
    cpjs.async = true;
    cpjs.src = '%s';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(cpjs, s);
    var cpcss = document.createElement('link');
    cpcss.rel = 'stylesheet';
    cpcss.media = 'screen';
    cpcss.type = 'text/css';
    cpcss.href = '%s';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(cpcss, s);
    setTimeout(function () {
    var options = {
    'onSubmit': function (a, color, c, input) {
    $(input).attr('value', '#' + color);
    },
    'onShow': function () {
    $('.colorpicker').css('z-index', 10);
    }
    }
    $('#%%s').ColorPicker(options);
    }, 3000);
    })();
    """ % (
    settings.STATIC_URL + 'js/colorpicker.js',
    settings.STATIC_URL + 'css/colorpicker.css'
    )
    return mark_safe(big_javascript_block % self.bound_field.id_for_label)


    def ColorFieldPanel(field_name):
    return type(str('_ColorFieldPanel'), (BaseColorFieldPanel,), {
    'field_name': field_name,
    })