OpenProject is the leading open source project management software.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
openproject/frontend/public/templates/work_packages/tabs/overview.html

116 lines
5.5 KiB

<div class="attributes-group">
<div class="attributes-group--header">
<div class="attributes-group--header-container">
<h3 class="attributes-group--header-text">
{{ I18n.t('js.label_description') }}
</h3>
</div>
</div>
<div class="single-attribute wiki">
<span inplace-editor
ined-type="wiki_textarea"
ined-display-strategy="wiki_textarea"
ined-entity="workPackage"
ined-attribute="description"
ined-attribute-title="{{ I18n.t('js.work_packages.properties.description') }}"
placeholder="{{ I18n.t('js.label_click_to_enter_description') }}"
autocomplete-path="{{ autocompletePath }}">
</span>
</div>
</div>
<div ng-repeat="group in groupedAttributes" ng-hide="isGroupEmpty(group) && toggleStates.hideAllAttributes" class="attributes-group">
<div class="attributes-group--header">
<div class="attributes-group--header-container">
<h3 class="attributes-group--header-text"
ng-bind="I18n.t('js.work_packages.property_groups.' + group.groupName)"></h3>
</div>
<div class="attributes-group--header-toggle">
<panel-expander ng-if="anyEmptyWorkPackageValue() && $first"
collapsed="toggleStates.hideAllAttributes"
expand-text="{{ I18n.t('js.label_show_attributes') }}"
collapse-text="{{ I18n.t('js.label_hide_attributes') }}">
</panel-expander>
</div>
</div>
<dl class="attributes-key-value">
<dt ng-repeat-start="propertyData in group.attributes"
ng-show="!(isPropertyEmpty(propertyData.value) && toggleStates.hideAllAttributes)"
ng-bind="propertyData.label"
class="attributes-key-value--key">
</dt>
<dd ng-repeat-end
ng-show="!(isPropertyEmpty(propertyData.value) && toggleStates.hideAllAttributes)"
class="attributes-key-value--value-container">
<div ng-if="inplaceProperties[propertyData.property]"
ng-class="['attributes-key-value--value', '-' + propertyData.format]">
<div inplace-editor
ined-type="{{inplaceProperties[propertyData.property].type}}"
ined-display-strategy="{{inplaceProperties[propertyData.property].displayStrategy}}"
ined-entity="workPackage"
ined-attribute="{{inplaceProperties[propertyData.property].attribute}}"
ined-attribute-embedded="inplaceProperties[propertyData.property].embedded"
ined-attribute-title="{{ inplaceProperties[propertyData.property].attributeTitle }}"
placeholder="{{inplaceProperties[propertyData.property].placeholder}}">
</div>
</div>
<div ng-if="!inplaceProperties[propertyData.property]"
ng-class="['attributes-key-value--value', '-' + propertyData.format]">
<empty-element ng-if="propertyData.value === null"></empty-element>
<div ng-if="propertyData.value !== null" ng-switch="propertyData.format">
<div ng-class="['attributes-key-value--value', '-' + propertyData.format]">
<span ng-switch-when="dynamic" work-package-dynamic-attribute
html-element="propertyData.value"
work-package="workPackage">
</span>
<span ng-switch-when="user">
<a ng-if="propertyData.value.viewable" title="{{propertyData.value.title}}"
ng-href="{{propertyData.value.href}}">{{propertyData.value.title}}</a>
<span ng-if="!propertyData.value.viewable" title="{{propertyData.value.title}}">{{propertyData.value.title}}</span>
</span>
<span ng-switch-when="version">
<a ng-if="propertyData.value.viewable" title="{{propertyData.value.title}}"
ng-href="{{propertyData.value.href}}">{{propertyData.value.title}}</a>
<span ng-if="!propertyData.value.viewable" title="{{propertyData.value.title}}">{{propertyData.value.title}}</span>
</span>
<span ng-switch-when="time_entry">
<a ng-if="propertyData.value.viewable" title="{{propertyData.value.title}}"
ng-href="{{propertyData.value.href}}">{{propertyData.value.title}}</a>
<span ng-if="!propertyData.value.viewable" title="{{propertyData.value.title}}">{{propertyData.value.title}}</span>
</span>
<span ng-switch-when="category">{{ propertyData.value.props.name }}</span>
<span ng-switch-default
ng-bind="(propertyData.value !== undefined) ? propertyData.value : '-'"
ng-attr-title="{{propertyData.value}}"/>
</div>
</div>
</div>
</dd>
</dl>
</div>
<div class="detail-panel-latest-activity">
<h3>{{ I18n.t('js.label_latest_activity') }}</h3>
<exclusive-edit>
<ul>
<li ng-repeat="activity in activities | latestItems:activitiesSortedInDescendingOrder:3"
class="work-package-details-activities-activity"
ng-init="currentAnchor = 'note-' + ($index+1);
activityNo = activities.length - $index;">
<user-activity work-package="workPackage"
activity="activity"
activity-no="activityNo"
input-element-id="'add-comment-text'"
autocomplete-path="{{ autocompletePath }}">
</li>
</ul>
<activity-comment work-package="workPackage"
activities="activities"
autocomplete-path="{{ autocompletePath }}">
</activity-comment>
</exclusive-edit>
</div>