看板初始化提交

This commit is contained in:
zephyr
2026-06-01 21:23:12 -07:00
commit 27411ebedc
1827 changed files with 192340 additions and 0 deletions
@@ -0,0 +1,5 @@
<div class="accordion-section">
<div class="accordion-content">
<?= $this->render('event/events', array('events' => $events)) ?>
</div>
</div>
@@ -0,0 +1,12 @@
<div class="accordion-section">
<div class="accordion-content">
<?php if ($this->user->hasProjectAccess('ProjectFileController', 'create', $project['id'])): ?>
<div class="buttons-header">
<?= $this->modal->mediumButton('plus', t('Upload a file'), 'ProjectFileController', 'create', array('project_id' => $project['id'])) ?>
</div>
<?php endif ?>
<?= $this->render('project_overview/images', array('project' => $project, 'images' => $images)) ?>
<?= $this->render('project_overview/files', array('project' => $project, 'files' => $files)) ?>
</div>
</div>
@@ -0,0 +1,8 @@
<div class="project-overview-columns">
<?php foreach ($columns as $column): ?>
<div class="project-overview-column">
<strong title="<?= t('Task count') ?>"><span class="ui-helper-hidden-accessible"><?= t('Task count') ?> </span><?= $column['nb_open_tasks'] ?></strong>
<small><?= $this->text->e($column['title']) ?></small>
</div>
<?php endforeach ?>
</div>
@@ -0,0 +1,12 @@
<div class="accordion-section">
<div class="accordion-content">
<?php if ($this->user->hasProjectAccess('ProjectEditController', 'show', $project['id'])): ?>
<div class="buttons-header">
<?= $this->modal->mediumButton('edit', t('Edit description'), 'ProjectEditController', 'show', array('project_id' => $project['id'])) ?>
</div>
<?php endif ?>
<article class="markdown">
<?= $this->text->markdown($project['description']) ?>
</article>
</div>
</div>
+49
View File
@@ -0,0 +1,49 @@
<?php if (! empty($files)): ?>
<table class="table-striped table-scrolling">
<tr>
<th><?= t('Filename') ?></th>
<th><?= t('Creator') ?></th>
<th><?= t('Date') ?></th>
<th><?= t('Size') ?></th>
</tr>
<?php foreach ($files as $file): ?>
<tr>
<td>
<i class="fa <?= $this->file->icon($file['name']) ?> fa-fw"></i>
<div class="dropdown">
<a href="#" class="dropdown-menu dropdown-menu-link-text"><?= $this->text->e($file['name']) ?> <i class="fa fa-caret-down"></i></a>
<ul>
<?php if ($this->file->getPreviewType($file['name']) !== null): ?>
<li>
<?= $this->modal->large('eye', t('View file'), 'FileViewerController', 'show', array('project_id' => $project['id'], 'file_id' => $file['id'], 'etag' => $file['etag'])) ?>
</li>
<?php elseif ($this->file->getBrowserViewType($file['name']) !== null): ?>
<li>
<?= $this->url->icon('eye', t('View file'), 'FileViewerController', 'browser', array('project_id' => $project['id'], 'file_id' => $file['id']), false, '', '', true) ?>
</li>
<?php endif ?>
<li>
<?= $this->url->icon('download', t('Download'), 'FileViewerController', 'download', array('project_id' => $project['id'], 'file_id' => $file['id'], 'etag' => $file['etag'])) ?>
</li>
<?php if ($this->user->hasProjectAccess('ProjectFileController', 'remove', $project['id'])): ?>
<li>
<?= $this->modal->confirm('trash-o', t('Remove'), 'ProjectFileController', 'confirm', array('project_id' => $project['id'], 'file_id' => $file['id'])) ?>
</li>
<?php endif ?>
<?= $this->hook->render('template:project-overview:documents:dropdown', array('project' => $project, 'file' => $file)) ?>
</ul>
</div>
</td>
<td>
<?= $this->text->e($file['user_name'] ?: $file['username']) ?>
</td>
<td>
<?= $this->dt->date($file['date']) ?>
</td>
<td>
<?= $this->text->bytes($file['size']) ?>
</td>
</tr>
<?php endforeach ?>
</table>
<?php endif ?>
+49
View File
@@ -0,0 +1,49 @@
<?php if (! empty($images)): ?>
<div class="file-thumbnails">
<?php foreach ($images as $file): ?>
<div class="file-thumbnail">
<?= $this->app->component('image-slideshow', array(
'images' => $images,
'image' => $file,
'regex_file_id' => 'FILE_ID',
'regex_etag' => 'ETAG',
'url' => array(
'image' => $this->url->to('FileViewerController', 'image', array('file_id' => 'FILE_ID', 'project_id' => $project['id'], 'etag' => 'ETAG')),
'thumbnail' => $this->url->to('FileViewerController', 'thumbnail', array('file_id' => 'FILE_ID', 'project_id' => $project['id'], 'etag' => 'ETAG')),
'download' => $this->url->to('FileViewerController', 'download', array('file_id' => 'FILE_ID', 'project_id' => $project['id'], 'etag' => 'ETAG')),
)
)) ?>
<div class="file-thumbnail-content">
<div class="file-thumbnail-title">
<div class="dropdown">
<a href="#" class="dropdown-menu dropdown-menu-link-text"><?= $this->text->e($file['name']) ?> <i class="fa fa-caret-down"></i></a>
<ul>
<li>
<?= $this->url->icon('external-link', t('View file'), 'FileViewerController', 'image', array('project_id' => $project['id'], 'file_id' => $file['id'], 'etag' => $file['etag']), false, '', '', true) ?>
</li>
<li>
<?= $this->url->icon('download', t('Download'), 'FileViewerController', 'download', array('project_id' => $project['id'], 'file_id' => $file['id'], 'etag' => $file['etag'])) ?>
</li>
<?php if ($this->user->hasProjectAccess('ProjectFileController', 'remove', $project['id'])): ?>
<li>
<?= $this->modal->confirm('trash-o', t('Remove'), 'ProjectFileController', 'confirm', array('project_id' => $project['id'], 'file_id' => $file['id'])) ?>
</li>
<?php endif ?>
<?= $this->hook->render('template:project-overview:images:dropdown', array('project' => $project, 'file' => $file)) ?>
</ul>
</div>
</div>
<div class="file-thumbnail-description">
<?= $this->app->tooltipMarkdown(t('Uploaded: %s', $this->dt->datetime($file['date']))."\n\n".t('Size: %s', $this->text->bytes($file['size']))) ?>
<?php if (! empty($file['user_id'])): ?>
<?= t('Uploaded by %s', $file['user_name'] ?: $file['username']) ?>
<?php else: ?>
<?= t('Uploaded: %s', $this->dt->datetime($file['date'])) ?>
<?php endif ?>
</div>
</div>
</div>
<?php endforeach ?>
</div>
<?php endif ?>
@@ -0,0 +1,36 @@
<div class="accordion-section">
<div class="accordion-content">
<div class="panel">
<ul>
<?php if ($project['owner_id'] > 0): ?>
<li><?= t('Project owner: ') ?><strong><?= $this->text->e($project['owner_name'] ?: $project['owner_username']) ?></strong></li>
<?php endif ?>
<?php if (! empty($users)): ?>
<?php foreach ($roles as $role => $role_name): ?>
<?php if (isset($users[$role])): ?>
<li>
<?= $this->text->e($role_name) ?>:
<strong><?= $this->text->implode(', ', $users[$role]) ?></strong>
</li>
<?php endif ?>
<?php endforeach ?>
<?php endif ?>
<?php if ($project['start_date']): ?>
<li><?= t('Start date: ').$this->dt->date($project['start_date']) ?></li>
<?php endif ?>
<?php if ($project['end_date']): ?>
<li><?= t('End date: ').$this->dt->date($project['end_date']) ?></li>
<?php endif ?>
<?php if ($project['is_public']): ?>
<li><?= $this->url->icon('share-alt', t('Public link'), 'BoardViewController', 'readonly', array('token' => $project['token']), false, '', '', true) ?></li>
<li><?= $this->url->icon('rss-square', t('RSS feed'), 'FeedController', 'project', array('token' => $project['token']), false, '', '', true) ?></li>
<li><?= $this->url->icon('calendar', t('iCal feed'), 'ICalendarController', 'project', array('token' => $project['token'])) ?></li>
<?php endif ?>
</ul>
</div>
</div>
</div>
+40
View File
@@ -0,0 +1,40 @@
<section id="main" class="project-overview-dashboard">
<?= $this->projectHeader->render($project, 'ProjectOverviewController', 'show') ?>
<div class="dashboard-kpi-row">
<?= $this->render('project_overview/columns', array('project' => $project, 'columns' => $columns)) ?>
</div>
<!-- Pure CSS Tabs -->
<div class="css-tabs">
<!-- Radio inputs to track active tab -->
<input type="radio" name="dashboard-tabs" id="tab-desc" class="tab-radio" checked>
<input type="radio" name="dashboard-tabs" id="tab-attach" class="tab-radio">
<input type="radio" name="dashboard-tabs" id="tab-info" class="tab-radio">
<input type="radio" name="dashboard-tabs" id="tab-act" class="tab-radio">
<!-- Tabs Header -->
<div class="dashboard-tabs-header">
<label for="tab-desc" class="tab-btn"><?= t('Description') ?></label>
<label for="tab-attach" class="tab-btn"><?= t('Attachments') ?></label>
<label for="tab-info" class="tab-btn"><?= t('Information') ?></label>
<label for="tab-act" class="tab-btn"><?= t('Last activity') ?></label>
</div>
<!-- Tabs Content -->
<div class="dashboard-tabs-content">
<div class="tab-pane pane-desc">
<?= $this->render('project_overview/description', array('project' => $project)) ?>
</div>
<div class="tab-pane pane-attach">
<?= $this->render('project_overview/attachments', array('project' => $project, 'images' => $images, 'files' => $files)) ?>
</div>
<div class="tab-pane pane-info">
<?= $this->render('project_overview/information', array('project' => $project, 'users' => $users, 'roles' => $roles)) ?>
</div>
<div class="tab-pane pane-act">
<?= $this->render('project_overview/activity', array('project' => $project, 'events' => $events)) ?>
</div>
</div>
</div>
</section>