Skip to content
This repository was archived by the owner on Jan 16, 2023. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion hawk/public/build/bundle.css

Large diffs are not rendered by default.

30 changes: 22 additions & 8 deletions hawk/public/build/bundle.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion hawk/public/build/bundle.js.map

Large diffs are not rendered by default.

27 changes: 19 additions & 8 deletions hawk/public/javascripts/settings-form.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,23 @@ module.exports = function () {
* Send request to invite new member to the project
*
* @param projectId
* @param form
* @param emailOrForm
* @param resendInvite
*/
let inviteMember = function (projectId, form) {
let input = document.getElementById(projectId);
let inviteMember = function (projectId, emailOrForm, resendInvite = false) {
let input, email;

if (!input) return;
if (typeof emailOrForm === 'string') {
email = emailOrForm;
} else {
input = document.getElementById(projectId);

let email = input.value;
if (!input) return;

email = input.value;
}

if (!email) return;

hawkso.ajax.call({
type: 'POST',
Expand All @@ -73,8 +82,9 @@ module.exports = function () {
style: result.success ? 'success' : 'error',
message: result.message
});
if (result.success) {
hawkso.toggler.toggle(form);

if (result.success && typeof emailOrForm !== 'string') {
hawkso.toggler.toggle(emailOrForm);
input.value = '';
}
},
Expand All @@ -86,7 +96,8 @@ module.exports = function () {
},
data: JSON.stringify({
email: email,
projectId: projectId
projectId: projectId,
resendInvite: resendInvite
})
});
};
Expand Down
4 changes: 2 additions & 2 deletions hawk/public/stylesheets/garage/project.css
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@
color: #da8c05;
}

&--can-grant-access {
&--clickable {
cursor: pointer;
}
}
Expand Down Expand Up @@ -270,4 +270,4 @@
color: var(--grayText);
line-height: 1em;
margin: 0 0 20px;
}
}
40 changes: 25 additions & 15 deletions hawk/routes/garage/project.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
let express = require('express');
let router = express.Router();
let uuid = require('uuid');
let Twig = require('twig');
let email = require('../../modules/email');
let project = require('../../models/project');
let user = require('../../models/user');
let translit = require('../../modules/translit');
const express = require('express');
const router = express.Router();
const uuid = require('uuid');
const Twig = require('twig');
const email = require('../../modules/email');
const project = require('../../models/project');
const user = require('../../models/user');
const translit = require('../../modules/translit');

/**
* POST /project/add handler
Expand Down Expand Up @@ -74,7 +74,8 @@ let add = function (req, res) {
*/
let inviteMember = function (req, res) {
let userEmail = req.body.email,
projectId = req.body.projectId;
projectId = req.body.projectId,
resendInvite = req.body.resendInvite;

if (!userEmail) {
res.json({
Expand All @@ -95,11 +96,20 @@ let inviteMember = function (req, res) {
return {foundProject, foundUser};
});
})
.then(function ({foundProject, foundUser}) {
return project.addMember(foundProject._id, foundProject.uri, foundUser._id)
.then(function () {
return {foundProject, foundUser};
});
.then(async function ({foundProject, foundUser}) {
console.log(await project.get(foundProject._id));

try {
await project.addMember(foundProject._id, foundProject.uri, foundUser._id);
} catch (e) {
console.log('Cannot add a new member because', e);

if (!resendInvite) {
throw new Error(e);
}
}

return {foundProject, foundUser};
})
.then(function ({foundProject, foundUser}) {
let inviteHash = project.generateInviteHash(foundUser._id, foundProject._id),
Expand Down Expand Up @@ -220,4 +230,4 @@ router.post('/project/editNotifies', editNotifies);
router.post('/project/saveWebhook', saveWebhook);
router.post('/project/grantAdminAccess', granAdminAccess);

module.exports = router;
module.exports = router;
6 changes: 3 additions & 3 deletions hawk/views/garage/settings/project.twig
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
{% set canGrantAdminAccess = member.role == 'member' and not member.is_pending and project.user.role == 'admin' %}
<span class="project__member-role project__member-role--{{ member.role|escape }}
{{ member.is_pending ? 'project__member-role--pending' : '' }}
{{ canGrantAdminAccess ? 'project__member-role--can-grant-access' : '' }}"
{{ canGrantAdminAccess ? 'project__member-role--clickable' : '' }}"
{% if canGrantAdminAccess %}
onclick="hawkso.settingsForm.grantAdminAccess('{{ project.id|escape }}', '{{ member.id|escape }}', this)"
{% endif %}
Expand All @@ -52,7 +52,7 @@
Admin
{% else %}
{% if member.is_pending %}
Invitation sent
<span class="project__member-role--clickable" onclick="hawkso.settingsForm.inviteMember('{{ project.id|escape }}', '{{ member.email|escape }}', true)">Send invitation again</span>
{% else %}
{{ project.user.role == 'admin' ? 'Grant admin access' : 'Member' }}
{% endif %}
Expand Down Expand Up @@ -146,4 +146,4 @@
</div>
</div>
</div>
</div>
</div>
2 changes: 1 addition & 1 deletion hawk/views/yard/form.twig
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<form class="yard-form__container" method="POST" action="{{ action|escape }}">
<div class="yard-form__header">{{ title|escape }}</div>
{% if message %}
<div class="yard-form__message yard-form__message--{{ message.type|escape }}">{{ message.text|escape }}</div>
<div class="yard-form__message yard-form__message--{{ message.type }}">{{ message.text }}</div>
{% endif %}
{% for field in fields %}
<fieldset class="yard-form__section">
Expand Down