diff options
| -rw-r--r-- | app/Locale/de_DE/translations.php | 104 | ||||
| -rw-r--r-- | app/Model/TaskLink.php | 4 | ||||
| -rw-r--r-- | app/Template/tasklink/show.php | 4 | ||||
| -rw-r--r-- | assets/css/app.css | 14 | ||||
| -rw-r--r-- | assets/css/src/board.css | 12 | ||||
| -rw-r--r-- | assets/css/src/task.css | 2 | ||||
| -rw-r--r-- | assets/js/app.js | 4 | ||||
| -rw-r--r-- | assets/js/src/board.js | 4 |
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(); |
