Move slack, hipchat and jabber integrations to plugins
This commit is contained in:
@@ -31,60 +31,6 @@
|
||||
<?= $this->form->checkbox('integration_gravatar', t('Enable Gravatar images'), 1, $values['integration_gravatar'] == 1) ?>
|
||||
</div>
|
||||
|
||||
<h3><img src="<?= $this->url->dir() ?>assets/img/jabber-icon.png"/> <?= t('Jabber (XMPP)') ?></h3>
|
||||
<div class="listing">
|
||||
<?= $this->form->checkbox('integration_jabber', t('Send notifications to Jabber'), 1, $values['integration_jabber'] == 1) ?>
|
||||
|
||||
<?= $this->form->label(t('XMPP server address'), 'integration_jabber_server') ?>
|
||||
<?= $this->form->text('integration_jabber_server', $values, $errors, array('placeholder="tcp://myserver:5222"')) ?>
|
||||
<p class="form-help"><?= t('The server address must use this format: "tcp://hostname:5222"') ?></p>
|
||||
|
||||
<?= $this->form->label(t('Jabber domain'), 'integration_jabber_domain') ?>
|
||||
<?= $this->form->text('integration_jabber_domain', $values, $errors, array('placeholder="example.com"')) ?>
|
||||
|
||||
<?= $this->form->label(t('Username'), 'integration_jabber_username') ?>
|
||||
<?= $this->form->text('integration_jabber_username', $values, $errors) ?>
|
||||
|
||||
<?= $this->form->label(t('Password'), 'integration_jabber_password') ?>
|
||||
<?= $this->form->password('integration_jabber_password', $values, $errors) ?>
|
||||
|
||||
<?= $this->form->label(t('Jabber nickname'), 'integration_jabber_nickname') ?>
|
||||
<?= $this->form->text('integration_jabber_nickname', $values, $errors) ?>
|
||||
|
||||
<?= $this->form->label(t('Multi-user chat room'), 'integration_jabber_room') ?>
|
||||
<?= $this->form->text('integration_jabber_room', $values, $errors, array('placeholder="myroom@conference.example.com"')) ?>
|
||||
|
||||
<p class="form-help"><?= $this->url->doc(t('Help on Jabber integration'), 'jabber') ?></p>
|
||||
</div>
|
||||
|
||||
<h3><img src="<?= $this->url->dir() ?>assets/img/hipchat-icon.png"/> <?= t('Hipchat') ?></h3>
|
||||
<div class="listing">
|
||||
<?= $this->form->checkbox('integration_hipchat', t('Send notifications to Hipchat'), 1, $values['integration_hipchat'] == 1) ?>
|
||||
|
||||
<?= $this->form->label(t('API URL'), 'integration_hipchat_api_url') ?>
|
||||
<?= $this->form->text('integration_hipchat_api_url', $values, $errors) ?>
|
||||
|
||||
<?= $this->form->label(t('Room API ID or name'), 'integration_hipchat_room_id') ?>
|
||||
<?= $this->form->text('integration_hipchat_room_id', $values, $errors) ?>
|
||||
|
||||
<?= $this->form->label(t('Room notification token'), 'integration_hipchat_room_token') ?>
|
||||
<?= $this->form->text('integration_hipchat_room_token', $values, $errors) ?>
|
||||
|
||||
<p class="form-help"><?= $this->url->doc(t('Help on Hipchat integration'), 'hipchat') ?></p>
|
||||
</div>
|
||||
|
||||
<h3><i class="fa fa-slack fa-fw"></i> <?= t('Slack') ?></h3>
|
||||
<div class="listing">
|
||||
<?= $this->form->checkbox('integration_slack_webhook', t('Send notifications to a Slack channel'), 1, $values['integration_slack_webhook'] == 1) ?>
|
||||
|
||||
<?= $this->form->label(t('Webhook URL'), 'integration_slack_webhook_url') ?>
|
||||
<?= $this->form->text('integration_slack_webhook_url', $values, $errors) ?>
|
||||
<?= $this->form->label(t('Channel/Group/User (Optional)'), 'integration_slack_webhook_channel') ?>
|
||||
<?= $this->form->text('integration_slack_webhook_channel', $values, $errors) ?>
|
||||
|
||||
<p class="form-help"><?= $this->url->doc(t('Help on Slack integration'), 'slack') ?></p>
|
||||
</div>
|
||||
|
||||
<div class="form-actions">
|
||||
<input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/>
|
||||
</div>
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
<h2><?= t('Integration with third-party services') ?></h2>
|
||||
</div>
|
||||
|
||||
<form method="post" action="<?= $this->url->href('project', 'integration', array('project_id' => $project['id'])) ?>" autocomplete="off">
|
||||
<form method="post" action="<?= $this->url->href('project', 'integrations', array('project_id' => $project['id'])) ?>" autocomplete="off">
|
||||
<?= $this->form->csrf() ?>
|
||||
|
||||
<?= $this->hook->render('template:project:integrations', array('values' => $values)) ?>
|
||||
|
||||
<h3><i class="fa fa-github fa-fw"></i> <?= t('Github webhooks') ?></h3>
|
||||
<div class="listing">
|
||||
@@ -12,86 +13,15 @@
|
||||
<p class="form-help"><?= $this->url->doc(t('Help on Github webhooks'), 'github-webhooks') ?></p>
|
||||
</div>
|
||||
|
||||
|
||||
<h3><img src="<?= $this->url->dir() ?>assets/img/gitlab-icon.png"/> <?= t('Gitlab webhooks') ?></h3>
|
||||
<div class="listing">
|
||||
<input type="text" class="auto-select" readonly="readonly" value="<?= $this->url->href('webhook', 'gitlab', array('token' => $webhook_token, 'project_id' => $project['id']), false, '', true) ?>"/><br/>
|
||||
<p class="form-help"><?= $this->url->doc(t('Help on Gitlab webhooks'), 'gitlab-webhooks') ?></p>
|
||||
</div>
|
||||
|
||||
|
||||
<h3><i class="fa fa-bitbucket fa-fw"></i> <?= t('Bitbucket webhooks') ?></h3>
|
||||
<div class="listing">
|
||||
<input type="text" class="auto-select" readonly="readonly" value="<?= $this->url->href('webhook', 'bitbucket', array('token' => $webhook_token, 'project_id' => $project['id']), false, '', true) ?>"/><br/>
|
||||
<p class="form-help"><?= $this->url->doc(t('Help on Bitbucket webhooks'), 'bitbucket-webhooks') ?></p>
|
||||
</div>
|
||||
|
||||
|
||||
<h3><img src="<?= $this->url->dir() ?>assets/img/jabber-icon.png"/> <?= t('Jabber (XMPP)') ?></h3>
|
||||
<div class="listing">
|
||||
<?= $this->form->checkbox('jabber', t('Send notifications to Jabber'), 1, isset($values['jabber']) && $values['jabber'] == 1) ?>
|
||||
|
||||
<?= $this->form->label(t('XMPP server address'), 'jabber_server') ?>
|
||||
<?= $this->form->text('jabber_server', $values, $errors, array('placeholder="tcp://myserver:5222"')) ?>
|
||||
<p class="form-help"><?= t('The server address must use this format: "tcp://hostname:5222"') ?></p>
|
||||
|
||||
<?= $this->form->label(t('Jabber domain'), 'jabber_domain') ?>
|
||||
<?= $this->form->text('jabber_domain', $values, $errors, array('placeholder="example.com"')) ?>
|
||||
|
||||
<?= $this->form->label(t('Username'), 'jabber_username') ?>
|
||||
<?= $this->form->text('jabber_username', $values, $errors) ?>
|
||||
|
||||
<?= $this->form->label(t('Password'), 'jabber_password') ?>
|
||||
<?= $this->form->password('jabber_password', $values, $errors) ?>
|
||||
|
||||
<?= $this->form->label(t('Jabber nickname'), 'jabber_nickname') ?>
|
||||
<?= $this->form->text('jabber_nickname', $values, $errors) ?>
|
||||
|
||||
<?= $this->form->label(t('Multi-user chat room'), 'jabber_room') ?>
|
||||
<?= $this->form->text('jabber_room', $values, $errors, array('placeholder="myroom@conference.example.com"')) ?>
|
||||
|
||||
<p class="form-help"><?= $this->url->doc(t('Help on Jabber integration'), 'jabber') ?></p>
|
||||
|
||||
<div class="form-actions">
|
||||
<input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<h3><img src="<?= $this->url->dir() ?>assets/img/hipchat-icon.png"/> <?= t('Hipchat') ?></h3>
|
||||
<div class="listing">
|
||||
<?= $this->form->checkbox('hipchat', t('Send notifications to Hipchat'), 1, isset($values['hipchat']) && $values['hipchat'] == 1) ?>
|
||||
|
||||
<?= $this->form->label(t('API URL'), 'hipchat_api_url') ?>
|
||||
<?= $this->form->text('hipchat_api_url', $values, $errors) ?>
|
||||
|
||||
<?= $this->form->label(t('Room API ID or name'), 'hipchat_room_id') ?>
|
||||
<?= $this->form->text('hipchat_room_id', $values, $errors) ?>
|
||||
|
||||
<?= $this->form->label(t('Room notification token'), 'hipchat_room_token') ?>
|
||||
<?= $this->form->text('hipchat_room_token', $values, $errors) ?>
|
||||
|
||||
<p class="form-help"><?= $this->url->doc(t('Help on Hipchat integration'), 'hipchat') ?></a></p>
|
||||
|
||||
<div class="form-actions">
|
||||
<input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<h3><i class="fa fa-slack fa-fw"></i> <?= t('Slack') ?></h3>
|
||||
<div class="listing">
|
||||
<?= $this->form->checkbox('slack', t('Send notifications to a Slack channel'), 1, isset($values['slack']) && $values['slack'] == 1) ?>
|
||||
|
||||
<?= $this->form->label(t('Webhook URL'), 'slack_webhook_url') ?>
|
||||
<?= $this->form->text('slack_webhook_url', $values, $errors) ?>
|
||||
<?= $this->form->label(t('Channel/Group/User (Optional)'), 'slack_webhook_channel') ?>
|
||||
<?= $this->form->text('slack_webhook_channel', $values, $errors) ?>
|
||||
|
||||
<p class="form-help"><?= $this->url->doc(t('Help on Slack integration'), 'slack') ?></p>
|
||||
|
||||
<div class="form-actions">
|
||||
<input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
20
app/Template/project/notifications.php
Normal file
20
app/Template/project/notifications.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<div class="page-header">
|
||||
<h2><?= t('Notifications') ?></h2>
|
||||
</div>
|
||||
<?php if (empty($types)): ?>
|
||||
<p class="alert"><?= t('There is no notification method registered.') ?></p>
|
||||
<?php else: ?>
|
||||
<form method="post" action="<?= $this->url->href('project', 'notifications', array('project_id' => $project['id'])) ?>" autocomplete="off">
|
||||
|
||||
<?= $this->form->csrf() ?>
|
||||
|
||||
<h4><?= t('Notification methods:') ?></h4>
|
||||
<?= $this->form->checkboxes('notification_types', $types, $notifications) ?>
|
||||
|
||||
<div class="form-actions">
|
||||
<input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/>
|
||||
<?= t('or') ?>
|
||||
<?= $this->url->link(t('cancel'), 'project', 'show', array('project_id' => $project['id'])) ?>
|
||||
</div>
|
||||
</form>
|
||||
<?php endif ?>
|
||||
@@ -12,8 +12,11 @@
|
||||
<li <?= $this->app->getRouterController() === 'project' && $this->app->getRouterAction() === 'share' ? 'class="active"' : '' ?>>
|
||||
<?= $this->url->link(t('Public access'), 'project', 'share', array('project_id' => $project['id'])) ?>
|
||||
</li>
|
||||
<li <?= $this->app->getRouterController() === 'project' && $this->app->getRouterAction() === 'integration' ? 'class="active"' : '' ?>>
|
||||
<?= $this->url->link(t('Integrations'), 'project', 'integration', array('project_id' => $project['id'])) ?>
|
||||
<li <?= $this->app->getRouterController() === 'project' && $this->app->getRouterAction() === 'notifications' ? 'class="active"' : '' ?>>
|
||||
<?= $this->url->link(t('Notifications'), 'project', 'notifications', array('project_id' => $project['id'])) ?>
|
||||
</li>
|
||||
<li <?= $this->app->getRouterController() === 'project' && $this->app->getRouterAction() === 'integrations' ? 'class="active"' : '' ?>>
|
||||
<?= $this->url->link(t('Integrations'), 'project', 'integrations', array('project_id' => $project['id'])) ?>
|
||||
</li>
|
||||
<li <?= $this->app->getRouterController() === 'project' && $this->app->getRouterAction() === 'edit' ? 'class="active"' : '' ?>>
|
||||
<?= $this->url->link(t('Edit project'), 'project', 'edit', array('project_id' => $project['id'])) ?>
|
||||
|
||||
13
app/Template/user/integrations.php
Normal file
13
app/Template/user/integrations.php
Normal file
@@ -0,0 +1,13 @@
|
||||
<div class="page-header">
|
||||
<h2><?= t('Integrations') ?></h2>
|
||||
</div>
|
||||
|
||||
<form method="post" action="<?= $this->url->href('user', 'integrations', array('user_id' => $user['id'])) ?>" autocomplete="off">
|
||||
<?= $this->form->csrf() ?>
|
||||
<?php $hooks = $this->hook->render('template:user:integrations', array('values' => $values)) ?>
|
||||
<?php if (! empty($hooks)): ?>
|
||||
<?= $hooks ?>
|
||||
<?php else: ?>
|
||||
<p class="alert"><?= t('No external integration registered.') ?></p>
|
||||
<?php endif ?>
|
||||
</form>
|
||||
@@ -56,6 +56,9 @@
|
||||
<li <?= $this->app->getRouterController() === 'user' && $this->app->getRouterAction() === 'external' ? 'class="active"' : '' ?>>
|
||||
<?= $this->url->link(t('External accounts'), 'user', 'external', array('user_id' => $user['id'])) ?>
|
||||
</li>
|
||||
<li <?= $this->app->getRouterController() === 'user' && $this->app->getRouterAction() === 'integrations' ? 'class="active"' : '' ?>>
|
||||
<?= $this->url->link(t('Integrations'), 'user', 'integrations', array('user_id' => $user['id'])) ?>
|
||||
</li>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($this->user->isAdmin()): ?>
|
||||
|
||||
Reference in New Issue
Block a user