Mercurial > hg > MPIWGWeb
annotate js/mpiwg.js @ 115:014efa0923be
removed limit from testing in getSubtreeAsList.
author | casties |
---|---|
date | Wed, 29 May 2013 10:08:52 +0200 |
parents | bba951ea7479 |
children | f2be4e850d0c |
rev | line source |
---|---|
66
68b3d71eed27
formatting for preprint list. javascript for foldable divs.
casties
parents:
diff
changeset
|
1 /* |
68b3d71eed27
formatting for preprint list. javascript for foldable divs.
casties
parents:
diff
changeset
|
2 * Javascript for MPIWG website |
112 | 3 * (C) 2013 MPIWG Berlin |
88 | 4 */ |
66
68b3d71eed27
formatting for preprint list. javascript for foldable divs.
casties
parents:
diff
changeset
|
5 |
112 | 6 /* |
7 * AjaxSlider plugin. | |
8 */ | |
108
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
9 (function ($) { |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
10 $.fn.AjaxSlider = function (opts) { |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
11 var settings = $.extend({ |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
12 dataUrl : null, |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
13 dataSel : '', |
112 | 14 windowSel : 'div.slidewindow', |
15 contentSel : 'div.row', | |
16 buttonWidth : '20px', | |
108
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
17 scrollBy: '100px', |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
18 }, opts); |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
19 var url = settings.dataUrl + ' ' + settings.dataSel; |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
20 var $slider = this; |
112 | 21 var sliderW = this.width() - 2 * settings.buttonWidth; |
108
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
22 var sliderH = this.height(); |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
23 this.load(url, function () { |
112 | 24 var $window = $slider.find(settings.windowSel); |
25 // fix window width and height and hide overflow | |
26 $window.css({'width':sliderW, 'height':sliderH, 'margin':'0 '+settings.buttonWidth, | |
27 'overflow':'hidden', 'position':'relative'}); | |
108
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
28 // content will be moved |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
29 var $content = $slider.find(settings.contentSel); |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
30 $content.css({'position':'absolute', 'left':'0'}); |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
31 $slider.find('.slidebutton.prev').show().on('click', function () { |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
32 $content.animate({'left':'+='+settings.scrollBy}, 'fast'); |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
33 }); |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
34 $slider.find('.slidebutton.next').show().on('click', function () { |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
35 $content.animate({'left':'-='+settings.scrollBy}, 'fast'); |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
36 }); |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
37 }); |
113 | 38 }; |
108
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
39 }(jQuery)); |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
40 |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
41 |
66
68b3d71eed27
formatting for preprint list. javascript for foldable divs.
casties
parents:
diff
changeset
|
42 $(document).ready(function() { |
88 | 43 /* |
44 * autosubmit forms | |
45 */ | |
46 $('form.autosubmit').find('.autosubmit').change(function() { | |
47 this.form.submit(); | |
48 }); | |
49 // hide submit button | |
50 $('form.autosubmit input[type="submit"].autosubmit').hide(); | |
51 | |
52 /* | |
53 * foldout divs | |
103 | 54 * |
55 * foldable: .foldable is ancestor of .fold_head and .fold_body | |
56 * that are folded simultaneously. | |
57 * | |
58 * foldableById: .foldableById is ancestor of multiple .fold_head and .fold_body | |
59 * where each pair has a common unique .foldId_xxx. | |
60 * | |
61 * Clicking on .fold_head folds and unfolds .fold_body. | |
62 * | |
63 * If .foldable has .initially_open .fold_body is initially shown, else its | |
64 * initally hidden. | |
88 | 65 */ |
103 | 66 $('.foldable').each(function () { |
88 | 67 var $this = $(this); |
68 var $head = $this.find('.fold_head'); | |
69 var $img = $head.find('img'); | |
70 var $body = $this.find('.fold_body'); | |
103 | 71 $head.on('click', function () { |
88 | 72 $body.slideToggle('fast'); |
73 $img.toggle(); | |
74 }).css('cursor', 'pointer'); | |
75 if (! $this.hasClass('initially_open')) { | |
76 // hide body initially | |
77 $body.hide(); | |
78 $img.toggle(); | |
79 } | |
80 }); | |
107 | 81 $('.foldable2').each(function () { |
82 var $this = $(this); | |
83 var $head = $this.find('.fold_head2'); | |
84 var $img = $head.find('img'); | |
85 var $body = $this.find('.fold_body2'); | |
86 $head.on('click', function () { | |
87 $body.slideToggle('fast'); | |
88 $img.toggle(); | |
89 }).css('cursor', 'pointer'); | |
90 if (! $this.hasClass('initially_open')) { | |
91 // hide body initially | |
92 $body.hide(); | |
93 $img.toggle(); | |
94 } | |
95 }); | |
103 | 96 $('.foldableById').each(function () { |
97 var $container = $(this); | |
98 var io = $container.hasClass('initially_open'); | |
99 var $heads = $container.find('.fold_head'); | |
100 $heads.each(function () { | |
101 var $this = $(this); | |
102 var $img = $this.find('img'); | |
103 var id = null; | |
104 // find id in class | |
105 var cls = $this.attr('class').split(' '); | |
106 for (var i = 0; i < cls.length; ++i) { | |
107 var c = cls[i]; | |
108 if (c.startsWith('foldId_')) { | |
109 id = c; | |
110 break; | |
111 } | |
112 } | |
113 if (id == null) return; | |
114 // get body using id | |
115 var $body = $container.find('.fold_body.'+id); | |
116 $this.on('click', function () { | |
117 $body.slideToggle('fast'); | |
118 $img.toggle(); | |
119 }); | |
120 if (!io) { | |
121 // hide body initially | |
122 $body.hide(); | |
123 $img.toggle(); | |
124 } | |
125 }).css('cursor', 'pointer'); | |
126 }); | |
88 | 127 }); |