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