Skip to content

Commit 21942c5

Browse files
authored
Merge pull request #339 from Digipalvelutehdas/feature/organization-logo-upload
Add Logo Upload on Organization Settings
2 parents c90b468 + 99bc36d commit 21942c5

File tree

8 files changed

+117
-0
lines changed

8 files changed

+117
-0
lines changed

core/lib/i18n/en.i18n.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,8 @@
414414
"organizationRemoveManagers_description": "Are you sure you want to remove this user as a manager?",
415415
"organizationRemoveManagers_removeButton": "Remove",
416416
"organizationRemoveManagers_title": "Remove user as a manager",
417+
"organizationSettings_uploadLogo_heading": "Upload logo",
418+
"organizationSettings_uploadLogoText": "You can upload a logo for your organization. The logo will appear in the catalogue and on the single organization profile.",
417419
"organizationSettingsDelete_buttonText_delete": "Delete",
418420
"organizationSettingsDelete_text_information": "The organization information will be removed and this action cannot be undone.",
419421
"organizationSettingsDelete_title": "Delete the Organization profile",
@@ -824,6 +826,9 @@
824826
"uploadApiLogoButton": "Upload logo",
825827
"uploadApiLogo_confirm_delete": "Are you sure you want to delete this logo?",
826828
"uploadApiLogo_successfully_deleted": "Logo successfully deleted!",
829+
"uploadOrganizationLogoButton": "Upload logo",
830+
"uploadOrganizationLogo_confirm_delete": "Are you sure you want to delete this logo?",
831+
"uploadOrganizationLogo_successfully_deleted": "Logo successfully deleted!",
827832
"uploadProjectLogoButton_uploadButton_uploadLogo": "Upload Logo",
828833
"uploadCoverPhoto_confirm_delete": "Cover photo area will show primary branding color after photo has been deleted. The image will be removed from the collection.",
829834
"uploadCoverPhoto_acceptedExtensions": "Only .jpg, .jpeg, .png and .gif file formats are allowed.",

organizations/client/profile/settings/settings.html

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,14 @@ <h3 class="panel-title">
1010
</h3>
1111
</div>
1212
<div class="panel-body">
13+
<h3>
14+
{{_ "organizationSettings_uploadLogo_heading" }}
15+
</h3>
16+
<p>
17+
{{_ "organizationSettings_uploadLogoText" }}
18+
</p>
19+
{{> uploadOrganizationLogo organization=organization }}
20+
<hr class="panel-hr" />
1321
{{> addOrganizationManagerForm organization=organization }}
1422
{{> organizationManagersList organization=organization }}
1523
</div>
File renamed without changes.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
.organization-logo-file {
2+
margin-bottom: 1em;
3+
}
4+
5+
.organization-logo-file .fa {
6+
vertical-align: 0;
7+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<template name="uploadOrganizationLogo">
2+
<div class="organization-logo-file">
3+
{{# unless uploadedOrganizationLogoFile }}
4+
{{> uploadOrganizationLogoButton }}
5+
{{ else }}
6+
<ul class="list-group">
7+
<li class="list-group-item">
8+
<i class="fa fa-file-text-o" aria-hidden="true"></i>
9+
{{ uploadedOrganizationLogoFile.filename }}
10+
<span class="pull-right">
11+
<a class="btn btn-xs btn-danger delete-organizationLogo">
12+
<i class="fa fa-trash-o fa-lg" aria-hidden="true"></i>
13+
</a>
14+
</span>
15+
</li>
16+
</ul>
17+
{{/ unless }}
18+
</div>
19+
</template>
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/* eslint-env browser */
2+
import { Template } from 'meteor/templating';
3+
import { TAPi18n } from 'meteor/tap:i18n';
4+
import { Mongo } from 'meteor/mongo';
5+
import { sAlert } from 'meteor/juliancwirko:s-alert';
6+
7+
import OrganizationLogo from '/organizations/logo/collection/collection';
8+
import Organizations from '../../../collection';
9+
10+
Template.uploadOrganizationLogo.onCreated(function () {
11+
const instance = this;
12+
13+
// Subscribe to Organization logo
14+
instance.subscribe('allOrganizationLogo');
15+
});
16+
17+
Template.uploadOrganizationLogo.helpers({
18+
uploadedOrganizationLogoFile () {
19+
const organizationLogoFileId = Organizations.findOne().organizationLogoFileId;
20+
21+
let organizationLogoFile;
22+
23+
if (organizationLogoFileId) {
24+
// Convert to Mongo ObjectID
25+
const objectId = new Mongo.Collection.ObjectID(organizationLogoFileId);
26+
27+
// Get Organization logo file Object
28+
organizationLogoFile = OrganizationLogo.findOne(objectId);
29+
}
30+
return organizationLogoFile;
31+
},
32+
});
33+
34+
Template.uploadOrganizationLogo.events({
35+
'click .delete-organizationLogo': function (event, templateInstance) {
36+
// Show confirmation dialog to user
37+
// eslint-disable-next-line no-alert
38+
const confirmation = confirm(TAPi18n.__('uploadOrganizationLogo_confirm_delete'));
39+
40+
const organization = templateInstance.data.organization;
41+
42+
// Check if user clicked "OK"
43+
if (confirmation === true) {
44+
// Get organizationLogoFileId from organization
45+
const organizationLogoFileId = organization.organizationLogoFileId;
46+
47+
// Convert to Mongo ObjectID
48+
const objectId = new Mongo.Collection.ObjectID(organizationLogoFileId);
49+
50+
// Remove Organization logo object
51+
OrganizationLogo.remove(objectId);
52+
53+
// Remove Organization logo file id field
54+
Organizations.update(organization._id, {
55+
$unset: { organizationLogoFileId: '' },
56+
});
57+
58+
// Get deletion success message
59+
const message = TAPi18n.__('uploadOrganizationLogo_successfully_deleted');
60+
61+
sAlert.success(message);
62+
}
63+
},
64+
});
65+
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<template name="uploadOrganizationLogoButton">
2+
<button class="btn btn-primary fileBrowse">
3+
{{_ "uploadOrganizationLogoButton" }}
4+
</button>
5+
</template>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { Template } from 'meteor/templating';
2+
import OrganizationLogo from '/organizations/logo/collection/collection';
3+
import $ from 'jquery';
4+
5+
Template.uploadOrganizationLogoButton.onRendered(() => {
6+
// Assign resumable browse to element
7+
OrganizationLogo.resumable.assignBrowse($('.fileBrowse'));
8+
});

0 commit comments

Comments
 (0)