You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
366 lines
11 KiB
366 lines
11 KiB
<?php
|
|
|
|
/*
|
|
Slovenski narečni atlas / Slovenian dialectal atlas
|
|
Copyright (C) 2017 Gregor Šajn
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
?>
|
|
|
|
<div class="container container-panel">
|
|
<?
|
|
$this->load->view('admin/index_view.php');
|
|
?>
|
|
<div class="row" style="overflow: none">
|
|
<?
|
|
$this->load->view('admin/admin_nav.php');
|
|
?>
|
|
<!-- tukaj se naloži poljuben pogled -->
|
|
<div class="col-sm-9">
|
|
<ol class="breadcrumb">
|
|
<li><a href="<?=$this->url?>transcriptions">Fonetični zapisi</a></li>
|
|
</ol>
|
|
<div class="row">
|
|
<div class="col-sm-10"><h4 class="text-muted">Fonetični zapisi</h4></div>
|
|
<div class="col-sm-2 text-right"><a class="btn btn-success" id="add_transcription" href="<?=$this->url?>add_transcription/" title="Dodaj transkripcijo">Dodaj</a></div>
|
|
</div>
|
|
<?
|
|
|
|
if(isset($status) and $status=='ok')
|
|
{
|
|
?>
|
|
<div class="alert alert-success fade in" id="alert_ok" role="alert">
|
|
<button type="button" class="close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
<span class="glyphicon glyphicon-ok text-success"></span> Spremembe uspešno shranjene!
|
|
</div>
|
|
<?
|
|
}
|
|
?>
|
|
<div class="alert fade in hidden" id="alert" role="alert">
|
|
<button type="button" class="close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
<span id="alert_text"></span>
|
|
</div>
|
|
<br>
|
|
<div class="form-inline">
|
|
<div class="form-group">
|
|
<label for="subjects" class="control-label">Tema</label>
|
|
|
|
<select class="form-control input-sm" id="subjects" style="width:200px;" onchange="ajax_change_subject();">
|
|
<?
|
|
foreach($subjects as $id=>$subject)
|
|
{
|
|
?><option value="<?=$id?>" <?=$id==$id_subject?'selected="selected"':''?>><?=$subject?></option><?
|
|
}
|
|
?>
|
|
</select>
|
|
<br>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="words" class="ccontrol-label">Beseda</label>
|
|
|
|
<select class="form-control input-sm" id="words" style="width:200px;" onchange="ajax_load_transcriptions();">
|
|
<?
|
|
foreach($words as $id=>$word)
|
|
{
|
|
?><option value="<?=$id?>" <?=$id==$id_word?'selected="selected"':''?>><?=$word?></option><?
|
|
}
|
|
?>
|
|
</select>
|
|
<br>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="titles" class="control-label">Leksem</label>
|
|
<select class="form-control input-sm" id="titles" style="width:200px;" onchange="ajax_update_transcriptions_titles();">
|
|
<?
|
|
foreach($lexems as $id=>$title)
|
|
{
|
|
?><option value="<?=$id?>" <?=$id==$id_lexem?'selected="selected"':''?>><?=$title?></option><?
|
|
}
|
|
?>
|
|
</select>
|
|
</div>
|
|
<br>
|
|
<br>
|
|
<div class="form-group">
|
|
<label for="locations" class="control-label">Kraj</label>
|
|
<select class="form-control input-sm" id="locations-select" style="width:200px;" onchange="ajax_change_location();">
|
|
<?
|
|
foreach($locations as $id=>$location)
|
|
{
|
|
?><option value="<?=$id?>" <?=$id==$id_location?'selected="selected"':''?>><?=$location?></option><?
|
|
}
|
|
?>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<br>
|
|
<div id="transcriptions_table" class="list">
|
|
<?
|
|
if(isset($view))
|
|
{
|
|
echo $view;
|
|
}
|
|
?>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
$('.close').click(function() {
|
|
$('#alert_err').fadeOut(500);
|
|
$('#alert_ok').fadeOut(500);
|
|
});
|
|
|
|
function ajax_change_subject()
|
|
{
|
|
var id_subject=$("#subjects option:selected").val();
|
|
var id_location=$("#locations-select option:selected").val();
|
|
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "<?=$this->url?>ajax_change_subject",
|
|
cache: false,
|
|
data: {
|
|
id_subject: id_subject,
|
|
id_location: id_location,
|
|
},
|
|
dataType: "json",
|
|
success: function(data){
|
|
if(data.status=='ok')
|
|
{
|
|
var options;
|
|
$('#words').empty();
|
|
|
|
$.each(data.words, function(id, title){
|
|
options += '<option value=' + id + '>' + title + '</option>';
|
|
});
|
|
|
|
$('#words').append(options);
|
|
|
|
//update locations
|
|
var locations;
|
|
$('#locations-select').empty();
|
|
|
|
//sort by name
|
|
var sortable = [];
|
|
for (var location in data.locations) {
|
|
sortable.push([location, data.locations[location]]);
|
|
}
|
|
var first=sortable.shift();
|
|
sortable.sort(function(a, b) {
|
|
return a[1].localeCompare(b[1]);
|
|
});
|
|
sortable.unshift(first);
|
|
|
|
$.each(sortable, function(id, title){
|
|
locations += '<option value=' + title[0] + '>' + title[1] + '</option>';
|
|
});
|
|
|
|
$('#locations-select').append(locations);
|
|
|
|
|
|
//update table
|
|
$('#transcriptions_table').html(data.view);
|
|
|
|
}
|
|
},
|
|
error: function(){
|
|
alert('Prišlo je do napake pri nalaganju podatkov. Prosimo poskusite ponovno!');
|
|
}
|
|
});
|
|
}
|
|
|
|
function ajax_load_transcriptions()
|
|
{
|
|
var id_word=$("#words option:selected").val();
|
|
var id_subject=$("#subjects option:selected").val();
|
|
var id_location=$("#locations-select option:selected").val();
|
|
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "<?=$this->url?>ajax_load_transcriptions",
|
|
cache: false,
|
|
data: {
|
|
id_word: id_word,
|
|
id_subject: id_subject,
|
|
id_location:id_location,
|
|
},
|
|
dataType: "json",
|
|
success: function(data){
|
|
if(data.status=='ok')
|
|
{
|
|
var options;
|
|
$('#titles').empty();
|
|
|
|
//sort by name
|
|
var sortable = [];
|
|
for (var title in data.titles) {
|
|
sortable.push([title, data.titles[title]]);
|
|
}
|
|
var first=sortable.shift();
|
|
sortable.sort(function(a, b) {
|
|
return a[1].localeCompare(b[1]);
|
|
});
|
|
sortable.unshift(first);
|
|
|
|
$.each(sortable, function(id, title){
|
|
options += '<option value=' + title[0] + '>' + title[1] + '</option>';
|
|
});
|
|
|
|
$('#titles').append(options);
|
|
|
|
//update table
|
|
$('#transcriptions_table').html(data.view);
|
|
|
|
}
|
|
},
|
|
error: function(){
|
|
alert('Prišlo je do napake pri nalaganju podatkov. Prosimo poskusite ponovno!');
|
|
}
|
|
});
|
|
}
|
|
|
|
function ajax_update_transcriptions_titles()
|
|
{
|
|
var id_word=$("#words option:selected").val();
|
|
var id_subject=$("#subjects option:selected").val();
|
|
var id_lexem=$("#titles option:selected").val();
|
|
var id_location=$("#locations-select option:selected").val();
|
|
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "<?=$this->url?>ajax_update_transcriptions_titles",
|
|
cache: false,
|
|
data: {
|
|
id_word:id_word,
|
|
id_subject:id_subject,
|
|
id_lexem:id_lexem,
|
|
id_location:id_location,
|
|
},
|
|
dataType: "json",
|
|
success: function(data){
|
|
if(data.status=='ok')
|
|
{
|
|
//update table
|
|
$('#transcriptions_table').html(data.view);
|
|
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
},
|
|
error: function(){
|
|
alert('Prišlo je do napake pri nalaganju podatkov. Prosimo poskusite ponovno!');
|
|
}
|
|
});
|
|
}
|
|
|
|
function ajax_change_location()
|
|
{
|
|
var id_word=$("#words option:selected").val();
|
|
var id_subject=$("#subjects option:selected").val();
|
|
var id_lexem=$("#titles option:selected").val();
|
|
var id_location=$("#locations-select option:selected").val();
|
|
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "<?=$this->url?>ajax_change_location",
|
|
cache: false,
|
|
data: {
|
|
id_word:id_word,
|
|
id_subject:id_subject,
|
|
id_lexem:id_lexem,
|
|
id_location:id_location,
|
|
},
|
|
dataType: "json",
|
|
success: function(data){
|
|
if(data.status=='ok')
|
|
{
|
|
//update table
|
|
$('#transcriptions_table').html(data.view);
|
|
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
},
|
|
error: function(){
|
|
alert('Prišlo je do napake pri nalaganju podatkov. Prosimo poskusite ponovno!');
|
|
}
|
|
});
|
|
}
|
|
|
|
function ajax_transcription_delete(id_transcription)
|
|
{
|
|
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "<?=$this->url?>ajax_transcription_delete",
|
|
cache: false,
|
|
data:{
|
|
id_transcription:id_transcription
|
|
},
|
|
dataType: "json",
|
|
success: function(data){
|
|
if(data.status=='ok')
|
|
{
|
|
//remove row
|
|
$('#row-'+id_transcription).remove();
|
|
}
|
|
else
|
|
{
|
|
var errors='';
|
|
$.each(data.errfields, function(i, error){
|
|
errors+=error+'\n';
|
|
});
|
|
status('error',errors);
|
|
}
|
|
},
|
|
error: function(){
|
|
alert('Prišlo je do napake pri nalaganju podatkov. Prosimo poskusite ponovno!');
|
|
}
|
|
});
|
|
}
|
|
|
|
function status(status,text)
|
|
{
|
|
$('#alert').fadeIn(400);
|
|
//change div color
|
|
if(status=='ok')
|
|
{
|
|
$('#alert').removeClass();
|
|
$('#alert').addClass('alert alert-success');
|
|
$('#alert_text').html("<span class='glyphicon glyphicon-ok text-success'></span> "+text);
|
|
}
|
|
else
|
|
{
|
|
$('#alert').removeClass();
|
|
$('#alert').addClass('alert alert-danger');
|
|
$('#alert_text').html("<span class='glyphicon glyphicon-exclamation-sign text-danger'></span> "+text);
|
|
}
|
|
}
|
|
|
|
</script>
|