Hide pickers when closing dialogs.
authorJan Schneider <jan@horde.org>
Thu, 18 Feb 2010 13:01:40 +0000 (14:01 +0100)
committerJan Schneider <jan@horde.org>
Thu, 18 Feb 2010 14:23:25 +0000 (15:23 +0100)
horde/js/colorpicker.js
kronolith/js/kronolith.js
kronolith/templates/chunks/calendar.php

index ce417c5..1d255a0 100644 (file)
@@ -138,6 +138,10 @@ var ColorPicker = Class.create({
 
     removeEvents: function()
     {
+        if (!this.listeners) {
+            return;
+        }
+
         this.listeners.each(function(l) {
             $(l[0]).stopObserving(l[1], l[2]);
         });
index 8e0710e..a9097c5 100644 (file)
@@ -16,7 +16,7 @@ var frames = { horde_main: true },
 KronolithCore = {
     // Vars used and defaulting to null/false:
     //   DMenu, Growler, inAjaxCallback, is_logout,
-    //   daySizes, viewLoading, freeBusy
+    //   daySizes, viewLoading, freeBusy, colorPicker
 
     view: '',
     ecache: $H(),
@@ -2840,6 +2840,10 @@ KronolithCore = {
                 return;
 
             case 'kronolithFormCancel':
+                Horde_Calendar.hideCal();
+                if (this.colorPicker) {
+                    this.colorPicker.hide();
+                }
                 this._closeRedBox();
                 this.resetMap();
                 window.history.back();
@@ -2878,6 +2882,17 @@ KronolithCore = {
                 this.go('event:' + date);
                 e.stop();
                 return;
+
+            case 'kronolithColorPicker':
+                var input = elt.previous();
+                this.colorPicker = new ColorPicker({
+                    color: $F(input),
+                    offsetParent: elt,
+                    update: [[input, 'value'],
+                             [input, 'background']]
+                });
+                e.stop();
+                return;
             }
 
             if (elt.hasClassName('kronolithEvent')) {
index 5c69cfc..20cc2eb 100644 (file)
@@ -14,7 +14,7 @@
 <div>
   <label><?php echo _("Color") ?>:<br />
     <input type="text" name="color" id="kronolithCalendarinternalColor" size="7" />
-    <?php echo Horde::url('#')->link(array('title' => _("Color Picker"), 'onclick' => 'new ColorPicker({ color: $F(\'kronolithCalendarinternalColor\'), offsetParent: Event.element(event), update: [[\'kronolithCalendarinternalColor\', \'value\'], [\'kronolithCalendarinternalColor\', \'background\']] }); return false;')) . Horde::img('colorpicker.png', _("Color Picker"), '', $GLOBALS['registry']->getImageDir('horde')) . '</a>' ?>
+    <?php echo Horde::url('#')->link(array('title' => _("Color Picker"), 'class' => 'kronolithColorPicker')) . Horde::img('colorpicker.png', _("Color Picker"), '', $GLOBALS['registry']->getImageDir('horde')) . '</a>' ?>
   </label>
 </div>