/concrete/single_pages/dashboard/files/sets.php
PHP | 266 lines | 210 code | 55 blank | 1 comment | 20 complexity | 975e9c60e0cb5d71939598eb968250ee MD5 | raw file
Possible License(s): MIT, LGPL-2.1, MPL-2.0-no-copyleft-exception, BSD-3-Clause
- <?php defined('C5_EXECUTE') or die("Access Denied.");
- $ih = Core::make('helper/concrete/ui');
- $dh = Core::make('helper/date');
- ?>
- <?php if ($this->controller->getTask() == 'view_detail') {
- ?>
- <script type="text/javascript">
- deleteFileSet = function () {
- if (confirm('<?=t('Are you sure you want to permanently remove this file set?')?>')) {
- location.href = "<?=$view->url('/dashboard/files/sets', 'delete', $fs->getFileSetID(),
- Core::make('helper/validation/token')->generate('delete_file_set'))?>";
- }
- }
- </script>
- <div class="ccm-dashboard-header-buttons">
- <button class="btn btn-danger" onclick="deleteFileSet()"><?= t('Delete Set') ?></button>
- </div>
- <form method="post" class="form-horizontal" id="file_sets_edit"
- action="<?= $view->url('/dashboard/files/sets', 'file_sets_edit') ?>">
- <?= $validation_token->output('file_sets_edit');
- ?>
- <div class="form-group">
- <?= $form->label('file_set_name', t('Name')) ?>
- <?= $form->text('file_set_name', $fs->fsName, array('class' => 'span5'));
- ?>
- </div>
- <?= $form->hidden('fsID', $fs->getFileSetID()); ?>
- <?php
- $fl = new FileList();
- $fl->filterBySet($fs);
- $fl->sortByFileSetDisplayOrder();
- $files = $fl->get();
- if (count($files) > 0) {
- ?>
- <span
- class="help-block"><?= t('Click and drag to reorder the files in this set. New files added to this set will automatically be appended to the end.') ?></span>
- <div class="ccm-spacer"> </div>
- <div class="table-responsive">
- <table class="ccm-search-results-table compact-results">
- <thead>
- <tr>
- <th></th>
- <th><span><?= t('Thumbnail') ?></span></th>
- <th><a href="javascript:void(0)" class="sort-link" data-sort="type"><?= t('Type') ?></a></th>
- <th><a href="javascript:void(0)" class="sort-link" data-sort="title"><?= t('Title') ?></a></th>
- <th><a href="javascript:void(0)" class="sort-link"
- data-sort="filename"><?= t('File name') ?></a></th>
- <th><a href="javascript:void(0)" class="sort-link" data-sort="added"><?= t('Added') ?></a></th>
- </tr>
- </thead>
- <tbody class="ccm-file-set-file-list">
- <?php foreach ($files as $f) {
- ?>
- <tr id="fID_<?= $f->getFileID() ?>" class="">
- <td><i class="fa fa-arrows-v"></i></td>
- <td class="ccm-file-manager-search-results-thumbnail"><?= $f->getListingThumbnailImage() ?>
- <input type="hidden" name="fsDisplayOrder[]" value="<?= $f->getFileID() ?>"/></td>
- <td data-key="type"><?= $f->getGenericTypetext() ?>/<?= $f->getType() ?></td>
- <td data-key="title"><?= h($f->getTitle()) ?></td>
- <td data-key="filename"><?= h($f->getFileName()) ?></td>
- <td data-key="added"
- data-sort="<?= $f->getDateAdded()->getTimestamp() ?>"><?= $dh->formatDateTime($f->getDateAdded()->getTimestamp()) ?></td>
- </tr>
- <?php
- }
- ?>
- </tbody>
- </table>
- </div>
- <?php
- } else {
- ?>
- <div class="alert alert-info"><?= t('There are no files in this set.') ?></div>
- <?php
- }
- ?>
- <div class="ccm-dashboard-form-actions-wrapper">
- <div class="ccm-dashboard-form-actions">
- <a href="<?= View::url('/dashboard/files/sets') ?>"
- class="btn btn-default pull-left"><?= t('Cancel') ?></a>
- <?= Core::make("helper/form")->submit('save', t('Save'),
- array('class' => 'btn btn-primary pull-right')) ?>
- </div>
- </div>
- </form>
- <script>
- $(function () {
- var baseClass = "ccm-results-list-active-sort-"; // asc desc
- function ccmFileSetResetSortIcons() {
- $(".ccm-search-results-table thead tr th").removeClass(baseClass + 'asc');
- $(".ccm-search-results-table thead tr th").removeClass(baseClass + 'desc');
- $(".ccm-search-results-table thead tr th a").css("color", "#999");
- }
- function ccmFileSetDoSort() {
- var $this = $(this);
- var $parent = $(this).parent();
- var asc = $parent.hasClass(baseClass + 'asc');
- var key = $this.attr('data-sort');
- ccmFileSetResetSortIcons();
- var sortableList = $('.ccm-file-set-file-list');
- var listItems = $('tr', sortableList);
- if (asc) {
- $parent.addClass(baseClass + 'desc');
- $(".ccm-search-results-table thead tr th." + baseClass + "desc a").css("color", "#333");
- } else {
- $parent.addClass(baseClass + 'asc');
- $(".ccm-search-results-table thead tr th." + baseClass + "asc a").css("color", "#333");
- }
- listItems.sort(function (a, b) {
- var aTD = $('td[data-key=' + key + ']', $(a));
- var bTD = $('td[data-key=' + key + ']', $(b));
- var aVal = typeof( aTD.attr('data-sort') ) == 'undefined' ? aTD.text().toUpperCase() : parseInt(aTD.attr('data-sort'));
- var bVal = typeof( bTD.attr('data-sort') ) == 'undefined' ? bTD.text().toUpperCase() : parseInt(bTD.attr('data-sort'));
- if (asc) {
- return bVal < aVal ? -1 : 1;
- } else {
- return aVal < bVal ? -1 : 1;
- }
- });
- sortableList.append(listItems);
- }
- $('.ccm-search-results-table thead th a.sort-link').click(ccmFileSetDoSort);
- $(".ccm-file-set-file-list").sortable({
- cursor: 'move',
- opacity: 0.5,
- axis: 'y',
- helper: function (evt, elem) {
- var ret = $(elem).clone();
- var i;
- // copy the actual width of the elements
- ret.width(elem.outerWidth());
- retChilds = $(ret.children());
- elemChilds = $(elem.children());
- for (i = 0; i < elemChilds.length; i++)
- $(retChilds[i]).width($(elemChilds[i]).outerWidth());
- return ret;
- },
- placeholder: "ccm-file-set-file-placeholder",
- stop: function (e, ui) {
- ccmFileSetResetSortIcons();
- }
- });
- });
- </script>
- <style type="text/css">
- .ccm-file-set-file-list:hover {
- cursor: move
- }
- .ccm-file-set-file-placeholder {
- background-color: #ffd !important;
- }
- .ccm-file-set-file-placeholder td {
- background: transparent !important;
- }
- </style>
- <?php
- } else {
- ?>
- <?php if (count($fileSets) > 0) { ?>
- <div class="ccm-dashboard-content-full">
- <div class="table-responsive">
- <table class="ccm-search-results-table">
- <thead>
- <tr>
- <th class="ccm-results-list-active-sort-asc"><a><?= t('Set Name') ?></a></th>
- </tr>
- </thead>
- <tbody>
- <?php foreach ($fileSets as $fs) { ?>
- <tr data-details-url="<?= $view->url('/dashboard/files/sets/', 'view_detail',
- $fs->getFileSetID()) ?>">
- <td>
- <?= $fs->getFileSetDisplayName() ?>
- </td>
- </tr>
- <?php
- }
- ?>
- </tbody>
- </table>
- </div>
- <?php if ($fsl->requiresPaging()) {
- ?>
- <?php $fsl->displayPagingV2();
- ?>
- <?php } ?>
- </div>
- <?php
- } else { ?>
- <section>
- <p><?= t('No file sets found.') ?></p>
- </section>
- <?php } ?>
- <div class="ccm-dashboard-header-buttons">
- <form class="form-inline" method="get" action="#">
- <input type="text" class="form-control" autocomplete="off" name="fsKeywords"
- value="<?= isset($_REQUEST['fsKeywords']) ? h($_REQUEST['fsKeywords']) : '' ?>" placeholder="<?= t('Search') ?>">
- <select data-select="bootstrap" name="fsType">
- <option
- value="<?= FileSet::TYPE_PUBLIC ?>" <?php if ($fsType != FileSet::TYPE_PRIVATE) { ?> selected <?php } ?>><?= t('Public Sets') ?></option>
- <option
- value="<?= FileSet::TYPE_PRIVATE ?>" <?php if ($fsType == FileSet::TYPE_PRIVATE) { ?> selected <?php } ?>><?= t('My Sets') ?></option>
- </select>
- <button class="btn btn-info" type="submit"><i class="fa fa-search"></i></button>
- <ul class="ccm-header-search-navigation">
- <li><a href="<?= View::url('/dashboard/files/add_set') ?>" class="link-primary"><i
- class="fa fa-plus"></i> <?= t('Add File Set') ?></a></li>
- </ul>
- </form>
- </div>
- <?php } ?>