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