2
1
0

Conflueceの添付ファイル一覧パーツで、直近1週間以内。だとか、ひと月以内にアップロードされたファイルを表示する。

といったことをやりたいのですが、可能でしょうか。

    Commentコメントを追加...

    1 回答

    1.  
      2
      1
      0

      検索や添付ファイルマクロで、特定のページの添付ファイルを CreationDate でFilter するという方法を見つけることができませんでした。
      https://community.atlassian.com/t5/Confluence-questions/How-do-I-search-attachments-to-the-current-page/qaq-p/709442

      のコミュニティの記事がありましたが、type を attachment に指定して With parent で検索してみても結果が返されず、指定したページの添付ファイルが取得できませんでした。

      苦肉の策となってしまい申し訳ございませんが、
      カスタム HTML に以下のような HTML (JavaScript) を適用すると...

      <script>
      AJS.toInit(function() {
        // Check current location.
        if (!/\/pages\/viewpageattachments\.action\?pageId=[0-9]+$/.test(location.href)) return;
        var $ = AJS.$;
      
        var $attachments = $('#view-attachments tr[id^="attachment-"]');
      
        var formHtml = '<form id="filter_attachments_form" class="aui">' +
                         '<div>' +
                           '<label for="filter_before">Before' +
                             '<input id="filter_before" type="radio" name="beforeOfAfter" />' +
                           '</label>' +
                           '<label for="filter_after">After' +
                             '<input id="filter_after" type="radio" name="beforeOfAfter" checked="true"/>' +
                           '</label>' +
                         '</div>' +
                         '<div>' +
                           '<input class="aui-date-picker" id="attachments_date_picker" type="date"/>' +
                           '<a class="aui-button" id="do_filtering_button" style="margin-left: 10px;">Filter</a>' +
                         '</div>' +
                      '</form>';
      
        $('#viewAttachmentsDiv').before($(formHtml));
        (function waitPicker(counter) {
          setTimeout(function() {
            if (AJS.DatePicker) {
              var controller = new AJS.DatePicker(attachments_date_picker, {'overrideBrowserDefault': true, dateFormat: 'yy-mm-dd'});
            } else if(counter < 10) {
              waitPicker(counter + 1);
            } else {
              console.log('Could not retrieve AJS.DatePicker.');
            }
          }, 500);
        })(1);
      
        $(attachments_date_picker).addClass('text');
      
        filter_attachments_form.addEventListener('submit', function(e) {
            e.preventDefault();
        }, false);
      
        do_filtering_button.addEventListener('click', doExecute, false);
      
        function doExecute(e) {
          e.preventDefault();
      
          var value = attachments_date_picker.value;
          debug('---- value ----');
          debug(value);
      
          if (!value) {
            showAll();
            return;
          }
      
          var filterMoment = moment(value);
          debug('---- filterMoment ----');
          debug(filterMoment);
          $attachments.each(function(i, elm) {
              var $this = $(elm);
              var creationDate = $this.find('.created-date').text();
              var attachmentMoment = moment(creationDate);
              debug('---- attachmentMoment ----');
              debug(attachmentMoment);
              if (isAfter()) {
                if (filterMoment.diff(attachmentMoment) < 0) {
                  $this.css('display', 'table-row');
                } else {
                  $this.css('display', 'none');
                }
              } else {
                if (filterMoment.diff(attachmentMoment) > 0) {
                  $this.css('display', 'table-row');
                } else {
                  $this.css('display', 'none');
                }
              }
          });
        }
      
        function showAll() {
          $attachments.each(function(i, elm) {
            $(elm).css('display', 'table-row');
          });
        }
      
        function isAfter() {
          return filter_after.checked;
        }
      
        function debug(str) {
          // console.log(str);
        }
      });
      </script>


      添付ファイル一覧のページに入力欄を表示して、入力された日付から Before/After で Filter する
      といったことはできました...

        Commentコメントを追加...