]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Color picker reset: Resetting form values will also dynamically update
authorSarven Capadisli <csarven@controlyourself.ca>
Wed, 20 May 2009 23:11:35 +0000 (23:11 +0000)
committerSarven Capadisli <csarven@controlyourself.ca>
Wed, 20 May 2009 23:11:35 +0000 (23:11 +0000)
the page colors back to their original.

actions/designsettings.php
js/farbtastic/farbtastic.go.js

index a85b36a254f55e41d03c45b10e9f8679dfc85e6d..8a7c261048c0ddd5b2be053da3858fcead1ef76b 100644 (file)
@@ -141,7 +141,8 @@ class DesignsettingsAction extends AccountSettingsAction
         $this->elementEnd('fieldset');
 
         $this->submit('save', _('Save'));
-        $this->element('input', array('type' => 'reset',
+        $this->element('input', array('id' => 'settings_design_reset',
+                                      'type' => 'reset',
                                       'value' => 'Reset',
                                       'class' => 'form_action-secondary'));
 
index e298c1dab032d8fd4fa6a7f133c75f79f6765dc0..6a0a5c56bf9d00599f3416ec0c64c3d0713b2864 100644 (file)
@@ -1,29 +1,22 @@
 $(document).ready(function() {
-    function UpdateColors(e) {
-        var S = f.linked;
-        var C = f.color;
-
-        if (S && S.value && S.value != C) {
-            UpdateSwatch(S);
-
-            switch (parseInt(f.linked.id.slice(-1))) {
-                case 0: default:
-                    $('body').css({'background-color':C});
-                    break;
-                case 1:
-                    $('#content').css({'background-color':C});
-                    break;
-                case 2:
-                    $('#aside_primary').css({'background-color':C});
-                    break;
-                case 3:
-                    $('body').css({'color':C});
-                    break;
-                case 4:
-                    $('a').css({'color':C});
-                    break;
-            }
-            S.value = C;
+    function UpdateColors(S) {
+        C = $(S).val();
+        switch (parseInt(S.id.slice(-1))) {
+            case 0: default:
+                $('body').css({'background-color':C});
+                break;
+            case 1:
+                $('#content').css({'background-color':C});
+                break;
+            case 2:
+                $('#aside_primary').css({'background-color':C});
+                break;
+            case 3:
+                $('body').css({'color':C});
+                break;
+            case 4:
+                $('a').css({'color':C});
+                break;
         }
     }
 
@@ -33,35 +26,52 @@ $(document).ready(function() {
     }
 
     function UpdateSwatch(e) {
-        $(e).css({
-            "background-color": e.value,
-            "color": f.hsl[2] > 0.5 ? "#000": "#fff"
-        });
+        $(e).css({"background-color": e.value,
+                  "color": f.hsl[2] > 0.5 ? "#000": "#fff"});
     }
 
-    $('#settings_design_color').append('<div id="color-picker"></div>');
-    $('#color-picker').hide();
-
-    var f = $.farbtastic('#color-picker', UpdateColors);
-    var swatches = $('#settings_design_color .swatch');
-
-    swatches
-        .each(UpdateColors)
+    function SynchColors(e) {
+        var S = f.linked;
+        var C = f.color;
 
-        .blur(function() {
-            $(this).val($(this).val().toUpperCase());
-         })
+        if (S && S.value && S.value != C) {
+            S.value = C;
+            UpdateSwatch(S);
+            UpdateColors(S);
+        }
+    }
 
-        .focus(function() {
-            $('#color-picker').show();
-            UpdateFarbtastic(this);
-        })
+    function Init() {
+        $('#settings_design_color').append('<div id="color-picker"></div>');
+        $('#color-picker').hide();
 
-        .change(function() {
-            UpdateFarbtastic(this);
-            UpdateSwatch(this);
-        }).change()
+        f = $.farbtastic('#color-picker', SynchColors);
+        swatches = $('#settings_design_color .swatch');
 
-        ;
+        swatches
+            .each(SynchColors)
+            .blur(function() {
+                $(this).val($(this).val().toUpperCase());
+             })
+            .focus(function() {
+                $('#color-picker').show();
+                UpdateFarbtastic(this);
+            })
+            .change(function() {
+                UpdateFarbtastic(this);
+                UpdateSwatch(this);
+                UpdateColors(this);
+            }).change();
+    }
 
+    var f, swatches;
+    Init();
+    $('#form_settings_design').bind('reset', function(){
+        setTimeout(function(){
+            swatches.each(function(){UpdateColors(this);});
+            $('#color-picker').remove();
+            swatches.unbind();
+            Init();
+        },10);
+    });
 });