Skip to content
Snippets Groups Projects
Commit cf49c3cd authored by Moritz Strohm's avatar Moritz Strohm
Browse files

TandemPlugin: Several fixes related to mother language management

git-svn-id: https://server2.data-quest.de/svn/studip-plugins/TandemPlugin@2430 6a1f69d7-6018-4d13-bf90-b098e98c258d
parent b4e15c5d
No related branches found
No related tags found
No related merge requests found
...@@ -4,10 +4,14 @@ STUDIP.TandemPlugin = { ...@@ -4,10 +4,14 @@ STUDIP.TandemPlugin = {
var template = jQuery('#motherLanguageRowTemplate'); var template = jQuery('#motherLanguageRowTemplate');
var tbody = jQuery(template).parent(); var tbody = jQuery(template).parent();
console.log("ok1");
var new_row = jQuery(template).clone(); var new_row = jQuery(template).clone();
new_row.id = null; new_row.id = null;
var status_input = jQuery(new_row).find('input.EntryStatus')[0];
if(!status_input) { console.log('no status input!'); }
jQuery(status_input).val('K');
jQuery(new_row).removeAttr('style'); jQuery(new_row).removeAttr('style');
jQuery(new_row).appendTo(tbody); jQuery(new_row).appendTo(tbody);
}, },
...@@ -18,8 +22,8 @@ STUDIP.TandemPlugin = { ...@@ -18,8 +22,8 @@ STUDIP.TandemPlugin = {
if(language_id != null) { if(language_id != null) {
jQuery(row).attr('style', 'display:none;'); jQuery(row).attr('style', 'display:none;');
//entry exists in the database: //entry exists in the database:
var delete_input = jQuery(row).find('#delete_' + language_id); var delete_input = jQuery(row).find('.EntryStatus');
jQuery(delete_input).val('1'); jQuery(delete_input).val('D');
} else { } else {
jQuery(row).remove(); jQuery(row).remove();
} }
......
...@@ -174,11 +174,12 @@ class MyTandemsController extends PluginController ...@@ -174,11 +174,12 @@ class MyTandemsController extends PluginController
$language_ids = Request::getArray('language_ids', []); $language_ids = Request::getArray('language_ids', []);
$countries = Request::getArray('countries', []); $countries = Request::getArray('countries', []);
$regions = Request::getArray('regions', []); $regions = Request::getArray('regions', []);
$delete = Request::getArray('delete', []); $status = Request::getArray('status', []);
foreach($ids as $key => $id) { foreach($ids as $key => $id) {
if(!$id) { if(!$id and ($status[$key] != 'T')) {
//new entry: store it //No ID is set and the status is not T (template):
//It's a new entry: store it!
$new_language = new TandemUserMotherLanguage(); $new_language = new TandemUserMotherLanguage();
$new_language->user_id = $this->user->id; $new_language->user_id = $this->user->id;
$new_language->language_id = $language_ids[$key]; $new_language->language_id = $language_ids[$key];
...@@ -191,16 +192,16 @@ class MyTandemsController extends PluginController ...@@ -191,16 +192,16 @@ class MyTandemsController extends PluginController
if($language) { if($language) {
//Assure that only the owner may edit or delete the entry: //Assure that only the owner may edit or delete the entry:
if($language->user_id == $this->user->id) { if($language->user_id == $this->user->id) {
if($delete[$id]) { if($status[$id] == 'D') {
//delete the entry: //delete the entry:
//Pairs are not deleted since they store the //Pairs are not deleted since they store the
//language separately. //language separately.
$language->delete(); $language->delete();
} else { } else {
//modify the entry //modify the entry
$language->language_id = $language_ids[$id]; $language->language_id = $language_ids[$key];
$language->country = $countries[$id]; $language->country = $countries[$key];
$language->region = $regions[$id]; $language->region = $regions[$key];
$language->store(); $language->store();
} }
} }
......
...@@ -78,6 +78,8 @@ ...@@ -78,6 +78,8 @@
$sql_params['status'] = $status; $sql_params['status'] = $status;
} }
$sql .= ' ORDER BY tandem_pairs.status ASC';
return self::findBySql($sql, $sql_params); return self::findBySql($sql, $sql_params);
} }
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<tr> <tr>
<td> <td>
<input type="hidden" name="ids[]" value="<?= htmlReady($language->id) ?>"> <input type="hidden" name="ids[]" value="<?= htmlReady($language->id) ?>">
<select name="language_ids[<?= htmlReady($language->id) ?>]"> <select name="language_ids[]">
<? foreach($all_languages as $al): ?> <? foreach($all_languages as $al): ?>
<option value="<?= htmlReady($al->id) ?>" <option value="<?= htmlReady($al->id) ?>"
<?= (($language->language_id == $al->id) ? 'selected="selected"' : '') ?>> <?= (($language->language_id == $al->id) ? 'selected="selected"' : '') ?>>
...@@ -28,23 +28,24 @@ ...@@ -28,23 +28,24 @@
</select> </select>
</td> </td>
<td> <td>
<input type="text" name="countries[<?= htmlReady($language->id) ?>]" value="<?= htmlReady($language->country) ?>" <input type="text" name="countries[]" value="<?= htmlReady($language->country) ?>"
placeholder="<?= dgettext('TandemPlugin', 'Mittelerde') ?>"> placeholder="<?= dgettext('TandemPlugin', 'Mittelerde') ?>">
</td> </td>
<td> <td>
<input type="text" name="regions[<?= htmlReady($language->id) ?>]" value="<?= htmlReady($language->region) ?>" <input type="text" name="regions[]" value="<?= htmlReady($language->region) ?>"
placeholder="<?= dgettext('TandemPlugin', 'Auenland') ?>"> placeholder="<?= dgettext('TandemPlugin', 'Auenland') ?>">
</td> </td>
<td> <td>
<?= \Studip\LinkButton::create( <?= \Studip\LinkButton::create(
dgettext('TandemPlugin', 'lschen'), dgettext('TandemPlugin', 'lschen'),
"javascript:void(STUDIP.TandemPlugin.deleteMotherLanguage(" . htmlReady($language->id) . "));") ?> "javascript:void(STUDIP.TandemPlugin.deleteMotherLanguage('" . htmlReady($language->id) . "'));") ?>
<input id="delete_<?= htmlReady($language->id) ?>" type="hidden" name="delete[<?= htmlReady($language->id) ?>]" value="0"> <input class="EntryStatus" type="hidden" name="status[]" value="K">
</td> </td>
</tr> </tr>
<? endforeach ?> <? endforeach ?>
<tr id="motherLanguageRowTemplate" style="display:none;"> <tr id="motherLanguageRowTemplate" style="display:none;">
<td> <td>
<input type="hidden" name="ids[]" value="">
<select name="language_ids[]"> <select name="language_ids[]">
<? foreach($all_languages as $al): ?> <? foreach($all_languages as $al): ?>
<option value="<?= htmlReady($al->id) ?>"> <option value="<?= htmlReady($al->id) ?>">
...@@ -54,16 +55,18 @@ ...@@ -54,16 +55,18 @@
</select> </select>
</td> </td>
<td> <td>
<input type="text" name="countries[<?= htmlReady($language->id) ?>]" value="<?= htmlReady($language->country) ?>"> <input type="text" name="countries[]" value=""
placeholder="<?= dgettext('TandemPlugin', 'Mittelerde') ?>">
</td> </td>
<td> <td>
<input type="text" name="regions[<?= htmlReady($language->id) ?>]" value="<?= htmlReady($language->region) ?>"> <input type="text" name="regions[]" value=""
placeholder="<?= dgettext('TandemPlugin', 'Auenland') ?>">
</td> </td>
<td> <td>
<?= \Studip\LinkButton::create( <?= \Studip\LinkButton::create(
dgettext('TandemPlugin', 'lschen'), dgettext('TandemPlugin', 'lschen'),
"javascript:void(STUDIP.TandemPlugin.deleteMotherLanguage(this, null));") ?> "javascript:void(STUDIP.TandemPlugin.deleteMotherLanguage(this, null));") ?>
<input type="hidden" name="delete[]" value="0"> <input class="EntryStatus" type="hidden" name="status[]" value="T">
</td> </td>
</tr> </tr>
</tbody> </tbody>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment