Commit:    f23622c261f5644a16feef92ac3c95a8a46cb1c1
Author:    Levi Morrison <[email protected]>         Wed, 4 Dec 2013 18:31:37 -0700
Parents:   e691cc3281bdff8d79c4f49a2569dca91e176167
Branches:  master

Link:       
http://git.php.net/?p=web/php.git;a=commitdiff;h=f23622c261f5644a16feef92ac3c95a8a46cb1c1

Log:
The poor comment opacity level is now determined using a well-known, generic 
data normalization function. It's quite flexible and is hopefully easier to 
adjust for the future.

Changed paths:
  M  js/common.js


Diff:
diff --git a/js/common.js b/js/common.js
index a82518b..4039438 100755
--- a/js/common.js
+++ b/js/common.js
@@ -263,23 +263,32 @@ $(document).ready(function() {
     });
 
 /* {{{ Negative user notes fade-out */
-  if (!!document.getElementById('usernotes'))
-  {
-    // Default: -5+ votes will have opacity: 0.1
-    // Scale: 0-10
-    var settings = {minFade: 5, maxFade: 9}; 
-    $('.note .tally:contains("-")').each(function()
-    {
+  var usernotes = document.getElementById('usernotes');
+  if (usernotes != null) {
+    var mapper = new function() {
+        this.domain = {
+            "max": -1,
+            "min": -5
+        };
+        this.range = {
+            "max": .75,
+            "min": .25
+        };
+  
+        // This is a generic normalizaion algorithm:
+        //   range.min + (value - domain.min)(range.max - 
range.min)/(domain.max-domain.min)
+        // Note that some of this computation is not dependent on the input 
value, so we 
+        // compute it at object creation time.
+        var multiplier = (this.range.max - this.range.min)/(this.domain.max - 
this.domain.min);
+        this.normalize = function(value) {
+            value = Math.max(value, this.domain.min);
+            return (value - this.domain.min) * multiplier + this.range.min;
+        };
+    };
+    $(usernotes).find('.note .tally:contains("-")').each(function() {
       var id = this.id.replace('V', '');
-      
-      // get negative votes value and make it positive
-      var v = this.innerHTML.toInt() * -1;
-      // determine fade level based on votes (step=1)
-      var f = (settings.minFade - 1) + v;
-      // set back to maxFade if level is above max
-      f = f > settings.maxFade ? settings.maxFade : f;
-
-      $('#' + id).css('opacity', '0.' + (10 - f));
+      var v = mapper.normalize(this.innerHTML.toInt());
+      $('#' + id).css('opacity', v);
     });
   }
 /* }}} */


--
PHP Webmaster List Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to