Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit fcd3598

Browse files
fixing add to grid functionality for candidate events and adding it for canonical events.
1 parent 0abb05a commit fcd3598

File tree

6 files changed

+80
-45
lines changed

6 files changed

+80
-45
lines changed

‎mpeds_coder.py‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -736,6 +736,9 @@ def do_search():
736736
filter(a_filter_expr).\
737737
order_by(sort_expr).all()
738738

739+
if len(search_events) > 1000:
740+
return make_response("Too many results. Please refine your search.", 400)
741+
739742
## get all flags for these events
740743
flags = _load_event_flags([x.event_id for x in search_events])
741744

‎static/adj.js‎

Lines changed: 70 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,12 @@ var loadGrid = function(canonical_event_key = null, cand_events_str = null) {
9595
// get rid of loading flash
9696
$('.flash').hide();
9797
$('.flash').removeClass('alert-info');
98+
9899
return true;
99100
})
100101
.fail(function() { return makeError(req.responseText); });
102+
103+
return true;
101104
}
102105

103106

@@ -279,25 +282,49 @@ var makeError = function(msg) {
279282

280283
/**
281284
* Marks the given candidate events as in the grid.
285+
* @param {str} cand_events - optional array of candidate event ids.
282286
* */
283-
var markGridEvents = function() {
284-
let search_params = new URLSearchParams(window.location.search);
285-
var cand_events = search_params.get('cand_events').split(',');
287+
var markGridEvents = function(cand_events = null) {
288+
// If we don't get cand_events, get them from the URL.
289+
if(cand_events == null) {
290+
var search_params = new URLSearchParams(window.location.search);
291+
cand_events = search_params.get('cand_events').split(',');
292+
}
286293

287294
// Mark all events as not in the grid.
288-
$('.event-desc').each(function() {
289-
$(this).find('.cande-isactive').hide();
290-
$(this).find('.cande-makeactive').show();
295+
$('.event-desc.candidate-search').each(function() {
296+
$(this).find('.cand-isactive').hide();
297+
$(this).find('.cand-makeactive').show();
291298
});
292299

293300
// Mark events which are in the grid as active.
294301
for (var i = 0; i < cand_events.length; i++) {
295302
let event_desc = $('.event-desc[data-event="' + cand_events[i] + '"]');
296-
event_desc.find('.cande-isactive').show();
297-
event_desc.find('.cande-makeactive').hide();
303+
event_desc.find('.cand-isactive').show();
304+
event_desc.find('.cand-makeactive').hide();
298305
}
299306
}
300307

308+
/**
309+
* Marks the given canonical event as in the grid.
310+
* @param {str} event_desc - optional element to mark as active.
311+
*/
312+
var markCanonicalGridEvent = function(event_desc = null) {
313+
console.log("Marking canonical events as not active.");
314+
315+
// Mark all canonical event search results as not in the grid.
316+
$('.event-desc.canonical-search').each(function() {
317+
$(this).find('.canonical-isactive').hide();
318+
$(this).find('.canonical-makeactive').show();
319+
});
320+
321+
// Mark the current canonical event as active.
322+
if (event_desc != null) {
323+
event_desc.find('.canonical-isactive').show();
324+
event_desc.find('.canonical-makeactive').hide();
325+
}
326+
};
327+
301328
/**
302329
* Initialize listeners for search pane.
303330
* Will need to perform this on every reload of the search pane.
@@ -307,12 +334,13 @@ var initializeSearchListeners = function() {
307334
var MAX_CAND_EVENTS = 4;
308335

309336
// listeners for current search results
310-
$('.cande-makeactive').click(function(e) {
337+
$('.cand-makeactive').click(function(e) {
311338
e.preventDefault();
312339

340+
var search_params = new URLSearchParams(window.location.search);
341+
313342
var event_desc = $(e.target).closest('.event-desc');
314343
var event_id = event_desc.attr('data-event');
315-
let search_params = new URLSearchParams(window.location.search);
316344
var cand_events = search_params.get('cand_events').split(',');
317345

318346
// remove last event from the list if full
@@ -326,40 +354,42 @@ var initializeSearchListeners = function() {
326354
// add this event to the list
327355
cand_events.push(event_id);
328356

329-
loadGrid(
357+
letsuccess=loadGrid(
330358
canonical_event_key = search_params.get('canonical_event_key'),
331359
cand_events_str = cand_events.join(',')
332360
);
333-
334-
// update all grid events
335-
markGridEvents();
336361

337-
// $(e.target).hide();
338-
// event_desc.find('.cande-isactive').show();
362+
if (success) {
363+
markGridEvents(cand_events);
364+
}
339365

340366
return true;
341367
});
368+
}
342369

343-
// listener for canonical event.
344-
$('b.ce-makeactive').each(function () {
345-
$(this).click(function () {
346-
// get key and id from event-desc
347-
var search_canonical_event = $(this).closest('.event-desc');
348-
var canonical_event_id = search_canonical_event.attr('id').split('_')[1];
349-
var canonical_event_key = search_canonical_event.attr('data-key');
350-
351-
var success = loadGrid(
352-
canonical_event_key = canonical_event_key,
353-
cand_events_str = getCandidates()
354-
);
370+
/**
371+
* Initialize canonical search listeners.
372+
*/
373+
var initializeCanonicalSearchListeners = function() {
374+
// Listener for canonical event search.
375+
$('.canonical-makeactive').click(function (e) {
376+
e.preventDefault();
355377

356-
if (success) {
357-
// toggle search buttons
358-
$('#search-canonical-event_' + canonical_event_id + ' b.ce-isactive').show();
359-
$('#search-canonical-event_' + canonical_event_id + ' b.ce-makeactive').hide();
360-
}
361-
});
362-
});
378+
// get event desc
379+
var event_desc = $(e.target).closest('.event-desc');
380+
381+
// get key and id from event-desc
382+
var canonical_event_key = event_desc.attr('data-key');
383+
384+
var success = loadGrid(
385+
canonical_event_key = canonical_event_key,
386+
cand_events_str = getCandidates()
387+
);
388+
389+
if (success) {
390+
markCanonicalGridEvent(event_desc);
391+
}
392+
});
363393
}
364394

365395
/**
@@ -599,13 +629,11 @@ var initializeGridListeners = function() {
599629

600630
// Remove canonical event from grid
601631
$('div.canonical-event-metadata a.glyphicon-remove-sign').click(function () {
602-
var canonical_event_id = $('div.canonical-event-metadata').attr('id').split('_')[1];
603632
var success = loadGrid('', getCandidates());
604633

605634
// Change the buttons in the search section
606635
if (success) {
607-
$('#search-canonical-event_' + canonical_event_id + ' b.ce-isactive').hide();
608-
$('#search-canonical-event_' + canonical_event_id + ' b.ce-makeactive').show();
636+
markCanonicalGridEvent();
609637
}
610638
});
611639
}
@@ -722,6 +750,9 @@ $(function () {
722750
// Update the canonical events in the search list
723751
$('#canonical-search-block').html(req.responseText);
724752

753+
// Initialize the listeners for the new canonical search results
754+
initializeCanonicalSearchListeners();
755+
725756
// get rid of loading flash
726757
$('.flash').hide();
727758
$('.flash').removeClass('alert-info');
@@ -758,5 +789,5 @@ $(function () {
758789
loadGrid(
759790
search_params.get('canonical_event_key'),
760791
search_params.get('cand_events')
761-
)
792+
);
762793
});

‎templates/adj-canonical-search-block.html‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
<div class="event-group" id="canonical-search-block">
22
{% for e in events %}
3-
<div class="event-desc" id="canonical-event_{{ e.id }}" data-event="{{ e.id }}">
3+
<div class="event-desc canonical-search" id="canonical-event_{{ e.id }}"
4+
data-event="{{ e.id }}"
5+
data-key="{{ e.key }}">
46
<div class="row">
57
<div class="col-sm-9">
68
<b>key:</b> {{ e.key }}</br>

‎templates/adj-grid.html‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
data-coder="{{ cand_events[event_id]['metadata']['coder_id'] }}">
2525
<label>Event {{ event_id }}<br/>
2626
<i>Actions:</i>
27-
<!-- <a class="glyphicon glyphicon-plus-sign add-all-val" title="Add all values" ></a> -->
2827
{% set article_id = cand_events[event_id]['metadata']['article_id'] -%}
2928
{% if article_id in links %}
3029
<a class="glyphicon glyphicon-link text-danger remove-link"

‎templates/adj-search-block.html‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<div class="event-group">
22
{% for e in events %}
3-
<div class="event-desc" id="cand-event_{{ e.event_id }}" data-event="{{ e.event_id }}">
3+
<div class="event-desc candidate-search" id="cand-event_{{ e.event_id }}" data-event="{{ e.event_id }}">
44
<div class="row">
55
<div class="col-sm-6">
66
<b>start_date:</b> {{ e.start_date }}</br>
@@ -27,10 +27,10 @@
2727
No flags
2828
{% endif %}
2929
</p>
30-
<a href="#" class="cande-makeactive">
30+
<a href="#" class="cand-makeactive">
3131
<b>Add to grid <span class="glyphicon glyphicon-export"></span></b>
3232
</a>
33-
<b class="cande-isactive text-muted" style="display:none;">In the grid</b>
33+
<b class="cand-isactive text-muted" style="display:none;">In the grid</b>
3434
</div>
3535
</div>
3636
<div class="row">

‎templates/adj.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<div class="col-sm-5 adj-pane" id="adj-pane-cand-events">
2020
<a id="cand-events-hide" href="#">&laquo; Hide Search</a><br/>
2121
<a href="{{ url_for('adj',
22-
cand_events = '2544,2545,2572,2708',
22+
cand_events = '2544,2545,2572,2708',
2323
adj_search_input = 'Amherst',
2424
adj_filter_field_0 = 'start_date',
2525
adj_filter_compare_0 = 'ge',

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /