diff --git a/semantics/sem_urls.py b/semantics/sem_urls.py index 4c3b176..cd2a0ec 100644 --- a/semantics/sem_urls.py +++ b/semantics/sem_urls.py @@ -26,4 +26,5 @@ SEMANTIC_PATTERNS = patterns('semantics.views', url(r'^ajax/synset_preference_form/$', 'synset_preference_form'), url(r'^ajax/relational_preference_form/$', 'relational_preference_form'), url(r'^ajax/get_mwe_list/$', 'ajax_get_mwes'), + url(r'^ajax/connected/$', 'ajax_connected'), ) diff --git a/semantics/static/js/semantics_frames.js b/semantics/static/js/semantics_frames.js index e42423f..179421a 100644 --- a/semantics/static/js/semantics_frames.js +++ b/semantics/static/js/semantics_frames.js @@ -4,6 +4,12 @@ var free_complement_id = -1; var free_frame_id = -1; var free_preference_id = -1; var semantic_opinion_vals = []; +var connected = [] + + +function getConnected(entries) { + connected = entries; +} function selectedFrame() { return "frame_" + highlighted_id + "_"; @@ -506,3 +512,5 @@ function saveFrames() { frames_operations = []; } } + + diff --git a/semantics/static/js/semantics_view.js b/semantics/static/js/semantics_view.js index d3d591d..da311d1 100644 --- a/semantics/static/js/semantics_view.js +++ b/semantics/static/js/semantics_view.js @@ -864,6 +864,44 @@ function removeFromFrame() { } } +///////////////////////// Frame Sharing ///////////////////////// + +function sharableFrames() { + result = '<ul>\n'; + for (var i = 0; i < connected.length; i++) { + result += '<li>'; + resilt += connected[i]; + result += '</li>\n'; + } + result += '</ul>\n'; + return result; +} + +function shareFrame() { + + var share_frame = { + state0: { + title: 'Współdzielona rama', + html: sharableFrames(), + buttons: { Anuluj: -1, Zatwierdź: 1 }, + focus: 1, + submit: function(e,v,m,f) { + if (v == -1) { + e.preventDefault(); + e.prompt.close(); + } + if (v == 1) { + e.preventDefault(); + e.prompt.close(); + } + } + }, + }; + + $.prompt(share_frame); + +} + //////////////////////////// Display //////////////////////////// function frameClick(clicked_id) { diff --git a/semantics/templates/semantics.html b/semantics/templates/semantics.html index 006d969..4a74de1 100644 --- a/semantics/templates/semantics.html +++ b/semantics/templates/semantics.html @@ -46,6 +46,9 @@ $("#semantic-frames-count").empty(); $("#semantic-frames-count").append(data.frames_count); }); + $.getJSON(ajax_connected, {lemma_id: {{ lemma.id }}}, function(data){ + getConnected(data.entries); + }); }); }); @@ -90,8 +93,9 @@ <div id="control" class="semantics-control-tabs" style="overflow: auto;"> <ul> <li><a href="#select_meanings">Znaczenia</a></li> - <li><a href="#select_creating">Tworzenie</a></li> - </ul> + <li><a href="#select_creating">Tworzenie</a></li> + <li><a href="#select_connected">Powiązane</a></li> + </ul> <div id="select_meanings"> <button type="button" onclick="openMeaningsMenu()" id="create">Modyfikuj</button> </div> @@ -107,6 +111,9 @@ <br/> <button type="button" onclick="saveFrames()" id="save_frames">Zapisz</button> </div> + <div id="select_connected" style="overflow: auto;"> + <button type="button" onclick="shareFrame()" id="share_frames">Kopiuj</button> + </div> </div> {% endif %} diff --git a/semantics/views.py b/semantics/views.py index 82f7509..3c34627 100644 --- a/semantics/views.py +++ b/semantics/views.py @@ -49,6 +49,7 @@ def ajax_semantics(request, id): 'ajax_predefined_preferences': reverse('ajax_predefined_preferences'), 'ajax_plWN_context_lookup': reverse('ajax_plWN_context_lookup'), 'ajax_get_mwes': reverse('ajax_get_mwes'), + 'ajax_connected': reverse('ajax_connected'), } return context @@ -249,6 +250,23 @@ def create_frames_context(lemma_id, user): return context + +@render('connected.json') +@ajax(method='get', encode_result=False) +def ajax_connected(request, lemma_id): + context = create_connected_context(lemma_id) + return context + +def create_connected_context(lemma_id): + lemma = Lemma.objects.get(id=lemma_id) + connected = lemma.entry_obj.rel_entries.all() + + context = { + 'entries': [{"lemma": conn.name} for conn in connected] + } + return context + + @render('units.json') @ajax(method='get', encode_result=False) def ajax_units(request, lemma_id):