/trunk/lang/strings_english.txt |
@@ -24,14 +24,13 @@ |
$s_plugin_Discord_config = 'Configuration'; |
$s_plugin_Discord_url_webhook = 'Default Discord Webhook URL'; |
$s_plugin_Discord_url_webhooks = 'Additional Discord Webhook URLs'; |
//$s_plugin_Discord_bot_name = 'Discord Bot Name'; |
//$s_plugin_Discord_bot_icon = 'Discord Bot Icon'; |
$s_plugin_Discord_bot_name = 'Discord Bot Name'; |
$s_plugin_Discord_bot_icon = 'Discord Bot Icon'; |
$s_plugin_Discord_skip_bulk = 'Skip notification on bulk actions'; |
$s_plugin_Discord_link_names = 'Turn user names into Discord links (may cause excess Discord notifications)'; |
//$s_plugin_Discord_default_channel = 'Default Discord Channel'; |
//$s_plugin_Discord_channels = 'Discord Channels'; |
//$s_plugin_Discord_usernames = 'Discord Usernames'; |
$s_plugin_Discord_language = 'Language'; |
$s_plugin_Discord_default_channel = 'Default Discord Channel'; |
$s_plugin_Discord_channels = 'Discord Channels'; |
$s_plugin_Discord_usernames = 'Discord Usernames'; |
$s_plugin_Discord_columns = 'Discord Columns'; |
$s_plugin_Discord_bug_created = '[%s] %s created <%s|%s>. (%s)'; |
$s_plugin_Discord_bug_updated = '[%s] %s updated <%s|%s>. (%s)'; |
/trunk/lang/strings_french.txt |
@@ -26,14 +26,13 @@ |
$s_plugin_Discord_config = 'Configuration'; |
$s_plugin_Discord_url_webhook = 'URL de webhook Discord de défaut'; |
$s_plugin_Discord_url_webhooks = 'URLs de webhook Discord additionnels'; |
//$s_plugin_Discord_bot_name = 'Nom du bot Discord'; |
//$s_plugin_Discord_bot_icon = 'Icône du bot Discord'; |
$s_plugin_Discord_bot_name = 'Nom du bot Discord'; |
$s_plugin_Discord_bot_icon = 'Icône du bot Discord'; |
$s_plugin_Discord_skip_bulk = 'Ne pas envoyer de notification pour les actions en bloc'; |
$s_plugin_Discord_link_names = 'Convertir les noms d\'utilisateurs en liens Discord (peut causer des notifications excessives dans Discord)'; |
//$s_plugin_Discord_default_channel = 'Channel Discord de défault'; |
//$s_plugin_Discord_channels = 'Correspondances des channels'; |
//$s_plugin_Discord_usernames = 'Correspondances des noms d\'utilisateurs'; |
$s_plugin_Discord_language = 'Langue'; |
$s_plugin_Discord_default_channel = 'Channel Discord de défault'; |
$s_plugin_Discord_channels = 'Correspondances des channels'; |
$s_plugin_Discord_usernames = 'Correspondances des noms d\'utilisateurs'; |
$s_plugin_Discord_columns = 'Champs de bogues'; |
$s_plugin_Discord_bug_created = '[%s] %s a crée <%s|%s>. (%s)'; |
$s_plugin_Discord_bug_updated = '[%s] %s a modifié <%s|%s>. (%s)'; |
/trunk/lang/strings_russian.txt |
@@ -25,14 +25,13 @@ |
$s_plugin_Discord_config = 'Настройка'; |
$s_plugin_Discord_url_webhook = 'Discord Webhook URL по умолчанию'; |
$s_plugin_Discord_url_webhooks = 'Доплнительные Discord Webhook URLы'; |
//$s_plugin_Discord_bot_name = 'Имя Discord-бота'; |
//$s_plugin_Discord_bot_icon = 'Иконка Discord-бота'; |
$s_plugin_Discord_bot_name = 'Имя Discord-бота'; |
$s_plugin_Discord_bot_icon = 'Иконка Discord-бота'; |
$s_plugin_Discord_skip_bulk = 'Пропускать оповещения о групповых действиях'; |
$s_plugin_Discord_link_names = 'Делать имена пользователей ссылками (это может привести к большому количеству оповещений Discord)'; |
//$s_plugin_Discord_default_channel = 'Каналы Discord по умолчанию'; |
//$s_plugin_Discord_channels = 'Каналы Discord'; |
//$s_plugin_Discord_usernames = 'Пользователи Discord'; |
$s_plugin_Discord_language = 'язык'; |
$s_plugin_Discord_default_channel = 'Каналы Discord по умолчанию'; |
$s_plugin_Discord_channels = 'Каналы Discord'; |
$s_plugin_Discord_usernames = 'Пользователи Discord'; |
$s_plugin_Discord_columns = 'Колонки Discord'; |
$s_plugin_Discord_bug_created = '[%s] %s создал <%s|%s>. (%s)'; |
$s_plugin_Discord_bug_updated = '[%s] %s изменил <%s|%s>. (%s)'; |
/trunk/pages/config.php |
@@ -1,7 +1,8 @@ |
<?php |
/** |
* Discord Integration |
* Copyright (C) 2014 Karim Ratib (karim.ratib@gmail.com) |
* Copyright (C) Robin van Nunen (robin@vnunen.nl) for Discord modification |
* Copyright (C) Karim Ratib (karim@meedan.com) for original source |
* |
* Discord Integration is free software; you can redistribute it and/or |
* modify it under the terms of the GNU General Public License 2 |
@@ -18,160 +19,41 @@ |
* or see http://www.gnu.org/licenses/. |
*/ |
|
auth_reauthenticate( ); |
access_ensure_global_level( config_get( 'manage_plugin_threshold' ) ); |
form_security_validate('plugin_Discord_config'); |
access_ensure_global_level(config_get('manage_plugin_threshold')); |
/** |
* Sets plugin config option if value is different from current/default |
* |
* @param string $p_name option name |
* @param string $p_value value to set |
* |
* @return void |
*/ |
function config_set_if_needed($p_name, $p_value) |
{ |
if($p_value != plugin_config_get($p_name)) |
{ |
plugin_config_set($p_name, $p_value); |
} |
} |
|
html_page_top( plugin_lang_get( 'title' ) ); |
$t_redirect_url = plugin_page('config_page', true); |
layout_page_header(null, $t_redirect_url); |
layout_page_begin(); |
|
print_manage_menu( ); |
config_set_if_needed('url_webhook', gpc_get_string('url_webhook')); |
config_set_if_needed('skip_bulk', gpc_get_bool('skip_bulk')); |
config_set_if_needed('link_names', gpc_get_bool('link_names')); |
config_set_if_needed('language', gpc_get_string('language')); |
|
?> |
config_set_if_needed('hook_bug_report', gpc_get_bool('hook_bug_report')); |
config_set_if_needed('hook_bug_update', gpc_get_bool('hook_bug_update')); |
config_set_if_needed('hook_bug_deleted', gpc_get_bool('hook_bug_deleted')); |
config_set_if_needed('hook_bugnote_add', gpc_get_bool('hook_bugnote_add')); |
config_set_if_needed('hook_bugnote_edit', gpc_get_bool('hook_bugnote_edit')); |
config_set_if_needed('hook_bugnote_deleted', gpc_get_bool('hook_bugnote_deleted')); |
|
<br /> |
form_security_purge('plugin_Discord_config'); |
|
<form action="<?php echo plugin_page( 'config_edit' )?>" method="post"> |
<?php echo form_security_field( 'plugin_Discord_config_edit' ) ?> |
<table align="center" class="width75" cellspacing="1"> |
|
<tr> |
<td class="form-title" colspan="3"> |
<?php echo plugin_lang_get( 'title' ) . ' : ' . plugin_lang_get( 'config' )?> |
</td> |
</tr> |
|
<tr <?php echo helper_alternate_class( )?>> |
<td class="category"> |
<?php echo plugin_lang_get( 'url_webhook' )?> |
</td> |
<td colspan="2"> |
<input size="80" type="text" name="url_webhook" value="<?php echo plugin_config_get( 'url_webhook' )?>" /> |
</td> |
</tr> |
|
<tr <?php echo helper_alternate_class( )?>> |
<td class="category"> |
<?php echo plugin_lang_get( 'url_webhooks' )?> |
</td> |
<td colspan="2"> |
<p> |
Specifies the mapping between Mantis project names and Discord webhooks. |
</p> |
<p> |
Option name is <strong>plugin_Discord_url_webhooks</strong> and is an array of 'Mantis project name' => 'Discord webhook'. |
Array options must be set using the <a href="adm_config_report.php">Configuration Report</a> screen. |
The current value of this option is:<pre><?php var_export(plugin_config_get( 'url_webhooks' ))?></pre> |
</p> |
</td> |
</tr> |
|
<!-- |
<tr <?php echo helper_alternate_class( )?>> |
<td class="category"> |
<?php echo plugin_lang_get( 'bot_name' )?> |
</td> |
<td colspan="2"> |
<input type="text" name="bot_name" value="<?php echo plugin_config_get( 'bot_name' )?>" /> |
</td> |
</tr> |
|
<tr <?php echo helper_alternate_class( )?>> |
<td class="category"> |
<?php echo plugin_lang_get( 'bot_icon' )?> |
</td> |
<td colspan="2"> |
<p> |
Can be either a URL pointing to small image or an emoji of the form :emoji:</br> |
Defaults to the Mantis logo. |
</p> |
<input type="text" name="bot_icon" value="<?php echo plugin_config_get( 'bot_icon' )?>" /> |
</td> |
</tr> |
--> |
|
<tr <?php echo helper_alternate_class( )?>> |
<td class="category"> |
<?php echo plugin_lang_get( 'skip_bulk' )?> |
</td> |
<td colspan="2"> |
<input type="checkbox" name="skip_bulk" <?php if (plugin_config_get( 'skip_bulk' )) echo "checked"; ?> /> |
</td> |
</tr> |
|
<tr <?php echo helper_alternate_class( )?>> |
<td class="category"> |
<?php echo plugin_lang_get( 'link_names' )?> |
</td> |
<td colspan="2"> |
<input type="checkbox" name="link_names" <?php if (plugin_config_get( 'link_names' )) echo "checked"; ?> /> |
</td> |
</tr> |
|
<!-- |
|
<tr <?php echo helper_alternate_class( )?>> |
<td class="category"> |
<?php echo plugin_lang_get( 'default_channel' )?> |
</td> |
<td colspan="2"> |
<input type="text" name="default_channel" value="<?php echo plugin_config_get( 'default_channel' )?>" /> |
</td> |
</tr> |
|
<tr <?php echo helper_alternate_class( )?>> |
<td class="category"> |
<?php echo plugin_lang_get( 'channels' )?> |
</td> |
<td colspan="2"> |
<p> |
Specifies the mapping between Mantis project names and Discord #channels. |
</p> |
<p> |
Option name is <strong>plugin_Discord_channels</strong> and is an array of 'Mantis project name' => 'Discord channel name'. |
Array options must be set using the <a href="adm_config_report.php">Configuration Report</a> screen. |
The current value of this option is:<pre><?php var_export(plugin_config_get( 'channels' ))?></pre> |
</p> |
</td> |
</tr> |
--> |
|
<tr <?php echo helper_alternate_class( )?>> |
<td class="category"> |
<?php echo plugin_lang_get( 'columns' )?> |
</td> |
<td colspan="2"> |
<p> |
Specifies the bug fields that should be attached to the Discord notifications. |
</p> |
<p> |
Option name is <strong>plugin_Discord_columns</strong> and is an array of bug column names. |
Array options must be set using the <a href="adm_config_report.php">Configuration Report</a> screen. |
<?php |
$t_columns = columns_get_all( $t_project_id ); |
$t_all = implode( ', ', $t_columns ); |
?> |
Available column names are:<div><textarea name="all_columns" readonly="readonly" cols="80" rows="5"><?php echo $t_all ?></textarea></div> |
The current value of this option is:<pre><?php var_export(plugin_config_get( 'columns' ))?></pre> |
</p> |
</td> |
</tr> |
|
<tr <?php echo helper_alternate_class( )?>> |
<td class="category"> |
<?php echo plugin_lang_get( 'language' )?> |
</td> |
<td colspan="2"> |
<input type="text" name="language" value="<?php echo plugin_config_get( 'language' )?>" /> |
</td> |
</tr> |
|
<tr> |
<td class="center" colspan="3"> |
<input type="submit" class="button" value="<?php echo lang_get( 'change_configuration' )?>" /> |
</td> |
</tr> |
|
</table> |
</form> |
|
<?php |
html_page_bottom(); |
html_operation_successful($t_redirect_url); |
layout_page_end(); |
/trunk/pages/config_page.php |
@@ -0,0 +1,184 @@ |
<?php |
/** |
* Discord Integration |
* Copyright (C) Robin van Nunen (robin@vnunen.nl) for Discord modification |
* Copyright (C) Karim Ratib (karim@meedan.com) for original source |
* |
* Discord Integration is free software; you can redistribute it and/or |
* modify it under the terms of the GNU General Public License 2 |
* as published by the Free Software Foundation. |
* |
* Discord Integration is distributed in the hope that it will be useful, |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
* GNU General Public License for more details. |
* |
* You should have received a copy of the GNU General Public License |
* along with Discord Integration; if not, write to the Free Software |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA |
* or see http://www.gnu.org/licenses/. |
*/ |
|
access_ensure_global_level( config_get( 'manage_plugin_threshold' ) ); |
|
layout_page_header( plugin_lang_get( 'title' ) ); |
|
layout_page_begin( 'manage_overview_page.php' ); |
|
print_manage_menu( 'manage_plugin_page.php' ); |
|
?> |
|
<div class="col-md-12 col-xs-12"> |
<div class="space-10"></div> |
<div class="form-container"> |
<form action="<?php echo plugin_page( 'config' ) ?>" method="post"> |
<fieldset> |
<div class="widget-box widget-color-blue2"> |
<div class="widget-header widget-header-small"> |
<h4 class="widget-title lighter"> |
<i class="ace-icon fa fa-exchange"></i> |
<?php echo plugin_lang_get( 'title' ) ?> |
</h4> |
</div> |
|
<?php echo form_security_field( 'plugin_Discord_config' ) ?> |
<div class="widget-body"> |
<div class="widget-main no-padding"> |
<div class="table-responsive"> |
<table class="table table-bordered table-condensed table-striped"> |
|
<tr> |
<td class="category"> |
<?php echo plugin_lang_get( 'url_webhook' ) ?> |
</td> |
<td> |
<input size="80" type="text" name="url_webhook" value="<?php echo plugin_config_get( 'url_webhook' )?>" /> |
</td> |
</tr> |
|
<tr> |
<td class="category"> |
<?php echo plugin_lang_get( 'url_webhooks' )?> |
</td> |
<td colspan="2"> |
<p> |
Specifies the mapping between Mantis project names and Discord webhooks. |
</p> |
<p> |
Option name is <strong>plugin_Discord_url_webhooks</strong> and is an array of 'Mantis project name' => 'Discord webhook'. |
Array options must be set using the <a href="adm_config_report.php">Configuration Report</a> screen. |
The current value of this option is:<pre><?php var_export(plugin_config_get( 'url_webhooks' ))?></pre> |
</p> |
</td> |
</tr> |
|
<tr> |
<td class="category"> |
<?php echo plugin_lang_get( 'skip_bulk' )?> |
</td> |
<td colspan="2"> |
<input type="checkbox" name="skip_bulk" <?php if (plugin_config_get( 'skip_bulk' )) echo "checked"; ?> /> |
</td> |
</tr> |
|
<tr> |
<td class="category"> |
<?php echo plugin_lang_get( 'link_names' )?> |
</td> |
<td colspan="2"> |
<input type="checkbox" name="link_names" <?php if (plugin_config_get( 'link_names' )) echo "checked"; ?> /> |
</td> |
</tr> |
|
<tr> |
<td class="category"> |
<?php echo lang_get( 'language' ) ?> |
</td> |
<td> |
<select id="language" name="language" class="input-sm"> |
<?php print_language_option_list( plugin_config_get('language') ) ?> |
</select> |
</td> |
</tr> |
|
<tr> |
<td class="category"> |
<?php echo plugin_lang_get( 'actions' ) ?> |
</td> |
<td> |
<table> |
<thead> |
<tr> |
<th style="width: 64px; text-align: center;"><?=plugin_lang_get('enabled')?></th> |
<th><?=plugin_lang_get('action')?></th> |
</tr> |
</thead> |
<tbody> |
<?php |
foreach(['hook_bug_report', 'hook_bug_update', 'hook_bug_deleted', 'hook_bugnote_add', 'hook_bugnote_edit', 'hook_bugnote_deleted'] as $name) |
{ |
echo ' |
<tr> |
<td style="text-align: center;"><input type="checkbox" id="' . $name . '" name="' . $name . '" ' . (plugin_config_get($name) ? 'checked' : '') . '/></td> |
<td><label for="' . $name . '">' . plugin_lang_get($name) . '</label></td> |
</tr>'; |
} |
?> |
</tbody> |
</table> |
</td> |
</tr> |
|
<tr> |
<td class="category"> |
<?php echo plugin_lang_get( 'columns' )?> |
</td> |
<td colspan="2"> |
<p> |
Specifies the bug fields that should be attached to the Discord notifications. |
</p> |
<p> |
Option name is <strong>plugin_Discord_columns</strong> and is an array of bug column names. |
Array options must be set using the <a href="adm_config_report.php">Configuration Report</a> screen. |
<?php |
$t_columns = columns_get_all( @$t_project_id ); |
$t_all = implode( ', ', $t_columns ); |
?> |
Available column names are:<div><textarea name="all_columns" readonly="readonly" cols="80" rows="5"><?php echo $t_all ?></textarea></div> |
The current value of this option is:<pre><?php echo preg_replace('/[0-9]+ => /', '', var_export(plugin_config_get( 'columns' ), true)) ?></pre> |
</p> |
</td> |
</tr> |
|
<tr> |
<td class="category"> |
<?php echo plugin_lang_get( 'usernames' )?> |
</td> |
<td colspan="2"> |
<p> |
Specifies the mapping between Mantis and Discord user names. |
</p> |
<p> |
Option name is <strong>plugin_Discord_usernames</strong> and is an array of 'Mantis user name' => 'Discord user name'. |
Array options must be set using the <a href="adm_config_report.php">Configuration Report</a> screen. |
The current value of this option is:<pre><?php var_export(plugin_config_get( 'usernames' ))?></pre> |
</p> |
</td> |
</tr> |
|
</table> |
</div> |
</div> |
<div class="widget-toolbox padding-8 clearfix"> |
<input type="submit" class="btn btn-primary btn-white btn-round" value="<?php echo plugin_lang_get( 'action_update' ) ?>" /> |
</div> |
</div> |
</div> |
</fieldset> |
</form> |
</div> |
</div> |
|
<?php |
layout_page_end(); |