Advertisement
Guest User

Untitled

a guest
Apr 1st, 2015
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.25 KB | None | 0 0
  1. <link rel="import" href="../topeka-elements/avatars.html">
  2. <link rel="import" href="../topeka-elements/category-images.html">
  3. <link rel="import" href="../topeka-elements/category-icons.html">
  4. <link rel="import" href="../core-toolbar/core-toolbar.html">
  5. <link rel="import" href="../core-selector/core-selector.html">
  6. <link rel="import" href="../core-icon/core-icon.html">
  7.  
  8. <polymer-element name="topeka-categories" attributes="user categories category wide allScores" vertical layout>
  9. <template>
  10.  
  11. <link rel="stylesheet" href="topeka-categories.css">
  12. <link rel="stylesheet" href="topeka-category-themes.css">
  13.  
  14. <div class="categories-panel" flex auto>
  15.  
  16. <core-toolbar class="category-toolbar" slide-down?="{{parentElement.selected !== 'category' && parentElement.lastSelected !== 'category'}}">
  17.  
  18. <core-icon icon="avatars:avatar-{{user.avatar}}" class="topeka-avatar"></core-icon>
  19. <div flex class="user-name">{{user.name}}</div>
  20. <div>{{user.score}} pts</div>
  21.  
  22. </core-toolbar>
  23.  
  24. <core-selector class="category-list content {{ {wide: wide} | tokenList }}" selected="{{selected}}" tile-cascade?="{{parentElement.selected !== 'category' && parentElement.lastSelected !== 'category'}}" fade?="{{parentElement.lastSelected === 'splash'}}">
  25.  
  26. <div class="category-item leaderboard" vertical layout>
  27. <div class="tile theme-bg-a" dummy fit></div>
  28. <div class="tile" flex vertical layout>
  29. <div flex relative>
  30. <!-- sizing wrapper -->
  31. <div fit layout vertical center center-justified>
  32. <div class="category-bg-wrapper" relative>
  33. <core-icon icon="category-icons:leaderboard" class="category-tile-bg" fit></core-icon>
  34. </div>
  35. </div>
  36. </div>
  37. <div class="cat-name" horizontal center layout>
  38. <div flex>Leaderboard</div>
  39. <core-icon class="category-icon" icon="arrow-forward"></core-icon>
  40. </div>
  41. </div>
  42. </div>
  43.  
  44. <template repeat="{{cat, i in categories}}">
  45.  
  46. <template bind="{{allScores[cat.name] as scores}}">
  47. <div class="category-item {{cat.theme}}-theme {{ {completed: scores.length == cat.quizzes.length} | tokenList }}" vertical layout needZ?="{{category.name === cat.name}}">
  48. <div class="tile theme-bg-a" dummy fit hero-id="{{category.name === cat.name ? 'punch' : ''}}" hero?="{{category.name === cat.name}}"></div>
  49. <div class="tile" flex auto vertical layout>
  50. <div flex auto relative>
  51. <!-- sizing wrapper -->
  52. <div fit layout vertical center center-justified>
  53. <div class="category-bg-wrapper" relative>
  54. <core-icon class="category-tile-bg {{ {'theme-icon': scores.length === cat.quizzes.length} | tokenList }}" icon="{{scores.length === cat.quizzes.length ? 'check' : 'category-icons:' + cat.id}}" cross-fade-delayed?="{{category.name === cat.name && parentElement.lastSelected === 'category'}}" fit></core-icon>
  55. </div>
  56. </div>
  57. </div>
  58. <div class="cat-name theme-bg" horizontal center layout hero-id="{{category.name === cat.name ? 'punch-bottom' : ''}}" hero?="{{category.name === cat.name}}">
  59. <div flex>
  60. <span cross-fade-delayed?="{{category.name === cat.name && parentElement.lastSelected === 'category'}}">{{cat.name}}</span>
  61. </div>
  62. <core-icon class="category-icon theme-bg" icon="av:play-arrow" hidden?="{{scores.length === cat.quizzes.length}}" cross-fade-delayed?="{{category.name === cat.name && parentElement.lastSelected === 'category'}}"></core-icon>
  63. </div>
  64. </div>
  65. </div>
  66. </template>
  67.  
  68. </template>
  69.  
  70. <div class="category-item profile" vertical layout>
  71. <div class="tile theme-bg-a" dummy fit></div>
  72. <div class="tile" flex auto vertical layout>
  73. <div flex auto relative>
  74. <!-- sizing wrapper -->
  75. <div fit layout vertical center center-justified>
  76. <div class="category-bg-wrapper" relative>
  77. <core-icon icon="category-icons:profile" class="category-tile-bg" fit></core-icon>
  78. </div>
  79. </div>
  80. </div>
  81. <div class="cat-name" horizontal center layout>
  82. <div flex>Profile</div>
  83. <core-icon class="category-icon" icon="arrow-forward"></core-icon>
  84. </div>
  85. </div>
  86. </div>
  87.  
  88. <div class="category-item polymer-logo" hidden?="{{wide}}" vertical layout>
  89. <div class="tile" fit>
  90. <core-icon icon="category-icons:polymer"></core-icon>
  91. </div>
  92. </div>
  93.  
  94. </core-selector>
  95.  
  96. </div>
  97.  
  98. </template>
  99. <script>
  100. Polymer('topeka-categories', {
  101.  
  102. wide: false,
  103. created: function() {
  104. this.categories = [];
  105. },
  106. selectedChanged: function() {
  107. // first one is leaderboard, last one is profile
  108. if (this.selected === 0) {
  109. this.category = {name: 'leaderboard'};
  110. } else if (this.selected === this.categories.length + 1) {
  111. this.category = {name: 'profile'};
  112. } else {
  113. this.category = this.categories[this.selected - 1];
  114. }
  115. }
  116.  
  117. });
  118. </script>
  119. </polymer-element>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement