Skip to content

Commit

Permalink
#44 #43 [ClassicKanban] fix: add classic versions of project opportun…
Browse files Browse the repository at this point in the history
…ity and tickets kanban
  • Loading branch information
theodaviddd committed Jan 7, 2025
1 parent 6bd810f commit db2bd9d
Show file tree
Hide file tree
Showing 10 changed files with 507 additions and 54 deletions.
15 changes: 15 additions & 0 deletions core/modules/modDigiKanban.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -367,6 +367,21 @@ function __construct($db)
'target' => '',
'user' => 0
];

$this->menu[$r++] = [
'fk_menu' => 'fk_mainmenu=digikanban',
'type' => 'left',
'titre' => $langs->trans('ClassicKanbans'),
'prefix' => '<i class="fa fa-th-list"></i> ',
'leftmenu' => 'digikanban',
'url' => '/digikanban/view/kanban/classic_kanban_list.php?action=create',
'langs' => 'digikanban@digikanban',
'position' => 1000 + $r,
'enabled' => 1,
'perms' => '$user->rights->digikanban->kanban->read',
'target' => '',
'user' => 0
];
}

/**
Expand Down
19 changes: 11 additions & 8 deletions core/tpl/kanban_view.tpl.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,12 @@
$actionsButton = '<span class="fas fa-ellipsis-h"></span>';

foreach ($columns as $column) {
$objectSelector = $form->selectArray($objectLinkedMetadata['post_name'] . $column['category_id'], $objectArray, GETPOST($objectLinkedMetadata['post_name']), $langs->trans('Select') . ' ' . strtolower($langs->trans($objectLinkedMetadata['langs'])), 0, 0, '', 0, 0, dol_strlen(GETPOST('fromtype')) > 0 && GETPOST('fromtype') != $objectLinkedMetadata['link_name'], '', 'maxwidth400 minheight30 widthcentpercentminusxx kanban-select-option');
$selectorName = $objectLinkedMetadata['post_name'] . $column['category_id'];
$objectsInColumn = $column['objects'];
if (!$disableAddColumn) {
$objectSelector = $form->selectArray($objectLinkedMetadata['post_name'] . $column['category_id'], $objectArray, GETPOST($objectLinkedMetadata['post_name']), $langs->trans('Select') . ' ' . strtolower($langs->trans($objectLinkedMetadata['langs'])), 0, 0, '', 0, 0, dol_strlen(GETPOST('fromtype')) > 0 && GETPOST('fromtype') != $objectLinkedMetadata['link_name'], '', 'maxwidth400 minheight30 widthcentpercentminusxx kanban-select-option');
$selectorName = $objectLinkedMetadata['post_name'] . $column['category_id'];
}

$objectsInColumn = $column['objects'];
print '<div class="kanban-column" category-id="'. $column['category_id'] .'">';
print '<div class="kanban-column-header">';
print '<input type="hidden" id="ajax_actions_url" value="' . $ajaxActionsUrl . '">';
Expand All @@ -28,15 +30,15 @@
}

print '<div class="column-left">';
print '<span class="column-name" onclick="window.digikanban.kanban.editColumn(this)">' . htmlspecialchars($column['label']) . '</span>';
print '<span class="column-name" onclick="'. ($disableActions ? '' : 'window.digikanban.kanban.editColumn(this)') .'">' . $langs->transnoentities(htmlspecialchars($column['label'])) . '</span>';
print '<span class="column-counter">' . $objectsCounter . '</span>';
print '</div>';
print '<span class="fas fa-ellipsis-h actions-icon" onclick="window.digikanban.kanban.toggleColumnMenu(this)"></span>';
print '<span class="fas fa-ellipsis-h actions-icon" onclick="'. ($disableActions ? '' : 'window.digikanban.kanban.toggleColumnMenu(this)') .'"></span>';
print '<div class="column-menu hidden">';
print ' <div class="menu-item rename" onclick="window.digikanban.kanban.editColumn(this)">';
print ' <div class="menu-item rename" onclick="'. ($disableActions ? '' : 'window.digikanban.kanban.editColumn(this)') .'">';
print ' <i class="fas fa-pen"></i> Renommer';
print ' </div>';
print ' <div class="menu-item delete" onclick="window.digikanban.kanban.deleteColumn(this)">';
print ' <div class="menu-item delete" onclick="'. ($disableActions ? '' : 'window.digikanban.kanban.deleteColumn(this)') .'">';
print ' <i class="fas fa-trash"></i> Supprimer';
print ' </div>';
print '</div>';
Expand Down Expand Up @@ -65,8 +67,9 @@
}
}
?>

<?php if (!$disableAddColumn) : ?>
<div class="kanban-add-column" onclick="window.digikanban.kanban.addColumn()">
<i class="fas fa-plus"></i>
</div>
<?php endif; ?>
</div>
2 changes: 1 addition & 1 deletion css/digikanban.min.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

83 changes: 83 additions & 0 deletions css/scss/modules/_kanban_list.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
/* Styles pour les kanbans */
.classic-kanban-container {
display: flex;
flex-wrap: wrap;
gap: 20px;
margin: 20px;
justify-content: flex-start; /* Aligner les cartes à gauche */
}

.classic-kanban-card {
display: flex;
background-color: #f9f9f9;
border: 1px solid #ddd;
border-radius: 8px;
padding: 15px;
text-decoration: none;
color: inherit;
transition: transform 0.2s ease, box-shadow 0.2s ease;
cursor: pointer;
width: calc(100% - 40px); /* Par défaut : une carte par ligne */
max-width: 100%; /* Évite de dépasser */
min-height: 150px; /* Hauteur minimale pour les cartes */
}

.classic-kanban-card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 12px rgba(0, 0, 0, 0.2);
background-color: #f1f1f1;
}

.classic-kanban-card-content {
display: flex;
align-items: center;
width: 100%;
}

.img-picto {
flex: 1 1 50%; /* L'image occupe 50% de l'espace */
max-width: 120px; /* Limite pour empêcher qu'elle soit trop grande */
height: auto;
display: flex;
justify-content: center;
align-items: center;
}

.img-picto img {
max-width: 100%;
height: 100px; /* Taille explicite pour agrandir l'image */
}

.classic-kanban-text {
flex: 1 1 50%; /* Le texte occupe l'autre moitié */
padding-left: 15px; /* Évite que le texte touche l'image */
display: flex;
align-items: center;
justify-content: center;
}

.classic-kanban-text h2 {
margin: 0;
font-size: 1.5em; /* Agrandit le texte */
color: #333;
text-align: left;
}

/* Responsive design */
@media (min-width: 576px) {
.classic-kanban-card {
width: calc(50% - 20px); /* 2 cartes par ligne */
}
}

@media (min-width: 768px) {
.classic-kanban-card {
width: calc(33.33% - 20px); /* 3 cartes par ligne */
}
}

@media (min-width: 1200px) {
.classic-kanban-card {
width: calc(25% - 20px); /* 4 cartes par ligne */
}
}
1 change: 1 addition & 0 deletions css/scss/modules/_modules.scss
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
@import 'kanban';
@import "kanban_list";
Loading

0 comments on commit db2bd9d

Please sign in to comment.