Skip to content
This repository has been archived by the owner on Jun 16, 2020. It is now read-only.

Commit

Permalink
Merge branch 'feature/OPENE-22' into develop
Browse files Browse the repository at this point in the history
* feature/OPENE-22:
  File icon chagnes
  Fix emailing case documents.
  1 - Changed the auto suggest to title instead of the document name 2 - Changed the pdf icon
  dashboard layout fix
  title fix for dashboard
  layout fixes for tasks
  brushed up the dashboard-task view
  1 - Temporarily hard coding Sag to the auto-suggest document list since translate won't work for some odd reason.
  1- File icon support for additional mime types
  Disable START WORKFLOW button when case is locked.
  layout case view
  Revert Lanre's "minor fix". It breaks the delete button for documents.
  adding translations
  1 - Translations in the correct namespace
  1 - Constant add to constant file 2 - Translated filter values for list filter dropdown for case listing widgets
  translations
  • Loading branch information
DarkStar1 committed Oct 1, 2015
2 parents f9afda7 + d326508 commit 4aec27c
Show file tree
Hide file tree
Showing 65 changed files with 1,437 additions and 1,302 deletions.
30 changes: 30 additions & 0 deletions app/assets/css/app.css
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,10 @@ legend {
padding: 0;
}

textarea {
border: solid 1px rgba(0,0,0,0.2);
}


/* Specific style classes and IDs */

Expand Down Expand Up @@ -125,12 +129,20 @@ legend {
.toggle-btn:focus,
.toggle-btn:active {
background-color: rgba(0,0,0,0.1);
cursor: pointer;
}

.closed + .toggle-obj {
display: none;
}

.clickable:hover,
.clickable:focus,
.clickable:active {
background-color: rgba(0,0,0,0.1);
cursor: pointer;
}


/* Virtual repeat lists */

Expand Down Expand Up @@ -227,3 +239,21 @@ td .md-button {
.md-checked .md-label {
font-weight: 700;
}

/* Dashboard - task list */
#dashboardTasksCard {
min-height: 532px;
}

#dashboardTasksCard md-list-item {
padding-left: 5px;
}

#dashboardTasksCard md-list-item:hover {
background-color: #F7F7F7;
cursor: pointer;
}

#dashboardTasksCard md-list-item md-icon {
margin-right: 10px;
}
Binary file added app/assets/images/filetypes/avi-file-16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/assets/images/filetypes/avi-file-24.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/assets/images/filetypes/bmp-file-24.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/assets/images/filetypes/bmp-file-32.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/assets/images/filetypes/doc-file-24.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/assets/images/filetypes/doc-file-32.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/assets/images/filetypes/eml-file-16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/assets/images/filetypes/eml-file-24.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/assets/images/filetypes/eml-file-32.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/assets/images/filetypes/eps-file-16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/assets/images/filetypes/eps-file-24.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/assets/images/filetypes/eps-file-32.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/assets/images/filetypes/jpeg-file-24.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/assets/images/filetypes/jpeg-file-32.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/assets/images/filetypes/numbers-file-16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/assets/images/filetypes/numbers-file-24.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/assets/images/filetypes/odg-file-16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/assets/images/filetypes/odg-file-24.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/assets/images/filetypes/odp-file-16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/assets/images/filetypes/odp-file-24.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/assets/images/filetypes/ods-file-16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/assets/images/filetypes/ods-file-24.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/assets/images/filetypes/ods-file-32.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/assets/images/filetypes/odt-file-24.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/assets/images/filetypes/odt-file-32.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/assets/images/filetypes/pages-file-16.png
Binary file added app/assets/images/filetypes/pages-file-24.png
Binary file modified app/assets/images/filetypes/pdf-file-24.png
100644 → 100755
Binary file modified app/assets/images/filetypes/pdf-file-32.png
100644 → 100755
Binary file added app/assets/images/filetypes/pdf-old-24.png
Binary file modified app/assets/images/filetypes/png-file-24.png
100644 → 100755
Binary file modified app/assets/images/filetypes/png-file-32.png
100644 → 100755
Binary file modified app/assets/images/filetypes/ppt-file-24.png
100644 → 100755
Binary file modified app/assets/images/filetypes/ppt-file-32.png
100644 → 100755
Binary file added app/assets/images/filetypes/txt-file-24.png
Binary file modified app/assets/images/filetypes/txt-file-32.png
100644 → 100755
Binary file modified app/assets/images/filetypes/xls-file-24.png
100644 → 100755
Binary file modified app/assets/images/filetypes/xls-file-32.png
100644 → 100755
Binary file added app/assets/images/filetypes/xlsx-file-16.png
Binary file added app/assets/images/filetypes/xlsx-file-24.png
Binary file added app/assets/images/filetypes/xml-file-24.png
Binary file added app/assets/images/filetypes/zip-file-16.png
Binary file added app/assets/images/filetypes/zip-file-24.png
Binary file modified app/assets/images/filetypes/zip-file-32.png
100644 → 100755
16 changes: 8 additions & 8 deletions app/src/cases/CaseController.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
.controller('CaseController', CaseController);

CaseController.$inject = [
'$scope',
'$scope',
'$mdDialog',
'$location',
'$translate',
Expand All @@ -27,20 +27,20 @@
var vm = this;
vm.cases = [];
vm.caseFilter = [{
name: 'All cases',
name: $translate.instant('CASE.FILTER.ALL_CASES'),
value: 'all'
},{
name: 'Active cases',
name: $translate.instant('CASE.FILTER.ACTIVE_CASES'),
field: 'oe:status',
value: 'active',
value: 'active'
}, {
name: 'Closed cases',
name: $translate.instant('CASE.FILTER.CLOSED_CASES'),
field: 'oe:status',
value: 'closed',
value: 'closed'
}, {
name: 'Passive cases',
name: $translate.instant('CASE.FILTER.PASSIVE_CASES'),
field: 'oe:status',
value: 'passive',
value: 'passive'
}];
vm.caseFilterChoice = vm.caseFilter[0];

Expand Down
1 change: 0 additions & 1 deletion app/src/cases/caseService.js
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,6 @@
}

function sendEmail(caseId, message) {
console.log(message);
return $http.post('/alfresco/service/api/openesdh/case/' + caseId + '/email', message).then(function (response) {
return response.data;
});
Expand Down
35 changes: 17 additions & 18 deletions app/src/cases/view/case.html
Original file line number Diff line number Diff line change
Expand Up @@ -69,43 +69,42 @@ <h3 class="md-title">{{ 'COMMON.INFORMATION' | translate }}</h3>
<dt flex="33">{{ 'COMMON.DESCRIPTION' | translate }}</dt><dd flex="66">{{ case["cm:description"].value }}</dd>
</dl>
</md-card-content>
<div class="md-actions" layout="column" layout-padding layout-align="start start">
<div class="md-actions" layout="row" layout-padding layout-align="start center">
<md-button class="md-primary" ng-click="vm.editCase($event)"
ng-disabled="caseIsLocked">{{ 'CASE.EDIT_INFORMATION' | translate }}</md-button>
<md-button class="md-primary" ng-disabled="true">{{ 'CASE.PRINT_CASE' | translate }}</md-button>
<md-button class="md-primary" ng-click="vm.startWorklfow()">{{ 'CASE.START_WORKFLOW' | translate }}</md-button>
<md-button class="md-primary" ng-click="vm.startWorklfow()" ng-disabled="caseIsLocked">{{ 'CASE.START_WORKFLOW' | translate }}</md-button>
</div>
</md-card>
</div>

<div flex="100" flex-gt-md="75">
<md-card ng-controller="DocumentController as docCtrl">
<md-card-content>
<md-card-content style="min-height: 400px;">
<h3 class="md-title">{{ 'DOCUMENT.DOCUMENTS' | translate }}</h3>

<div class="repeat-table">
<div class="repeat-header" layout="row">
<span class="r" flex="5"></span>
<span class="r" flex>{{ 'COMMON.TITLE' | translate }}</span>
<span class="r" flex>{{ 'COMMON.TYPE' | translate }}</span>
<span class="r" flex>{{ 'COMMON.CATEGORY' | translate }}</span>
<span class="r" flex>{{ 'COMMON.CREATEDBY' | translate }}</span>
<span class="r" flex>{{ 'COMMON.CREATED' | translate }}</span>
<span class="r" flex>{{ 'COMMON.MODIFIED' | translate }}</span>
<span flex="10"></span>
<span layout="row" flex="80">
<span class="r" flex="5"></span>
<span class="r" flex>{{ 'COMMON.TITLE' | translate }}</span>
<span class="r" flex="15">{{ 'COMMON.TYPE' | translate }}</span>
<span class="r" flex="15">{{ 'COMMON.CATEGORY' | translate }}</span>
<span class="r" flex="20">{{ 'COMMON.CREATEDBY' | translate }}</span>
<span class="r" flex="20">{{ 'COMMON.MODIFIED' | translate }}</span>
</span>
<span flex="20"></span>
</div>
<md-virtual-repeat-container md-auto-shrink>
<div md-virtual-repeat="doc in docCtrl.documents" class="repeat-item" layout="row">
<a class="r-rowlink" href="#/cases/case/{{docCtrl.caseId}}/doc/{{doc.nodeRef | nodeRefUri}}" layout="row" flex="90">
<a class="r-rowlink" href="#/cases/case/{{docCtrl.caseId}}/doc/{{doc.nodeRef | nodeRefUri}}" layout="row" flex="80">
<span class="r" flex="5"><img class="md-avatar" ng-src="/app/assets/images/filetypes/{{doc.thumbNailURL}}"/></span>
<span class="r" flex>{{ doc["cm:title"] }}</span>
<span class="r muted" flex>{{ doc["doc:type"] }}</span>
<span class="r muted" flex>{{ doc["doc:category"] }}</span>
<span class="r muted" flex>
<span class="r muted" flex="15">{{ doc["doc:type"] }}</span>
<span class="r muted" flex="15">{{ doc["doc:category"] }}</span>
<span class="r muted" flex="20">
<span ng-repeat="owner in doc['doc:owner']">{{owner.fullname}}</span>
</span>
<span class="r muted" flex>{{ doc["cm:created"] | openeDate }}</span>
<span class="r muted" flex>{{ doc["cm:modified"] | openeDate }}</span>
<span class="r muted" flex="20">{{ doc["cm:modified"] | openeDate }}</span>
</a>
<span flex="10">
<md-button class="md-primary" ng-click="docCtrl.previewDocument(doc.mainDocNodeRef)">{{ 'COMMON.PREVIEW' | translate }}</md-button>
Expand Down
50 changes: 19 additions & 31 deletions app/src/cases/view/cases.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,53 +11,41 @@ <h1 class="md-headline" layout-margin>{{ 'CASE.CASES' | translate }}</h1>
finished="vm.getCases">
</opene-list-filter>

<md-menu>
<md-button class="md-primary" ng-click="$mdOpenMenu($event)" aria-label="{{ 'CASE.CREATE_NEW_CASE' | translate }}">
<i class="material-icons">add</i>
{{ 'CASE.CREATE_NEW_CASE' | translate }}
</md-button>
<md-menu-content>
<md-menu-item><md-button ng-click="vm.createCase($event, 'standard')">{{ 'simple:case' | caseType }}</md-button></md-menu-item>
<md-menu-item><md-button ng-disabled="true">{{ 'CASE.CASETYPE_OTHER' | translate }}</md-button></md-menu-item>
</md-menu-content>
</md-menu>

</div>

<md-card>
<md-card-content>

<div class="repeat-table">
<div class="repeat-header" layout="row">
<span class="r" flex="5"></span>
<span class="r" flex="15">{{ 'COMMON.TITLE' | translate }}</span>
<span class="r" flex>{{ 'COMMON.ID' | translate }}</span>
<span class="r" flex>{{ 'COMMON.TYPE' | translate }}</span>
<span class="r" flex>{{ 'COMMON.CREATED' | translate }}</span>
<span class="r" flex>{{ 'CASE.STARTDATE' | translate }}</span>
<span class="r" flex>{{ 'CASE.ENDDATE' | translate }}</span>
<span class="r" flex>{{ 'COMMON.MODIFIED' | translate }}</span>
<span class="r" flex>{{ 'COMMON.STATUS' | translate }}</span>
<span flex></span>
<span layout="row" flex="95">
<span class="r" flex="5"></span>
<span class="r" flex>{{ 'COMMON.TITLE' | translate }}</span>
<span class="r" flex="15">{{ 'COMMON.ID' | translate }}</span>
<span class="r" flex="10">{{ 'COMMON.TYPE' | translate }}</span>
<span class="r" flex="15">{{ 'COMMON.CREATED' | translate }}</span>
<span class="r" flex="15">{{ 'COMMON.MODIFIED' | translate }}</span>
<span class="r" flex="10">{{ 'COMMON.STATUS' | translate }}</span>
</span>
<span flex="5"></span>
</div>
<md-virtual-repeat-container md-auto-shrink style="height: 470px;">
<div md-virtual-repeat="case in vm.cases" class="repeat-item" layout="row">
<a class="r-rowlink"
ui-sref="caseinfo({'caseId': case['oe:id']})"
layout="row"
class="{{ case['oe:status'] == 'passive' ? 'muted' : '' }}"
ui-sref="caseinfo({'caseId': case['oe:id']})" flex="90">
ui-sref="caseinfo({'caseId': case['oe:id']})"
flex="95">
<span class="r" flex="5"><i class="material-icons">folder_open</i></span>
<span class="r" flex="15">{{case["cm:title"]}}</span>
<span class="r muted" flex>{{case["oe:id"]}}</span>
<span class="r muted" flex>{{case["TYPE"] | caseType}}</span>
<span class="r muted" flex>{{case["cm:created"] | openeDate}}</span>
<span class="r muted" flex>{{case["base:startDate"] | openeDate}}</span>
<span class="r muted" flex>{{case["base:endDate"] | openeDate}}</span>
<span class="r muted" flex>{{case["cm:modified"] | openeDate}}</span>
<span class="r muted" flex>{{ case["oe:status"] | caseStatus }}</span>
<span class="r" flex>{{case["cm:title"]}}</span>
<span class="r muted" flex="15">{{case["oe:id"]}}</span>
<span class="r muted" flex="10">{{case["TYPE"] | caseType}}</span>
<span class="r muted" flex="15">{{case["cm:created"] | openeDate}}</span>
<span class="r muted" flex="15">{{case["cm:modified"] | openeDate}}</span>
<span class="r muted" flex="10">{{ case["oe:status"] | caseStatus }}</span>
</a>
<span flex="10" ng-show="vm.isAdmin"><md-button class="md-primary" ng-click="vm.deleteCase(case)">{{ 'COMMON.DELETE' | translate }}</md-button></span>
<span flex="5" ng-show="vm.isAdmin"><md-button class="md-primary" ng-click="vm.deleteCase(case)">{{ 'COMMON.DELETE' | translate }}</md-button></span>
</div>
</md-virtual-repeat-container>
</div>
Expand Down
5 changes: 5 additions & 0 deletions app/src/core/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,10 @@
admin: 'admin',
user: 'user',
guest: 'guest'
})
.constant('ALFRESCO_URI', {
apiProxy: '/alfresco/api/',
serviceApiProxy: '/alfresco/service/api/',
serviceSlingshotProxy: '/alfresco/service/slingshot/'
});
})();
12 changes: 6 additions & 6 deletions app/src/dashboard/view/dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ <h2 class="md-title">{{ 'CASE.MY_CASES' | translate }}</h2>
<span class="r" flex="30">{{ 'COMMON.ID' | translate }}</span>
<span class="r" flex="30">{{ 'COMMON.MODIFIED' | translate }}</span>
</div>
<md-virtual-repeat-container md-auto-shrink>
<md-virtual-repeat-container md-auto-shrink style="height: 200px;">
<div md-virtual-repeat="case in caseController.myCases" class="repeat-item">
<a class="r-rowlink" ui-sref="caseinfo({'caseId': case['oe:id']})" layout="row">
<span class="r" flex="10"><i class="material-icons">folder_open</i></span>
Expand Down Expand Up @@ -65,11 +65,11 @@ <h2 class="md-title">{{ 'DOCUMENT.MY_DOCUMENTS' | translate }}</h2>
<span class="r" flex="30">{{ 'COMMON.MODIFIED' | translate }}</span>
<span class="r" flex="30">{{ 'COMMON.MODIFIED_BY' | translate }}</span>
</div>
<md-virtual-repeat-container md-auto-shrink>
<md-virtual-repeat-container md-auto-shrink style="min-height: 150px;">
<div md-virtual-repeat="document in vm.documents" class="repeat-item">
<a class="r-rowlink" href="#/cases/case/{{ document.caseId }}/doc/{{ document.location.parent.nodeRef | nodeRefUri }}" layout="row">
<span class="r" flex="10"><img class="md-avatar" ng-src="/app/assets/images/filetypes/{{document.thumbNailURL}}"/></span>
<span class="r" flex="30">{{ document.displayName }}</span>
<span class="r" flex="30">{{ document.title }}</span>
<span class="r muted" flex="30">{{ document.modifiedOn | openeDate}}</span>
<span class="r muted" flex="30">{{ document.modifiedBy }}</span>

Expand All @@ -85,12 +85,12 @@ <h2 class="md-title">{{ 'DOCUMENT.MY_DOCUMENTS' | translate }}</h2>

<div flex="33">

<md-card ng-controller="tasksOverviewController as tasksCtrl">
<md-card ng-controller="tasksOverviewController as tasksCtrl" style="min-height: 850px;">
<md-card-content>
<h2 class="md-title">{{ 'TASK.MY_TASKS' | translate }}</h2>
<md-list>
<md-list-item class="md-2-line" ng-repeat="task in tasksCtrl.tasks">
<div class="md-list-item-text">
<md-list-item class="md-2-line clickable" ng-repeat="task in tasksCtrl.tasks">
<div class="md-list-item-text" ui-sref="workflowtask({ taskName: task.name, taskId : task.id })">
<h3>{{task.properties.bpm_description}}</h3>
<p>{{task.description}}</p>
</div>
Expand Down
7 changes: 4 additions & 3 deletions app/src/documents/DocumentController.js
Original file line number Diff line number Diff line change
Expand Up @@ -140,10 +140,11 @@
}
function emailDocuments() {
// Send the email
var toList = '';
var toList = [];
for (var person in vm.to) {
toList += vm.to[person].contactId + '; ';
};
// Backend still expects objects with nodeRef property
toList.push({nodeRef: vm.to[person].nodeRef});
}
caseService.sendEmail(caseId, {
'to': toList,
'subject': vm.subject,
Expand Down
2 changes: 1 addition & 1 deletion app/src/documents/view/document.html
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ <h3 class="md-title">{{ 'DOCUMENT.PREVIEW' | translate }}</h3>
<div flex="100">
<md-card>
<md-card-content>
<h3>{{ 'DOCUMENT.ATTACHMENTS' | translate }}</h3>
<h3>{{ 'DOCUMENT.ATTACHMENTS.ATTACHMENTS' | translate }}</h3>

<div class="repeat-table">
<div class="repeat-header" layout="row">
Expand Down
2 changes: 1 addition & 1 deletion app/src/files/fileService.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
var fsvc = this;
return {
getFileIconByMimetype: getFileIconByMimetype,
getFileExtension: getFileExtension,
getFileExtension: getFileExtension
};

fsvc.fileIcon.types = {
Expand Down
6 changes: 4 additions & 2 deletions app/src/header/view/header.html
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,11 @@
<img class="md-avatar" ng-src="/app/assets/images/filetypes/{{item.thumbNailURL}}"/>

<div class="md-list-item-text" layout="column">
<h3 ng-bind="item.name"></h3>
<h3 ng-bind="item.title"></h3>

<p><b>Case:</b> {{ item.case.caseTitle }}</p>
<!--TODO For some reason translate filter won't pick this up-->
<!--<p><b>{{ "CASE.CASE" | translate}}:</b> {{ item.case.caseTitle }}</p>-->
<p><b>Sag:</b> {{ item.case.caseTitle }}</p>
</div>
</md-list-item>

Expand Down
Loading

0 comments on commit 4aec27c

Please sign in to comment.