annotate src/main/webapp/imageServer/resources/js/jurzua/shared.js @ 7:764f47286679

(none)
author jurzua
date Wed, 29 Oct 2014 14:28:34 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
jurzua
parents:
diff changeset
1
jurzua
parents:
diff changeset
2 $(document).ready(function () {
jurzua
parents:
diff changeset
3
jurzua
parents:
diff changeset
4 alert('asdfsafdasffsd');
jurzua
parents:
diff changeset
5
jurzua
parents:
diff changeset
6
jurzua
parents:
diff changeset
7 function getURLParams()
jurzua
parents:
diff changeset
8 {
jurzua
parents:
diff changeset
9 var urlParams = {},
jurzua
parents:
diff changeset
10 match,
jurzua
parents:
diff changeset
11 pl = /\+/g, // Regex for replacing addition symbol with a space
jurzua
parents:
diff changeset
12 search = /([^&=]+)=?([^&]*)/g,
jurzua
parents:
diff changeset
13 decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); },
jurzua
parents:
diff changeset
14 query = window.location.search.substring(1);
jurzua
parents:
diff changeset
15 while (match = search.exec(query))
jurzua
parents:
diff changeset
16 {
jurzua
parents:
diff changeset
17 urlParams[decode(match[1])] = decode(match[2]);
jurzua
parents:
diff changeset
18 }
jurzua
parents:
diff changeset
19
jurzua
parents:
diff changeset
20 return urlParams;
jurzua
parents:
diff changeset
21 }
jurzua
parents:
diff changeset
22
jurzua
parents:
diff changeset
23
jurzua
parents:
diff changeset
24 $('#page-jump').on('keypress', function(ev)
jurzua
parents:
diff changeset
25 {
jurzua
parents:
diff changeset
26 if (ev.which == '13')
jurzua
parents:
diff changeset
27 {
jurzua
parents:
diff changeset
28 var dv = $('#diva-wrapper').data('diva');
jurzua
parents:
diff changeset
29 var value = $(this).val();
jurzua
parents:
diff changeset
30 var success = dv.gotoPageByNumber(value);
jurzua
parents:
diff changeset
31
jurzua
parents:
diff changeset
32 if (!success)
jurzua
parents:
diff changeset
33 {
jurzua
parents:
diff changeset
34 if (!$('#page-jump-group').hasClass('error'))
jurzua
parents:
diff changeset
35 {
jurzua
parents:
diff changeset
36 $('#page-jump-group').addClass('error');
jurzua
parents:
diff changeset
37 $('#page-jump-controls').append('<span id="jump-error-help" class="help-inline">The page you specified is not valid.</span>');
jurzua
parents:
diff changeset
38 }
jurzua
parents:
diff changeset
39 }
jurzua
parents:
diff changeset
40 else
jurzua
parents:
diff changeset
41 {
jurzua
parents:
diff changeset
42 if ($('#page-jump-group').hasClass('error'))
jurzua
parents:
diff changeset
43 {
jurzua
parents:
diff changeset
44 $('#page-jump-group').removeClass('error');
jurzua
parents:
diff changeset
45 $('#jump-error-help').remove();
jurzua
parents:
diff changeset
46 }
jurzua
parents:
diff changeset
47 }
jurzua
parents:
diff changeset
48
jurzua
parents:
diff changeset
49 }
jurzua
parents:
diff changeset
50 });
jurzua
parents:
diff changeset
51
jurzua
parents:
diff changeset
52 $('.go-to-witness-link').on('click', function(ev) {
jurzua
parents:
diff changeset
53 var dv = $('#diva-wrapper').data('diva');
jurzua
parents:
diff changeset
54 var start_page = $(this).data('start');
jurzua
parents:
diff changeset
55 dv.gotoPageByNumber(start_page);
jurzua
parents:
diff changeset
56
jurzua
parents:
diff changeset
57 ev.preventDefault();
jurzua
parents:
diff changeset
58 });
jurzua
parents:
diff changeset
59
jurzua
parents:
diff changeset
60 $("#witness-edit").on('click', '.set-start-image-btn', function(ev)
jurzua
parents:
diff changeset
61 {
jurzua
parents:
diff changeset
62 var dv = $('#diva-wrapper').data('diva');
jurzua
parents:
diff changeset
63 var witness = $(this).data('witness');
jurzua
parents:
diff changeset
64 var page = dv.getCurrentPageNumber();
jurzua
parents:
diff changeset
65
jurzua
parents:
diff changeset
66 var startSetCallback = function(data, caller)
jurzua
parents:
diff changeset
67 {
jurzua
parents:
diff changeset
68 var parent = caller.parent();
jurzua
parents:
diff changeset
69 var el = $("<span>" + data.start_page + "(<a href='#' class='remove-start-image' data-witness='" + data.ismi_id + "'>X</a>)</span>");
jurzua
parents:
diff changeset
70 caller.remove();
jurzua
parents:
diff changeset
71 parent.append(el);
jurzua
parents:
diff changeset
72 }
jurzua
parents:
diff changeset
73
jurzua
parents:
diff changeset
74 modifyWitness(witness, 'start_page', page, startSetCallback, $(this));
jurzua
parents:
diff changeset
75 });
jurzua
parents:
diff changeset
76
jurzua
parents:
diff changeset
77 $("#witness-edit").on('click', '.set-end-image-btn', function(ev)
jurzua
parents:
diff changeset
78 {
jurzua
parents:
diff changeset
79 var dv = $('#diva-wrapper').data('diva');
jurzua
parents:
diff changeset
80 var witness = $(this).data('witness');
jurzua
parents:
diff changeset
81 var page = dv.getCurrentPageNumber();
jurzua
parents:
diff changeset
82
jurzua
parents:
diff changeset
83 var endSetCallback = function(data, caller)
jurzua
parents:
diff changeset
84 {
jurzua
parents:
diff changeset
85 var parent = caller.parent();
jurzua
parents:
diff changeset
86 var el = $("<span>" + data.end_page + "(<a href='#' class='remove-end-image' data-witness='" + data.ismi_id + "'>X</a>)</span>");
jurzua
parents:
diff changeset
87 caller.remove();
jurzua
parents:
diff changeset
88 parent.append(el);
jurzua
parents:
diff changeset
89 }
jurzua
parents:
diff changeset
90
jurzua
parents:
diff changeset
91 modifyWitness(witness, 'end_page', page, endSetCallback, $(this));
jurzua
parents:
diff changeset
92 });
jurzua
parents:
diff changeset
93
jurzua
parents:
diff changeset
94 $("#witness-edit").on('click', '.remove-start-image', function(ev)
jurzua
parents:
diff changeset
95 {
jurzua
parents:
diff changeset
96 var witness = $(this).data('witness');
jurzua
parents:
diff changeset
97 var startRemoveCallback = function(data, caller)
jurzua
parents:
diff changeset
98 {
jurzua
parents:
diff changeset
99 var parentTd = caller.parent().parent();
jurzua
parents:
diff changeset
100 var parent = caller.parent();
jurzua
parents:
diff changeset
101 var el = $("<button class='btn set-start-image-btn' data-witness='" + data.ismi_id + "'>Set Start Image</button>");
jurzua
parents:
diff changeset
102 parent.remove();
jurzua
parents:
diff changeset
103 parentTd.append(el);
jurzua
parents:
diff changeset
104 }
jurzua
parents:
diff changeset
105
jurzua
parents:
diff changeset
106 modifyWitness(witness, 'start_page', null, startRemoveCallback, $(this));
jurzua
parents:
diff changeset
107 });
jurzua
parents:
diff changeset
108
jurzua
parents:
diff changeset
109 $("#witness-edit").on('click', '.remove-end-image', function(ev)
jurzua
parents:
diff changeset
110 {
jurzua
parents:
diff changeset
111 var witness = $(this).data('witness');
jurzua
parents:
diff changeset
112
jurzua
parents:
diff changeset
113 var endRemoveCallback = function(data, caller)
jurzua
parents:
diff changeset
114 {
jurzua
parents:
diff changeset
115 var parentTd = caller.parent().parent();
jurzua
parents:
diff changeset
116 var parent = caller.parent();
jurzua
parents:
diff changeset
117 var el = $("<button class='btn set-end-image-btn' data-witness='" + data.ismi_id + "'>Set End Image</button>");
jurzua
parents:
diff changeset
118 parent.remove();
jurzua
parents:
diff changeset
119 parentTd.append(el);
jurzua
parents:
diff changeset
120 }
jurzua
parents:
diff changeset
121
jurzua
parents:
diff changeset
122 modifyWitness(witness, 'end_page', null, endRemoveCallback, $(this));
jurzua
parents:
diff changeset
123 });
jurzua
parents:
diff changeset
124
jurzua
parents:
diff changeset
125 $("#test-highlight").on('click', function(ev)
jurzua
parents:
diff changeset
126 {
jurzua
parents:
diff changeset
127 var dv = $("#diva-wrapper").data('diva');
jurzua
parents:
diff changeset
128 dv.highlightOnPage('foo', 'bar', 'baz');
jurzua
parents:
diff changeset
129 });
jurzua
parents:
diff changeset
130
jurzua
parents:
diff changeset
131 function modifyWitness(witness_id, key, value, successCallback, caller) {
jurzua
parents:
diff changeset
132 var csrf = $("[name=csrfmiddlewaretoken]").val();
jurzua
parents:
diff changeset
133 var witnessURL = "/witness/" + witness_id;
jurzua
parents:
diff changeset
134 var data = {};
jurzua
parents:
diff changeset
135 data[key] = value;
jurzua
parents:
diff changeset
136
jurzua
parents:
diff changeset
137 $.ajax(witnessURL, {
jurzua
parents:
diff changeset
138 type: 'PATCH',
jurzua
parents:
diff changeset
139 headers: {
jurzua
parents:
diff changeset
140 'X-CSRFToken': csrf
jurzua
parents:
diff changeset
141 },
jurzua
parents:
diff changeset
142 data: JSON.stringify(data),
jurzua
parents:
diff changeset
143 contentType: "application/json",
jurzua
parents:
diff changeset
144 success: function(data, status, xhr)
jurzua
parents:
diff changeset
145 {
jurzua
parents:
diff changeset
146 // we'll need to operate on the button, so pass it back...
jurzua
parents:
diff changeset
147 successCallback(data, caller);
jurzua
parents:
diff changeset
148 }
jurzua
parents:
diff changeset
149 });
jurzua
parents:
diff changeset
150 }
jurzua
parents:
diff changeset
151
jurzua
parents:
diff changeset
152 function handlePageSwitch(idx, fn, divid)
jurzua
parents:
diff changeset
153 {
jurzua
parents:
diff changeset
154 // page number is what we're after, which is always
jurzua
parents:
diff changeset
155 // page index + 1.
jurzua
parents:
diff changeset
156 $('#current-page-idx').text(idx + 1);
jurzua
parents:
diff changeset
157 $('#current-page-fn').text(fn);
jurzua
parents:
diff changeset
158 }
jurzua
parents:
diff changeset
159
jurzua
parents:
diff changeset
160 function handleDocumentLoaded(idx, fn)
jurzua
parents:
diff changeset
161 {
jurzua
parents:
diff changeset
162 var witnesses = {};
jurzua
parents:
diff changeset
163
jurzua
parents:
diff changeset
164 // we could do this with an ajax request, but we have
jurzua
parents:
diff changeset
165 // the variables already here, we just need to get them
jurzua
parents:
diff changeset
166 // from Django and not JS.
jurzua
parents:
diff changeset
167 /*
jurzua
parents:
diff changeset
168 {% for witness in content.witnesses %}
jurzua
parents:
diff changeset
169 {% if witness.start_page %}
jurzua
parents:
diff changeset
170 witnesses[{{ witness.ismi_id }}] = {{ witness.start_page }};
jurzua
parents:
diff changeset
171 {% endif %}
jurzua
parents:
diff changeset
172 {% endfor %}*/
jurzua
parents:
diff changeset
173
jurzua
parents:
diff changeset
174 var urlParams = getURLParams();
jurzua
parents:
diff changeset
175 if (urlParams.hasOwnProperty('witness'))
jurzua
parents:
diff changeset
176 {
jurzua
parents:
diff changeset
177 urlWitness = parseInt(urlParams['witness'], 10);
jurzua
parents:
diff changeset
178
jurzua
parents:
diff changeset
179 // this won't be populated if the witness doesn't have a
jurzua
parents:
diff changeset
180 // start page set.
jurzua
parents:
diff changeset
181 if (witnesses.hasOwnProperty(urlWitness))
jurzua
parents:
diff changeset
182 {
jurzua
parents:
diff changeset
183 this.gotoPageByNumber(witnesses[urlWitness]);
jurzua
parents:
diff changeset
184 }
jurzua
parents:
diff changeset
185 }
jurzua
parents:
diff changeset
186 }
jurzua
parents:
diff changeset
187
jurzua
parents:
diff changeset
188 $("#diva-wrapper").diva(
jurzua
parents:
diff changeset
189 {
jurzua
parents:
diff changeset
190 enableAutoHeight: true,
jurzua
parents:
diff changeset
191 enableAutoTitle: false,
jurzua
parents:
diff changeset
192 enableGotoPage: false,
jurzua
parents:
diff changeset
193 fixedHeightGrid: false,
jurzua
parents:
diff changeset
194 contained: true,
jurzua
parents:
diff changeset
195 iipServerURL: "https://images.rasi.mcgill.ca/fcgi-bin/iipsrv.fcgi",
jurzua
parents:
diff changeset
196 imageDir: "/data7/srv/images/Majlis_shura_21",
jurzua
parents:
diff changeset
197
jurzua
parents:
diff changeset
198 onSetCurrentPage: handlePageSwitch,
jurzua
parents:
diff changeset
199 onDocumentLoaded: handleDocumentLoaded
jurzua
parents:
diff changeset
200 });
jurzua
parents:
diff changeset
201 });