root / snf-astakos-app / astakos / im / static / im / js / resources_list.js @ 8a217fa2
History | View | Annotate | Download (3.5 kB)
1 | 143d8a9d | Kostas Papadimitriou | // Array Remove - By John Resig (MIT Licensed)
|
---|---|---|---|
2 | 143d8a9d | Kostas Papadimitriou | Array.prototype.remove = function(from, to) { |
3 | 143d8a9d | Kostas Papadimitriou | var rest = this.slice((to || from) + 1 || this.length); |
4 | 143d8a9d | Kostas Papadimitriou | this.length = from < 0 ? this.length + from : from; |
5 | 143d8a9d | Kostas Papadimitriou | return this.push.apply(this, rest); |
6 | 143d8a9d | Kostas Papadimitriou | }; |
7 | 143d8a9d | Kostas Papadimitriou | |
8 | 143d8a9d | Kostas Papadimitriou | function ResourcesModule(el, conf) { |
9 | 143d8a9d | Kostas Papadimitriou | |
10 | 143d8a9d | Kostas Papadimitriou | var defaults = {'page_limit': 5}; |
11 | 143d8a9d | Kostas Papadimitriou | this.conf = $.extend(defaults, conf); |
12 | 143d8a9d | Kostas Papadimitriou | |
13 | 143d8a9d | Kostas Papadimitriou | this.el = el;
|
14 | 143d8a9d | Kostas Papadimitriou | |
15 | 143d8a9d | Kostas Papadimitriou | this.selected_category = window.location.hash.replace("#",""); |
16 | 143d8a9d | Kostas Papadimitriou | if (!this.selected_category) { this.selected_category = undefined }; |
17 | 143d8a9d | Kostas Papadimitriou | |
18 | 143d8a9d | Kostas Papadimitriou | this.categories = this.el.find(".categories ul li"); |
19 | 143d8a9d | Kostas Papadimitriou | this.orig_categories = this.categories.clone(); |
20 | 143d8a9d | Kostas Papadimitriou | |
21 | 143d8a9d | Kostas Papadimitriou | //this.update_page_objects();
|
22 | 143d8a9d | Kostas Papadimitriou | |
23 | 143d8a9d | Kostas Papadimitriou | this.grid_height = 251; |
24 | 143d8a9d | Kostas Papadimitriou | this.grid_width = 251; |
25 | 143d8a9d | Kostas Papadimitriou | this.grid_gap = 22; |
26 | 143d8a9d | Kostas Papadimitriou | |
27 | 143d8a9d | Kostas Papadimitriou | var self = this; |
28 | 143d8a9d | Kostas Papadimitriou | $(window).bind('hashchange', function() { |
29 | 143d8a9d | Kostas Papadimitriou | self.selected_category = window.location.hash.substring(1);
|
30 | 143d8a9d | Kostas Papadimitriou | self.update_page_objects(); |
31 | 143d8a9d | Kostas Papadimitriou | self.update_selected_category(); |
32 | 143d8a9d | Kostas Papadimitriou | }) |
33 | 143d8a9d | Kostas Papadimitriou | |
34 | 143d8a9d | Kostas Papadimitriou | self.update_page_objects(); |
35 | 143d8a9d | Kostas Papadimitriou | self.update_selected_category(); |
36 | 143d8a9d | Kostas Papadimitriou | } |
37 | 143d8a9d | Kostas Papadimitriou | |
38 | 143d8a9d | Kostas Papadimitriou | ResourcesModule.prototype.switch = function(hide, show) { |
39 | 143d8a9d | Kostas Papadimitriou | var hide = $(hide), show = $(show); |
40 | 143d8a9d | Kostas Papadimitriou | var toparent = hide.parent();
|
41 | 143d8a9d | Kostas Papadimitriou | var newshow = show.clone();
|
42 | 143d8a9d | Kostas Papadimitriou | toparent.append(newshow); |
43 | 143d8a9d | Kostas Papadimitriou | hide.animate({top:"-249px"}) |
44 | 143d8a9d | Kostas Papadimitriou | newshow.animate({ |
45 | 143d8a9d | Kostas Papadimitriou | top:"-249px" |
46 | 143d8a9d | Kostas Papadimitriou | }, |
47 | 143d8a9d | Kostas Papadimitriou | { |
48 | 143d8a9d | Kostas Papadimitriou | complete:function(){ |
49 | 143d8a9d | Kostas Papadimitriou | hide.remove(); |
50 | 143d8a9d | Kostas Papadimitriou | newshow.css({top:0}); |
51 | 143d8a9d | Kostas Papadimitriou | } |
52 | 143d8a9d | Kostas Papadimitriou | }) |
53 | 143d8a9d | Kostas Papadimitriou | } |
54 | 143d8a9d | Kostas Papadimitriou | |
55 | 143d8a9d | Kostas Papadimitriou | |
56 | 143d8a9d | Kostas Papadimitriou | ResourcesModule.prototype.resources = function() { |
57 | 143d8a9d | Kostas Papadimitriou | this._resources = this.el.find(".resource-wrapper"); |
58 | 143d8a9d | Kostas Papadimitriou | return this._resources; |
59 | 143d8a9d | Kostas Papadimitriou | } |
60 | 143d8a9d | Kostas Papadimitriou | |
61 | 143d8a9d | Kostas Papadimitriou | ResourcesModule.prototype.hide = function(q) { |
62 | 143d8a9d | Kostas Papadimitriou | q.fadeOut(300);
|
63 | 143d8a9d | Kostas Papadimitriou | } |
64 | 143d8a9d | Kostas Papadimitriou | |
65 | 143d8a9d | Kostas Papadimitriou | ResourcesModule.prototype.animate_els = function(els) { |
66 | 143d8a9d | Kostas Papadimitriou | $(el).css({ position:'absolute' }); |
67 | 143d8a9d | Kostas Papadimitriou | var left = i % 3 == 0 ? 0 : (i % 3) * (self.grid_width) + ((i % 3)-1) * self.grid_gap; |
68 | 143d8a9d | Kostas Papadimitriou | |
69 | 143d8a9d | Kostas Papadimitriou | var row = Math.floor(i/3); |
70 | 143d8a9d | Kostas Papadimitriou | var top = row * (self.grid_gap + self.grid_height);
|
71 | 143d8a9d | Kostas Papadimitriou | |
72 | 143d8a9d | Kostas Papadimitriou | $(el).animate({left: left}, { complete: function(){ |
73 | 143d8a9d | Kostas Papadimitriou | $(el).animate({top: top}, {complete: function(){ |
74 | 143d8a9d | Kostas Papadimitriou | |
75 | 143d8a9d | Kostas Papadimitriou | self.el.height((self.grid_height + self.grid_gap) * (Math.floor(to_show.length/3) + 1)); |
76 | 143d8a9d | Kostas Papadimitriou | |
77 | 143d8a9d | Kostas Papadimitriou | }}); |
78 | 143d8a9d | Kostas Papadimitriou | }}); |
79 | 143d8a9d | Kostas Papadimitriou | |
80 | 143d8a9d | Kostas Papadimitriou | $(el).removeClass("hidden"); |
81 | 143d8a9d | Kostas Papadimitriou | $(el).show('slow'); |
82 | 143d8a9d | Kostas Papadimitriou | } |
83 | 143d8a9d | Kostas Papadimitriou | |
84 | 143d8a9d | Kostas Papadimitriou | ResourcesModule.prototype.update_selected_category = function() { |
85 | 143d8a9d | Kostas Papadimitriou | if (!this.selected_category) { |
86 | 143d8a9d | Kostas Papadimitriou | this.categories.removeClass("inactive").removeClass("active"); |
87 | 143d8a9d | Kostas Papadimitriou | this.categories.show();
|
88 | 143d8a9d | Kostas Papadimitriou | this.el.find(".categories a.clear").hide(); |
89 | 143d8a9d | Kostas Papadimitriou | return;
|
90 | 143d8a9d | Kostas Papadimitriou | } |
91 | 143d8a9d | Kostas Papadimitriou | |
92 | 143d8a9d | Kostas Papadimitriou | var to_hide = this.categories.filter("[data-id="+this.selected_category+"]"); |
93 | 143d8a9d | Kostas Papadimitriou | var to_show = this.categories.filter("[data-id!="+this.selected_category+"]"); |
94 | 143d8a9d | Kostas Papadimitriou | |
95 | 143d8a9d | Kostas Papadimitriou | to_show.removeClass("active").addClass("inactive"); |
96 | 143d8a9d | Kostas Papadimitriou | to_hide.removeClass("inactive").addClass("active"); |
97 | 143d8a9d | Kostas Papadimitriou | this.el.find(".categories a.clear").show(); |
98 | 143d8a9d | Kostas Papadimitriou | } |
99 | 143d8a9d | Kostas Papadimitriou | |
100 | 143d8a9d | Kostas Papadimitriou | ResourcesModule.prototype.update_page_objects = function() { |
101 | 143d8a9d | Kostas Papadimitriou | var to_show = this.resources().filter("[data-category="+this.selected_category+"]"); |
102 | 143d8a9d | Kostas Papadimitriou | var to_hide = this.resources().filter("[data-category!="+this.selected_category+"]"); |
103 | 143d8a9d | Kostas Papadimitriou | |
104 | 143d8a9d | Kostas Papadimitriou | if (!this.selected_category) { to_show = this.resources(); } |
105 | 143d8a9d | Kostas Papadimitriou | _.each(to_hide, function(el){
|
106 | 143d8a9d | Kostas Papadimitriou | $(el).hide('slow'); |
107 | 143d8a9d | Kostas Papadimitriou | }); |
108 | 143d8a9d | Kostas Papadimitriou | |
109 | 143d8a9d | Kostas Papadimitriou | _.each(to_show, function(el, i){
|
110 | 143d8a9d | Kostas Papadimitriou | |
111 | 143d8a9d | Kostas Papadimitriou | $(el).fadeIn(40); |
112 | 143d8a9d | Kostas Papadimitriou | }); |
113 | 143d8a9d | Kostas Papadimitriou | } |
114 | 143d8a9d | Kostas Papadimitriou | |
115 | 143d8a9d | Kostas Papadimitriou | $(document).ready(function(){ |
116 | 143d8a9d | Kostas Papadimitriou | var rm = new ResourcesModule($("#resources-list"), {}, []); |
117 | 143d8a9d | Kostas Papadimitriou | window.rm = rm; |
118 | 143d8a9d | Kostas Papadimitriou | }) |
119 | 143d8a9d | Kostas Papadimitriou |