summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/Locale/de_DE/translations.php104
-rw-r--r--app/Model/TaskLink.php4
-rw-r--r--app/Template/tasklink/show.php4
-rw-r--r--assets/css/app.css14
-rw-r--r--assets/css/src/board.css12
-rw-r--r--assets/css/src/task.css2
-rw-r--r--assets/js/app.js4
-rw-r--r--assets/js/src/board.js4
8 files changed, 72 insertions, 76 deletions
diff --git a/app/Locale/de_DE/translations.php b/app/Locale/de_DE/translations.php
index cb05e2f7..54503b64 100644
--- a/app/Locale/de_DE/translations.php
+++ b/app/Locale/de_DE/translations.php
@@ -681,57 +681,57 @@ return array(
'Bitbucket commit received' => 'Bitbucket commit erhalten',
'Bitbucket webhooks' => 'Bitbucket webhooks',
'Help on Bitbucket webhooks' => 'Hilfe für Bitbucket webhooks',
- // 'Start' => '',
- // 'End' => '',
- // 'Task age in days' => '',
- // 'Days in this column' => '',
- // '%dd' => '',
- // 'Add a link' => '',
- // 'Add a new link' => '',
- // 'Do you really want to remove this link: "%s"?' => '',
- // 'Do you really want to remove this link with task #%d?' => '',
- // 'Field required' => '',
- // 'Link added successfully.' => '',
- // 'Link updated successfully.' => '',
- // 'Link removed successfully.' => '',
- // 'Link labels' => '',
- // 'Link modification' => '',
- // 'Links' => '',
- // 'Link settings' => '',
- // 'Opposite label' => '',
- // 'Remove a link' => '',
- // 'Task\'s links' => '',
- // 'The labels must be different' => '',
- // 'There is no link.' => '',
- // 'This label must be unique' => '',
- // 'Unable to create your link.' => '',
- // 'Unable to update your link.' => '',
- // 'Unable to remove this link.' => '',
- // 'relates to' => '',
- // 'blocks' => '',
- // 'is blocked by' => '',
- // 'duplicates' => '',
- // 'is duplicated by' => '',
- // 'is a child of' => '',
- // 'is a parent of' => '',
- // 'targets milestone' => '',
- // 'is a milestone of' => '',
- // 'fixes' => '',
- // 'is fixed by' => '',
- // 'This task' => '',
- // '<1h' => '',
- // '%dh' => '',
+ 'Start' => 'Start',
+ 'End' => 'Ende',
+ 'Task age in days' => 'Aufgabenalter in Tagen',
+ 'Days in this column' => 'Tage in dieser Spalte',
+ '%dd' => '%dT',
+ 'Add a link' => 'Verbindung hinzufügen',
+ 'Add a new link' => 'Neue Verbindung hinzufügen',
+ 'Do you really want to remove this link: "%s"?' => 'Die Verbindung "%s" wirklich löschen?',
+ 'Do you really want to remove this link with task #%d?' => 'Die Verbindung mit der Aufgabe #%d wirklich löschen?',
+ 'Field required' => 'Feld erforderlich',
+ 'Link added successfully.' => 'Verbindung erfolgreich hinzugefügt.',
+ 'Link updated successfully.' => 'Verbindung erfolgreich aktualisiert.',
+ 'Link removed successfully.' => 'Verbindung erfolgreich gelöscht.',
+ 'Link labels' => 'Verbindungsbeschriftung',
+ 'Link modification' => 'Verbindung ändern',
+ 'Links' => 'Verbindungen',
+ 'Link settings' => 'Verbindungseinstellungen',
+ 'Opposite label' => 'Gegenteil',
+ 'Remove a link' => 'Verbindung entfernen',
+ 'Task\'s links' => 'Aufgaben Verbindungen',
+ 'The labels must be different' => 'Die Beschriftung muss unterschiedlich sein',
+ 'There is no link.' => 'Es gibt keine Verbindung',
+ 'This label must be unique' => 'Die Beschriftung muss einzigartig sein',
+ 'Unable to create your link.' => 'Verbindung kann nicht erstellt werden.',
+ 'Unable to update your link.' => 'Verbindung kann nicht aktualisiert werden.',
+ 'Unable to remove this link.' => 'Verbindung kann nicht entfernt werden',
+ 'relates to' => 'gehört zu',
+ 'blocks' => 'blockiert',
+ 'is blocked by' => 'ist blockiert von',
+ 'duplicates' => 'doppelt',
+ 'is duplicated by' => 'ist gedoppelt von',
+ 'is a child of' => 'ist untergeordnet',
+ 'is a parent of' => 'ist übergeordnet',
+ 'targets milestone' => 'betrifft Meilenstein',
+ 'is a milestone of' => 'ist ein Meilenstein von',
+ 'fixes' => 'behebt',
+ 'is fixed by' => 'wird behoben von',
+ 'This task' => 'Diese Aufgabe',
+ '<1h' => '<1Std',
+ '%dh' => '%dStd',
// '%b %e' => '',
- // 'Expand tasks' => '',
- // 'Collapse tasks' => '',
- // 'Expand/collapse tasks' => '',
- // 'Close dialog box' => '',
- // 'Submit a form' => '',
- // 'Board view' => '',
- // 'Keyboard shortcuts' => '',
- // 'Open board switcher' => '',
- // 'Application' => '',
- // 'Filter recently updated' => '',
- // 'since %B %e, %Y at %k:%M %p' => '',
- // 'More filters' => '',
+ 'Expand tasks' => 'Aufgaben aufklappen',
+ 'Collapse tasks' => 'Aufgaben zusammenklappen',
+ 'Expand/collapse tasks' => 'Aufgaben auf/zuklappen',
+ 'Close dialog box' => 'Dialog schließen',
+ 'Submit a form' => 'Formular abschicken',
+ 'Board view' => 'Pinnwand Ansicht',
+ 'Keyboard shortcuts' => 'Tastaturkürzel',
+ 'Open board switcher' => 'Pinnwandauswahl öffnen',
+ 'Application' => 'Anwendung',
+ 'Filter recently updated' => 'Zuletzt geänderte anzeigen',
+ 'since %B %e, %Y at %k:%M %p' => 'seit %B %e, %Y um %k:%M %p',
+ 'More filters' => 'Mehr Filter',
);
diff --git a/app/Model/TaskLink.php b/app/Model/TaskLink.php
index c712e5a8..f8e9f99e 100644
--- a/app/Model/TaskLink.php
+++ b/app/Model/TaskLink.php
@@ -50,11 +50,13 @@ class TaskLink extends Base
Link::TABLE.'.label',
Task::TABLE.'.title',
Task::TABLE.'.is_active',
- Task::TABLE.'.project_id'
+ Task::TABLE.'.project_id',
+ Board::TABLE.'.title AS column_title'
)
->eq(self::TABLE.'.task_id', $task_id)
->join(Link::TABLE, 'id', 'link_id')
->join(Task::TABLE, 'id', 'opposite_task_id')
+ ->join(Board::TABLE, 'id', 'column_id', Task::TABLE)
->findAll();
}
diff --git a/app/Template/tasklink/show.php b/app/Template/tasklink/show.php
index ca4e4383..f0a70054 100644
--- a/app/Template/tasklink/show.php
+++ b/app/Template/tasklink/show.php
@@ -5,7 +5,8 @@
<table class="table-fixed" id="links">
<tr>
<th class="column-30"><?= t('Label') ?></th>
- <th class="column-60"><?= t('Task') ?></th>
+ <th class="column-40"><?= t('Task') ?></th>
+ <th class="column-20"><?= t('Column') ?></th>
<?php if (! isset($not_editable)): ?>
<th><?= t('Action') ?></th>
<?php endif ?>
@@ -22,6 +23,7 @@
$link['is_active'] ? '' : 'task-link-closed'
) ?>
</td>
+ <td><?= $this->e($link['column_title']) ?></td>
<td>
<?= $this->a(t('Remove'), 'tasklink', 'confirm', array('link_id' => $link['id'], 'task_id' => $task['id'], 'project_id' => $task['project_id'])) ?>
</td>
diff --git a/assets/css/app.css b/assets/css/app.css
index de7525ed..f1a383be 100644
--- a/assets/css/app.css
+++ b/assets/css/app.css
@@ -727,11 +727,6 @@ nav .active a {
font-size: 0.95em;
}
-.filter-on {
- font-weight: bold;
- color: #333;
-}
-
/* public board */
.public-board {
margin-top: 5px;
@@ -745,13 +740,14 @@ nav .active a {
/* board table */
#board-container {
- overflow-x: auto;
+ overflow-x: scroll;
+ padding-bottom: 150px; /* Space to avoid dropdown menu truncated */
}
#board td,
#board th {
- min-width: 230px;
- max-width: 230px;
+ min-width: 240px;
+ max-width: 240px;
}
#board th a {
@@ -898,7 +894,7 @@ a.task-board-nobody {
.task-board-icons span {
opacity: 0.5;
- margin-left: 5px;
+ margin-left: 2px;
}
.task-board-icons a:hover,
diff --git a/assets/css/src/board.css b/assets/css/src/board.css
index 00e0ad7c..52f871f7 100644
--- a/assets/css/src/board.css
+++ b/assets/css/src/board.css
@@ -3,11 +3,6 @@
font-size: 0.95em;
}
-.filter-on {
- font-weight: bold;
- color: #333;
-}
-
/* public board */
.public-board {
margin-top: 5px;
@@ -21,13 +16,14 @@
/* board table */
#board-container {
- overflow-x: auto;
+ overflow-x: scroll;
+ padding-bottom: 150px; /* Space to avoid dropdown menu truncated */
}
#board td,
#board th {
- min-width: 230px;
- max-width: 230px;
+ min-width: 240px;
+ max-width: 240px;
}
#board th a {
diff --git a/assets/css/src/task.css b/assets/css/src/task.css
index 7942d8d3..b7a5cb9c 100644
--- a/assets/css/src/task.css
+++ b/assets/css/src/task.css
@@ -97,7 +97,7 @@ a.task-board-nobody {
.task-board-icons span {
opacity: 0.5;
- margin-left: 5px;
+ margin-left: 2px;
}
.task-board-icons a:hover,
diff --git a/assets/js/app.js b/assets/js/app.js
index 8e7d6798..892f153d 100644
--- a/assets/js/app.js
+++ b/assets/js/app.js
@@ -148,8 +148,8 @@ Kanboard.SetStorageItem(d(),"expanded")});$(".filter-collapse-link").click(funct
(Kanboard.GetStorageItem(d())||"expanded")?f():e()}function k(){$(".column").sortable({delay:300,distance:5,connectWith:".column",placeholder:"draggable-placeholder",stop:function(a,b){n(b.item.attr("data-task-id"),b.item.parent().attr("data-column-id"),b.item.index()+1,b.item.parent().attr("data-swimlane-id"))}});$("#board").on("click",".task-board-popover",a);$("#board").on("click",".task-board",function(){window.location=$(this).data("task-url")});$(".task-board-tooltip").tooltip({track:!1,position:{my:"left-20 top",
at:"center bottom+9",using:function(a,b){$(this).css(a);var c=b.target.left+b.target.width/2-b.element.left-20;$("<div>").addClass("tooltip-arrow").addClass(b.vertical).addClass(0==c?"align-left":"align-right").appendTo(this)}},content:function(a){if(a=$(this).attr("data-href")){var b=this;$.get(a,function p(a){$(".ui-tooltip-content:visible").html(a);a=$(".ui-tooltip:visible");a.css({top:"",left:""});a.children(".tooltip-arrow").remove();var c=$(b).tooltip("option","position");c.of=$(b);a.position(c);
$("#tooltip-subtasks a").not(".popover").click(function(a){a.preventDefault();a.stopPropagation();$(this).hasClass("popover-subtask-restriction")?(Kanboard.OpenPopover($(this).attr("href")),$(b).tooltip("close")):$.get($(this).attr("href"),p)})});return'<i class="fa fa-refresh fa-spin fa-2x"></i>'}}}).on("mouseenter",function(){var a=this;$(this).tooltip("open");$(".ui-tooltip").on("mouseleave",function(){$(a).tooltip("close")})}).on("mouseleave focusout",function(a){a.stopImmediatePropagation();
-var b=this;setTimeout(function(){$(".ui-tooltip:hover").length||$(b).tooltip("close")},100)});var b=parseInt($("#board").attr("data-check-interval"));0<b&&(l=window.setInterval(m,1E3*b))}function n(a,b,c,d){clearInterval(l);$.ajax({cache:!1,url:$("#board").attr("data-save-url"),contentType:"application/json",type:"POST",processData:!1,data:JSON.stringify({task_id:a,column_id:b,swimlane_id:d,position:c}),success:function(a){$("#board").remove();$("#main").append(a);Kanboard.InitAfterAjax();k();h();
-g()}})}function m(){Kanboard.IsVisible()&&$.ajax({cache:!1,url:$("#board").attr("data-check-url"),statusCode:{200:function(a){$("#board").remove();$("#main").append(a);Kanboard.InitAfterAjax();clearInterval(l);k();h();g()}}})}function h(){var a=$("#form-user_id").val(),b=$("#form-category_id").val(),c=$("#more-filters option[value=filter-due-date]").is(":selected"),d=$("#more-filters option[value=filter-recent]").is(":selected"),e=$("#board").data("project-id");$("[data-task-id]").each(function(e,
+var b=this;setTimeout(function(){$(".ui-tooltip:hover").length||$(b).tooltip("close")},100)});var b=parseInt($("#board").attr("data-check-interval"));0<b&&(l=window.setInterval(m,1E3*b))}function n(a,b,c,d){clearInterval(l);$.ajax({cache:!1,url:$("#board").attr("data-save-url"),contentType:"application/json",type:"POST",processData:!1,data:JSON.stringify({task_id:a,column_id:b,swimlane_id:d,position:c}),success:function(a){$("#board-container").remove();$("#main").append(a);Kanboard.InitAfterAjax();
+k();h();g()}})}function m(){Kanboard.IsVisible()&&$.ajax({cache:!1,url:$("#board").attr("data-check-url"),statusCode:{200:function(a){$("#board-container").remove();$("#main").append(a);Kanboard.InitAfterAjax();clearInterval(l);k();h();g()}}})}function h(){var a=$("#form-user_id").val(),b=$("#form-category_id").val(),c=$("#more-filters option[value=filter-due-date]").is(":selected"),d=$("#more-filters option[value=filter-recent]").is(":selected"),e=$("#board").data("project-id");$("[data-task-id]").each(function(e,
g){var k=g.getAttribute("data-owner-id"),f=g.getAttribute("data-due-date"),m=g.getAttribute("data-category-id"),h=$(g).hasClass("task-board-recent");g.style.display=k!=a&&-1!=a?"none":"block";!c||""!=f&&"0"!=f||(g.style.display="none");m!=b&&-1!=b&&(g.style.display="none");d&&!h&&(g.style.display="none")});Kanboard.SetStorageItem("board_filter_"+e+"_form-user_id",a);Kanboard.SetStorageItem("board_filter_"+e+"_form-category_id",b);Kanboard.SetStorageItem("board_filter_"+e+"_filter-due-date",~~c);Kanboard.SetStorageItem("board_filter_"+
e+"_filter-recent",~~d)}function q(){var a=$("#board").data("project-id");$("#form-user_id").chosen({width:"180px"});$("#form-category_id").chosen({width:"200px"});$("#more-filters").chosen({width:"30%"});$(".apply-filters").change(function(a){h()});$("#form-user_id").val(Kanboard.GetStorageItem("board_filter_"+a+"_form-user_id")||-1);$("#form-user_id").trigger("chosen:updated");$("#form-category_id").val(Kanboard.GetStorageItem("board_filter_"+a+"_form-category_id")||-1);$("#form-category_id").trigger("chosen:updated");
+Kanboard.GetStorageItem("board_filter_"+a+"_filter-due-date")&&$("#more-filters option[value=filter-due-date]").attr("selected",!0);+Kanboard.GetStorageItem("board_filter_"+a+"_filter-recent")&&$("#more-filters option[value=filter-recent]").attr("selected",!0);$("#more-filters").trigger("chosen:updated");h()}var l=null;jQuery(document).ready(function(){Kanboard.Exists("board")&&(k(),q(),b(),c())})}();
diff --git a/assets/js/src/board.js b/assets/js/src/board.js
index 487b808a..75c44f2e 100644
--- a/assets/js/src/board.js
+++ b/assets/js/src/board.js
@@ -235,7 +235,7 @@ Kanboard.Board = (function() {
"position": position
}),
success: function(data) {
- $("#board").remove();
+ $("#board-container").remove();
$("#main").append(data);
Kanboard.InitAfterAjax();
board_load_events();
@@ -254,7 +254,7 @@ Kanboard.Board = (function() {
url: $("#board").attr("data-check-url"),
statusCode: {
200: function(data) {
- $("#board").remove();
+ $("#board-container").remove();
$("#main").append(data);
Kanboard.InitAfterAjax();
board_unload_events();