Widget:TreasureCardFilter: Difference between revisions

From Unforgotten Realms Wiki
Jump to navigationJump to search
imported>Plornt
No edit summary
imported>Plornt
testing json encode
Line 4: Line 4:
       var FILTERS = [];
       var FILTERS = [];
       var $GEMS = $("[data-filter-binding]");
       var $GEMS = $("[data-filter-binding]");
      var $FILTERABLE = $("[data-filter-each]");
      function getGemOrFalse (element, gemType) {
          var gemStr = element.getAttribute("data-gem-types");
            if (gemStr) {
              var gemTypes = gemStr.split(",");
              var gems = {};
              for (var i = 0; i < gemStr.length; i++) {
                var currGem = gemStr[i];
                var gemParams = currGem.split(":");
                if (gemParams.length == 2) {
                    gems[gemParams[0]] = gemParams[1];
                }
              }
          }
          return false;
      }
      function updateFilters () {
            // TODO: Refactor
            FILTERS.forEach(function (filter) {
            $FILTERABLE.sort(function (a, b) {
                var aGemTypes = a.getAttribute("data-gem-types");
                var bGemTypes = b.getAttribute("data-gem-types");
               
            });
            });
      }
       $GEMS.bind("click", function (ev) {
       $GEMS.bind("click", function (ev) {
             if (FILTER_INITIALIZED == false) {
             if (FILTER_INITIALIZED == false) {
Line 13: Line 39:
            
            
             ev.preventDefault();
             ev.preventDefault();
             $(this).toggleClass("gem-deselected");
             var $this= $(this);
 
            $this.toggleClass("gem-deselected");
            if ($this.hasClass("gem-deselected")) {
              var index = FILTERS.indexOf(this.getAttribute("data-filter-binding"));
              if (index != -1) {
                  FILTERS = FILTERS.splice(index, 1);
              }
            }
            else {
                FILTERS.push(this.getAttribute("data-filter-binding");
            }
            updateFilters();
         });
         });
     });
     });
Line 36: Line 72:


</div>
</div>
<div data-filter-each="true">
<!--{foreach from=$cards item=card}-->
<!--{foreach from=$cards item=card}-->
<div class="pure-g content-box " data-cost="<!--{$card.cost|escape:'int'}-->" >
<div class="pure-g content-box " data-filter-each="true" data-card="<!--{json_encode($card)}-->" data-cost="<!--{$card.cost|escape:'int'}-->" >
<div class="pure-u-24-24  content-box-heading"  
<div class="pure-u-24-24 content-box-heading" style="text-align: center;margin-bottom:-1em;"><!--{$card.name}--></div>
data-gem-types="<!--{*
*}--><!--{foreach from=$gem key=gemName item=gemObj}--><!--{*
*}--><!--{if array_key_exists($gemName, $card) }--><!--{*
  *}--><!--{$gemName|escape:'html'}-->:<!--{$card[$gemName]|escape:'html'}-->,<!--{*
*}--><!--{/if}--><!--{*
*}--><!--{/foreach}--><!--{*
  *}-->" style="text-align: center;margin-bottom:-1em;"><!--{$card.name}--></div>
<div class="pure-u-8-24">
<div class="pure-u-8-24">
<!--{$card.image}-->
<!--{$card.image}-->

Revision as of 15:39, 6 June 2015

<script>

   window.addEventListener("load", function () { 
      var FILTER_INITIALIZED = false;
      var FILTERS = [];
      var $GEMS = $("[data-filter-binding]");
      var $FILTERABLE = $("[data-filter-each]");
      function getGemOrFalse (element, gemType) {
          var gemStr = element.getAttribute("data-gem-types");
           if (gemStr) {
              var gemTypes = gemStr.split(",");
              var gems = {};
              for (var i = 0; i < gemStr.length; i++) {
                var currGem = gemStr[i];
                var gemParams = currGem.split(":");
                if (gemParams.length == 2) {
                   gems[gemParams[0]] = gemParams[1];
                }
              }
          }
          return false;
      }
      function updateFilters () { 
            // TODO: Refactor
            FILTERS.forEach(function (filter) { 
            $FILTERABLE.sort(function (a, b) { 
                var aGemTypes = a.getAttribute("data-gem-types");
                var bGemTypes = b.getAttribute("data-gem-types");
               
            });
            });
      }
      $GEMS.bind("click", function (ev) {
           if (FILTER_INITIALIZED == false) {
                FILTER_INITIALIZED = true;
                $GEMS.each(function () { 
                    $(this).addClass("gem-deselected");
                });
           }
          
           ev.preventDefault();
           var $this= $(this);
           $this.toggleClass("gem-deselected");
           if ($this.hasClass("gem-deselected")) {
              var index = FILTERS.indexOf(this.getAttribute("data-filter-binding"));
              if (index != -1) {
                  FILTERS = FILTERS.splice(index, 1);
              }
           }
           else {
               FILTERS.push(this.getAttribute("data-filter-binding");
           }
           updateFilters();
       });
   });

</script> <style> .gem-deselected { -webkit-filter: grayscale(100%); filter: grayscale(100%); filter: gray; filter: url("data:image/svg+xml;utf8,<svg version='1.1' xmlns='http://www.w3.org/2000/svg' height='0'><filter id='greyscale'><feColorMatrix type='matrix' values='0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0' /></filter></svg>#greyscale"); } </style>

Filters
Cost: Coin