Advertisement
shaipetel

Upcoming birthdays sample:

Jun 24th, 2014
424
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.74 KB | None | 0 0
  1. Title =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
  2. Upcoming Birthdays
  3.  
  4. Header =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~==~=~=~=~=~=~=~=~=~=~=~=~
  5. <script>
  6. KWizCom.DVPWP.Instances['_WPQ_'].Load = function()
  7. {
  8. var numOfWeeksToShow = 10;
  9. var monthNames = {
  10. "01": "Jan",
  11. "02": "Feb",
  12. "03": "Mar",
  13. "04": "Apr",
  14. "05": "May",
  15. "06": "Jun",
  16. "07": "Jul",
  17. "08": "Aug",
  18. "09": "Sep",
  19. "010": "Oct",
  20. "011": "Nov",
  21. "012": "Dec",
  22. }
  23. var groupNames = {
  24. "today": "Today",
  25. "tomorrow": "Tomorrow",
  26. "thisweek": "This week",
  27. "upcoming": "Upcoming"
  28. }
  29.  
  30. var make2DigitString = function (n) {
  31. return n < 10 ? "0" + n : "" + n;
  32. }
  33.  
  34. var now = new Date();
  35. var tomorrow = new Date(now.getTime() + 24 * 60 * 60 * 1000);
  36. var nextWeek = new Date(now.getTime() + 7 * 24 * 60 * 60 * 1000);
  37. var endDate = new Date(now.getTime() + numOfWeeksToShow * 7 * 24 * 60 * 60 * 1000);
  38. var $list = $kw("#_WPQ_Birthdays");
  39. var $placeholder = $kw("#_WPQ_BirthdaysPlaceHolder");
  40. var currentYear = now.getFullYear();
  41. var nextYear = currentYear + 1;
  42. var currentMonth = now.getMonth() + 1;//it is zero based
  43. var currentDay = now.getDate();
  44. var tomorrowMonth = tomorrow.getMonth() + 1;
  45. var tomorrowDay = tomorrow.getDate();
  46. var tomorrowYear = tomorrow.getFullYear();
  47. var nextWeekMonth = nextWeek.getMonth() + 1;
  48. var nextWeekDay = nextWeek.getDate();
  49. var nextWeekYear = nextWeek.getFullYear();
  50. var endMonth = endDate.getMonth() + 1;
  51. var endDay = endDate.getDate();
  52. var endYear = endDate.getFullYear();
  53.  
  54. var todayString = currentYear + "-" + make2DigitString(currentMonth) + "-" + make2DigitString(currentDay);
  55. var tomorrowString = tomorrowYear + "-" + make2DigitString(tomorrowMonth) + "-" + make2DigitString(tomorrowDay);
  56. var nextWeekString = nextWeekYear + "-" + make2DigitString(nextWeekMonth) + "-" + make2DigitString(nextWeekDay);
  57. var endDateString = endYear + "-" + make2DigitString(endMonth) + "-" + make2DigitString(endDay);
  58. var birthdaysList = new Array();
  59.  
  60. $list.find("li").each(function () {
  61. try{
  62. var title = $kw(this).attr("data-title");
  63. var month = parseInt($kw(this).attr("data-month"),10);
  64. var day = parseInt($kw(this).attr("data-day"),10);
  65. var sortableString = currentYear + "-" + make2DigitString(month) + "-" + make2DigitString(day);
  66. if (sortableString < todayString)//this one passed. move it to next year
  67. sortableString = nextYear + "-" + make2DigitString(month) + "-" + make2DigitString(day);
  68. if( sortableString <= endDateString )
  69. birthdaysList[birthdaysList.length] = sortableString + ":" + title;
  70. } catch (e) {
  71. }
  72. });
  73.  
  74. birthdaysList.sort();//now we got sorted birthdays
  75. var titleMode = null;
  76. var html = "";
  77. for (var i = 0; i < birthdaysList.length; i++) {
  78. var datePart = birthdaysList[i].split(":")[0];
  79. var titlePart = birthdaysList[i].split(":")[1];
  80. var dateArr = datePart.split("-");
  81. var dateString = monthNames[dateArr[1]] + " " + dateArr[2];
  82.  
  83. var newGroup = false;
  84. if (todayString == datePart) {
  85. if (titleMode != "today")//add title
  86. {
  87. newGroup = true;
  88. titleMode = "today";
  89. }
  90. }
  91. else if (tomorrowString == datePart) {
  92. if (titleMode != "tomorrow")//add title
  93. {
  94. newGroup = true;
  95. titleMode = "tomorrow";
  96. }
  97. }
  98. else if (nextWeekString >= datePart) {
  99. if (titleMode != "thisweek")//add title
  100. {
  101. newGroup = true;
  102. titleMode = "thisweek";
  103. }
  104. }
  105. else {
  106. if (titleMode != "upcoming")//add title
  107. {
  108. newGroup = true;
  109. titleMode = "upcoming";
  110. }
  111. }
  112.  
  113. if (newGroup)
  114. {
  115. if (html != "") html += "</div>";
  116. html += "<h3>"+groupNames[titleMode]+"</h3><div>";
  117. }
  118.  
  119. html += "<p>" + titlePart + "<span style='float:right'>" + dateString + "</span></p>";
  120. }
  121. if (html != "") {
  122. html += "</div>";
  123. $placeholder.append(html);
  124. //$placeholder.accordion({
  125. // heightStyle: "content"
  126. //});
  127. }
  128. else {
  129. $kw("#_WPQ_NoBirthdaysPlaceHolder").show();
  130. }
  131. }
  132. </script>
  133. <div id="_WPQ_BirthdaysPlaceHolder"></div>
  134. <div id="_WPQ_NoBirthdaysPlaceHolder" style="display:none">No upcoming birthdays.</div>
  135. <ul id="_WPQ_Birthdays" style="display:none">
  136.  
  137. Body =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
  138. <li data-title="{item:Title:value}" data-month="{item:Month:value}" data-day="{item:Day:value}">
  139. {item:Title:value} - {item:Month:value} - {item:Day:value}
  140. </li>
  141.  
  142. Footer =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
  143. </ul>
  144.  
  145. EmptyView =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=
  146. Threre are no upcoming birthdays.
  147.  
  148. Description =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=
  149. This shows a simple grouped list with the next 10 weeks of birthdays coming up.
  150. It splits them into groups: Today, tomorrow, this week, or upcoming.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement