<commit_before>%{--
- Copyright (c) 2010 iceScrum Technologies.
-
- This file is part of iceScrum.
-
- iceScrum is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published by
- the Free Software Foundation, either version 3 of the License.
-
- iceScrum is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with iceScrum.  If not, see <http://www.gnu.org/licenses/>.
-
- Authors:
-
- <NAME> (<EMAIL>)
--}%

<%@ page import="grails.plugin.fluxiable.Activity; grails.plugin.fluxiable.ActivityLink; org.grails.comments.Comment" %>
<is:panel id="panel-activity">
  <is:panelTitle>${message(code: 'is.ui.backlogelement.activity')}</is:panelTitle>
  <is:panelTabButton id="panel-box-1">
    <a rel="#summary" href="../" class="${!params.tab || 'summary' in params.tab ? 'selected' : ''}">${message(code: 'is.ui.backlogelement.activity.summary')}</a>
    <a rel="#tasks" href="../" class="${params.tab && 'tasks' in params.tab ? 'selected' : ''}">${message(code: 'is.ui.backlogelement.activity.task')}</a>
    <a rel="#history" href="../" class="${params.tab && 'history' in params.tab ? 'selected' : ''}">${message(code: 'is.ui.backlogelement.activity.history')}</a>
    <a rel="#comments" href="../"class="${params.tab && 'comments' in params.tab ? 'selected' : ''}">${message(code: 'is.ui.backlogelement.activity.comments')}</a>
  </is:panelTabButton>
  <div id="panel-tab-contents-1" class="panel-tab-contents">
    
  %{--Panel Summary--}%
    <is:panelTab id="summary"  selected="${!params.tab || 'summary' in params.tab ? 'true' : ''}">
      <g:if test="${summary?.size() > 0}">
        <ul class="list-news">
          <g:each in="${summary}" var="entry" status="i">
            <g:if test="${entry instanceof Comment}">
              <g:render template="/components/comment"
                      plugin="icescrum-core-webcomponents"
                      model="[noEscape:true, backlogelement:story.id, comment:entry, commentId:'summary']"/>
            </g:if>
            <g:elseif test="${entry instanceof Activity && entry.code != 'comment'}">
              <li ${(summary?.size() == (i + 1)) ? 'class="last"' : ''}>
                <div class="news-item news-${entry.code}">
                  <p><is:scrumLink controller="user" action='profile' id="${entry.poster.username}">${entry.poster.firstName.encodeAsHTML()} ${entry.poster.lastName.encodeAsHTML()}</is:scrumLink>
                  <g:message code="is.fluxiable.${entry.code}"/>
                  <g:message code="is.${entry.code.startsWith('task') ? 'task' : 'story'}"/>
                    <strong>${entry.cachedLabel.encodeAsHTML()}</strong></p>
                  <p><g:formatDate date="${entry.dateCreated}" formatName="is.date.format.short.time"/></p>
                </div>
              </li>
            </g:elseif>
          </g:each>
        </ul>
      </g:if>
      <g:else>
        <div class="panel-box-empty">
          ${message(code: 'is.ui.backlogelement.activity.all.no')}
        </div>
      </g:else>
    </is:panelTab>

  %{--Tasks panel--}%
    <is:panelTab id="tasks"  selected="${params.tab && 'tasks' in params.tab ? 'true' : ''}">
      <g:if test="${story.tasks}">
        <is:tableView>
          <is:table id="task-table">
            <is:tableHeader name="${message(code:'is.task.name')}"/>
            <is:tableHeader name="${message(code:'is.task.estimation')}"/>
            <is:tableHeader name="${message(code:'is.task.creator')}"/>
            <is:tableHeader name="${message(code:'is.task.responsible')}"/>
            <is:tableHeader name="${message(code:'is.task.state')}"/>

            <is:tableRows in="${story.tasks}" var="task">
              <is:tableColumn>${task.name.encodeAsHTML()}</is:tableColumn>
              <is:tableColumn>${task.estimation >= 0 ? task.estimation : '?'}</is:tableColumn>
              <is:tableColumn>${task.creator.firstName.encodeAsHTML()} ${task.creator.lastName.encodeAsHTML()}</is:tableColumn>
              <is:tableColumn>${task.responsible?.firstName?.encodeAsHTML()} ${task.responsible?.lastName?.encodeAsHTML()}</is:tableColumn>
              <is:tableColumn>${message(code: taskStateBundle[task.state])}</is:tableColumn>
            </is:tableRows>
          </is:table>
        </is:tableView>
      </g:if>
      <g:else><div class="panel-box-empty">${message(code: 'is.ui.backlogelement.activity.task.no')}</div></g:else>
    </is:panelTab><commit_msg>blocked tasks on story details view<commit_after>%{--
- Copyright (c) 2010 iceScrum Technologies.
-
- This file is part of iceScrum.
-
- iceScrum is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published by
- the Free Software Foundation, either version 3 of the License.
-
- iceScrum is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with iceScrum.  If not, see <http://www.gnu.org/licenses/>.
-
- Authors:
-
- <NAME> (<EMAIL>)
--}%

<%@ page import="grails.plugin.fluxiable.Activity; grails.plugin.fluxiable.ActivityLink; org.grails.comments.Comment" %>
<is:panel id="panel-activity">
  <is:panelTitle>${message(code: 'is.ui.backlogelement.activity')}</is:panelTitle>
  <is:panelTabButton id="panel-box-1">
    <a rel="#summary" href="../" class="${!params.tab || 'summary' in params.tab ? 'selected' : ''}">${message(code: 'is.ui.backlogelement.activity.summary')}</a>
    <a rel="#tasks" href="../" class="${params.tab && 'tasks' in params.tab ? 'selected' : ''}">${message(code: 'is.ui.backlogelement.activity.task')}</a>
    <a rel="#history" href="../" class="${params.tab && 'history' in params.tab ? 'selected' : ''}">${message(code: 'is.ui.backlogelement.activity.history')}</a>
    <a rel="#comments" href="../"class="${params.tab && 'comments' in params.tab ? 'selected' : ''}">${message(code: 'is.ui.backlogelement.activity.comments')}</a>
  </is:panelTabButton>
  <div id="panel-tab-contents-1" class="panel-tab-contents">
    
  %{--Panel Summary--}%
    <is:panelTab id="summary"  selected="${!params.tab || 'summary' in params.tab ? 'true' : ''}">
      <g:if test="${summary?.size() > 0}">
        <ul class="list-news">
          <g:each in="${summary}" var="entry" status="i">
            <g:if test="${entry instanceof Comment}">
              <g:render template="/components/comment"
                      plugin="icescrum-core-webcomponents"
                      model="[noEscape:true, backlogelement:story.id, comment:entry, commentId:'summary']"/>
            </g:if>
            <g:elseif test="${entry instanceof Activity && entry.code != 'comment'}">
              <li ${(summary?.size() == (i + 1)) ? 'class="last"' : ''}>
                <div class="news-item news-${entry.code}">
                  <p><is:scrumLink controller="user" action='profile' id="${entry.poster.username}">${entry.poster.firstName.encodeAsHTML()} ${entry.poster.lastName.encodeAsHTML()}</is:scrumLink>
                  <g:message code="is.fluxiable.${entry.code}"/>
                  <g:message code="is.${entry.code.startsWith('task') ? 'task' : 'story'}"/>
                    <strong>${entry.cachedLabel.encodeAsHTML()}</strong></p>
                  <p><g:formatDate date="${entry.dateCreated}" formatName="is.date.format.short.time"/></p>
                </div>
              </li>
            </g:elseif>
          </g:each>
        </ul>
      </g:if>
      <g:else>
        <div class="panel-box-empty">
          ${message(code: 'is.ui.backlogelement.activity.all.no')}
        </div>
      </g:else>
    </is:panelTab>

  %{--Tasks panel--}%
    <is:panelTab id="tasks"  selected="${params.tab && 'tasks' in params.tab ? 'true' : ''}">
      <g:if test="${story.tasks}">
        <is:tableView>
          <is:table id="task-table">
            <is:tableHeader name="${message(code:'is.task.name')}"/>
            <is:tableHeader name="${message(code:'is.task.estimation')}"/>
            <is:tableHeader name="${message(code:'is.task.creator')}"/>
            <is:tableHeader name="${message(code:'is.task.responsible')}"/>
            <is:tableHeader name="${message(code:'is.task.state')}"/>

            <is:tableRows in="${story.tasks}" rowClass="${{task -> task.blocked?'ico-task-1':''}}" var="task">
              <is:tableColumn>${task.name.encodeAsHTML()}</is:tableColumn>
              <is:tableColumn>${task.estimation >= 0 ? task.estimation : '?'}</is:tableColumn>
              <is:tableColumn>${task.creator.firstName.encodeAsHTML()} ${task.creator.lastName.encodeAsHTML()}</is:tableColumn>
              <is:tableColumn>${task.responsible?.firstName?.encodeAsHTML()} ${task.responsible?.lastName?.encodeAsHTML()}</is:tableColumn>
              <is:tableColumn>${message(code: taskStateBundle[task.state])}</is:tableColumn>
            </is:tableRows>
          </is:table>
        </is:tableView>
      </g:if>
      <g:else><div class="panel-box-empty">${message(code: 'is.ui.backlogelement.activity.task.no')}</div></g:else>
    </is:panelTab>
{'fraction_non_alphanumeric': 0.19895233106338397, 'fraction_numerical': 0.0022001047668936615, 'mean_word_length': 3.0812312954253955, 'pattern_counts': {'":': 0, '<': 161, '<?xml version=': 0, '>': 166, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3014798', 'n_tokens_mistral': 3016, 'n_tokens_neox': 2977, 'n_words': 562}