diff --git a/datamodels/2.x/combodo-webhook-integration/.github/workflows/action.yml b/datamodels/2.x/combodo-webhook-integration/.github/workflows/action.yml new file mode 100644 index 0000000000..d3d625e079 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/.github/workflows/action.yml @@ -0,0 +1,43 @@ +name: Add PRs to Combodo PRs Dashboard + +on: + pull_request_target: + types: + - opened + +jobs: + add-to-project: + name: Add PR to Combodo Project + runs-on: ubuntu-latest + steps: + - name: Check if author is a member of the organization + id: check-membership + run: | + ORG="Combodo" + AUTHOR=$(jq -r .pull_request.user.login "$GITHUB_EVENT_PATH") + RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" -H "Authorization: token ${{ secrets.PR_AUTOMATICALLY_ADD_TO_PROJECT }}" \ + "https://api.github.com/orgs/$ORG/members/$AUTHOR") + if [ "$RESPONSE" == "404" ]; then + echo "project_url=https://github.com/orgs/Combodo/projects/5" >> $GITHUB_ENV + echo "is_member=false" >> $GITHUB_ENV + else + echo "project_url=https://github.com/orgs/Combodo/projects/4" >> $GITHUB_ENV + echo "is_member=true" >> $GITHUB_ENV + + fi + + - name: Add internal tag if member + if: env.is_member == 'true' + run: | + curl -X POST -H "Authorization: token ${{ secrets.PR_AUTOMATICALLY_ADD_TO_PROJECT }}" \ + -H "Accept: application/vnd.github.v3+json" \ + https://api.github.com/repos/Combodo/combodo-webhook-integration/issues/${{ github.event.pull_request.number }}/labels \ + -d '{"labels":["internal"]}' + env: + is_member: ${{ env.is_member }} + + - name: Add PR to the appropriate project + uses: actions/add-to-project@v1.0.2 + with: + project-url: ${{ env.project_url }} + github-token: ${{ secrets.PR_AUTOMATICALLY_ADD_TO_PROJECT }} diff --git a/datamodels/2.x/combodo-webhook-integration/SendWebRequest.php b/datamodels/2.x/combodo-webhook-integration/SendWebRequest.php new file mode 100644 index 0000000000..3f43a12d62 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/SendWebRequest.php @@ -0,0 +1,117 @@ + + */ +class SendWebRequest extends AsyncTask +{ + /** + * @inheritDoc + * @throws \CoreException + * @throws \Exception + */ + public static function Init() + { + $aParams = array + ( + "category" => "core/cmdb", + "key_type" => "autoincrement", + "name_attcode" => "created", + "state_attcode" => "", + "reconc_keys" => array(), + "db_table" => "priv_async_send_web_request", + "db_key_field" => "id", + "db_finalclass_field" => "", + "display_template" => "", + ); + MetaModel::Init_Params($aParams); + MetaModel::Init_InheritAttributes(); + + MetaModel::Init_AddAttribute(new AttributeLongText("request", array("allowed_values"=>null, "sql"=>"request", "default_value"=>null, "is_null_allowed"=>false, "depends_on"=>array()))); + } + + /** + * Add the $oWebRequest to the queue to be send later (background task for example) + * + * @param \Combodo\iTop\Core\WebRequest $oWebRequest + * @param \EventNotification|null $oLog + * + * @throws \ArchivedObjectException + * @throws \CoreCannotSaveObjectException + * @throws \CoreException + * @throws \CoreUnexpectedValue + * @throws \CoreWarning + * @throws \MySQLException + * @throws \OQLException + * + * @return void + */ + public static function AddToQueue(WebRequest $oWebRequest, $oLog = null) + { + $oNew = new static(); + if ($oLog) + { + $oNew->Set('event_id', $oLog->GetKey()); + } + + $oNew->Set('request', serialize($oWebRequest)); + $oNew->DBInsert(); + } + + /** + * @inheritDoc + */ + public function DoProcess() + { + $aIssues = array(); + $oWebRequest = unserialize($this->Get('request')); + + // Retrieve log event + /** @var \AttributeExternalKey $oAttDef */ + $oAttDef = MetaModel::GetAttributeDef(get_class($this), 'event_id'); + $oLog = MetaModel::GetObject($oAttDef->GetTargetClass(), $this->Get('event_id'), false, true); + + $oSenderService = WebRequestSender::GetInstance(); + $aResult = $oSenderService->Send($oWebRequest, $aIssues, $oLog, WebRequestSender::ENUM_SEND_MODE_SYNC); + switch ($aResult['sender_status']) + { + case WebRequestSender::ENUM_SEND_STATE_OK: + return 'Sent'; + + case WebRequestSender::ENUM_SEND_STATE_PENDING: + return 'Whoops! Seems like a bug occurred, the request should be sent in synchronous mode'; + + case WebRequestSender::ENUM_SEND_STATE_ERROR: + return 'Failed: '.implode(', ', $aIssues); + } + } +} \ No newline at end of file diff --git a/datamodels/2.x/combodo-webhook-integration/asset/img/icon-integrations-48px.png b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-integrations-48px.png new file mode 100644 index 0000000000..0d9dc64da5 Binary files /dev/null and b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-integrations-48px.png differ diff --git a/datamodels/2.x/combodo-webhook-integration/asset/img/icon-remote-application-connection-48px.png b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-remote-application-connection-48px.png new file mode 100644 index 0000000000..52274d7581 Binary files /dev/null and b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-remote-application-connection-48px.png differ diff --git a/datamodels/2.x/combodo-webhook-integration/asset/img/icon-remote-application-type-48px.png b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-remote-application-type-48px.png new file mode 100644 index 0000000000..03ca4b5c0e Binary files /dev/null and b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-remote-application-type-48px.png differ diff --git a/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-48px.png b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-48px.png new file mode 100644 index 0000000000..4aa52ec924 Binary files /dev/null and b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-48px.png differ diff --git a/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-application-48px.png b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-application-48px.png new file mode 100644 index 0000000000..100cb5e44c Binary files /dev/null and b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-application-48px.png differ diff --git a/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-googlechat-48px.png b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-googlechat-48px.png new file mode 100644 index 0000000000..a4dc162627 Binary files /dev/null and b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-googlechat-48px.png differ diff --git a/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-itop-48px.png b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-itop-48px.png new file mode 100644 index 0000000000..0103c93633 Binary files /dev/null and b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-itop-48px.png differ diff --git a/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-microsoftteams-48px.png b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-microsoftteams-48px.png new file mode 100644 index 0000000000..be3d9c38a6 Binary files /dev/null and b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-microsoftteams-48px.png differ diff --git a/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-rocketchat-48px.png b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-rocketchat-48px.png new file mode 100644 index 0000000000..0fb73286ff Binary files /dev/null and b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-rocketchat-48px.png differ diff --git a/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-slack-48px.png b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-slack-48px.png new file mode 100644 index 0000000000..103ceae20f Binary files /dev/null and b/datamodels/2.x/combodo-webhook-integration/asset/img/icon-webhook-slack-48px.png differ diff --git a/datamodels/2.x/combodo-webhook-integration/composer.json b/datamodels/2.x/combodo-webhook-integration/composer.json new file mode 100644 index 0000000000..c0eb3ee87f --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/composer.json @@ -0,0 +1,11 @@ +{ + "license": "AGPL-3.0-only", + "autoload": { + "psr-4": { + "Combodo\\iTop\\": "src/" + } + }, + "require": { + "composer-runtime-api": "^2.0" + } +} diff --git a/datamodels/2.x/combodo-webhook-integration/composer.lock b/datamodels/2.x/combodo-webhook-integration/composer.lock new file mode 100644 index 0000000000..a6cc28476c --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/composer.lock @@ -0,0 +1,20 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "e9143a24c2fca639844f83abbdd23f90", + "packages": [], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "composer-runtime-api": "^2.0" + }, + "platform-dev": [], + "plugin-api-version": "2.1.0" +} diff --git a/datamodels/2.x/combodo-webhook-integration/data.struct.remote_application_type.xml b/datamodels/2.x/combodo-webhook-integration/data.struct.remote_application_type.xml new file mode 100644 index 0000000000..7a21c01339 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/data.struct.remote_application_type.xml @@ -0,0 +1,21 @@ + + + + iTop + + + Slack + + + Rocket.Chat + + + Google Chat + + + Microsoft Teams + + + Other / Generic + + diff --git a/datamodels/2.x/combodo-webhook-integration/datamodel.combodo-webhook-integration.xml b/datamodels/2.x/combodo-webhook-integration/datamodel.combodo-webhook-integration.xml new file mode 100644 index 0000000000..53697a1bce --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/datamodel.combodo-webhook-integration.xml @@ -0,0 +1,3039 @@ + + + + + Typology + + grant_by_profile,bizmodel,searchable + false + autoincrement + remoteapplicationtype + id + + + + + + + + asset/img/icon-remote-application-type-48px.png + + + + + + + + + RemoteApplicationConnection + remoteapplicationtype_id + + + + +
+ + + 10 + + + 100 + + +
+
+
+ + Typology + + grant_by_profile,bizmodel,searchable + false + autoincrement + remoteapplicationconnection + id + + + + + + + + asset/img/icon-remote-application-connection-48px.png + + + + + + + + + + + remoteapplicationtype_id + DEL_AUTO + RemoteApplicationType + false + + + + 1-development + 2-test + 3-production + + environment + 2-test + false + + + url + + false + + + ActionWebhook + remoteapplicationconnection_id + + + + + false + public + Overload-DBObject + + + + + + +
+ + + 10 + + + 10 + + + 10 + + + 20 + + + 30 + + + 40 + + + + + + + 100 + + +
+ + + + 10 + + + 20 + + + 30 + + + 40 + + + + + + + 20 + + + 30 + + + 40 + + + +
+
+ + RemoteApplicationConnection + + grant_by_profile,bizmodel,searchable + false + autoincrement + remoteitopconnection + id + + + + + + + + + + + + + + + + + + + auth_user + + false + + + auth_pwd + + false + + + version + 1.3 + false + + + + + false + public + Overload-DBObject + + Get('auth_user'); + $sAuthPwd = $this->Get('auth_pwd'); + $sEncryptedCredentials = base64_encode("$sAuthUser:$sAuthPwd"); + + $aHeaders[] = "Authorization: Basic $sEncryptedCredentials"; + + return $aHeaders; + } +]]> + + + + +
+ + + 10 + + + 10 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + + + 20 + + + 10 + + + 20 + + + + + + + 100 + + +
+
+
+ + RemoteApplicationConnection + + grant_by_profile,bizmodel,searchable + false + autoincrement + remoteitopconnectiontoken + id + + + + + + + + + + + + + + + + + + + version + 1.3 + false + + + token + + false + + + + + false + public + Overload-DBObject + + Get('token'); + $aHeaders[] = "Auth-Token: " . $sToken; + + return $aHeaders; +} +]]> + + + + +
+ + + 10 + + + 10 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + + + 20 + + + 10 + + + + + + + 100 + + +
+
+
+ + RemoteApplicationConnection + + grant_by_profile,bizmodel,searchable + false + autoincrement + remoteoauthconnection + id + + + + + + + + + + + + + + + + + + + oauth2client_id + + false + Oauth2Client + DEL_AUTO + all + + + + + + + false + public + Overload-DBObject + + EnrichHeader($this, $aHeaders); + + return $aHeaders; + } +]]> + + + + +
+ + + 10 + + + 10 + + + 10 + + + 20 + + + 30 + + + 40 + + + + + 20 + + + 10 + + + + + + + 100 + + +
+
+
+ + cmdbAbstractObject + + + + + grant_by_profile,core/cmdb,application + false + autoincrement + priv_action_webhook + id + + + + + + + + + + + asset/img/icon-webhook-48px.png + + + + + + + + + remoteapplicationconnection_id + DEL_AUTO + RemoteApplicationConnection + false + + + test_remoteapplicationconnection_id + DEL_AUTO + RemoteApplicationConnection + true + + + + get + post + put + patch + delete + head + + method + post + false + + + path + + true + + + headers + + true + + + payload + + true + + + prepare_payload_callback + + true + + + process_response_callback + + true + + + + + true + public + Overload-DBObject + + GetRemoteApplicationConnection(); + } +]]> + + + + false + public + Overload-DBObject + Set('headers', 'Content-type: application/json'); + } +]]> + + + + false + protected + Overload-DBObject + + SetNotificationLanguage(); + + // Surround with try/catch to make sure to restore user language in case of crash and don't contaminate the rest of the app. + try { + // Get web request parameters + // - URL + $sURL = $this->PrepareURL($aContextArgs, $oLog); + if (!is_null($oLog)) + { + $oLog->Set('webhook_url', ($sURL !== null) ? $sURL : 'No test URL provided'); + } + // - Method + $sMethod = $this->PrepareMethod($aContextArgs, $oLog); + // - Headers + $aHeaders = $this->PrepareHeaders($aContextArgs, $oLog); + if (!is_null($oLog)) + { + $this->LogHeaders($this->Get('headers'), $aHeaders, $oLog); + $this->TruncateLogAttributeForDB($oLog, 'headers'); + } + // - Payload + // ... Force payload to be prepared from callback in the method of this class (avoid polymorphic inheritance) + if ($this->HasPreparePayloadCallback()) { + $payload = self::PreparePayload($aContextArgs, $oLog); + } + // ... Payload can be prepared using the polymorphic inheritance + else { + $payload = $this->PreparePayload($aContextArgs, $oLog); + } + if (!is_null($oLog)) + { + $this->LogPayload($this->Get('payload'), $payload, $oLog); + $this->TruncateLogAttributeForDB($oLog, 'payload'); + } + } catch (Exception $oException) { + throw $oException; + } finally { + // Switch back to current user language + $this->SetNotificationLanguage($sPreviousLanguage, $aPreviousPluginProperties['language_code'] ?? null); + } + + // Get module parameters + $sConnectionTimeoutInSeconds = MetaModel::GetModuleSetting('combodo-webhook-integration', 'timeout', \Combodo\iTop\Service\WebRequestSender::DEFAULT_CONNECTION_TIMEOUT_IN_SECONDS); + + // Prepare cURL options + $aCURLOptions = array( + CURLOPT_RETURNTRANSFER => true, + CURLOPT_CUSTOMREQUEST => strtoupper($sMethod), + // Note: We pass headers as a cURL option to avoid bug N°3267 in \utils::DoPostRequest() + CURLOPT_HTTPHEADER => $aHeaders, + CURLOPT_CONNECTTIMEOUT => $sConnectionTimeoutInSeconds, + CURLOPT_POSTFIELDS => $payload, + ); + + // Actually send payload for POST and PUT requests + switch ($sMethod) { + case 'post': + case 'put': + $aCURLOptions[CURLOPT_POST] = true; + break; + } + + // Certificate options + // - Should we check its validity? + if (MetaModel::GetModuleSetting('combodo-webhook-integration', 'certificate_check', true)) + { + $aCURLOptions[CURLOPT_SSL_VERIFYPEER] = true; + $aCURLOptions[CURLOPT_SSL_VERIFYHOST] = 2; + } + else + { + $aCURLOptions[CURLOPT_SSL_VERIFYPEER] = false; + $aCURLOptions[CURLOPT_SSL_VERIFYHOST] = 0; + } + // - Location of CA certificate file + $sCACertFile = MetaModel::GetModuleSetting('combodo-webhook-integration', 'ca_certificate_file', ''); + if (!empty($sCACertFile)) + { + // The name of a file containing a PEM formatted certificate. + $aCURLOptions[CURLOPT_SSLCERT] = $sCACertFile; + } + + $oWebRequest = new \Combodo\iTop\Core\WebRequest($sURL); + $oWebRequest->SetOptions($aCURLOptions); + + return $oWebRequest; + } +]]> + + + + false + protected + Overload-DBObject + + GetRemoteApplicationConnection(); + + // Get URL + if($oRemoteApplicationConnection !== null) + { + $sURL = MetaModel::ApplyParams($oRemoteApplicationConnection->Get('url').$this->Get('path'), $aContextArgs); + } + elseif($this->IsBeingTested()) + { + $sURL = null; + } + else + { + + throw new Exception('Action should have at least one webhook URL set!'); + } + + return $sURL; + } +]]> + + + + false + protected + Overload-DBObject + + Get('method'); + } +]]> + + + + false + protected + Overload-DBObject + + Get('headers'), $aContextArgs); + $aLines = preg_split('/\r\n|\r|\n/', $sHeadersAsText); + foreach ($aLines as $sLine) { + $sLine = trim($sLine); + if (empty($sLine)) { + continue; + } + + $aHeaders[] = $sLine; + } + + if (count($aHeaders) === 0) { + $aHeaders[] = 'Content-type: application/json'; + } + + // Retrieve connection, to let it add some extra headers (e.g. authentication) + $oRemoteApplicationconnection = $this->GetRemoteApplicationConnection(); + $aExtraHeaders = $oRemoteApplicationconnection->PrepareHeaders($aContextArgs, $oLog); + + foreach($aExtraHeaders as $sExtraHeader) + { + $aHeaders[] = $sExtraHeader; + } + + return $aHeaders; + } +]]> + + + + false + protected + Overload-DBObject + + Get('prepare_payload_callback'); + if (empty($sCallbackFQCN)) + { + // Convert / encode payload depending on the content-type header + $sContentType = null; + $aHeaders = $this->PrepareHeaders($aContextArgs, $oLog); + $sContentType = $this->GetContentType($aHeaders); + + switch ($sContentType) { + case 'application/json': + // Apply params to payload recursively, to send properly encoded JSON + $payload = $this->ApplyParamsToJson($aContextArgs, $this->Get('payload')); + break; + + default: + $payload = MetaModel::ApplyParams($this->Get('payload'), $aContextArgs); + break; + } + } + else + { + /** @var \DBObject $oTriggeringObject */ + $oTriggeringObject = $aContextArgs['this->object()']; + + $oCallBack = new Combodo\iTop\Service\CallbackService($sCallbackFQCN); + $oCallBack->CheckCallbackSignature(get_class($oTriggeringObject), ['array', EventNotification::class, ActionWebhook::class]); + $oCallBack->Invoke($oTriggeringObject, [$aContextArgs, $oLog, $this]); + } + + return $payload; + } +]]> + + + + false + protected + Overload-DBObject + + ObfuscateRawHeader($sAuthHeaderObfuscated); + $sObfuscatedPreparedHeaders = Combodo\iTop\Service\WebRequestService::GetInstance()->ObfuscateRawHeader(implode("\n", $aPreparedHeaders)); + + $oLog->Set('headers', "Raw:\n".$sObfuscatedRawHeaders."\n\nAfter preparation:\n".$sObfuscatedPreparedHeaders); + } +]]> + + + + false + protected + Overload-DBObject + + Set('payload', "Raw:\n".$sRawPayload."\n\nAfter preparation:\n".$sPreparedPayload); + } +]]> + + + + false + protected + Overload-DBObject + + $value) { + $sPreparedKey = MetaModel::ApplyParams($sKey, $aContextArgs); + $aPreparedData[$sPreparedKey] = $this->ApplyParamsToValue($aContextArgs, $value); + } + + return $aPreparedData; + } +]]> + + + + false + protected + Overload-DBObject + + ApplyParamsToArray($aContextArgs, $value) : (is_string($value) ? MetaModel::ApplyParams($value, $aContextArgs) : $value); + return $preparedValue; + } +]]> + + + + false + protected + Overload-DBObject + + get_class($this), + 'action_id' => $this->GetKey(), + 'action_name' => $this->Get('name'), + 'payload' => $sInputAsJson, + 'json_last_error' => json_last_error(), + 'json_last_error_msg' => json_last_error_msg(), + ]; + IssueLog::Error('Webhook Action failed: Wrong JSON format for input', $sLogChannel, $aLogContext); + + throw new Combodo\iTop\Core\Notification\Action\Webhook\Exception\WebhookInvalidJsonValueException('Wrong JSON format for input, see error log for more information.'); + } + $aJsonInputAsArray = $this->ApplyParamsToValue($aContextArgs, $aJsonInputAsArray); + $sJsonWithReplacedPlaceholders = json_encode($aJsonInputAsArray); + + return $sJsonWithReplacedPlaceholders; + } +]]> + + + + false + public + Overload-DBObject + + IsBeingTested() ? 'test_remoteapplicationconnection_id' : 'remoteapplicationconnection_id'; + $sID = $this->Get($sAttCode); + + /** @var \AttributeExternalKey $oAttDef */ + $oAttDef = MetaModel::GetAttributeDef(get_class($this), $sAttCode); + $sClass = $oAttDef->GetTargetClass(); + + return MetaModel::GetObject($sClass, $sID, false, true); + } +]]> + + + + false + public + Overload-DBObject + + Get('prepare_payload_callback')) > 0; + } +]]> + + + + false + public + Overload-DBObject + + Get('process_response_callback')) > 0; + } +]]> + + + + false + protected + Overload-DBObject + + + + + + false + protected + Overload-DBObject + + GetMaxSize(); + $sFitText = $oLog->Get($sAttCode); + $sEndingText = '[TRUNCATED]'; + // Note: We don't use mb_* functions as we don't want to cut after a whole character but after a certain byte length + if ($iMaxSize && (strlen($sFitText) > $iMaxSize)) + { + $sFitText = substr($sFitText, 0, $iMaxSize - strlen($sEndingText)) . $sEndingText; + $oLog->Set($sAttCode, $sFitText); + } + } +]]> + + + + + + EVENT_DB_CHECK_TO_WRITE + + function(Combodo\iTop\Service\Events\EventData $oEventData) + { + if (trim($this->Get('payload')) === '') { + return ; + } + try { + Combodo\iTop\Core\Notification\Action\_ActionWebhook::JsonDecodeWithError($this->Get('payload')); + } catch(Combodo\iTop\Core\Notification\Action\Webhook\Exception\WebhookInvalidJsonValueException $e) { + $this->AddCheckIssue(Dict::S('Class:ActionWebhook/Error:InvalidJSONFormatForPayload')); + } + } + + 10 + + + +
+ + + 10 + + + 10 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + + + 20 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + + + + + 20 + + + 10 + + + 10 + + + + + 30 + + + 10 + + + 20 + + + + + + + 100 + + +
+ + + + 10 + + + 20 + + + 30 + + + +
+
+ + ActionWebhook + + grant_by_profile,core/cmdb,application + false + autoincrement + priv_action_itop_webhook + id + + + + + + + + + + + asset/img/icon-webhook-itop-48px.png + + + + + + + + + + false + public + Overload-DBObject + + Set("headers", "Content-type: application/x-www-form-urlencoded"); + } +]]> + + + + false + protected + Overload-DBObject + + GetRemoteApplicationConnection(); + + // Retrieve basis parameters + $aParameters = array( + 'version' => MetaModel::ApplyParams($oRemoteApplicationConnection->Get('version'), $aContextArgs), + 'json_data' => $this->ApplyParamsToJson($aContextArgs, $this->Get('payload')), // Apply params to payload recursively + ); + + foreach($aParameters as $sParamName => $sParamValue) + { + if(empty($sParamValue)) + { + throw new Exception('Missing at least of the following mandatory parameters: '.implode(', ', array_keys($aParameters))); + } + } + + // Transform array to HTTP query parameters (eg. https://target-url?version=XXX&json_data=XXX) + return http_build_query($aParameters); + } +]]> + + + + false + protected + Overload-DBObject + + + + + + +
+ + + 10 + + + 10 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + + + 20 + + + 10 + + + 20 + + + 30 + + + + + + + 20 + + + 10 + + + 40 + + + + + 20 + + + 10 + + + 20 + + + + + + + 100 + + +
+
+
+ + ActionWebhook + + grant_by_profile,core/cmdb,application + false + autoincrement + priv_action_slack_notif + id + + + + + + + + + + + asset/img/icon-webhook-slack-48px.png + + + + + + + + + message + + true + + + + list + slack + + include_list_attributes + + true + list + + + + yes + no + + include_user_info + no + false + radio_horizontal + + + + yes + no + + include_modify_button + no + false + radio_horizontal + + + + yes + no + + include_delete_button + no + false + radio_horizontal + + + + yes + no + specify + + include_other_actions_button + no + false + radio_horizontal + + + specified_other_actions + + true + + + + + false + protected + Overload-DBObject + + array(), + ); + + // Prepare basis message + $sMessage = static::TransformHTMLToSlackMarkup(MetaModel::ApplyParams($this->Get('message'), $aContextArgs)); + if(!empty($sMessage)) + { + $aSlackBlocks['blocks'][] = array( + 'type' => 'section', + 'text' => array( + 'type' => 'mrkdwn', + 'text' => $sMessage, + ), + ); + } + + // Prepare extra attributes + $aBlock = $this->PrepareExtraAttributesForBlockKit($aContextArgs); + if(!empty($aBlock)) + { + $aSlackBlocks['blocks'][] = $aBlock; + } + + // Prepare user information + if($this->Get('include_user_info') === 'yes') + { + $aSlackBlocks['blocks'][] = $this->PrepareUserInfoForBlockKit($aContextArgs); + } + + // Prepare action buttons + $aBlock = $this->PrepareActionsForBlockKit($aContextArgs); + if(!empty($aBlock)) + { + $aSlackBlocks['blocks'][] = $aBlock; + } + + return json_encode($aSlackBlocks); + } +]]> + + + + false + protected + Overload-DBObject + + object()']; + $sObjClass = get_class($oObject); + + // Retrieve attributes + $aListItems = MetaModel::GetZListItems($sObjClass, $this->Get('include_list_attributes')); + + // No attributes in the list + if(empty($aListItems)) + { + return null; + } + + // Prepare block structure + $aBlock = array( + 'type' => 'section', + 'fields' => array(), + ); + + foreach($aListItems as $sAttCode) + { + $oAttDef = MetaModel::GetAttributeDef($sObjClass, $sAttCode); + // We have to decode HTML entities as they are added on the value by \AttributeDefinition::GetAsHtml() + $sValueAsHtml = html_entity_decode($oObject->GetAsHtml($sAttCode), ENT_QUOTES, 'UTF-8'); + $aBlock['fields'][] = array( + 'type' => 'mrkdwn', + 'text' => sprintf("*%s*\n%s", $oAttDef->GetLabel(), static::TransformHTMLToSlackMarkup($sValueAsHtml)), + ); + } + + return $aBlock; + } +]]> + + + + false + protected + Overload-DBObject + + GetContactObject() ?: $oUser; + + $sContactClass = get_class($oContact); + $sContactClassLabel = MetaModel::GetName($sContactClass); + $sContactName = $oContact->GetName(); + $sContactUrl = ApplicationContext::MakeObjectUrl($sContactClass, $oContact->GetKey(), null, false); + + $aBlock = array( + 'type' => 'context', + 'elements' => array( + array( + 'type' => 'mrkdwn', + 'text' => Dict::Format('ActionSlackNotification:Payload:BlockKit:UserInfo', $sContactName, $sContactUrl, $sContactClassLabel), + ), + ), + ); + + return $aBlock; + } +]]> + + + + false + protected + Overload-DBObject + + object()']; + $sObjClass = get_class($oObject); + $iObjID = $oObject->GetKey(); + + $sBaseURL = utils::GetAbsoluteUrlAppRoot(); + + // Modify button + if($this->Get('include_modify_button') === 'yes') + { + $aActionElements[] = array( + 'type' => 'button', + 'text' => array( + 'type' => 'plain_text', + 'text' => Dict::S('UI:Menu:Modify'), + ), + 'action_id' => 'modify', + 'url' => sprintf('%spages/UI.php?operation=modify&class=%s&id=%d', $sBaseURL, $sObjClass, $iObjID), + 'style' => 'primary', + ); + } + + // Other actions buttons (transitions) + $sIncludeOtherActionsButton = $this->Get('include_other_actions_button'); + if($sIncludeOtherActionsButton !== 'no') + { + $aTransitions = $oObject->EnumTransitions(); + $aStimuli = MetaModel::EnumStimuli($sObjClass); + if ($sIncludeOtherActionsButton == 'yes') + { + $aAllowedStimuli = array_keys($aTransitions); + } + else + { + $aAllowedStimuli = preg_split('/\s*,\s*/', $this->Get('specified_other_actions')); + } + + // Note: We don't filter stimuli on user rights, it's up to the notification creator + // to tailored it regarding the recipients. + foreach ($aAllowedStimuli as $sStimulusCode) + { + if (isset($aTransitions[$sStimulusCode]) && is_a($aStimuli[$sStimulusCode], StimulusUserAction::class)) + { + $aActionElements[] = array( + 'type' => 'button', + 'text' => array( + 'type' => 'plain_text', + 'text' => $aStimuli[$sStimulusCode]->GetLabel(), + ), + 'action_id' => $sStimulusCode, + 'url' => sprintf('%spages/UI.php?operation=stimulus&stimulus=%s&class=%s&id=%d', $sBaseURL, $sStimulusCode, $sObjClass, $iObjID), + ); + } + } + } + + // Delete button + if($this->Get('include_delete_button') === 'yes') + { + $aActionElements[] = array( + 'type' => 'button', + 'text' => array( + 'type' => 'plain_text', + 'text' => Dict::S('UI:Menu:Delete'), + ), + 'action_id' => 'delete', + 'url' => sprintf('%spages/UI.php?operation=delete&class=%s&id=%d', $sBaseURL, $sObjClass, $iObjID), + 'style' => 'danger', + ); + } + + // Prepare block + $aBlock = (empty($aActionElements)) ? null : array( + 'type' => 'actions', + 'elements' => $aActionElements, + ); + + return $aBlock; + } +]]> + + + + true + protected + Overload-DBObject + + #i', "\n" ], + [ ['#

#i', '#

#i'], ['', "\n"] ], + [ ['##i', '##i'], ['*', "*\n"] ], + [ ['#<(strong|b)>#i', '##i'], '*' ], + [ ['#<(em|i)>#i', '##i'], '_' ], + [ ['#<(del|s)>#i', '##i'], '~' ], + [ ['#
  • #i', '#
  • #i'], ['• ', "\n"] ], + [ ['#
    (]*>)?#i', '#()?
    #i'], ['```', "```\n"] ], + [ ['#<(mark[^>]*|code)>#i', '##i'], '`' ], + ); + + // Replace HTML tags (list must contain at least tags from the $aReplacementsMatrix) + $sContent = strip_tags($sContent, '

  • ');
    +		foreach($aReplacementsMatrix as $aReplacements)
    +		{
    +			$sContent = preg_replace($aReplacements[0], $aReplacements[1], $sContent);
    +		}
    +
    +		// Replace hyperlinks
    +		preg_match_all('/<\s*a.*?href\s*=\s*(?:\"|\')(.*?)(?:\"|\')[^>]*>(.*?)<\s*?\/\s*?a\s*?>/i', $sContent, $aResult);
    +		for($iIdx = 0; $iIdx < count($aResult[0]); $iIdx++) {
    +			$sContent = str_replace($aResult[0][$iIdx], '<'.$aResult[1][$iIdx].'|'.$aResult[2][$iIdx].'>', $sContent);
    +		}
    +
    +		// Replace users and groups IDs to ensure they don't have HTML entities
    +		// Note: As an input, only HTML entities IDs (eg. "<@U123ABC>") are supported as raw IDs (eg. "<@U123ABC>") will be considered unexpected tags and be removed by the `strip_tags()` above.
    +		$sContent = preg_replace('/<([!@].*?)>/', '<$1>', $sContent);
    +
    +		return $sContent;
    +	}
    +]]>
    +					
    +				
    +			
    +			
    +				
    + + + 10 + + + 10 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + + + 20 + + + 10 + + + 20 + + + + + 30 + + + 10 + + + + + + + 20 + + + 10 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + 60 + + + + + 20 + + + 10 + + + 20 + + + + + + + 100 + + +
    +
    + + + ActionWebhook + + grant_by_profile,core/cmdb,application + false + autoincrement + priv_action_rocketchat_notif + id + + + + + + + + + + + asset/img/icon-webhook-rocketchat-48px.png + + + + + + + + + message + + true + + + bot_alias + + true + + + bot_url_avatar + + true + + + bot_emoji_avatar + + true + + + + + false + protected + Overload-DBObject + + static::TransformHTMLToRocketChatMarkup(MetaModel::ApplyParams($this->Get('message'), $aContextArgs)), + 'attachments' => array(), + ); + + // Bot information + $aBotAttCodes = array('bot_alias' => 'alias', 'bot_url_avatar' => 'avatar', 'bot_emoji_avatar' => 'emoji'); + foreach($aBotAttCodes as $sBotAttCode => $sPropCode) + { + $sPropValue = MetaModel::ApplyParams($this->Get($sBotAttCode), $aContextArgs); + if(empty($sPropValue) === false) + { + $aData[$sPropCode] = $sPropValue; + } + } + + return json_encode($aData); + } +]]> + + + + true + protected + Overload-DBObject + + ', '
    ', '
    '), "\n" ), + array( array('

    ', '

    '), array('*', '*') ), + array( array('

    ', '

    '), array('*', '*') ), + array( array('

    ', '

    '), array('*', '*') ), + array( array('', ''), array('*', '*') ), + array( array('', ''), array('*', '*') ), + array( array('', ''), array('_', '_') ), + array( array('', ''), array('_', '_') ), + array( array('', ''), array('~', '~') ), + array( array('', ''), array('~', '~') ), + array( array('
  • ', '
  • '), array('• ', '') ), + array( array('', ''), array('`', '`') ), + array( array('
    ', '
    '), array('```', '```') ), + ); + + // Replace HTML tags + $sContent = strip_tags($sContent, '


  • ');
    +		foreach($aReplacementsMatrix as $aReplacements)
    +		{
    +			$sContent = str_replace($aReplacements[0], $aReplacements[1], $sContent);
    +		}
    +
    +		// Replace hyperlinks
    +		preg_match_all('/<\s*a.*?href\s*=\s*(?:\"|\')(.*?)(?:\"|\')[^>]*>(.*?)<\s*?\/\s*?a\s*?>/i', $sContent, $aResult);
    +		for($iIdx = 0; $iIdx < count($aResult[0]); $iIdx++) {
    +			$sContent = str_replace($aResult[0][$iIdx], '<'.$aResult[1][$iIdx].'|'.$aResult[2][$iIdx].'>', $sContent);
    +		}
    +
    +		return $sContent;
    +	}
    +]]>
    +					
    +				
    +			
    +			
    +				
    + + + 10 + + + 10 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + + + 20 + + + 10 + + + 20 + + + + + 30 + + + 10 + + + + + + + 20 + + + 10 + + + 10 + + + 20 + + + 30 + + + + + 20 + + + 10 + + + 20 + + + + + + + 100 + + +
    +
    + + + ActionWebhook + + grant_by_profile,core/cmdb,application + false + autoincrement + priv_action_googlechat_notif + id + + + + + + + + + + + asset/img/icon-webhook-googlechat-48px.png + + + + + + + + + message + + true + + + + + false + protected + Overload-DBObject + + MetaModel::ApplyParams($this->Get('message'), $aContextArgs), + ); + + return json_encode($aData); + } +]]> + + + + +
    + + + 10 + + + 10 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + + + 20 + + + 10 + + + 20 + + + + + + + 20 + + + 10 + + + 10 + + + + + 20 + + + 10 + + + 20 + + + + + + + 100 + + +
    +
    +
    + + ActionWebhook + + grant_by_profile,core/cmdb,application + false + autoincrement + priv_action_microsoftteams_notif + id + + + + + + + + + + + asset/img/icon-webhook-microsoftteams-48px.png + + + + + + + + + title + + true + + + message + + true + + + theme_color + + true + + + image_url + + true + + + + list + msteams + + include_list_attributes + + true + list + + + + message_card + adaptive_card + + json_format + message_card + false + + + + yes + no + + include_modify_button + no + false + radio_horizontal + + + + yes + no + + include_delete_button + no + false + radio_horizontal + + + + yes + no + specify + + include_other_actions_button + no + false + radio_horizontal + + + specified_other_actions + + true + + + + + false + protected + Overload-DBObject + + Get('json_format'); + return match ($sJsonFormat) { + 'message_card' => $this->PreparePayloadMessageCard($aContextArgs), + 'adaptive_card' => $this->PreparePayloadAdaptiveCard($aContextArgs), + default => throw new Exception('Unknown json_format ($sJsonFormat)'), + }; + } +]]> + + + + false + protected + Custom + + 'MessageCard', + '@context' => 'http://schema.org/extensions', + ); + $aSections = array( + array(), // First section initialized for easier code below, but will be unset if empty at the end of the processing + ); + $aPotentialActions = array(); + + // Prepare theme + // - Color + $sThemeColor = MetaModel::ApplyParams($this->Get('theme_color'), $aContextArgs); + if (strlen($sThemeColor) > 0) { + $aData['themeColor'] = $sThemeColor; + } + // - Image + $sImageUrl = MetaModel::ApplyParams($this->Get('image_url'), $aContextArgs); + if (strlen($sImageUrl) > 0) { + $aSections[0]['activityImage'] = $sImageUrl; + } + + // Prepare title + $sTitle = MetaModel::ApplyParams($this->Get('title'), $aContextArgs); + if (strlen($sTitle) > 0) { + // For summary + $aData['summary'] = $sTitle; + + // For activity title + $aSections[0]['activityTitle'] = $sTitle; + } + + // Prepare message + // Note: For now we don't convert HTML to Markdown as it is more limited on Teams end (and easier for us 😁) + $sMessage = MetaModel::ApplyParams($this->Get('message'), $aContextArgs); + if (strlen($sMessage) > 0) { + $aSections[0]['activitySubtitle'] = $sMessage; + } + + // Prepare extra attributes + $aFacts = $this->PrepareExtraAttributesForMSTeamsAPI($aContextArgs); + if(false === empty($aFacts)) + { + $aSections[0]['facts'] = $aFacts; + } + + // Add sections to data + if (false === empty($aSections[0])) { + $aData['sections'] = $aSections; + } + + // Prepare action buttons + $aActions = $this->PrepareActionsForMSTeamsAPI($aContextArgs); + if(false == empty($aActions)) + { + $aData['potentialAction'] = $aActions; + } + + return json_encode($aData); + } +]]> + + + + false + protected + Custom + + 'message', + ]; + + // Prepare theme + // - Color + // TODO: Not possible with adaptive card, you only could use accents + // "default", "emphasis", "good", "attention", "warning","accent" + $sContainerStyle = null; + $sThemeColor = MetaModel::ApplyParams($this->Get('theme_color'), $aContextArgs); + if (in_array($sThemeColor, ["default", "emphasis", "good", "attention", "warning","accent"])) { + $sContainerStyle = $sThemeColor; + } + + // - Image + $aImageBlock = null; + $sImageUrl = MetaModel::ApplyParams($this->Get('image_url'), $aContextArgs); + if (strlen($sImageUrl) > 0) { + $aImageBlock = [ + "type" => "Image", + "style" => "person", + "url" => $sImageUrl, + "size" => "small" + ]; + } + + // Prepare title + $aTitleBlock = null; + $sTitle = MetaModel::ApplyParams($this->Get('title'), $aContextArgs); + if (strlen($sTitle) > 0) { + // For summary + $aData['summary'] = $sTitle; + $aTitleBlock = [ + "type" => "TextBlock", + "size" => "Medium", + "weight" => "Bolder", + "text" => $sTitle + ]; + } + + // Prepare message + $aMessageBlock = null; + $sMessage = MetaModel::ApplyParams($this->Get('message'), $aContextArgs); + if (strlen($sMessage) > 0) { + $aMessageBlock = [ + "type" => "TextBlock", + "text" => static::TransformHTMLToMSTeamsMarkup($sMessage, 'adaptive_card'), + "wrap" => true + ]; + } + + // Prepare extra attributes + $aFactsBlock = null; + $aFacts = $this->PrepareExtraAttributesForMSTeamsAPI($aContextArgs, 'adaptive_card'); + if(!empty($aFacts)) + { + $aFactsBlock = [ + "type" => "FactSet", + "facts" => $aFacts + ]; + } + + // Prepare items + $aItems = []; + + // Add Header to items + if($aImageBlock) + { + $aItems[] = [ + "type" => "ColumnSet", + "columns" => [ + [ + "type" => "Column", + "items" => [ + $aImageBlock + ] + ], + [ + "type" => "Column", + "items" => [ + $aTitleBlock + ] + ] + ] + ]; + } + else + { + $aItems[] = $aTitleBlock; + } + + // Add Message to items + if($aMessageBlock) + { + $aItems[] = $aMessageBlock; + } + // Add Facts to items + if($aFactsBlock) + { + $aItems[] = $aFactsBlock; + } + + // Prepare action buttons + $aActions = $this->PrepareActionsForMSTeamsAPI($aContextArgs, 'adaptive_card'); + + // Add attachments to data + $aData['attachments'] = [ + [ + 'contentType' => 'application/vnd.microsoft.card.adaptive', + 'content' => [ + 'type' => 'AdaptiveCard', + '$schema'=> 'https://adaptivecards.io/schemas/adaptive-card.json', + 'version' => '1.5', + 'body' => [ + [ + 'type' => 'Container', + 'items' => $aItems, + 'style' => $sContainerStyle ?? 'default' + ] + ], + 'actions' => $aActions + ] + ] + ]; + + return json_encode($aData); + } +]]> + + + + false + protected + Overload-DBObject + + object()']; + $sObjClass = get_class($oObject); + + // Retrieve attributes + $aListItems = MetaModel::GetZListItems($sObjClass, $this->Get('include_list_attributes')); + + // No attributes in the list + if(empty($aListItems)) + { + return array(); + } + + // Prepare facts structure + $aFacts = array(); + + // Check format in oder to build the appropriate structure + $sLabelKey = match ($sJsonFormat) { + 'message_card' => 'name', + 'adaptive_card' => 'title', + default => throw new Exception('Extra Attributes only supported for format "message_card" or "adaptive_card"'), + }; + + foreach($aListItems as $sAttCode) + { + $oAttDef = MetaModel::GetAttributeDef($sObjClass, $sAttCode); + // We have to decode HTML entities as they are added on the value by \AttributeDefinition::GetAsHtml() + $sValueAsHtml = utils::HtmlEntityDecode($oObject->GetAsHtml($sAttCode)); + $aFacts[] = array( + $sLabelKey => $oAttDef->GetLabel(), + 'value' => static::TransformHTMLToMSTeamsMarkup($sValueAsHtml, $sJsonFormat), + ); + } + + return $aFacts; + } +]]> + + + + false + protected + Overload-DBObject + + object()']; + $sObjClass = get_class($oObject); + $iObjID = $oObject->GetKey(); + + $sBaseURL = utils::GetAbsoluteUrlAppRoot(); + + // Modify button + if($this->Get('include_modify_button') === 'yes') + { + $aActionElements[] = $this->PrepareActionElementForMSTeamsAPI( + Dict::S('UI:Menu:Modify'), + sprintf('%spages/UI.php?operation=modify&class=%s&id=%d', $sBaseURL, $sObjClass, $iObjID), + $sJsonFormat + ); + } + + // Other actions buttons (transitions) + $sIncludeOtherActionsButton = $this->Get('include_other_actions_button'); + if($sIncludeOtherActionsButton !== 'no') + { + $aTransitions = $oObject->EnumTransitions(); + $aStimuli = MetaModel::EnumStimuli($sObjClass); + if ($sIncludeOtherActionsButton == 'yes') + { + $aAllowedStimuli = array_keys($aTransitions); + } + else + { + $aAllowedStimuli = preg_split('/\s*,\s*/', $this->Get('specified_other_actions')); + } + + // Note: We don't filter stimuli on user rights, it's up to the notification creator + // to tailored it regarding the recipients. + foreach ($aAllowedStimuli as $sStimulusCode) + { + if (isset($aTransitions[$sStimulusCode]) && is_a($aStimuli[$sStimulusCode], StimulusUserAction::class)) + { + $aActionElements[] = $this->PrepareActionElementForMSTeamsAPI( + $aStimuli[$sStimulusCode]->GetLabel(), + sprintf('%spages/UI.php?operation=stimulus&stimulus=%s&class=%s&id=%d', $sBaseURL, $sStimulusCode, $sObjClass, $iObjID), + $sJsonFormat + ); + } + } + } + + // Delete button + if($this->Get('include_delete_button') === 'yes') + { + $aActionElements[] = $this->PrepareActionElementForMSTeamsAPI( + Dict::S('UI:Menu:Delete'), + sprintf('%spages/UI.php?operation=delete&class=%s&id=%d', $sBaseURL, $sObjClass, $iObjID), + $sJsonFormat + ); + } + + return $aActionElements; + } +]]> + + + + false + protected + Custom + + [ + '@type' => 'OpenUri', + 'name' => $sLabel, + 'targets' => [ + [ + 'os' => 'default', + 'uri' => $sUrl, + ], + ], + ], + 'adaptive_card' => [ + "type" => "Action.OpenUrl", + "title" => $sLabel, + "url" => $sUrl + ], + default => throw new Exception('Action Elements only supported for format "message_card" or "adaptive_card"'), + }; + } +]]> + + + + true + protected + Overload-DBObject + + ', '
    ', '
    '), "\n\n"), + array(array('', ''), array('**', '**')), + array(array('', ''), array('**', '**')), + array(array('', ''), array('_', '_')), + array(array('', ''), array('_', '_')), + array(array('', ''), array('~', '~')), + array(array('', ''), array('~', '~')), + array(array('
  • ', '
  • '), array('-', '')), + ); + + if ($sJsonFormat === 'adaptive_card') { + $aReplacementsMatrix[] = array(array('

    ', '

    '), array('**', "**\n\n")); + $aReplacementsMatrix[] = array(array('

    ', '

    '), array('**', "**\n\n")); + $aReplacementsMatrix[] = array(array('

    ', '

    '), array('**', "**\n\n")); + $aReplacementsMatrix[] = array(array('

    '), "\n\n"); // new line instead of carriage return (which does not seem to be supported) + $aReplacementsMatrix[] = array(array('

    '), ''); + } + + // Replace HTML tags (list must contain at least tags from the $aReplacementsMatrix) + $sAllowedTags = $sJsonFormat === 'message_card' ? + '

  • '
    +			:
    +			'
  • '; // code/pre blocs not supported in adaptive_card + $sContent = strip_tags($sContent, $sAllowedTags); // what about unkown tags ? + + foreach ($aReplacementsMatrix as $aReplacements) { + $sContent = str_replace($aReplacements[0], $aReplacements[1], $sContent); + } + + // Replace hyperlinks + preg_match_all('/<\s*a.*?href\s*=\s*(?:\"|\')(.*?)(?:\"|\')[^>]*>(.*?)<\s*?\/\s*?a\s*?>/i', $sContent, $aResult); + for ($iIdx = 0; $iIdx < count($aResult[0]); $iIdx++) { + $sContent = str_replace($aResult[0][$iIdx], '['.$aResult[2][$iIdx].']('.$aResult[1][$iIdx].')', $sContent); + } + + return $sContent; + } +]]> + + + + +
    + + + 10 + + + 10 + + + 10 + + + 20 + + + 30 + + + 40 + + + 50 + + + + + 20 + + + 10 + + + 20 + + + + + 30 + + + 10 + + + 20 + + + 30 + + + + + + + 20 + + + 10 + + + 10 + + + 30 + + + 40 + + + 50 + + + 60 + + + + + 20 + + + 10 + + + 20 + + + + + 30 + + + 10 + + + 20 + + + + + + + 100 + + +
    +
    + + + DBObject + + EventNotification + + + core/cmdb,view_in_gui + false + autoincrement + priv_event_webhook + id + + + + + + + + + + + + + + action_finalclass + + true + + + webhook_url + + true + + + headers + + true + + + payload + + true + + + response + + true + + + +
    + + + 10 + + + 20 + + + 30 + + + 30 + + + 30 + + + 30 + + + 30 + + +
    + + + + 10 + + + 20 + + + 30 + + + +
    + +
    + + + + 120 + Integrations + RemoteApplicationConnection + UR_ACTION_MODIFY + + DashboardLayoutOneCol + Dashboard:Integrations:Title + + + 0 + + + 0 + Dashboard:Integrations:Outgoing:Title + combodo-webhook-integration/asset/img/icon-webhook-48px.png + + + 1 + RemoteApplicationConnection + + + 1 + RemoteApplicationType + + + + + 1 + + + 0 + Dashboard:Integrations:ActionWebhookList:Title + SELECT ActionWebhook + true + + + + + + + + + + + + + + + + + + + + + false + 5 + true + + + + diff --git a/datamodels/2.x/combodo-webhook-integration/dictionaries/cs.dict.combodo-webhook-integration.php b/datamodels/2.x/combodo-webhook-integration/dictionaries/cs.dict.combodo-webhook-integration.php new file mode 100644 index 0000000000..97b33a9dc6 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/dictionaries/cs.dict.combodo-webhook-integration.php @@ -0,0 +1,217 @@ + 'Message~~', + 'ActionMicrosoftTeamsNotification:additionalelements' => 'Additional elements to include~~', + 'ActionMicrosoftTeamsNotification:message' => 'Basis message~~', + 'ActionMicrosoftTeamsNotification:theme' => 'Theme~~', + 'ActionRocketChatNotification:additionalelements' => 'Bot information~~', + 'ActionRocketChatNotification:message' => 'Basis message~~', + 'ActionSlackNotification:Payload:BlockKit:UserInfo' => 'Notification from <%2$s|%1$s> (%3$s)~~', + 'ActionSlackNotification:additionalelements' => 'Additional elements to include~~', + 'ActionSlackNotification:message' => 'Basis message~~', + 'ActionWebhook:advancedparameters' => 'Advanced parameters~~', + 'ActionWebhook:baseinfo' => 'General information~~', + 'ActionWebhook:moreinfo' => 'More information~~', + 'ActionWebhook:requestparameters' => 'Request parameters~~', + 'ActionWebhook:webhookconnection' => 'Webhook connection~~', + 'Class:ActionGoogleChatNotification' => 'Notification by Google Chat', + 'Class:ActionGoogleChatNotification+' => 'Send a notification as a Google Chat message in a space~~', + 'Class:ActionGoogleChatNotification/Attribute:message' => 'Message~~', + 'Class:ActionGoogleChatNotification/Attribute:message+' => 'Message that will be displayed in the chat, only plain text is supported for now.~~', + 'Class:ActionGoogleChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' will be ignored.~~', + 'Class:ActionMicrosoftTeamsNotification' => 'Notification by Microsoft Teams', + 'Class:ActionMicrosoftTeamsNotification+' => 'Send a notification as a Microsoft Teams message in a channel~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url' => 'Medallion picture~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url+' => 'URL of the image to display as a medallion in the message card, it must be publicly accessible on the internet for Microsoft Teams to be able to display it~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button' => 'Delete button~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes' => 'Attributes from~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'msteams\' view of the object triggering the notification . Note that the \'msteams\' view must be defined in the datamodel first (zlist)~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:msteams' => 'the custom "msteams" view~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button' => 'Modify button~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button' => 'Other actions buttons~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:message' => 'Message~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'title\', \'message\' and all \'additional elements\' will be ignored.~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions' => 'Other actions codes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color' => 'Highlight color~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color+' => 'Highlight color in Microsoft Teams, must be a valid hexadecimal color (eg. FF0000) for Message Cards and one of the following values: "default", "emphasis", "good", "attention", "warning" or "accent" for Adaptive Cards~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:title' => 'Title~~', + 'Class:ActionRocketChatNotification' => 'Notification by Rocket.Chat', + 'Class:ActionRocketChatNotification+' => 'Send a notification as a Rocket.Chat message in a channel or to a user~~', + 'Class:ActionRocketChatNotification/Attribute:bot_alias' => 'Alias~~', + 'Class:ActionRocketChatNotification/Attribute:bot_alias+' => 'Overrides the default bot alias, will appear before the username of the message~~', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar' => 'Emoji avatar~~', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar+' => 'Overrides the default bot avatar, can be any Rocket.Chat emojis (eg. :ghost:, :white_check_mark:, ...). Note that if an URL avatar is set, the emoji won\'t be displayed.~~', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar' => 'Image avatar~~', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar+' => 'Overrides the default bot avatar, must be an absolute URL to the image to use~~', + 'Class:ActionRocketChatNotification/Attribute:message' => 'Message~~', + 'Class:ActionRocketChatNotification/Attribute:message+' => 'Message that will be displayed in the chat~~', + 'Class:ActionRocketChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'bot information\' will be ignored.~~', + 'Class:ActionSlackNotification' => 'Notification by Slack', + 'Class:ActionSlackNotification+' => 'Send a notification as a Slack message in a channel or to a user~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button' => 'Delete button~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes' => 'Attributes from~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'slack\' view of the object triggering the notification . Note that the \'slack\' view must be defined in the datamodel first (zlist)~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:slack' => 'the custom "slack" view~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button' => 'Modify button~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button' => 'Other actions buttons~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_user_info' => 'User info.~~', + 'Class:ActionSlackNotification/Attribute:include_user_info+' => 'Display user information (full name) below the message~~', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:message' => 'Message~~', + 'Class:ActionSlackNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'additional elements\' will be ignored.~~', + 'Class:ActionSlackNotification/Attribute:specified_other_actions' => 'Other actions codes~~', + 'Class:ActionSlackNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')~~', + 'Class:ActionWebhook' => 'Action by Webhook (generic)', + 'Class:ActionWebhook+' => 'Webhook call for any kind of application~~', + 'Class:ActionWebhook/Attribute:asynchronous+' => 'Whether this action should be executed in background or not (mind that global setting for webhook actions is the "prefer_asynchronous" conf. parameter of the "combodo-webhook-action" module)~~', + 'Class:ActionWebhook/Attribute:headers' => 'Headers~~', + 'Class:ActionWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/json\')~~', + 'Class:ActionWebhook/Attribute:language' => 'Language~~', + 'Class:ActionWebhook/Attribute:language+' => 'Language of this notification, mostly used when searching for notifications but might also be used to translate attributes label~~', + 'Class:ActionWebhook/Attribute:method' => 'Method~~', + 'Class:ActionWebhook/Attribute:method+' => 'Method of the HTTP request~~', + 'Class:ActionWebhook/Attribute:method/Value:delete' => 'DELETE~~', + 'Class:ActionWebhook/Attribute:method/Value:get' => 'GET~~', + 'Class:ActionWebhook/Attribute:method/Value:head' => 'HEAD~~', + 'Class:ActionWebhook/Attribute:method/Value:patch' => 'PATCH~~', + 'Class:ActionWebhook/Attribute:method/Value:post' => 'POST~~', + 'Class:ActionWebhook/Attribute:method/Value:put' => 'PUT~~', + 'Class:ActionWebhook/Attribute:path' => 'Path~~', + 'Class:ActionWebhook/Attribute:path+' => 'Additional path to append to the connection URL (eg. \'/some/specific-endpoint\')~~', + 'Class:ActionWebhook/Attribute:payload' => 'Payload~~', + 'Class:ActionWebhook/Attribute:payload+' => 'Data sent during the webhook call, most of the time this is a JSON string. Use this if your payload structure is static. + +IMPORTANT: Will be ignored if \'Prepare payload callback\' is set~~', + 'Class:ActionWebhook/Attribute:prepare_payload_callback' => 'Prepare payload callback~~', + 'Class:ActionWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'Payload\' attribute will be ignored.~~', + 'Class:ActionWebhook/Attribute:process_response_callback' => 'Process response callback~~', + 'Class:ActionWebhook/Attribute:process_response_callback+' => 'PHP method to process the webhook call response. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX +- $oResponse can be null in some cases (eg. request failed to send)~~', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id' => 'Connection~~', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id+' => 'Connection information to use when status is \'in production\'~~', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id' => 'Test connection~~', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id+' => 'Connection information to use when status is \'being tested\'~~', + 'Class:ActioniTopWebhook' => 'Action by '.ITOP_APPLICATION_SHORT.' REST API', + 'Class:ActioniTopWebhook+' => 'Webhook call to a remote iTop application~~', + 'Class:ActioniTopWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/x-www-form-urlencoded\') + +IMPORTANT: +- \'Content-type\' should be set to \'application/x-www-form-urlencoded\' for iTop, even though we send JSON +- A \'Basic authorization\' header will be append automatically to request during sending, containing the credentials from the selected connection~~', + 'Class:ActioniTopWebhook/Attribute:payload' => 'JSON data~~', + 'Class:ActioniTopWebhook/Attribute:payload+' => 'The JSON payload, must be a JSON string containing the operation name and parameters, see documentation for detailed information~~', + 'Class:ActioniTopWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'JSON data\' attribute will be ignored.~~', + 'Class:EventWebhook' => 'Webhook triggered', + 'Class:EventWebhook/Attribute:action_finalclass' => 'Final class~~', + 'Class:EventWebhook/Attribute:headers' => 'Headers~~', + 'Class:EventWebhook/Attribute:payload' => 'Payload~~', + 'Class:EventWebhook/Attribute:response' => 'Response~~', + 'Class:EventWebhook/Attribute:webhook_url' => 'Webhook URL~~', + 'Class:RemoteApplicationConnection' => 'Remote application connection~~', + 'Class:RemoteApplicationConnection/Attribute:actions_list' => 'Webhook notifications~~', + 'Class:RemoteApplicationConnection/Attribute:actions_list+' => 'Webhook notifications using this connection~~', + 'Class:RemoteApplicationConnection/Attribute:environment' => 'Environment~~', + 'Class:RemoteApplicationConnection/Attribute:environment+' => 'Type of environment of the connection~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:1-development' => 'Development~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:2-test' => 'Test~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:3-production' => 'Production~~', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id' => 'Application type~~', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id+' => 'Type of application the connection is for (use \'Generic\' if yours is not in the list)~~', + 'Class:RemoteApplicationConnection/Attribute:url' => 'URL~~', + 'Class:RemoteApplicationType' => 'Remote application type~~', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list' => 'Connections~~', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list+' => 'Connections for that application~~', + 'Class:RemoteiTopConnection' => 'Remote iTop connection~~', + 'Class:RemoteiTopConnection/Attribute:auth_pwd' => 'Auth. password~~', + 'Class:RemoteiTopConnection/Attribute:auth_pwd+' => 'Password of the user (on the remote iTop) used for the authentication~~', + 'Class:RemoteiTopConnection/Attribute:auth_user' => 'Auth. user~~', + 'Class:RemoteiTopConnection/Attribute:auth_user+' => 'Login of the user (on the remote iTop) used for the authentication~~', + 'Class:RemoteiTopConnection/Attribute:version' => 'API version~~', + 'Class:RemoteiTopConnection/Attribute:version+' => 'Version of the API called (eg. 1.3)~~', + 'Class:RemoteiTopConnectionToken' => 'Remote iTop connection using a Token~~', + 'Class:RemoteiTopConnectionToken/Attribute:token+' => 'Token~~', + 'Dashboard:Integrations:ActionWebhookList:Title' => 'Webhook type actions~~', + 'Dashboard:Integrations:Outgoing:Title' => 'Outgoing webhook integrations~~', + 'Dashboard:Integrations:Title' => 'Integrations with external applications~~', + 'Menu:Webhook' => 'Webhooks~~', + 'RemoteApplicationConnection:authinfo' => 'Authentication~~', + 'RemoteApplicationConnection:baseinfo' => 'General information~~', + 'RemoteApplicationConnection:moreinfo' => 'More information~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:json_format/Value:message_card' => 'Message Card~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:json_format/Value:adaptive_card' => 'Adaptive Card~~', + 'Class:ActionWebhook/Error:InvalidJSONFormatForPayload' => 'Invalid JSON format for Payload~~', +]); diff --git a/datamodels/2.x/combodo-webhook-integration/dictionaries/da.dict.combodo-webhook-integration.php b/datamodels/2.x/combodo-webhook-integration/dictionaries/da.dict.combodo-webhook-integration.php new file mode 100644 index 0000000000..daef76f18a --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/dictionaries/da.dict.combodo-webhook-integration.php @@ -0,0 +1,217 @@ + 'Message~~', + 'ActionMicrosoftTeamsNotification:additionalelements' => 'Additional elements to include~~', + 'ActionMicrosoftTeamsNotification:message' => 'Basis message~~', + 'ActionMicrosoftTeamsNotification:theme' => 'Theme~~', + 'ActionRocketChatNotification:additionalelements' => 'Bot information~~', + 'ActionRocketChatNotification:message' => 'Basis message~~', + 'ActionSlackNotification:Payload:BlockKit:UserInfo' => 'Notification from <%2$s|%1$s> (%3$s)~~', + 'ActionSlackNotification:additionalelements' => 'Additional elements to include~~', + 'ActionSlackNotification:message' => 'Basis message~~', + 'ActionWebhook:advancedparameters' => 'Advanced parameters~~', + 'ActionWebhook:baseinfo' => 'General information~~', + 'ActionWebhook:moreinfo' => 'More information~~', + 'ActionWebhook:requestparameters' => 'Request parameters~~', + 'ActionWebhook:webhookconnection' => 'Webhook connection~~', + 'Class:ActionGoogleChatNotification' => 'Notification by Google Chat', + 'Class:ActionGoogleChatNotification+' => 'Send a notification as a Google Chat message in a space~~', + 'Class:ActionGoogleChatNotification/Attribute:message' => 'Message~~', + 'Class:ActionGoogleChatNotification/Attribute:message+' => 'Message that will be displayed in the chat, only plain text is supported for now.~~', + 'Class:ActionGoogleChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' will be ignored.~~', + 'Class:ActionMicrosoftTeamsNotification' => 'Notification by Microsoft Teams', + 'Class:ActionMicrosoftTeamsNotification+' => 'Send a notification as a Microsoft Teams message in a channel~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url' => 'Medallion picture~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url+' => 'URL of the image to display as a medallion in the message card, it must be publicly accessible on the internet for Microsoft Teams to be able to display it~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button' => 'Delete button~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes' => 'Attributes from~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'msteams\' view of the object triggering the notification . Note that the \'msteams\' view must be defined in the datamodel first (zlist)~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:msteams' => 'the custom "msteams" view~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button' => 'Modify button~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button' => 'Other actions buttons~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:message' => 'Message~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'title\', \'message\' and all \'additional elements\' will be ignored.~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions' => 'Other actions codes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color' => 'Highlight color~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color+' => 'Highlight color in Microsoft Teams, must be a valid hexadecimal color (eg. FF0000) for Message Cards and one of the following values: "default", "emphasis", "good", "attention", "warning" or "accent" for Adaptive Cards~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:title' => 'Title~~', + 'Class:ActionRocketChatNotification' => 'Notification by Rocket.Chat', + 'Class:ActionRocketChatNotification+' => 'Send a notification as a Rocket.Chat message in a channel or to a user~~', + 'Class:ActionRocketChatNotification/Attribute:bot_alias' => 'Alias~~', + 'Class:ActionRocketChatNotification/Attribute:bot_alias+' => 'Overrides the default bot alias, will appear before the username of the message~~', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar' => 'Emoji avatar~~', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar+' => 'Overrides the default bot avatar, can be any Rocket.Chat emojis (eg. :ghost:, :white_check_mark:, ...). Note that if an URL avatar is set, the emoji won\'t be displayed.~~', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar' => 'Image avatar~~', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar+' => 'Overrides the default bot avatar, must be an absolute URL to the image to use~~', + 'Class:ActionRocketChatNotification/Attribute:message' => 'Message~~', + 'Class:ActionRocketChatNotification/Attribute:message+' => 'Message that will be displayed in the chat~~', + 'Class:ActionRocketChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'bot information\' will be ignored.~~', + 'Class:ActionSlackNotification' => 'Notification by Slack', + 'Class:ActionSlackNotification+' => 'Send a notification as a Slack message in a channel or to a user~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button' => 'Delete button~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes' => 'Attributes from~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'slack\' view of the object triggering the notification . Note that the \'slack\' view must be defined in the datamodel first (zlist)~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:slack' => 'the custom "slack" view~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button' => 'Modify button~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button' => 'Other actions buttons~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_user_info' => 'User info.~~', + 'Class:ActionSlackNotification/Attribute:include_user_info+' => 'Display user information (full name) below the message~~', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:message' => 'Message~~', + 'Class:ActionSlackNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'additional elements\' will be ignored.~~', + 'Class:ActionSlackNotification/Attribute:specified_other_actions' => 'Other actions codes~~', + 'Class:ActionSlackNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')~~', + 'Class:ActionWebhook' => 'Action by Webhook (generic)', + 'Class:ActionWebhook+' => 'Webhook call for any kind of application~~', + 'Class:ActionWebhook/Attribute:asynchronous+' => 'Whether this action should be executed in background or not (mind that global setting for webhook actions is the "prefer_asynchronous" conf. parameter of the "combodo-webhook-action" module)~~', + 'Class:ActionWebhook/Attribute:headers' => 'Headers~~', + 'Class:ActionWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/json\')~~', + 'Class:ActionWebhook/Attribute:language' => 'Language~~', + 'Class:ActionWebhook/Attribute:language+' => 'Language of this notification, mostly used when searching for notifications but might also be used to translate attributes label~~', + 'Class:ActionWebhook/Attribute:method' => 'Method~~', + 'Class:ActionWebhook/Attribute:method+' => 'Method of the HTTP request~~', + 'Class:ActionWebhook/Attribute:method/Value:delete' => 'DELETE~~', + 'Class:ActionWebhook/Attribute:method/Value:get' => 'GET~~', + 'Class:ActionWebhook/Attribute:method/Value:head' => 'HEAD~~', + 'Class:ActionWebhook/Attribute:method/Value:patch' => 'PATCH~~', + 'Class:ActionWebhook/Attribute:method/Value:post' => 'POST~~', + 'Class:ActionWebhook/Attribute:method/Value:put' => 'PUT~~', + 'Class:ActionWebhook/Attribute:path' => 'Path~~', + 'Class:ActionWebhook/Attribute:path+' => 'Additional path to append to the connection URL (eg. \'/some/specific-endpoint\')~~', + 'Class:ActionWebhook/Attribute:payload' => 'Payload~~', + 'Class:ActionWebhook/Attribute:payload+' => 'Data sent during the webhook call, most of the time this is a JSON string. Use this if your payload structure is static. + +IMPORTANT: Will be ignored if \'Prepare payload callback\' is set~~', + 'Class:ActionWebhook/Attribute:prepare_payload_callback' => 'Prepare payload callback~~', + 'Class:ActionWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'Payload\' attribute will be ignored.~~', + 'Class:ActionWebhook/Attribute:process_response_callback' => 'Process response callback~~', + 'Class:ActionWebhook/Attribute:process_response_callback+' => 'PHP method to process the webhook call response. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX +- $oResponse can be null in some cases (eg. request failed to send)~~', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id' => 'Connection~~', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id+' => 'Connection information to use when status is \'in production\'~~', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id' => 'Test connection~~', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id+' => 'Connection information to use when status is \'being tested\'~~', + 'Class:ActioniTopWebhook' => 'Action by '.ITOP_APPLICATION_SHORT.' REST API', + 'Class:ActioniTopWebhook+' => 'Webhook call to a remote iTop application~~', + 'Class:ActioniTopWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/x-www-form-urlencoded\') + +IMPORTANT: +- \'Content-type\' should be set to \'application/x-www-form-urlencoded\' for iTop, even though we send JSON +- A \'Basic authorization\' header will be append automatically to request during sending, containing the credentials from the selected connection~~', + 'Class:ActioniTopWebhook/Attribute:payload' => 'JSON data~~', + 'Class:ActioniTopWebhook/Attribute:payload+' => 'The JSON payload, must be a JSON string containing the operation name and parameters, see documentation for detailed information~~', + 'Class:ActioniTopWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'JSON data\' attribute will be ignored.~~', + 'Class:EventWebhook' => 'Webhook triggered', + 'Class:EventWebhook/Attribute:action_finalclass' => 'Final class~~', + 'Class:EventWebhook/Attribute:headers' => 'Headers~~', + 'Class:EventWebhook/Attribute:payload' => 'Payload~~', + 'Class:EventWebhook/Attribute:response' => 'Response~~', + 'Class:EventWebhook/Attribute:webhook_url' => 'Webhook URL~~', + 'Class:RemoteApplicationConnection' => 'Remote application connection~~', + 'Class:RemoteApplicationConnection/Attribute:actions_list' => 'Webhook notifications~~', + 'Class:RemoteApplicationConnection/Attribute:actions_list+' => 'Webhook notifications using this connection~~', + 'Class:RemoteApplicationConnection/Attribute:environment' => 'Environment~~', + 'Class:RemoteApplicationConnection/Attribute:environment+' => 'Type of environment of the connection~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:1-development' => 'Development~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:2-test' => 'Test~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:3-production' => 'Production~~', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id' => 'Application type~~', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id+' => 'Type of application the connection is for (use \'Generic\' if yours is not in the list)~~', + 'Class:RemoteApplicationConnection/Attribute:url' => 'URL~~', + 'Class:RemoteApplicationType' => 'Remote application type~~', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list' => 'Connections~~', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list+' => 'Connections for that application~~', + 'Class:RemoteiTopConnection' => 'Remote iTop connection~~', + 'Class:RemoteiTopConnection/Attribute:auth_pwd' => 'Auth. password~~', + 'Class:RemoteiTopConnection/Attribute:auth_pwd+' => 'Password of the user (on the remote iTop) used for the authentication~~', + 'Class:RemoteiTopConnection/Attribute:auth_user' => 'Auth. user~~', + 'Class:RemoteiTopConnection/Attribute:auth_user+' => 'Login of the user (on the remote iTop) used for the authentication~~', + 'Class:RemoteiTopConnection/Attribute:version' => 'API version~~', + 'Class:RemoteiTopConnection/Attribute:version+' => 'Version of the API called (eg. 1.3)~~', + 'Class:RemoteiTopConnectionToken' => 'Remote iTop connection using a Token~~', + 'Class:RemoteiTopConnectionToken/Attribute:token+' => 'Token~~', + 'Dashboard:Integrations:ActionWebhookList:Title' => 'Webhook type actions~~', + 'Dashboard:Integrations:Outgoing:Title' => 'Outgoing webhook integrations~~', + 'Dashboard:Integrations:Title' => 'Integrations with external applications~~', + 'Menu:Webhook' => 'Webhooks~~', + 'RemoteApplicationConnection:authinfo' => 'Authentication~~', + 'RemoteApplicationConnection:baseinfo' => 'General information~~', + 'RemoteApplicationConnection:moreinfo' => 'More information~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:json_format/Value:message_card' => 'Message Card~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:json_format/Value:adaptive_card' => 'Adaptive Card~~', + 'Class:ActionWebhook/Error:InvalidJSONFormatForPayload' => 'Invalid JSON format for Payload~~', +]); diff --git a/datamodels/2.x/combodo-webhook-integration/dictionaries/de.dict.combodo-webhook-integration.php b/datamodels/2.x/combodo-webhook-integration/dictionaries/de.dict.combodo-webhook-integration.php new file mode 100644 index 0000000000..5a27b5ebf3 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/dictionaries/de.dict.combodo-webhook-integration.php @@ -0,0 +1,219 @@ + 'Nachricht', + 'ActionMicrosoftTeamsNotification:additionalelements' => 'Zusätzlich einzubeziehende Elemente', + 'ActionMicrosoftTeamsNotification:message' => 'Basis-Nachricht', + 'ActionMicrosoftTeamsNotification:theme' => 'Theme', + 'ActionRocketChatNotification:additionalelements' => 'Bot-Informationen', + 'ActionRocketChatNotification:message' => 'Basis-Nachricht', + 'ActionSlackNotification:Payload:BlockKit:UserInfo' => 'Benachrichtigung von <%2$s|%1$s> (%3$s)', + 'ActionSlackNotification:additionalelements' => 'Zusätzlich einzubeziehende Elemente', + 'ActionSlackNotification:message' => 'Basis-Nachricht', + 'ActionWebhook:advancedparameters' => 'Erweiterte-Parameter', + 'ActionWebhook:baseinfo' => 'Allgemeine Informationen', + 'ActionWebhook:moreinfo' => 'Weitere Informationen', + 'ActionWebhook:requestparameters' => 'Request-Parameter', + 'ActionWebhook:webhookconnection' => 'Webhook-Verbindung', + 'Class:ActionGoogleChatNotification' => 'Google Chat-Benachrichtigung', + 'Class:ActionGoogleChatNotification+' => 'Senden einer Benachrichtigung als Google Chat-Nachricht in einen Bereich', + 'Class:ActionGoogleChatNotification/Attribute:message' => 'Nachricht', + 'Class:ActionGoogleChatNotification/Attribute:message+' => 'Nachricht, die im Chat angezeigt wird, Zurzeit wird nur Plain-Text unterstützt.', + 'Class:ActionGoogleChatNotification/Attribute:prepare_payload_callback+' => 'PHP-Methode zur Vorbereitung des Payloads, der während des Webhook-Aufrufs gesendet werden sollen. Wählen Sie diese Option, wenn die Standardoptionen nicht flexibel genug sind oder wenn Ihre Nutzlaststruktur dynamisch aufgebaut werden muss. + +Sie können 2 Arten von Methoden verwenden: +- Vom auslösenden Objekt selbst (z.B. UserRequest), muss \'public\' sein. Beispiel: $this->XXX +- Von jeder PHP-Klasse, muss \'static\' UND \'public\' sein. Der Name muss ein voll qualifizierter Name sein. Beispiel: \SomeClass::XXX + +WICHTIG: Wenn dies gesetzt ist, wird das Attribut \'Nachricht\' ignoriert.', + 'Class:ActionMicrosoftTeamsNotification' => 'Microsoft Teams-Benachrichtigung', + 'Class:ActionMicrosoftTeamsNotification+' => 'Senden einer Benachrichtigung als Microsoft Teams-Nachricht in einen Kanal', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url' => 'Medaillon-Bild', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url+' => 'URL des Bildes, das als Medaillon in der Nachrichtenkarte angezeigt werden soll. Es muss im Internet öffentlich zugänglich sein, damit Microsoft Teams es anzeigen kann.', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button' => 'Löschen-Button', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button+' => 'Fügen Sie einen Button unter der Nachricht ein, um das Objekt in '.ITOP_APPLICATION_SHORT.' zu löschen', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:no' => 'Nein', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:yes' => 'Ja', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes' => 'Attribute von', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes+' => 'Anzeige zusätzlicher Attribute unterhalb der Nachricht. Sie können entweder aus der üblichen Ansicht \'list\' oder der benutzerdefinierten Ansicht \'msteams\' des Objekts stammen, das die Meldung auslöst. Beachten Sie, dass die \'msteams\'-Sicht zuerst im Datenmodell definiert werden muss (zlist)', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:list' => 'Die übliche Listenansicht', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:msteams' => 'Die benutzerdefinierte "msteams"-Ansicht', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button' => 'Bearbeiten-Button', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button+' => 'Fügen Sie einen Button unter der Nachricht ein, um das Objekt in '.ITOP_APPLICATION_SHORT.' zu bearbeiten', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:no' => 'Nein', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:yes' => 'Ja', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button' => 'Button für andere Aktionen', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button+' => 'Andere Aktionen (z. B. Übergänge, die im aktuellen Zustand verfügbar sind) unterhalb der Nachricht einfügen', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:no' => 'Nein', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:specify' => 'Spezifisch', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:yes' => 'Ja', + 'Class:ActionMicrosoftTeamsNotification/Attribute:json_format' => 'JSON-Format', + 'Class:ActionMicrosoftTeamsNotification/Attribute:json_format+' => 'Festlegung welches Format zur Übertragung verwendet werden soll.', + 'Class:ActionMicrosoftTeamsNotification/Attribute:json_format/Value:message_card' => 'Message Card', + 'Class:ActionMicrosoftTeamsNotification/Attribute:json_format/Value:adaptive_card' => 'Adaptive Card', + 'Class:ActionMicrosoftTeamsNotification/Attribute:message' => 'Nachricht', + 'Class:ActionMicrosoftTeamsNotification/Attribute:prepare_payload_callback+' => 'PHP-Methode zur Vorbereitung des Payloads, der während des Webhook-Aufrufs gesendet werden sollen. Wählen Sie diese Option, wenn die Standardoptionen nicht flexibel genug sind oder wenn Ihre Nutzlaststruktur dynamisch aufgebaut werden muss. + +Sie können 2 Arten von Methoden verwenden: +- Vom auslösenden Objekt selbst (z.B. UserRequest), muss \'public\' sein. Beispiel: $this->XXX +- Von jeder PHP-Klasse, muss \'static\' UND \'public\' sein. Der Name muss ein voll qualifizierter Name sein. Beispiel: \SomeClass::XXX + +WICHTIG: Wenn dies gesetzt ist, werden das Attribut \'Titel\', \'Nachricht\' sowie alle \'zusätzlichen Elemente\' ignoriert.', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions' => 'Codes der anderen Aktionen', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions+' => 'Geben Sie an, welche Aktionen als Buttons unter der Nachricht angezeigt werden sollen. Es sollte eine durch Kommata getrennte Liste der Aktionscodes sein (bspw. \'ev_reopen, ev_close\')', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color' => 'Highlight-Farbe', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color+' => 'Highlight-Farbe der Nachrichtenkarte in Microsoft Teams, für Message Card muss eine gültige hexadezimale Farbe sein (bspw. FF0000) und für Adaptive Card einer der folgenden Werte sein: "default", "emphasis", "good", "attention", "warning" oder "accent".', + 'Class:ActionMicrosoftTeamsNotification/Attribute:title' => 'Titel', + 'Class:ActionRocketChatNotification' => 'Rocket.Chat-Benachrichtigung', + 'Class:ActionRocketChatNotification+' => 'Senden einer Benachrichtigung als Rocket.Chat-Nachricht in einem Kanal oder an einen Benutzer', + 'Class:ActionRocketChatNotification/Attribute:bot_alias' => 'Alias', + 'Class:ActionRocketChatNotification/Attribute:bot_alias+' => 'Überschreibt den Standard-Bot-Alias, wird vor dem Benutzernamen der Nachricht angezeigt', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar' => 'Avatar-Emoji', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar+' => 'Überschreibt den Standard-Bot-Avatar, kann ein beliebiges Rocket.Chat-Emoji sein (bspw.. :ghost:, :white_check_mark:, ...). Beachten Sie, dass das Emoji nicht angezeigt wird, wenn ein Avatar-Bild (URL) eingestellt ist.', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar' => 'Avatar-Bild', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar+' => 'Überschreibt den Standard-Bot-Avatar, muss eine absolute URL zu dem zu verwendenden Bild sein', + 'Class:ActionRocketChatNotification/Attribute:message' => 'Nachricht', + 'Class:ActionRocketChatNotification/Attribute:message+' => 'Nachricht, die im Chat angezeigt wird.', + 'Class:ActionRocketChatNotification/Attribute:prepare_payload_callback+' => 'PHP-Methode zur Vorbereitung des Payloads, der während des Webhook-Aufrufs gesendet werden sollen. Wählen Sie diese Option, wenn die Standardoptionen nicht flexibel genug sind oder wenn Ihre Nutzlaststruktur dynamisch aufgebaut werden muss. + +Sie können 2 Arten von Methoden verwenden: +- Vom auslösenden Objekt selbst (z.B. UserRequest), muss \'public\' sein. Beispiel: $this->XXX +- Von jeder PHP-Klasse, muss \'static\' UND \'public\' sein. Der Name muss ein voll qualifizierter Name sein. Beispiel: \SomeClass::XXX + +WICHTIG: Wenn dies gesetzt ist, werden das Attribut \'Nachricht\' sowie alle \'Bot-Informationen\' ignoriert.', + 'Class:ActionSlackNotification' => 'Slack-Benachrichtigung', + 'Class:ActionSlackNotification+' => 'Senden einer Benachrichtigung als Slack-Nachricht in einem Kanal oder an einen Benutzer', + 'Class:ActionSlackNotification/Attribute:include_delete_button' => 'Löschen-Button', + 'Class:ActionSlackNotification/Attribute:include_delete_button+' => 'Fügen Sie einen Button unter der Nachricht ein, um das Objekt in '.ITOP_APPLICATION_SHORT.' zu löschen', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:no' => 'Nein', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:yes' => 'Ja', + 'Class:ActionSlackNotification/Attribute:include_list_attributes' => 'Attribute von', + 'Class:ActionSlackNotification/Attribute:include_list_attributes+' => 'Anzeige zusätzlicher Attribute unterhalb der Nachricht. Sie können entweder aus der üblichen Ansicht \'list\' oder der benutzerdefinierten Ansicht \'slack\' des Objekts stammen, das die Meldung auslöst. Beachten Sie, dass die \'slack\'-Sicht zuerst im Datenmodell definiert werden muss (zlist)', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:list' => 'Die übliche Listenansicht', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:slack' => 'Die benutzerdefinierte "slack"-Ansicht', + 'Class:ActionSlackNotification/Attribute:include_modify_button' => 'Bearbeiten-Button', + 'Class:ActionSlackNotification/Attribute:include_modify_button+' => 'Fügen Sie einen Button unter der Nachricht ein, um das Objekt in '.ITOP_APPLICATION_SHORT.' zu bearbeiten', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:no' => 'Nein', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:yes' => 'Ja', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button' => 'Button für andere Aktionen', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button+' => 'Andere Aktionen (z. B. Übergänge, die im aktuellen Zustand verfügbar sind) unterhalb der Nachricht einfügen', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:no' => 'Nein', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:specify' => 'Spezifisch', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:yes' => 'Ja', + 'Class:ActionSlackNotification/Attribute:include_user_info' => 'Benutzerinformationen', + 'Class:ActionSlackNotification/Attribute:include_user_info+' => 'Anzeige von Benutzerinformationen (vollständiger Name) unterhalb der Nachricht', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:no' => 'Nein', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:yes' => 'Ja', + 'Class:ActionSlackNotification/Attribute:message' => 'Nachricht', + 'Class:ActionSlackNotification/Attribute:prepare_payload_callback+' => 'PHP-Methode zur Vorbereitung des Payloads, der während des Webhook-Aufrufs gesendet werden sollen. Wählen Sie diese Option, wenn die Standardoptionen nicht flexibel genug sind oder wenn Ihre Nutzlaststruktur dynamisch aufgebaut werden muss. + +Sie können 2 Arten von Methoden verwenden: +- Vom auslösenden Objekt selbst (z.B. UserRequest), muss \'public\' sein. Beispiel: $this->XXX +- Von jeder PHP-Klasse, muss \'static\' UND \'public\' sein. Der Name muss ein voll qualifizierter Name sein. Beispiel: \SomeClass::XXX + +WICHTIG: Wenn dies gesetzt ist, werden das Attribut \'Nachricht\' sowie alle \'zusätzlichen Elemente\' ignoriert.', + 'Class:ActionSlackNotification/Attribute:specified_other_actions' => 'Codes der anderen Aktionen', + 'Class:ActionSlackNotification/Attribute:specified_other_actions+' => 'Geben Sie an, welche Aktionen als Buttons unter der Nachricht angezeigt werden sollen. Es sollte eine durch Kommata getrennte Liste der Aktionscodes sein (bspw. \'ev_reopen, ev_close\')', + 'Class:ActionWebhook' => 'Webhook-Aufruf (generisch)', + 'Class:ActionWebhook+' => 'Webhook-Aufruf für eine beliebige Art von Anwendung', + 'Class:ActionWebhook/Attribute:asynchronous+' => 'Ob diese Aktion im Hintergrund ausgeführt werden soll oder nicht (beachten Sie, dass die globale Einstellung für Webhook-Aktionen der "prefer_asynchronous"-Konfigurationsparameter des "combodo-webhook-action"-Moduls ist)', + 'Class:ActionWebhook/Attribute:headers' => 'Headers', + 'Class:ActionWebhook/Attribute:headers+' => 'Headers des HTTP-Requests, nur ein Header pro Zeile (bspw. \'Content-type: application/json\')', + 'Class:ActionWebhook/Attribute:language' => 'Sprache', + 'Class:ActionWebhook/Attribute:language+' => 'Sprache dieser Benachrichtigung, wird meist bei der Suche nach Benachrichtigungen verwendet, kann aber auch zur Übersetzung von Attributen verwendet werden', + 'Class:ActionWebhook/Attribute:method' => 'Method', + 'Class:ActionWebhook/Attribute:method+' => 'Method des HTTP-Requests', + 'Class:ActionWebhook/Attribute:method/Value:delete' => 'DELETE', + 'Class:ActionWebhook/Attribute:method/Value:get' => 'GET', + 'Class:ActionWebhook/Attribute:method/Value:head' => 'HEAD', + 'Class:ActionWebhook/Attribute:method/Value:patch' => 'PATCH', + 'Class:ActionWebhook/Attribute:method/Value:post' => 'POST', + 'Class:ActionWebhook/Attribute:method/Value:put' => 'PUT', + 'Class:ActionWebhook/Attribute:path' => 'Pfad', + 'Class:ActionWebhook/Attribute:path+' => 'Zusätzlicher Pfad, der an die Verbindungs-URL angehängt wird (bspw. \'/some/specific-endpoint\')', + 'Class:ActionWebhook/Attribute:payload' => 'Payload', + 'Class:ActionWebhook/Attribute:payload+' => 'Daten, die während des Webhook-Aufrufs gesendet werden. Meistens handelt es sich dabei um einen JSON-String. Verwenden Sie dies, wenn Ihre Payload-Struktur statisch ist. + +WICHTIG: Wird ignoriert, wenn \'Callback zur Vorbereitung des Payloads\' gesetzt ist', + 'Class:ActionWebhook/Attribute:prepare_payload_callback' => 'Callback zur Vorbereitung des Payloads', + 'Class:ActionWebhook/Attribute:prepare_payload_callback+' => 'PHP-Methode zur Vorbereitung des Payloads, der während des Webhook-Aufrufs gesendet werden sollen. Verwenden Sie diese Methode, wenn Ihre Payload-Struktur dynamisch erstellt werden muss. + +Sie können 2 Arten von Methoden verwenden: +- Vom auslösenden Objekt selbst (z.B. UserRequest), muss \'public\' sein. Beispiel: $this->XXX +- Von jeder PHP-Klasse, muss \'static\' UND \'public\' sein. Der Name muss ein voll qualifizierter Name sein. Beispiel: \SomeClass::XXX + +WICHTIG: Wenn es gesetzt ist, wird das Attribut "Payload" ignoriert.', + 'Class:ActionWebhook/Attribute:process_response_callback' => 'Callback zur Verarbeitung der Antwort', + 'Class:ActionWebhook/Attribute:process_response_callback+' => 'PHP-Methode zur Verarbeitung der Antwort auf den Webhook-Aufruf. + +Sie können 2 Arten von Methoden verwenden: +- Vom auslösenden Objekt selbst (z.B. UserRequest), muss \'public\' sein. Beispiel: $this->XXX +- - Von jeder PHP-Klasse, muss \'static\' UND \'public\' sein. Der Name muss ein voll qualifizierter Name sein. Beispiel: \SomeClass::XXX +- $oResponse kann in einigen Fällen null sein (bspw. wenn der Request fehlgeschlagen ist)', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id' => 'Verbindung', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id+' => 'Verbindungsinformationen, die zu verwenden sind, wenn der Status \'Im Einsatz\' ist', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id' => 'Testverbindung', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id+' => 'Verbindungsinformationen, die zu verwenden sind, wenn der Status \'Wird getestet\' ist', + 'Class:ActioniTopWebhook' => 'iTop-Webhook-Aufruf', + 'Class:ActioniTopWebhook+' => 'Webhook-Aufruf an eine remote iTop-Anwendung', + 'Class:ActioniTopWebhook/Attribute:headers+' => 'Headers des HTTP-Requests, nur ein Header pro Zeile (bspw. \'Content-type: application/json\') + +WICHTIG: +- \'Content-type\' sollte für iTop auf \'application/x-www-form-urlencoded\' gesetzt, auch wenn JSON gesendet wird +- Ein \'Basic authorization\'-Header wird beim Senden automatisch an den Request angehängt und enthält die Anmeldedaten der ausgewählten Verbindung', + 'Class:ActioniTopWebhook/Attribute:payload' => 'JSON-Payload', + 'Class:ActioniTopWebhook/Attribute:payload+' => 'Der JSON-Payload muss eine JSON-Zeichenkette sein, die den Namen der Operation und die Parameter enthält; detaillierte Informationen finden Sie in der Dokumentation.', + 'Class:ActioniTopWebhook/Attribute:prepare_payload_callback+' => 'PHP-Methode zur Vorbereitung des Payloads, der während des Webhook-Aufrufs gesendet werden sollen. Verwenden Sie diese Methode, wenn Ihre Payload-Struktur dynamisch erstellt werden muss. + +Sie können 2 Arten von Methoden verwenden: +- Vom auslösenden Objekt selbst (z.B. UserRequest), muss \'public\' sein. Beispiel: $this->XXX +- Von jeder PHP-Klasse, muss \'static\' UND \'public\' sein. Der Name muss ein voll qualifizierter Name sein. Beispiel: \SomeClass::XXX + +WICHTIG: Wenn es gesetzt ist, wird das Attribut "Payload" ignoriert.', + 'Class:EventWebhook' => 'Gesendeter Webhook-Aufruf', + 'Class:EventWebhook/Attribute:action_finalclass' => 'Finale Klasse', + 'Class:EventWebhook/Attribute:headers' => 'Headers', + 'Class:EventWebhook/Attribute:payload' => 'Payload', + 'Class:EventWebhook/Attribute:response' => 'Antwort', + 'Class:EventWebhook/Attribute:webhook_url' => 'Webhook URL', + 'Class:RemoteApplicationConnection' => 'Verbindung zu einer Remote-Anwendung', + 'Class:RemoteApplicationConnection/Attribute:actions_list' => 'Webhook-Benachrichtigungen', + 'Class:RemoteApplicationConnection/Attribute:actions_list+' => 'Webhook-Benachrichtigungen, die diese Verbindung verwenden', + 'Class:RemoteApplicationConnection/Attribute:environment' => 'Umgebung', + 'Class:RemoteApplicationConnection/Attribute:environment+' => 'Typ der Umgebung der Verbindung', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:1-development' => 'Entwicklung', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:2-test' => 'Test', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:3-production' => 'Produktion', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id' => 'Anwendungstyp', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id+' => 'Art der Anwendung, für die die Verbindung bestimmt ist (verwenden Sie \'Generisch\', wenn Ihre Anwendung nicht in der Liste enthalten ist)', + 'Class:RemoteApplicationConnection/Attribute:url' => 'URL', + 'Class:RemoteApplicationType' => 'Typ der Remote-Anwendung', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list' => 'Verbindungen', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list+' => 'Verbindungen für diese Anwendung', + 'Class:RemoteiTopConnection' => 'Remote-iTop-Verbindung', + 'Class:RemoteiTopConnection/Attribute:auth_pwd' => 'Passwort', + 'Class:RemoteiTopConnection/Attribute:auth_pwd+' => 'Passwort des Benutzers (auf dem Remote-iTop), der für die Authentifizierung verwendet wird', + 'Class:RemoteiTopConnection/Attribute:auth_user' => 'Name des Benutzers', + 'Class:RemoteiTopConnection/Attribute:auth_user+' => 'Login des Benutzers (auf dem Remote-iTop), der für die Authentifizierung verwendet wird', + 'Class:RemoteiTopConnection/Attribute:version' => 'API-Version', + 'Class:RemoteiTopConnection/Attribute:version+' => 'Version der aufzurufenden API (bspw. 1.3)', + 'Class:RemoteiTopConnectionToken' => 'Remote iTop-Verbindung über ein Token', + 'Class:RemoteiTopConnectionToken/Attribute:token+' => 'Token', + 'Dashboard:Integrations:ActionWebhookList:Title' => 'Aktionen vom Typ Webhook', + 'Dashboard:Integrations:Outgoing:Title' => 'Ausgehende Webhook-Integrationen', + 'Dashboard:Integrations:Title' => 'Integrationen mit externen Anwendungen', + 'Menu:Integrations' => 'Integrationen', + 'RemoteApplicationConnection:authinfo' => 'Authentifizierung', + 'RemoteApplicationConnection:baseinfo' => 'Allgemeine Informationen', + 'RemoteApplicationConnection:moreinfo' => 'Weitere Informationen', + 'Class:ActionWebhook/Error:InvalidJSONFormatForPayload' => 'Invalid JSON format for Payload~~', +]); diff --git a/datamodels/2.x/combodo-webhook-integration/dictionaries/en.dict.combodo-webhook-integration.php b/datamodels/2.x/combodo-webhook-integration/dictionaries/en.dict.combodo-webhook-integration.php new file mode 100644 index 0000000000..654658e306 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/dictionaries/en.dict.combodo-webhook-integration.php @@ -0,0 +1,272 @@ + 'Webhooks', + 'Dashboard:Integrations:Title' => 'Integrations with external applications', + 'Dashboard:Integrations:Outgoing:Title' => 'Outgoing webhook integrations', + 'Dashboard:Integrations:ActionWebhookList:Title' => 'Webhook type actions', +)); + +// Base classes +Dict::Add('EN US', 'English', 'English', array( + // RemoteApplicationType + 'Class:RemoteApplicationType' => 'Remote application type', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list' => 'Connections', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list+' => 'Connections for that application', + + // RemoteApplicationConnection + 'Class:RemoteApplicationConnection' => 'Remote application connection', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id' => 'Application type', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id+' => 'Type of application the connection is for (use \'Generic\' if yours is not in the list)', + 'Class:RemoteApplicationConnection/Attribute:environment' => 'Environment', + 'Class:RemoteApplicationConnection/Attribute:environment+' => 'Type of environment of the connection', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:1-development' => 'Development', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:2-test' => 'Test', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:3-production' => 'Production', + 'Class:RemoteApplicationConnection/Attribute:url' => 'URL', + 'Class:RemoteApplicationConnection/Attribute:actions_list' => 'Webhook notifications', + 'Class:RemoteApplicationConnection/Attribute:actions_list+' => 'Webhook notifications using this connection', + // - Fieldsets + 'RemoteApplicationConnection:baseinfo' => 'General information', + 'RemoteApplicationConnection:moreinfo' => 'More information', + 'RemoteApplicationConnection:authinfo' => 'Authentication', + + // EventWebhook + 'Class:EventWebhook' => 'Webhook triggered', + 'Class:EventWebhook/Attribute:action_finalclass' => 'Final class', + 'Class:EventWebhook/Attribute:webhook_url' => 'Webhook URL', + 'Class:EventWebhook/Attribute:headers' => 'Headers', + 'Class:EventWebhook/Attribute:payload' => 'Payload', + 'Class:EventWebhook/Attribute:response' => 'Response', + + // ActionWebhook + 'Class:ActionWebhook' => 'Action by Webhook (generic)', + 'Class:ActionWebhook+' => 'Webhook call for any kind of application', + 'Class:ActionWebhook/Attribute:language' => 'Language', + 'Class:ActionWebhook/Attribute:language+' => 'Language of this notification, mostly used when searching for notifications but might also be used to translate attributes label', + 'Class:ActionWebhook/Attribute:asynchronous+' => 'Whether this action should be executed in background or not (mind that global setting for webhook actions is the "prefer_asynchronous" conf. parameter of the "combodo-webhook-action" module)', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id' => 'Connection', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id+' => 'Connection information to use when status is \'in production\'', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id' => 'Test connection', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id+' => 'Connection information to use when status is \'being tested\'', + 'Class:ActionWebhook/Attribute:method' => 'Method', + 'Class:ActionWebhook/Attribute:method+' => 'Method of the HTTP request', + 'Class:ActionWebhook/Attribute:method/Value:get' => 'GET', + 'Class:ActionWebhook/Attribute:method/Value:post' => 'POST', + 'Class:ActionWebhook/Attribute:method/Value:put' => 'PUT', + 'Class:ActionWebhook/Attribute:method/Value:patch' => 'PATCH', + 'Class:ActionWebhook/Attribute:method/Value:delete' => 'DELETE', + 'Class:ActionWebhook/Attribute:method/Value:head' => 'HEAD', + 'Class:ActionWebhook/Attribute:path' => 'Path', + 'Class:ActionWebhook/Attribute:path+' => 'Additional path to append to the connection URL (eg. \'/some/specific-endpoint\')', + 'Class:ActionWebhook/Attribute:headers' => 'Headers', + 'Class:ActionWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/json\')', + 'Class:ActionWebhook/Attribute:payload' => 'Payload', + 'Class:ActionWebhook/Attribute:payload+' => 'Data sent during the webhook call, most of the time this is a JSON string. Use this if your payload structure is static. + +IMPORTANT: Will be ignored if \'Prepare payload callback\' is set', + 'Class:ActionWebhook/Attribute:prepare_payload_callback' => 'Prepare payload callback', + 'Class:ActionWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \\SomeClass::XXX + +IMPORTANT: If set, the \'Payload\' attribute will be ignored.', + 'Class:ActionWebhook/Attribute:process_response_callback' => 'Process response callback', + 'Class:ActionWebhook/Attribute:process_response_callback+' => 'PHP method to process the webhook call response. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \\SomeClass::XXX +- $oResponse can be null in some cases (eg. request failed to send)', + // - Fieldsets + 'ActionWebhook:baseinfo' => 'General information', + 'ActionWebhook:moreinfo' => 'More information', + 'ActionWebhook:webhookconnection' => 'Webhook connection', + // Note: This one is used by derivated classes + 'ActionWebhook:requestparameters' => 'Request parameters', + 'ActionWebhook:advancedparameters' => 'Advanced parameters', + 'Class:ActionWebhook/Error:InvalidJSONFormatForPayload' => 'Invalid JSON format for Payload', +)); + +// iTop +Dict::Add('EN US', 'English', 'English', array( + // RemoteiTopConnection + 'Class:RemoteiTopConnection' => 'Remote iTop connection', + 'Class:RemoteiTopConnection/Attribute:auth_user' => 'Auth. user', + 'Class:RemoteiTopConnection/Attribute:auth_user+' => 'Login of the user (on the remote iTop) used for the authentication', + 'Class:RemoteiTopConnection/Attribute:auth_pwd' => 'Auth. password', + 'Class:RemoteiTopConnection/Attribute:auth_pwd+' => 'Password of the user (on the remote iTop) used for the authentication', + 'Class:RemoteiTopConnection/Attribute:version' => 'API version', + 'Class:RemoteiTopConnection/Attribute:version+' => 'Version of the API called (eg. 1.3)', + + // RemoteiTopConnectionToken + 'Class:RemoteiTopConnectionToken' => 'Remote iTop connection using a Token', + 'Class:RemoteiTopConnectionToken/Attribute:token+' => 'Token', + + //RemoteOauthConnection + 'Class:RemoteOauthConnection' => 'Remote connection using OAuth', + 'Class:RemoteOauthConnection/Attribute:oauth_id+' => 'Oauth Connection', + 'Class:RemoteOauthConnection/Attribute:oauth2client_id' => 'Oauth2 Client ID', + 'Class:RemoteOauthConnection/Attribute:version' => 'Version', + + // ActioniTopWebhook + 'Class:ActioniTopWebhook' => 'Action by ' . ITOP_APPLICATION_SHORT . ' REST API', + 'Class:ActioniTopWebhook+' => 'Webhook call to a remote iTop application', + 'Class:ActioniTopWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/x-www-form-urlencoded\') + +IMPORTANT: +- \'Content-type\' should be set to \'application/x-www-form-urlencoded\' for iTop, even though we send JSON +- A \'Basic authorization\' header will be append automatically to request during sending, containing the credentials from the selected connection', + 'Class:ActioniTopWebhook/Attribute:payload' => 'JSON data', + 'Class:ActioniTopWebhook/Attribute:payload+' => 'The JSON payload, must be a JSON string containing the operation name and parameters, see documentation for detailed information', + 'Class:ActioniTopWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \\SomeClass::XXX + +IMPORTANT: If set, the \'JSON data\' attribute will be ignored.', +)); + +// Slack +Dict::Add('EN US', 'English', 'English', array( + // ActionSlackNotification + 'Class:ActionSlackNotification' => 'Notification by Slack', + 'Class:ActionSlackNotification+' => 'Send a notification as a Slack message in a channel or to a user', + 'Class:ActionSlackNotification/Attribute:message' => 'Message', + 'Class:ActionSlackNotification/Attribute:include_list_attributes' => 'Attributes from', + 'Class:ActionSlackNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'slack\' view of the object triggering the notification . Note that the \'slack\' view must be defined in the datamodel first (zlist)', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:slack' => 'the custom "slack" view', + 'Class:ActionSlackNotification/Attribute:include_user_info' => 'User info.', + 'Class:ActionSlackNotification/Attribute:include_user_info+' => 'Display user information (full name) below the message', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:no' => 'No', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:yes' => 'Yes', + 'Class:ActionSlackNotification/Attribute:include_modify_button' => 'Modify button', + 'Class:ActionSlackNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT, + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:no' => 'No', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:yes' => 'Yes', + 'Class:ActionSlackNotification/Attribute:include_delete_button' => 'Delete button', + 'Class:ActionSlackNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT, + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:no' => 'No', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:yes' => 'Yes', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button' => 'Other actions buttons', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:no' => 'No', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes', + 'Class:ActionSlackNotification/Attribute:specified_other_actions' => 'Other actions codes', + 'Class:ActionSlackNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')', + 'Class:ActionSlackNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \\SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'additional elements\' will be ignored.', + // - Fieldsets + 'ActionSlackNotification:message' => 'Basis message', + 'ActionSlackNotification:additionalelements' => 'Additional elements to include', + + // Payload + 'ActionSlackNotification:Payload:BlockKit:UserInfo' => 'Notification from <%2$s|%1$s> (%3$s)', +)); + +// Rocket.Chat +Dict::Add('EN US', 'English', 'English', array( + // ActionRocketChatNotification + 'Class:ActionRocketChatNotification' => 'Notification by Rocket.Chat', + 'Class:ActionRocketChatNotification+' => 'Send a notification as a Rocket.Chat message in a channel or to a user', + 'Class:ActionRocketChatNotification/Attribute:message' => 'Message', + 'Class:ActionRocketChatNotification/Attribute:message+' => 'Message that will be displayed in the chat', + 'Class:ActionRocketChatNotification/Attribute:bot_alias' => 'Alias', + 'Class:ActionRocketChatNotification/Attribute:bot_alias+' => 'Overrides the default bot alias, will appear before the username of the message', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar' => 'Image avatar', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar+' => 'Overrides the default bot avatar, must be an absolute URL to the image to use', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar' => 'Emoji avatar', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar+' => 'Overrides the default bot avatar, can be any Rocket.Chat emojis (eg. :ghost:, :white_check_mark:, ...). Note that if an URL avatar is set, the emoji won\'t be displayed.', + 'Class:ActionRocketChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \\SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'bot information\' will be ignored.', + // - Fieldsets + 'ActionRocketChatNotification:message' => 'Basis message', + 'ActionRocketChatNotification:additionalelements' => 'Bot information', +)); + +// Google Chat +Dict::Add('EN US', 'English', 'English', array( + // ActionGoogleChatNotification + 'Class:ActionGoogleChatNotification' => 'Notification by Google Chat', + 'Class:ActionGoogleChatNotification+' => 'Send a notification as a Google Chat message in a space', + 'Class:ActionGoogleChatNotification/Attribute:message' => 'Message', + 'Class:ActionGoogleChatNotification/Attribute:message+' => 'Message that will be displayed in the chat, only plain text is supported for now.', + 'Class:ActionGoogleChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \\SomeClass::XXX + +IMPORTANT: If set, the \'message\' will be ignored.', + // - Fieldsets + 'ActionGoogleChatNotification:message' => 'Message', +)); + +// Microsoft Teams +Dict::Add('EN US', 'English', 'English', array( + // ActionMicrosoftTeamsNotification + 'Class:ActionMicrosoftTeamsNotification' => 'Notification by Microsoft Teams', + 'Class:ActionMicrosoftTeamsNotification+' => 'Send a notification as a Microsoft Teams message in a channel', + 'Class:ActionMicrosoftTeamsNotification/Attribute:title' => 'Title', + 'Class:ActionMicrosoftTeamsNotification/Attribute:message' => 'Message', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes' => 'Attributes from', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'msteams\' view of the object triggering the notification . Note that the \'msteams\' view must be defined in the datamodel first (zlist)', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:msteams' => 'the custom "msteams" view', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button' => 'Modify button', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT, + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:no' => 'No', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:yes' => 'Yes', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button' => 'Delete button', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT, + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:no' => 'No', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:yes' => 'Yes', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button' => 'Other actions buttons', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:no' => 'No', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions' => 'Other actions codes', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color' => 'Highlight color', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color+' => 'Highlight color in Microsoft Teams, must be a valid hexadecimal color (eg. FF0000) for Message Cards and one of the following values: "default", "emphasis", "good", "attention", "warning" or "accent" for Adaptive Cards', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url' => 'Medallion picture', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url+' => 'URL of the image to display as a medallion in the message card, it must be publicly accessible on the internet for Microsoft Teams to be able to display it', + 'Class:ActionMicrosoftTeamsNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \\SomeClass::XXX + +IMPORTANT: If set, the \'title\', \'message\' and all \'additional elements\' will be ignored.', + // - Fieldsets + 'ActionMicrosoftTeamsNotification:message' => 'Basis message', + 'Class:ActionMicrosoftTeamsNotification/Attribute:json_format' => 'JSON format', + 'Class:ActionMicrosoftTeamsNotification/Attribute:json_format+' => 'Determines which format should be used for transmission.', + 'Class:ActionMicrosoftTeamsNotification/Attribute:json_format/Value:message_card' => 'Message Card', + 'Class:ActionMicrosoftTeamsNotification/Attribute:json_format/Value:adaptive_card' => 'Adaptive Card', + 'ActionMicrosoftTeamsNotification:additionalelements' => 'Additional elements to include', + 'ActionMicrosoftTeamsNotification:theme' => 'Theme', +)); diff --git a/datamodels/2.x/combodo-webhook-integration/dictionaries/en_gb.dict.combodo-webhook-integration.php b/datamodels/2.x/combodo-webhook-integration/dictionaries/en_gb.dict.combodo-webhook-integration.php new file mode 100644 index 0000000000..3294e0ec7d --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/dictionaries/en_gb.dict.combodo-webhook-integration.php @@ -0,0 +1,268 @@ + 'Webhooks', + 'Dashboard:Integrations:Title' => 'Integrations with external applications', + 'Dashboard:Integrations:Outgoing:Title' => 'Outgoing webhook integrations', + 'Dashboard:Integrations:ActionWebhookList:Title' => 'Webhook type actions', +)); + +// Base classes +Dict::Add('EN GB', 'British English', 'British English', array( + // RemoteApplicationType + 'Class:RemoteApplicationType' => 'Remote application type', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list' => 'Connections', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list+' => 'Connections for that application', + + // RemoteApplicationConnection + 'Class:RemoteApplicationConnection' => 'Remote application connection', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id' => 'Application type', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id+' => 'Type of application the connection is for (use \'Generic\' if yours is not in the list)', + 'Class:RemoteApplicationConnection/Attribute:environment' => 'Environment', + 'Class:RemoteApplicationConnection/Attribute:environment+' => 'Type of environment of the connection', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:1-development' => 'Development', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:2-test' => 'Test', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:3-production' => 'Production', + 'Class:RemoteApplicationConnection/Attribute:url' => 'URL', + 'Class:RemoteApplicationConnection/Attribute:actions_list' => 'Webhook notifications', + 'Class:RemoteApplicationConnection/Attribute:actions_list+' => 'Webhook notifications using this connection', + // - Fieldsets + 'RemoteApplicationConnection:baseinfo' => 'General information', + 'RemoteApplicationConnection:moreinfo' => 'More information', + 'RemoteApplicationConnection:authinfo' => 'Authentication', + + // EventWebhook + 'Class:EventWebhook' => 'Webhook triggered', + 'Class:EventWebhook/Attribute:action_finalclass' => 'Final class', + 'Class:EventWebhook/Attribute:webhook_url' => 'Webhook URL', + 'Class:EventWebhook/Attribute:headers' => 'Headers', + 'Class:EventWebhook/Attribute:payload' => 'Payload', + 'Class:EventWebhook/Attribute:response' => 'Response', + + // ActionWebhook + 'Class:ActionWebhook' => 'Action by Webhook (generic)', + 'Class:ActionWebhook+' => 'Webhook call for any kind of application', + 'Class:ActionWebhook/Attribute:language' => 'Language', + 'Class:ActionWebhook/Attribute:language+' => 'Language of this notification, mostly used when searching for notifications but might also be used to translate attributes label', + 'Class:ActionWebhook/Attribute:asynchronous+' => 'Whether this action should be executed in the background or not (mind that global setting for webhook actions is the "prefer_asynchronous" conf. parameter of the "combodo-webhook-action" module)', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id' => 'Connection', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id+' => 'Connection information to use when status is \'in production\'', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id' => 'Test connection', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id+' => 'Connection information to use when status is \'being tested\'', + 'Class:ActionWebhook/Attribute:method' => 'Method', + 'Class:ActionWebhook/Attribute:method+' => 'Method of the HTTP request', + 'Class:ActionWebhook/Attribute:method/Value:get' => 'GET', + 'Class:ActionWebhook/Attribute:method/Value:post' => 'POST', + 'Class:ActionWebhook/Attribute:method/Value:put' => 'PUT', + 'Class:ActionWebhook/Attribute:method/Value:patch' => 'PATCH', + 'Class:ActionWebhook/Attribute:method/Value:delete' => 'DELETE', + 'Class:ActionWebhook/Attribute:method/Value:head' => 'HEAD', + 'Class:ActionWebhook/Attribute:path' => 'Path', + 'Class:ActionWebhook/Attribute:path+' => 'Additional path to append to the connection URL (eg. \'/some/specific-endpoint\')', + 'Class:ActionWebhook/Attribute:headers' => 'Headers', + 'Class:ActionWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/json\')', + 'Class:ActionWebhook/Attribute:payload' => 'Payload', + 'Class:ActionWebhook/Attribute:payload+' => 'Data sent during the webhook call, most of the time this is a JSON string. Use this if your payload structure is static. + +IMPORTANT: Will be ignored if \'Prepare payload callback\' is set', + 'Class:ActionWebhook/Attribute:prepare_payload_callback' => 'Prepare payload callback', + 'Class:ActionWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \\SomeClass::XXX + +IMPORTANT: If set, the \'Payload\' attribute will be ignored.', + 'Class:ActionWebhook/Attribute:process_response_callback' => 'Process response callback', + 'Class:ActionWebhook/Attribute:process_response_callback+' => 'PHP method to process the webhook call response. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \\SomeClass::XXX +- $oResponse can be null in some cases (eg. request failed to send)', + // - Fieldsets + 'ActionWebhook:baseinfo' => 'General information', + 'ActionWebhook:moreinfo' => 'More information', + 'ActionWebhook:webhookconnection' => 'Webhook connection', + // Note: This one is used by derivated classes + 'ActionWebhook:requestparameters' => 'Request parameters', + 'ActionWebhook:advancedparameters' => 'Advanced parameters', +)); + +// iTop +Dict::Add('EN GB', 'British English', 'British English', array( + // RemoteiTopConnection + 'Class:RemoteiTopConnection' => 'Remote iTop connection', + 'Class:RemoteiTopConnection/Attribute:auth_user' => 'Auth. user', + 'Class:RemoteiTopConnection/Attribute:auth_user+' => 'Login of the user (on the remote iTop) used for the authentication', + 'Class:RemoteiTopConnection/Attribute:auth_pwd' => 'Auth. password', + 'Class:RemoteiTopConnection/Attribute:auth_pwd+' => 'Password of the user (on the remote iTop) used for the authentication', + 'Class:RemoteiTopConnection/Attribute:version' => 'API version', + 'Class:RemoteiTopConnection/Attribute:version+' => 'Version of the API called (eg. 1.3)', + + // RemoteiTopConnectionToken + 'Class:RemoteiTopConnectionToken' => 'Remote iTop connection using a Token', + 'Class:RemoteiTopConnectionToken/Attribute:token+' => 'Token', + + //RemoteOauthConnection + 'Class:RemoteOauthConnection' => 'Remote connection using OAuth', + 'Class:RemoteOauthConnection/Attribute:oauth_id+' => 'Oauth Connection', + 'Class:RemoteOauthConnection/Attribute:oauth2client_id' => 'Oauth2 Client ID', + 'Class:RemoteOauthConnection/Attribute:version' => 'Version', + + // ActioniTopWebhook + 'Class:ActioniTopWebhook' => 'Action by ' . ITOP_APPLICATION_SHORT . ' REST API', + 'Class:ActioniTopWebhook+' => 'Webhook call to a remote iTop application', + 'Class:ActioniTopWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/x-www-form-urlencoded\') + +IMPORTANT: +- \'Content-type\' should be set to \'application/x-www-form-urlencoded\' for iTop, even though we send JSON +- A \'Basic authorization\' header will be append automatically to request during sending, containing the credentials from the selected connection', + 'Class:ActioniTopWebhook/Attribute:payload' => 'JSON data', + 'Class:ActioniTopWebhook/Attribute:payload+' => 'The JSON payload, must be a JSON string containing the operation name and parameters, see documentation for detailed information', + 'Class:ActioniTopWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \\SomeClass::XXX + +IMPORTANT: If set, the \'JSON data\' attribute will be ignored.', +)); + +// Slack +Dict::Add('EN GB', 'British English', 'British English', array( + // ActionSlackNotification + 'Class:ActionSlackNotification' => 'Notification by Slack', + 'Class:ActionSlackNotification+' => 'Send a notification as a Slack message in a channel or to a user', + 'Class:ActionSlackNotification/Attribute:message' => 'Message', + 'Class:ActionSlackNotification/Attribute:include_list_attributes' => 'Attributes from', + 'Class:ActionSlackNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'slack\' view of the object triggering the notification. Note that the \'slack\' view must be defined in the datamodel first (zlist)', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:slack' => 'the custom "slack" view', + 'Class:ActionSlackNotification/Attribute:include_user_info' => 'User info.', + 'Class:ActionSlackNotification/Attribute:include_user_info+' => 'Display user information (full name) below the message', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:no' => 'No', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:yes' => 'Yes', + 'Class:ActionSlackNotification/Attribute:include_modify_button' => 'Modify button', + 'Class:ActionSlackNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT, + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:no' => 'No', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:yes' => 'Yes', + 'Class:ActionSlackNotification/Attribute:include_delete_button' => 'Delete button', + 'Class:ActionSlackNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT, + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:no' => 'No', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:yes' => 'Yes', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button' => 'Other actions buttons', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:no' => 'No', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes', + 'Class:ActionSlackNotification/Attribute:specified_other_actions' => 'Other actions codes', + 'Class:ActionSlackNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')', + 'Class:ActionSlackNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \\SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'additional elements\' will be ignored.', + // - Fieldsets + 'ActionSlackNotification:message' => 'Basis message', + 'ActionSlackNotification:additionalelements' => 'Additional elements to include', + + // Payload + 'ActionSlackNotification:Payload:BlockKit:UserInfo' => 'Notification from <%2$s|%1$s> (%3$s)', +)); + +// Rocket.Chat +Dict::Add('EN GB', 'British English', 'British English', array( + // ActionRocketChatNotification + 'Class:ActionRocketChatNotification' => 'Notification by Rocket.Chat', + 'Class:ActionRocketChatNotification+' => 'Send a notification as a Rocket.Chat message in a channel or to a user', + 'Class:ActionRocketChatNotification/Attribute:message' => 'Message', + 'Class:ActionRocketChatNotification/Attribute:message+' => 'Message that will be displayed in the chat', + 'Class:ActionRocketChatNotification/Attribute:bot_alias' => 'Alias', + 'Class:ActionRocketChatNotification/Attribute:bot_alias+' => 'Overrides the default bot alias, will appear before the username of the message', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar' => 'Image avatar', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar+' => 'Overrides the default bot avatar, must be an absolute URL to the image to use', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar' => 'Emoji avatar', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar+' => 'Overrides the default bot avatar, can be any Rocket.Chat emojis (eg. :ghost:, :white_check_mark:, ...). Note that if an URL avatar is set, the emoji won\'t be displayed.', + 'Class:ActionRocketChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \\SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'bot information\' will be ignored.', + // - Fieldsets + 'ActionRocketChatNotification:message' => 'Basis message', + 'ActionRocketChatNotification:additionalelements' => 'Bot information', +)); + +// Google Chat +Dict::Add('EN GB', 'British English', 'British English', array( + // ActionGoogleChatNotification + 'Class:ActionGoogleChatNotification' => 'Notification by Google Chat', + 'Class:ActionGoogleChatNotification+' => 'Send a notification as a Google Chat message in a space', + 'Class:ActionGoogleChatNotification/Attribute:message' => 'Message', + 'Class:ActionGoogleChatNotification/Attribute:message+' => 'Message that will be displayed in the chat, only plain text is supported for now.', + 'Class:ActionGoogleChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \\SomeClass::XXX + +IMPORTANT: If set, the \'message\' will be ignored.', + // - Fieldsets + 'ActionGoogleChatNotification:message' => 'Message', +)); + +// Microsoft Teams +Dict::Add('EN GB', 'British English', 'British English', array( + // ActionMicrosoftTeamsNotification + 'Class:ActionMicrosoftTeamsNotification' => 'Notification by Microsoft Teams', + 'Class:ActionMicrosoftTeamsNotification+' => 'Send a notification as a Microsoft Teams message in a channel', + 'Class:ActionMicrosoftTeamsNotification/Attribute:title' => 'Title', + 'Class:ActionMicrosoftTeamsNotification/Attribute:message' => 'Message', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes' => 'Attributes from', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'msteams\' view of the object triggering the notification. Note that the \'msteams\' view must be defined in the datamodel first (zlist)', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:msteams' => 'the custom "msteams" view', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button' => 'Modify button', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT, + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:no' => 'No', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:yes' => 'Yes', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button' => 'Delete button', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT, + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:no' => 'No', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:yes' => 'Yes', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button' => 'Other actions buttons', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:no' => 'No', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions' => 'Other actions codes', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color' => 'Highlight colour', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color+' => 'Highlight colour in Microsoft Teams, must be a valid hexadecimal colour (eg. FF0000) for Message Cards and one of the following values: "default", "emphasis", "good", "attention", "warning" or "accent" for Adaptive Cards', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url' => 'Medallion picture', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url+' => 'URL of the image to display as a medallion in the message card, it must be publicly accessible on the internet for Microsoft Teams to be able to display it', + 'Class:ActionMicrosoftTeamsNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \\SomeClass::XXX + +IMPORTANT: If set, the \'title\', \'message\' and all \'additional elements\' will be ignored.', + // - Fieldsets + 'ActionMicrosoftTeamsNotification:message' => 'Basis message', + 'ActionMicrosoftTeamsNotification:additionalelements' => 'Additional elements to include', + 'ActionMicrosoftTeamsNotification:theme' => 'Theme', + 'Class:ActionWebhook/Error:InvalidJSONFormatForPayload' => 'Invalid JSON format for Payload', +)); diff --git a/datamodels/2.x/combodo-webhook-integration/dictionaries/es_cr.dict.combodo-webhook-integration.php b/datamodels/2.x/combodo-webhook-integration/dictionaries/es_cr.dict.combodo-webhook-integration.php new file mode 100644 index 0000000000..e3232a1005 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/dictionaries/es_cr.dict.combodo-webhook-integration.php @@ -0,0 +1,222 @@ + + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + */ +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ + 'ActionGoogleChatNotification:message' => 'Mensaje', + 'ActionMicrosoftTeamsNotification:additionalelements' => 'Elementos adicionales a incluir', + 'ActionMicrosoftTeamsNotification:message' => 'Mensaje base', + 'ActionMicrosoftTeamsNotification:theme' => 'Tema', + 'ActionRocketChatNotification:additionalelements' => 'Información Bot', + 'ActionRocketChatNotification:message' => 'Mensaje base', + 'ActionSlackNotification:Payload:BlockKit:UserInfo' => 'Notificación de <%2$s|%1$s> (%3$s)', + 'ActionSlackNotification:additionalelements' => 'Elementos adicionales a incluir', + 'ActionSlackNotification:message' => 'Mensaje base', + 'ActionWebhook:advancedparameters' => 'Parámetros Avanzados', + 'ActionWebhook:baseinfo' => 'Información General', + 'ActionWebhook:moreinfo' => 'Más información', + 'ActionWebhook:requestparameters' => 'Parámetros de Solicitud', + 'ActionWebhook:webhookconnection' => 'Conexión Webhook', + 'Class:ActionGoogleChatNotification' => 'Notificación Google Chat', + 'Class:ActionGoogleChatNotification+' => 'Enviar una notificación como mensaje de Google Chat en un espacio', + 'Class:ActionGoogleChatNotification/Attribute:message' => 'Mensaje', + 'Class:ActionGoogleChatNotification/Attribute:message+' => 'Mensaje que se mostrará en el chat, por ahora solo se admite texto sin formato.', + 'Class:ActionGoogleChatNotification/Attribute:prepare_payload_callback+' => 'Método PHP para preparar los datos de carga útil que se enviarán durante la llamada del webhook. Úselo si las opciones estándar no son lo suficientemente flexibles o si su estructura de carga útil debe construirse dinámicamente. + +Puede utilizar 2 tipos de métodos: +- Desde el propio objeto disparador (por ejemplo, UserRequest), debe ser público. Ejemplo: $this->XXX +- Desde cualquier clase PHP, debe ser estático Y público. El nombre debe ser un nombre completamente calificado. Ejemplo: \AlgunaClase::XXX($oObjeto, $aContextArgs, $oLog, $oAcción) + +IMPORTANTE: Si se habilita, el \'mensaje\' será ignorados.', + 'Class:ActionMicrosoftTeamsNotification' => 'Notificación Microsoft Teams', + 'Class:ActionMicrosoftTeamsNotification+' => 'Enviar una notificación como mensaje de Microsoft Teams en un canal', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url' => 'Imagen del medallón', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url+' => 'URL de la imagen que se mostrará como un medallón en la tarjeta de mensaje; debe ser accesible públicamente en Internet para que Microsoft Teams pueda mostrarla', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button' => 'Botón Borrar', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button+' => 'Incluya un botón debajo del mensaje para eliminar el objeto en '.ITOP_APPLICATION_SHORT, + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:no' => 'No', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:yes' => 'Si', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes' => 'Atributos de', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes+' => 'Desplegar atributos adicionales debajo del mensaje. They can be either from the usual \'list\' view or the custom \'msteams\' view of the object triggering the notification . Note that the \'msteams\' view must be defined in the datamodel first (zlist)', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:list' => 'la vista de lista habitual', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:msteams' => 'la vista personalizada "msteams"', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button' => 'Botón Modificar', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button+' => 'Incluir un botón debajo del mensaje para editar el objeto en '.ITOP_APPLICATION_SHORT, + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:no' => 'No', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:yes' => 'Si', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button' => 'Botones de otras acciones', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button+' => 'Incluir otras acciones (como transiciones disponibles en el estado actual) debajo del mensaje', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:no' => 'No', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:specify' => 'Especificar', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:yes' => 'Si', + 'Class:ActionMicrosoftTeamsNotification/Attribute:message' => 'Mensaje', + 'Class:ActionMicrosoftTeamsNotification/Attribute:prepare_payload_callback+' => 'Método PHP para preparar los datos de carga útil que se enviarán durante la llamada del Webhook. Úselo si las opciones estándar no son lo suficientemente flexibles o si su estructura de carga útil debe construirse dinámicamente. + +Puede utilizar 2 tipos de métodos: +- Desde el propio objeto disparador (por ejemplo, UserRequest), debe ser público. Ejemplo: $this->XXX +- Desde cualquier clase PHP, debe ser estático Y público. El nombre debe ser un nombre completamente calificado. Ejemplo: \AlgunaClase::XXX($oObjeto, $aContextArgs, $oLog, $oAcción) + +IMPORTANTE: Si se habilita, el \'title\', \'mensaje\' y todos los \'elementos adicionales\' serán ignorados.', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions' => 'Códigos de otras acciones', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions+' => 'Especifique qué acciones incluir como botones debajo del mensaje. Debe ser una lista separada por comas de los códigos de acción (por ejemplo, \'ev_reopen, ev_close\')', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color' => 'Color de resaltado', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color+' => 'El color de resaltado de la tarjeta de mensaje en Microsoft Teams debe ser un color hexadecimal válido (p. ej., FF0000) para tarjetas Message Card y uno de los siguientes valores: "default", "emphasis", "good", "attention", "warning" o "accent" para tarjetas Adaptive Card', + 'Class:ActionMicrosoftTeamsNotification/Attribute:title' => 'Título', + 'Class:ActionRocketChatNotification' => 'Notificaciones Rocket.Chat', + 'Class:ActionRocketChatNotification+' => 'Enviar una notificación como mensaje Rocket.Chat en un canal o a un usuario', + 'Class:ActionRocketChatNotification/Attribute:bot_alias' => 'Alias', + 'Class:ActionRocketChatNotification/Attribute:bot_alias+' => 'Anula el alias del bot predeterminado y aparecerá antes del nombre de usuario del mensaje', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar' => 'Emoji avatar', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar+' => 'Anula el avatar del bot predeterminado, puede ser cualquier emoji de Rocket.Chat (por ejemplo, :ghost:, :white_check_mark:, ...). Tenga en cuenta que si se configura un avatar de URL, el emoji no se mostrará.', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar' => 'Imagen avatar', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar+' => 'Overrides the default bot avatar, must be an absolute URL to the image to useAnula el avatar del bot predeterminado; debe ser una URL absoluta para la imagen que se utilizará', + 'Class:ActionRocketChatNotification/Attribute:message' => 'Mensaje', + 'Class:ActionRocketChatNotification/Attribute:message+' => 'Mensaje que se mostrará en el chat', + 'Class:ActionRocketChatNotification/Attribute:prepare_payload_callback+' => 'Método PHP para preparar los datos de carga útil que se enviarán durante la llamada del Webhook. Úselo si las opciones estándar no son lo suficientemente flexibles o si su estructura de carga útil debe construirse dinámicamente. + +Puede utilizar 2 tipos de métodos: +- Desde el propio objeto disparador (por ejemplo, UserRequest), debe ser público. Ejemplo: $this->XXX +- Desde cualquier clase PHP, debe ser estático Y público. El nombre debe ser un nombre completamente calificado. Ejemplo: \AlgunaClase::XXX($oObjeto, $aContextArgs, $oLog, $oAcción) + +IMPORTANTE: Si se habilita, el \'mensaje\' y toda la \'información bot\' serán ignorados.', + 'Class:ActionSlackNotification' => 'Notificación Slack', + 'Class:ActionSlackNotification+' => 'Envar una notificación como un mensaje Slack en un canal o a un usuario', + 'Class:ActionSlackNotification/Attribute:include_delete_button' => 'Botón Borrar', + 'Class:ActionSlackNotification/Attribute:include_delete_button+' => 'Incluir un botón debajo del mensaje para eliminar el objeto en '.ITOP_APPLICATION_SHORT, + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:no' => 'No', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:yes' => 'Si', + 'Class:ActionSlackNotification/Attribute:include_list_attributes' => 'Atributos de', + 'Class:ActionSlackNotification/Attribute:include_list_attributes+' => 'Desplegar atributos adicionales debajo del mensaje. They can be either from the usual \'list\' view or the custom \'slack\' view of the object triggering the notification . Note that the \'slack\' view must be defined in the datamodel first (zlist)', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:list' => 'la vista de lista habitual', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:slack' => 'la vista suelta personalizada', + 'Class:ActionSlackNotification/Attribute:include_modify_button' => 'Botón Modificar', + 'Class:ActionSlackNotification/Attribute:include_modify_button+' => 'Incluir un botón debajo del mensaje para editar el objeto en '.ITOP_APPLICATION_SHORT, + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:no' => 'No', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:yes' => 'Si', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button' => 'Botones de otras acciones', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button+' => 'Incluir otras acciones (como transiciones disponibles en el estado actual) debajo del mensaje', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:no' => 'No', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:specify' => 'Especificar', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:yes' => 'Si', + 'Class:ActionSlackNotification/Attribute:include_user_info' => 'Info. Usuario', + 'Class:ActionSlackNotification/Attribute:include_user_info+' => 'Desplegar información de usuario (nombre completo) debajo del mensaje', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:no' => 'No', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:yes' => 'Si', + 'Class:ActionSlackNotification/Attribute:message' => 'Mensaje', + 'Class:ActionSlackNotification/Attribute:prepare_payload_callback+' => 'Método PHP para preparar los datos de carga útil que se enviarán durante la llamada del Webhook. Úselo si las opciones estándar no son lo suficientemente flexibles o si su estructura de carga útil debe construirse dinámicamente. + +Puede utilizar 2 tipos de métodos: +- Desde el propio objeto disparador (por ejemplo, UserRequest), debe ser público. Ejemplo: $this->XXX +- Desde cualquier clase PHP, debe ser estático Y público. El nombre debe ser un nombre completamente calificado. Ejemplo: \AlgunaClase::XXX($oObjeto, $aContextArgs, $oLog, $oAcción) + +IMPORTANTE: Si se habilita, el \'mensaje\' y todos los \'elementos adicionales\' serán ignorados.', + 'Class:ActionSlackNotification/Attribute:specified_other_actions' => 'Códigos de otras acciones', + 'Class:ActionSlackNotification/Attribute:specified_other_actions+' => 'Especifique qué acciones incluir como botones debajo del mensaje. Debe ser una lista separada por comas de los códigos de acción (por ejemplo, \'ev_reopen, ev_close\')', + 'Class:ActionWebhook' => 'Llamada Webhook (genérica)', + 'Class:ActionWebhook+' => 'Llamada Webhook para cualquier tipo de aplicación', + 'Class:ActionWebhook/Attribute:asynchronous+' => 'Si esta acción debe ejecutarse en segundo plano o no (tenga en cuenta que la configuración global para las acciones de webhook es el parámetro de configuración "prefer_asynchronous" del módulo "combodo-webhook-action")', + 'Class:ActionWebhook/Attribute:headers' => 'Encabezados', + 'Class:ActionWebhook/Attribute:headers+' => 'Encabezados de la solicitud HTTP, debe ser uno por línea (ejem. \'Content-type: application/json\')', + 'Class:ActionWebhook/Attribute:language' => 'Idioma', + 'Class:ActionWebhook/Attribute:language+' => 'Idioma de esta notificación, que se usa principalmente al buscar notificaciones, pero también se puede usar para traducir la etiqueta de atributos', + 'Class:ActionWebhook/Attribute:method' => 'Método', + 'Class:ActionWebhook/Attribute:method+' => 'Método de la solicitud HTTP', + 'Class:ActionWebhook/Attribute:method/Value:delete' => 'DELETE', + 'Class:ActionWebhook/Attribute:method/Value:get' => 'GET', + 'Class:ActionWebhook/Attribute:method/Value:head' => 'HEAD', + 'Class:ActionWebhook/Attribute:method/Value:patch' => 'PATCH', + 'Class:ActionWebhook/Attribute:method/Value:post' => 'POST', + 'Class:ActionWebhook/Attribute:method/Value:put' => 'PUT', + 'Class:ActionWebhook/Attribute:path' => 'Ruta', + 'Class:ActionWebhook/Attribute:path+' => 'Ruta adicional para agregar a la URL de conexión (por ejemplo, \'/some/specific-endpoint\')', + 'Class:ActionWebhook/Attribute:payload' => 'Carga', + 'Class:ActionWebhook/Attribute:payload+' => 'Datos enviados durante la llamada webhook, muchas de las veces es una cadena JSON. Uselo si su estructura de carga es estática. + + IMPORTANTE: Se ignorará si se habilita \'Preparar devolución de llamada de carga\'', + 'Class:ActionWebhook/Attribute:prepare_payload_callback' => 'Preparar devolución de llamada de carga', + 'Class:ActionWebhook/Attribute:prepare_payload_callback+' => 'Método PHP para preparar los datos de carga que se enviarán durante la llamada del webhook. Use esto si su estructura de carga debe construirse dinámicamente. + +Puede utilizar 2 tipos de métodos: +- Desde el propio objeto disparador (por ejemplo, UserRequest), debe ser público. Ejemplo: $this->XXX +- Desde cualquier clase PHP, debe ser estático Y público. El nombre debe ser un nombre completamente calificado. Ejemplo: \AlgunaClase::XXX($oObjeto, $aContextArgs, $oLog, $oAcción) + +IMPORTANTE: Si se habilita, se ignorará el atributo \'Carga\'.', + 'Class:ActionWebhook/Attribute:process_response_callback' => 'Procesar llamada de respuesta', + 'Class:ActionWebhook/Attribute:process_response_callback+' => 'Método PHP para procesar la respuesta de llamada de webhook. + +Puede utilizar 2 tipos de métodos: +- Desde el propio objeto disparador (por ejemplo, UserRequest), debe ser público. Ejemplo: $this->XXX +- Desde cualquier clase PHP, debe ser estático Y público. El nombre debe ser un nombre completamente calificado. Ejemplo: \AlgunaClase::XXX($oObjeto, $aContextArgs, $oLog, $oAcción) +- $oResponse puede ser nulo en algunos casos (ejem. request failed to send)', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id' => 'Conexión', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id+' => 'Información de conexión para usar cuando el estado es \'en producción\'', + 'Class:ActionWebhook/Attribute:remoteapplicationtype_action_explanation' => 'Explicación', + 'Class:ActionWebhook/Attribute:remoteapplicationtype_action_explanation+' => 'Explicación sobre cómo configurar esta acción para la aplicación de la conexión. Por ejemplo, cómo construir la carga útil o qué esperar en la respuesta.', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id' => 'Conexión de prueba', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id+' => 'Información de conexión para usar cuando el estado está \'en prueba\'', + 'Class:ActioniTopWebhook' => 'Llamada iTop webhook', + 'Class:ActioniTopWebhook+' => 'Llamada webhook a una aplicación iTop remota', + 'Class:ActioniTopWebhook/Attribute:headers+' => 'Los encabezados de la solicitud HTTP deben ser uno por línea (por ejemplo, \'Content-type: application/x-www-form-urlencoded\') + +IMPORTANTE: +- \'Content-type\' debe establecerse en \'application/x-www-form-urlencoded\' para iTop, aunque enviemos JSON +- Un encabezado \'Autorización básica\' se agregará automáticamente a la solicitud durante el envío, que contiene las credenciales de la conexión seleccionada', + 'Class:ActioniTopWebhook/Attribute:payload' => 'datos JSON', + 'Class:ActioniTopWebhook/Attribute:payload+' => 'La carga JSON debe ser una cadena JSON que contenga el nombre de la operación y los parámetros. Consulte la documentación para obtener información detallada.', + 'Class:ActioniTopWebhook/Attribute:prepare_payload_callback+' => 'Método PHP para preparar los datos de carga que se enviarán durante la llamada webhook. Use esto si su estructura de carga debe construirse dinámicamente. + +Puede utilizar 2 tipos de métodos: +- Desde el propio objeto disparador (por ejemplo, UserRequest), debe ser público. Ejemplo: $this->XXX +- Desde cualquier clase PHP, debe ser estático Y público. El nombre debe ser un nombre completamente calificado. Ejemplo: \AlgunaClase::XXX($oObjeto, $aContextArgs, $oLog, $oAcción) + +IMPORTANTE: Si se habilita, el atributo \'JSON data\' será ignorado.', + 'Class:EventWebhook' => 'Evento de emisión Webhook', + 'Class:EventWebhook/Attribute:action_finalclass' => 'Clase Final', + 'Class:EventWebhook/Attribute:headers' => 'Encabezados', + 'Class:EventWebhook/Attribute:payload' => 'Carga', + 'Class:EventWebhook/Attribute:response' => 'Respuesta', + 'Class:EventWebhook/Attribute:webhook_url' => 'URL Webhook URL', + 'Class:RemoteApplicationConnection' => 'Conexión de aplicación remota', + 'Class:RemoteApplicationConnection/Attribute:actions_list' => 'Notificaciones Webhook', + 'Class:RemoteApplicationConnection/Attribute:actions_list+' => 'Notificacioens usadas por esta conexión Webhook', + 'Class:RemoteApplicationConnection/Attribute:environment' => 'Ambiente', + 'Class:RemoteApplicationConnection/Attribute:environment+' => 'Tipo de ambiente de la conexión', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:1-development' => 'Desarrollo', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:2-test' => 'Pruebas', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:3-production' => 'Producción', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id' => 'Tipo de aplicación', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id+' => 'Tipo de aplicación para la que es la conexión (use \'Genérico\' si la suya no está en la lista)', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_remoteapplicationconnection_explanation' => 'Explicación', + 'Class:RemoteApplicationConnection/Attribute:url' => 'URL', + 'Class:RemoteApplicationType' => 'Tipo de aplicación remota', + 'Class:RemoteApplicationType/Attribute:action_explanation' => 'Explicación de la acción', + 'Class:RemoteApplicationType/Attribute:action_explanation+' => 'Explicación sobre cómo configurar una acción webhook en '.ITOP_APPLICATION_SHORT.' (activada por un disparador) para esa aplicación. Por ejemplo, cómo construir una carga o qué esperar en la respuesta.', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnection_explanation' => 'Explicación de la conexión', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnection_explanation+' => 'Explicación sobre cómo configurar una conexión para esa aplicación, por ejemplo, dónde y cómo crear el punto final', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list' => 'Conexiones', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list+' => 'Conexiones para esta aplicación', + 'Class:RemoteiTopConnection' => 'Conexión remota iTop', + 'Class:RemoteiTopConnection/Attribute:auth_pwd' => 'Contraseña Aut.', + 'Class:RemoteiTopConnection/Attribute:auth_pwd+' => 'Contraseña del usuario (en el iTop remoto) utilizada para la autenticación', + 'Class:RemoteiTopConnection/Attribute:auth_user' => 'Usuario Aut.', + 'Class:RemoteiTopConnection/Attribute:auth_user+' => 'Inicio de sesión del usuario (en el iTop remoto) utilizado para la autenticación', + 'Class:RemoteiTopConnection/Attribute:version' => 'Versión de API', + 'Class:RemoteiTopConnection/Attribute:version+' => 'Versión de la API llamada (por ejemplo, 1.3)', + 'Class:RemoteiTopConnectionToken' => 'Conexión iTop remota mediante un Token', + 'Class:RemoteiTopConnectionToken/Attribute:token+' => 'Token', + 'Dashboard:Integrations:ActionWebhookList:Title' => 'Acciones de tipo webhook', + 'Dashboard:Integrations:Outgoing:Title' => 'Integraciones webhook salientes', + 'Dashboard:Integrations:Title' => 'Integraciones con aplicacioens externas', + 'Menu:Webhook' => 'Webhooks~~', + 'RemoteApplicationConnection:authinfo' => 'Autenticación', + 'RemoteApplicationConnection:baseinfo' => 'Información General', + 'RemoteApplicationConnection:moreinfo' => 'Más information', + 'Class:ActionMicrosoftTeamsNotification/Attribute:json_format/Value:message_card' => 'Message Card~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:json_format/Value:adaptive_card' => 'Adaptive Card~~', + 'Class:ActionWebhook/Error:InvalidJSONFormatForPayload' => 'Invalid JSON format for Payload~~', +]); diff --git a/datamodels/2.x/combodo-webhook-integration/dictionaries/fr.dict.combodo-webhook-integration.php b/datamodels/2.x/combodo-webhook-integration/dictionaries/fr.dict.combodo-webhook-integration.php new file mode 100644 index 0000000000..b2f90b6dec --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/dictionaries/fr.dict.combodo-webhook-integration.php @@ -0,0 +1,233 @@ + 'Message', + 'ActionMicrosoftTeamsNotification:additionalelements' => 'Eléments additionnels à inclure', + 'ActionMicrosoftTeamsNotification:message' => 'Message de base', + 'Class:ActionMicrosoftTeamsNotification/Attribute:json_format' => 'Format JSON', + 'Class:ActionMicrosoftTeamsNotification/Attribute:json_format+' => 'Détermine quel format doit être utilisé pour la transmission.', + 'Class:ActionMicrosoftTeamsNotification/Attribute:json_format/Value:message_card' => 'Carte de message', + 'Class:ActionMicrosoftTeamsNotification/Attribute:json_format/Value:adaptive_card' => 'Carte adaptative', + 'ActionMicrosoftTeamsNotification:theme' => 'Thème', + 'ActionRocketChatNotification:additionalelements' => 'Informations du bot', + 'ActionRocketChatNotification:message' => 'Message de base', + 'ActionSlackNotification:Payload:BlockKit:UserInfo' => 'Notification de <%2$s|%1$s> (%3$s)', + 'ActionSlackNotification:additionalelements' => 'Eléments additionnels à inclure', + 'ActionSlackNotification:message' => 'Message de base', + 'ActionWebhook:advancedparameters' => 'Paramètres avancés', + 'ActionWebhook:baseinfo' => 'Informations générales', + 'ActionWebhook:moreinfo' => 'Autres informations', + 'ActionWebhook:requestparameters' => 'Paramètres de la requête', + 'ActionWebhook:webhookconnection' => 'Informations de connexion', + 'ActioniTopWebhook:requestparameters' => 'Paramètres de la requête', + 'Class:ActionGoogleChatNotification' => 'Notification par Google Chat', + 'Class:ActionGoogleChatNotification+' => 'Envoi une notification sous forme de message dans un espace Google Chat', + 'Class:ActionGoogleChatNotification/Attribute:message' => 'Message', + 'Class:ActionGoogleChatNotification/Attribute:message+' => 'Message qui sera affiché dans le chat, seul le text brut est supporté pour le moment.', + 'Class:ActionGoogleChatNotification/Attribute:prepare_payload_callback+' => 'Si les options standard ne sont pas assez flexibles ou si la charge utile JSON doit être construite dynamiquement, ce champ contiendra le nom de la méthode PHP pour la générer lors de l\'appel au Webhook. + +Vous pouvez utiliser 2 types de méthodes : +- Méthode de l\'objet déclenchant l\'action (ex : Demande utilisateur), doit être publique. Exemple : $this->XXX +- Méthode de n\'importe quelle classe PHP, doit être statique ET publique. Le nom doit être entièrement qualifié (inclure le namespace). Exemple: \UneClasse::XXX + +IMPORTANT : Si ce champ est renseigné, le champ \'message\' sera ignoré.', + 'Class:ActionMicrosoftTeamsNotification' => 'Notification par Microsoft Teams', + 'Class:ActionMicrosoftTeamsNotification+' => 'Envoi une notification sous forme de message dans un canal Microsoft Teams', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url' => 'Image en médaillon', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url+' => 'URL de l\'image à afficher comme médaillon du message, elle doit être accessible publiquement sur Internet pour que Microsoft Teams puisse l\'afficher', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button' => 'Bouton supprimer', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button+' => 'Ajoute un bouton sous le message pour supprimer l\'objet correspondant dans '.ITOP_APPLICATION_SHORT, + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:no' => 'Non', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:yes' => 'Oui', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes' => 'Attributs de', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes+' => 'Affiche des attributs additionels de l\'objet ayant déclenché l\'action sous le message. Ils correspondent aux attributs soit à ceux de la vue liste habituelle ou d\'une vue \'msteams\' personnalisée. Note : La vue \'msteams\' doit être définie dans le modèle de données au préalable (zlist)', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:list' => 'la vue liste habituelle', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:msteams' => 'la vue personnalisée "msteams"', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button' => 'Bouton modifier', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button+' => 'Ajoute un bouton sous le message pour modifier l\'objet correspondant dans '.ITOP_APPLICATION_SHORT, + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:no' => 'Non', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:yes' => 'Oui', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button' => 'Autres boutons d\'actions', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button+' => 'Ajoute d\'autres actions (comme les transitions possibles dans l\'état courant) sous le message', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:no' => 'Non', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:specify' => 'A spécifier', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:yes' => 'Oui', + 'Class:ActionMicrosoftTeamsNotification/Attribute:message' => 'Message', + 'Class:ActionMicrosoftTeamsNotification/Attribute:prepare_payload_callback+' => 'Si les options standard ne sont pas assez flexibles ou si la charge utile JSON doit être construite dynamiquement, ce champ contiendra le nom de la méthode PHP pour la générer lors de l\'appel au Webhook. + +Vous pouvez utiliser 2 types de méthodes : +- Méthode de l\'objet déclenchant l\'action (ex : Demande utilisateur), doit être publique. Exemple : $this->XXX +- Méthode de n\'importe quelle classe PHP, doit être statique ET publique. Le nom doit être entièrement qualifié (inclure le namespace). Exemple: \UneClasse::XXX + +IMPORTANT : Si ce champ est renseigné, les champs \'titre\', \'message\' et tous les \'éléments additionnels\' seront ignorés.', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions' => 'Autres codes d\'actions', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions+' => 'Spécifie les autres actions à ajouter comme boutons sous le message. Doit être liste de code d\'actions séparés par des virgules (ex : \'ev_reopen, ev_close\')', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color' => 'Couleur de la carte', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color+' => 'Couleur de la carte dans Teams, doit être une couleur hexadécimale valide (ex : FF0000) pour les cartes de message, et l\'une des valeurs suivantes: "default", "emphasis", "good", "attention", "warning" ou "accent" pour les cartes adaptatives.', + 'Class:ActionMicrosoftTeamsNotification/Attribute:title' => 'Titre', + 'Class:ActionRocketChatNotification' => 'Notification par Rocket.Chat', + 'Class:ActionRocketChatNotification+' => 'Envoi une notification sous forme de message dans un canal ou à un utilisateur Rocket.Chat', + 'Class:ActionRocketChatNotification/Attribute:bot_alias' => 'Alias', + 'Class:ActionRocketChatNotification/Attribute:bot_alias+' => 'Remplace l\'alias par défaut du bot, apparaîtra devant le nom d\'utilisateur du message', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar' => 'Avatar emoji', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar+' => 'Remplace l\'avatar par défaut du bot, peut être n\'importe quel emojis de Rocket.Chat (ex : :ghost:, :white_check_mark:, ...). Note : si une "avatar image" est renseigné, l\'emoji ne sera pas affiché.', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar' => 'Avatar image', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar+' => 'Remplace l\'avatar par défaut du bot, doit être une URL absolue de l\'image à utiliser', + 'Class:ActionRocketChatNotification/Attribute:message' => 'Message', + 'Class:ActionRocketChatNotification/Attribute:message+' => 'Message qui sera affiché dans le chat', + 'Class:ActionRocketChatNotification/Attribute:prepare_payload_callback+' => 'Si les options standard ne sont pas assez flexibles ou si la charge utile JSON doit être construite dynamiquement, ce champ contiendra le nom de la méthode PHP pour la générer lors de l\'appel au Webhook. + +Vous pouvez utiliser 2 types de méthodes : +- Méthode de l\'objet déclenchant l\'action (ex : Demande utilisateur), doit être publique. Exemple : $this->XXX +- Méthode de n\'importe quelle classe PHP, doit être statique ET publique. Le nom doit être entièrement qualifié (inclure le namespace). Exemple: \UneClasse::XXX + +IMPORTANT : Si ce champ est renseigné, les champs \'message\' et toutes les \'informations du bot\' seront ignorés.', + 'Class:ActionSlackNotification' => 'Notification par Slack', + 'Class:ActionSlackNotification+' => 'Envoi une notification sous forme de message dans un canal ou à un utilisateur Slack', + 'Class:ActionSlackNotification/Attribute:include_delete_button' => 'Bouton supprimer', + 'Class:ActionSlackNotification/Attribute:include_delete_button+' => 'Ajoute un bouton sous le message pour supprimer l\'objet correspondant dans '.ITOP_APPLICATION_SHORT, + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:no' => 'Non', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:yes' => 'Oui', + 'Class:ActionSlackNotification/Attribute:include_list_attributes' => 'Attributs de', + 'Class:ActionSlackNotification/Attribute:include_list_attributes+' => 'Affiche des attributs additionels de l\'objet ayant déclenché l\'action sous le message. Ils correspondent aux attributs soit à ceux de la vue liste habituelle ou d\'une vue \'slack\' personnalisée. Note : La vue \'slack\' doit être définie dans le modèle de données au préalable (zlist)', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:list' => 'la vue liste habituelle', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:slack' => 'la vue personnalisée "slack"', + 'Class:ActionSlackNotification/Attribute:include_modify_button' => 'Bouton modifier', + 'Class:ActionSlackNotification/Attribute:include_modify_button+' => 'Ajoute un bouton sous le message pour modifier l\'objet correspondant dans '.ITOP_APPLICATION_SHORT, + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:no' => 'Non', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:yes' => 'Oui', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button' => 'Autres boutons d\'actions', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button+' => 'Ajoute d\'autres actions (comme les transitions possibles dans l\'état courant) sous le message', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:no' => 'Non', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:specify' => 'A spécifier', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:yes' => 'Oui', + 'Class:ActionSlackNotification/Attribute:include_user_info' => 'Info. utilisateur', + 'Class:ActionSlackNotification/Attribute:include_user_info+' => 'Affiche les infos (nom complet) de l\'utilisateur courant sous le message', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:no' => 'Non', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:yes' => 'Oui', + 'Class:ActionSlackNotification/Attribute:message' => 'Message', + 'Class:ActionSlackNotification/Attribute:prepare_payload_callback+' => 'Si les options standard ne sont pas assez flexibles ou si la charge utile JSON doit être construite dynamiquement, ce champ contiendra le nom de la méthode PHP pour la générer lors de l\'appel au Webhook. + +Vous pouvez utiliser 2 types de méthodes : +- Méthode de l\'objet déclenchant l\'action (ex : Demande utilisateur), doit être publique. Exemple : $this->XXX +- Méthode de n\'importe quelle classe PHP, doit être statique ET publique. Le nom doit être entièrement qualifié (inclure le namespace). Exemple: \UneClasse::XXX + +IMPORTANT : Si ce champ est renseigné, les champs \'message\' et tous les \'éléments additionels\' seront ignorés.', + 'Class:ActionSlackNotification/Attribute:specified_other_actions' => 'Autres codes d\'actions', + 'Class:ActionSlackNotification/Attribute:specified_other_actions+' => 'Liste des actions qui seront incluses sous forme de boutons sous le message. La valeur doit être une liste de code d\'actions séparés par virgule (par exemple : \'ev_reopen, ev_close\')', + 'Class:ActionWebhook' => 'Action par webhook (générique)', + 'Class:ActionWebhook+' => 'Appel webhook pour tout types d\'applications', + 'Class:ActionWebhook/Attribute:asynchronous+' => 'L\'action est-elle exécutée en arrière plan ? (notez que le paramètrage global pour les actions webhooks est le paramètre de conf. "prefer_asynchronous" du module "combodo-webhook-action")', + 'Class:ActionWebhook/Attribute:headers' => 'Entêtes', + 'Class:ActionWebhook/Attribute:headers+' => 'Entêtes de la requête HTTP, seulement une par ligne (ex : \'Content-type: application/json\')', + 'Class:ActionWebhook/Attribute:language' => 'Langue', + 'Class:ActionWebhook/Attribute:language+' => 'Langue de la notification, principalement utilisée pour filtrer les notifications, mais peut aussi être utilisée pour traduire des libellés d\'attributs', + 'Class:ActionWebhook/Attribute:method' => 'Méthode', + 'Class:ActionWebhook/Attribute:method+' => 'Méthode HTTP de la requête', + 'Class:ActionWebhook/Attribute:method/Value:delete' => 'DELETE', + 'Class:ActionWebhook/Attribute:method/Value:get' => 'GET', + 'Class:ActionWebhook/Attribute:method/Value:head' => 'HEAD', + 'Class:ActionWebhook/Attribute:method/Value:patch' => 'PATCH', + 'Class:ActionWebhook/Attribute:method/Value:post' => 'POST', + 'Class:ActionWebhook/Attribute:method/Value:put' => 'PUT', + 'Class:ActionWebhook/Attribute:path' => 'Chemin', + 'Class:ActionWebhook/Attribute:path+' => 'Chemin additionnel à concaténer à l\'URL de la connection (par exemple : \'/some/specific-endpoint\')', + 'Class:ActionWebhook/Attribute:payload' => 'Charge utile', + 'Class:ActionWebhook/Attribute:payload+' => 'Données envoyées lors de l\'appel webhook, une chaîne JSON le plus souvent. Utiliser ce champ si la structure de la charge utile est statique / fixe. + +IMPORTANT : Sera ignoré si le champ \'Callback de préparation de la charge utile\' est renseigné', + 'Class:ActionWebhook/Attribute:prepare_payload_callback' => 'Callback de préparation de la charge utile', + 'Class:ActionWebhook/Attribute:prepare_payload_callback+' => 'Méthode PHP pour préparer les données de la charge utile à envoyer lors de l\'appel du webhook. Utiliser ce champ si la charge utile a une structure qui doit être construite dynamiquement. + +IMPORTANT : Si renseigné, le champ \'Charge utile\' sera ignoré. Vous pouvez utiliser 2 types de méthodes : +- Méthode de l\'objet déclenchant l\'action (ex : Demande utilisateur), doit être publique. Exemple : $this->XXX +- Méthode de n\'importe quelle classe PHP, doit être statique ET publique. Le nom doit être entièrement qualifié (inclure le namespace). Exemple: \UneClasse::XXX', + 'Class:ActionWebhook/Attribute:process_response_callback' => 'Callback de traitement de la réponse', + 'Class:ActionWebhook/Attribute:process_response_callback+' => 'Méthode PHP pour traiter la réponse de reçue lors de l\'appel webhook. + +IMPORTANT : Vous pouvez utiliser 2 types de méthodes : +- Méthode de l\'objet déclenchant l\'action (ex : Demande utilisateur), doit être publique. Example : $this->XXX +- Méthode de n\'importe quelle classe PHP, doit être statique ET publique. Le nom doit être entièrement qualifié (inclure le namespace). Exemple : \UneClass::XXX +- $oResponse peut être null dans certains cas (ex : échec de l\'envoi de la requête)', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id' => 'Connexion', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id+' => 'Informations de connexion à utiliser quand le statut est à \'en production\'', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id' => 'Connexion de test', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id+' => 'Informations de connexion à utiliser quand le statut est à \'en test\'', + 'Class:ActioniTopWebhook' => 'Action par API REST '.ITOP_APPLICATION_SHORT, + 'Class:ActioniTopWebhook+' => 'Appel de webhook d\'une application iTop distante', + 'Class:ActioniTopWebhook/Attribute:headers+' => 'Entêtes de la requête HTTP, seulement une par ligne (ex : \'Content-type: application/x-www-form-urlencoded\') + +IMPORTANT : +- Le \'Content-type\' devrait être \'application/x-www-form-urlencoded\' pour iTop, quand bien même nous envoyons du JSON +- Une entête \'Basic authorization\' sera ajoutée automatiquement à la requête durant l\'envoi, contenant les identifiants de la connexion sélectionnée', + 'Class:ActioniTopWebhook/Attribute:payload' => 'Données JSON', + 'Class:ActioniTopWebhook/Attribute:payload+' => 'La charge utile JSON, doit être une chaine JSON contenant le nom de l\'opération et ses paramètres, voir la documentation pour plus d\'informations', + 'Class:ActioniTopWebhook/Attribute:prepare_payload_callback+' => 'Si la charge utile JSON doit être construite dynamiquement, ce champ contiendra le nom de la méthode PHP pour la générer lors de l\'appel au Webhook. + +Deux types de méthodes peuvent être utilisés : +- Méthode de l\'objet déclenchant l\'action (ex : Demande utilisateur), dans ce cas elle doit être publique. Exemple : $this->XXX +- Méthode de n\'importe quelle classe PHP, dans ce cas doit être publique ET statique. Le nom doit être entièrement qualifié (inclure le namespace). Exemple: \UneClasse::XXX, + +IMPORTANT : Si ce champ est renseigné, le champ \'Charge utile\' sera ignoré.', + 'Class:EventWebhook' => 'Webhook déclenché', + 'Class:EventWebhook/Attribute:action_finalclass' => 'Classe finale', + 'Class:EventWebhook/Attribute:headers' => 'Entêtes', + 'Class:EventWebhook/Attribute:payload' => 'Charge utile', + 'Class:EventWebhook/Attribute:response' => 'Réponse', + 'Class:EventWebhook/Attribute:webhook_url' => 'URL du webhook', + 'Class:RemoteApplicationConnection' => 'Connexion application distante', + 'Class:RemoteApplicationConnection/Attribute:actions_list' => 'Appels webhook', + 'Class:RemoteApplicationConnection/Attribute:actions_list+' => 'Appels utilisant cette URL de webhook', + 'Class:RemoteApplicationConnection/Attribute:auth_pwd' => 'Mot de passe', + 'Class:RemoteApplicationConnection/Attribute:auth_pwd+' => 'Mot de passe de l\'utilisateur (sur l\'iTop distant) utilisé pour l\'authentification', + 'Class:RemoteApplicationConnection/Attribute:auth_user' => 'Nom d\'utilisateur', + 'Class:RemoteApplicationConnection/Attribute:environment' => 'Environnement', + 'Class:RemoteApplicationConnection/Attribute:environment+' => 'Type d\'environnement de la connexion', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:1-development' => 'Développement', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:2-test' => 'Test', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:3-production' => 'Production', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id' => 'Application', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id+' => 'Type d\'application de la connexion (mettre \'Générique\' si le votre ne figure pas la liste)', + 'Class:RemoteApplicationConnection/Attribute:url' => 'URL', + 'Class:RemoteApplicationConnection/Attribute:version' => 'Version de l\'API', + 'Class:RemoteApplicationConnection/Attribute:version+' => 'Version de l\'API utilisée sur l\'itop distant (ex : 1.3)', + 'Class:RemoteApplicationType' => 'Type d\'application distante', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list' => 'Connexions', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list+' => 'Connexions pour cette application', + 'Class:RemoteiTopConnection' => 'Connexion iTop distant', + 'Class:RemoteiTopConnection/Attribute:auth_pwd' => 'Mot de passe', + 'Class:RemoteiTopConnection/Attribute:auth_pwd+' => 'Mot de passe de l\'utilisateur (sur l\'iTop distant) utilisé pour l\'authentification', + 'Class:RemoteiTopConnection/Attribute:auth_user' => 'Nom d\'utilisateur', + 'Class:RemoteiTopConnection/Attribute:auth_user+' => 'Nom d\'utilisateur (sur l\'iTop distant) utilisé pour l\'authentification', + 'Class:RemoteiTopConnection/Attribute:version' => 'Version de l\'API', + 'Class:RemoteiTopConnection/Attribute:version+' => 'Version de l\'API utilisée sur l\'itop distant (ex : 1.3)', + 'Class:RemoteiTopConnectionToken' => 'Connexion iTop distant via un Jeton', + 'Class:RemoteiTopConnectionToken/Attribute:token' => 'Jeton', + 'Class:RemoteiTopConnectionToken/Attribute:token+' => 'Un jeton personnel d\'identification', + + //RemoteOauthConnection + 'Class:RemoteOauthConnection' => 'Connexion via OAuth', + 'Class:RemoteOauthConnection/Attribute:oauth_id+' => 'Oauth Connexion', + 'Class:RemoteOauthConnection/Attribute:oauth2client_id' => 'ID du Client Oauth2', + 'Class:RemoteOauthConnection/Attribute:version' => 'Version', + + 'Class:v/Attribute:auth_user+' => 'Nom d\'utilisateur (sur l\'iTop distant) utilisé pour l\'authentification', + 'Dashboard:Integrations:ActionWebhookList:Title' => 'Actions de type webhook', + 'Dashboard:Integrations:Outgoing:Title' => 'Webhooks d\'intégration sortants', + 'Menu:Webhook' => 'Webhooks', + 'Dashboard:Integrations:Title' => 'Intégrations avec les applications externes', + 'Menu:Integrations' => 'Intégrations', + 'RemoteApplicationConnection:authinfo' => 'Authentification', + 'RemoteApplicationConnection:baseinfo' => 'Informations générales', + 'RemoteApplicationConnection:moreinfo' => 'Autres informations', + 'Class:ActionWebhook/Error:InvalidJSONFormatForPayload' => 'Format JSON incorrect pour la Charge utile', +]); diff --git a/datamodels/2.x/combodo-webhook-integration/dictionaries/hu.dict.combodo-webhook-integration.php b/datamodels/2.x/combodo-webhook-integration/dictionaries/hu.dict.combodo-webhook-integration.php new file mode 100644 index 0000000000..e090919948 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/dictionaries/hu.dict.combodo-webhook-integration.php @@ -0,0 +1,215 @@ + 'Üzenet', + 'ActionMicrosoftTeamsNotification:additionalelements' => 'További elemek', + 'ActionMicrosoftTeamsNotification:message' => 'Bázisüzenet', + 'ActionMicrosoftTeamsNotification:theme' => 'Téma', + 'ActionRocketChatNotification:additionalelements' => 'Bot információ', + 'ActionRocketChatNotification:message' => 'Bázisüzenet', + 'ActionSlackNotification:Payload:BlockKit:UserInfo' => 'Üzenetet küldött <%2$s|%1$s> (%3$s)', + 'ActionSlackNotification:additionalelements' => 'További elemek', + 'ActionSlackNotification:message' => 'Bázisüzenet', + 'ActionWebhook:advancedparameters' => 'Speciális paraméterek', + 'ActionWebhook:baseinfo' => 'Általános információ', + 'ActionWebhook:moreinfo' => 'További információ', + 'ActionWebhook:requestparameters' => 'Lekérési paraméterek', + 'ActionWebhook:webhookconnection' => 'Webhook kapcsolat', + 'Class:ActionGoogleChatNotification' => 'Google Chat értesítés', + 'Class:ActionGoogleChatNotification+' => 'Értesítés küldése Google Chat üzenetként', + 'Class:ActionGoogleChatNotification/Attribute:message' => 'Üzenet', + 'Class:ActionGoogleChatNotification/Attribute:message+' => 'A csevegésben megjelenő üzenet, egyelőre csak egyszerű szöveges üzenet támogatott.', + 'Class:ActionGoogleChatNotification/Attribute:prepare_payload_callback+' => 'PHP-módszer a webhook-hívás során elküldendő hasznos adatok előkészítésére. Ezt akkor használja, ha a standard opciók nem elég rugalmasak, vagy ha az adatfolyam struktúráját dinamikusan kell felépíteni. + +2 típusú metódust használhat: +- Magából a kiváltó objektumból (pl. UserRequest), nyilvánosnak kell lennie. Példa: $this->XXX +- Bármely PHP osztályból, statikusnak ÉS nyilvánosnak kell lennie. A névnek teljesen minősített névnek kell lennie. Példa: \SomeClass::XXX + +FONTOS: Ha be van állítva, az \'Üzenet\' figyelmen kívül marad.', + 'Class:ActionMicrosoftTeamsNotification' => 'Microsoft Teams értesítés', + 'Class:ActionMicrosoftTeamsNotification+' => 'Értesítés küldése Microsoft Teams üzenetként egy csatornában', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url' => 'Medál kép', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url+' => 'Az üzenetkártyán medálként megjelenítendő kép URL-címe; a képnek nyilvánosan elérhetőnek kell lennie az interneten ahhoz, hogy a Microsoft Teams meg tudja jeleníteni.', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button' => 'Törlés gomb', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button+' => 'Rakjon ki egy gombot az üzenet alatt az objektum törléséhez az '.ITOP_APPLICATION_SHORT, + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:no' => 'Nem', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:yes' => 'Igen', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes' => 'Attribútumok', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes+' => 'További attribútumok megjelenítése az üzenet alatt. Ezek lehetnek a szokásos \'lista\' nézetből vagy az értesítést kiváltó objektum egyéni \'msteams\' nézetéből. Megjegyzendő, hogy a \'msteams\' nézetet először az adatmodellben kell definiálni (zlist).', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:list' => 'a szokásos listanézetből', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:msteams' => 'az egyéni "msteams" nézetből', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button' => 'Módosítás gomb', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button+' => 'Rakjon ki egy gombot az üzenet alatt az objektum szerkesztéséhez az '.ITOP_APPLICATION_SHORT, + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:no' => 'Nem', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:yes' => 'Igen', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button' => 'Egyéb művelet gombok', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button+' => 'Más műveletek (például az aktuális állapotban rendelkezésre álló átmenetek) az üzenet alatt.', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:no' => 'Nem', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:specify' => 'Adja meg', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:yes' => 'Igen', + 'Class:ActionMicrosoftTeamsNotification/Attribute:message' => 'Üzenet', + 'Class:ActionMicrosoftTeamsNotification/Attribute:prepare_payload_callback+' => 'PHP-módszer a webhook-hívás során elküldendő hasznos adatok előkészítésére. Ezt akkor használja, ha a standard opciók nem elég rugalmasak, vagy ha a hasznos teher struktúráját dinamikusan kell felépíteni. + +2 típusú metódust használhat: +- Magából a kiváltó objektumból (pl. UserRequest), nyilvánosnak kell lennie. Példa: $this->XXX +- Bármely PHP osztályból, statikusnak ÉS nyilvánosnak kell lennie. A névnek teljesen minősített névnek kell lennie. Példa: \SomeClass::XXX + +FONTOS: Ha be van állítva, a \'Cím\', \'Üzenet\' és minden \'További elemek\' figyelmen kívül marad.', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions' => 'Egyéb műveletkódok', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions+' => 'Adja meg, hogy mely műveleteket kívánja gombokként megjeleníteni az üzenet alatt. A műveletek kódjainak vesszővel elválasztott listája kell, hogy legyen (pl. \'ev_reopen, ev_close\')', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color' => 'Kiemelőszín', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color+' => 'Az üzenetkártya kiemelési színe a Microsoft Teamsben, érvényes hexadecimális színnek kell lennie (pl. FF0000)', + 'Class:ActionMicrosoftTeamsNotification/Attribute:title' => 'Cím', + 'Class:ActionRocketChatNotification' => 'Rocket.Chat értesítés', + 'Class:ActionRocketChatNotification+' => 'Értesítés küldése Rocket.Chat üzenetként egy csatornán vagy egy felhasználónak', + 'Class:ActionRocketChatNotification/Attribute:bot_alias' => 'Alias', + 'Class:ActionRocketChatNotification/Attribute:bot_alias+' => 'Felülírja az alapértelmezett bot aliast, az üzenet felhasználóneve előtt jelenik meg.', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar' => 'Emoji avatár', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar+' => 'Felülírja az alapértelmezett bot avatárt, lehet bármilyen Rocket.Chat emoji (pl. :ghost:, :white_check_mark:, ...). Vegye figyelembe, hogy ha egy URL avatar van beállítva, az emoji nem jelenik meg.', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar' => 'Avatár kép', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar+' => 'Felülírja az alapértelmezett bot avatárt, abszolút URL-nek kell lennie a használni kívánt képhez.', + 'Class:ActionRocketChatNotification/Attribute:message' => 'Üzenet', + 'Class:ActionRocketChatNotification/Attribute:message+' => 'A csevegésben megjelenő üzenet', + 'Class:ActionRocketChatNotification/Attribute:prepare_payload_callback+' => 'PHP-módszer a webhook-hívás során elküldendő hasznos adatok előkészítésére. Ezt akkor használja, ha a standard opciók nem elég rugalmasak, vagy ha az adatfolyam struktúráját dinamikusan kell felépíteni. + +2 típusú metódust használhat: +- Magából a kiváltó objektumból (pl. UserRequest), nyilvánosnak kell lennie. Példa: $this->XXX +- Bármely PHP osztályból, statikusnak ÉS nyilvánosnak kell lennie. A névnek teljesen minősített névnek kell lennie. Példa: \SomeClass::XXX + +FONTOS: Ha be van állítva, a \'Üzenet\' és az összes \'Bot információ\' figyelmen kívül marad.', + 'Class:ActionSlackNotification' => 'Slack értesítés', + 'Class:ActionSlackNotification+' => 'Értesítés küldése Slack-üzenetként egy csatornában vagy egy felhasználónak', + 'Class:ActionSlackNotification/Attribute:include_delete_button' => 'Törlés gomb', + 'Class:ActionSlackNotification/Attribute:include_delete_button+' => 'Rakjon ki egy gombot az üzenet alatt az objektum törléséhez az '.ITOP_APPLICATION_SHORT, + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:no' => 'Nem', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:yes' => 'Igen', + 'Class:ActionSlackNotification/Attribute:include_list_attributes' => 'Attribútumok', + 'Class:ActionSlackNotification/Attribute:include_list_attributes+' => 'További attribútumok megjelenítése az üzenet alatt. Ezek lehetnek az értesítést kiváltó objektum szokásos \'Lista\' nézetéből vagy az egyéni \'Slack\' nézetből. Megjegyzendő, hogy a \'Slack\' nézetet először az adatmodellben kell definiálni (zlist).', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:list' => 'a szokásos listanézetből', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:slack' => 'az egyéni "slack" nézetből', + 'Class:ActionSlackNotification/Attribute:include_modify_button' => 'Módosítás gomb', + 'Class:ActionSlackNotification/Attribute:include_modify_button+' => 'Rakjon ki egy gombot az üzenet alatt az objektum szerkesztéséhez az '.ITOP_APPLICATION_SHORT, + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:no' => 'Nem', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:yes' => 'Igen', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button' => 'Egyéb művelet gombok', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button+' => 'Az üzenet alatt egyéb műveletek (például az aktuális állapotban elérhető átmenetek) feltüntetése.', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:no' => 'Nem', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:specify' => 'Adja meg', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:yes' => 'Igen', + 'Class:ActionSlackNotification/Attribute:include_user_info' => 'Felhasználói infó.', + 'Class:ActionSlackNotification/Attribute:include_user_info+' => 'Felhasználói információk megjelenítése (teljes név) az üzenet alatt', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:no' => 'Nem', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:yes' => 'Igen', + 'Class:ActionSlackNotification/Attribute:message' => 'Üzenet', + 'Class:ActionSlackNotification/Attribute:prepare_payload_callback+' => 'PHP-módszer a webhook-hívás során elküldendő hasznos adatok előkészítésére. Ezt akkor használja, ha a standard opciók nem elég rugalmasak, vagy ha az adatfolyam struktúráját dinamikusan kell felépíteni. + +2 típusú metódust használhat: +- Magából a kiváltó objektumból (pl. UserRequest), nyilvánosnak kell lennie. Példa: $this->XXX +- Bármely PHP osztályból, statikusnak ÉS nyilvánosnak kell lennie. A névnek teljesen minősített névnek kell lennie. Példa: \SomeClass::XXX + +FONTOS: Ha be van állítva, az \'Üzenet\' és az összes \'További elemek\' figyelmen kívül marad.', + 'Class:ActionSlackNotification/Attribute:specified_other_actions' => 'Egyéb műveletkódok', + 'Class:ActionSlackNotification/Attribute:specified_other_actions+' => 'Adja meg, hogy mely műveleteket kívánja gombokként megjeleníteni az üzenet alatt. A műveletek kódjainak vesszővel elválasztott listája kell, hogy legyen (pl. \'ev_reopen, ev_close\').', + 'Class:ActionWebhook' => 'Webhook hívás (generic)', + 'Class:ActionWebhook+' => 'Webhook hívás bármilyen alkalmazáshoz', + 'Class:ActionWebhook/Attribute:asynchronous+' => 'Whether this action should be executed in background or not (mind that global setting for webhook actions is the "prefer_asynchronous" conf. parameter of the "combodo-webhook-action" module)~~', + 'Class:ActionWebhook/Attribute:headers' => 'Fejlécek', + 'Class:ActionWebhook/Attribute:headers+' => 'A HTTP-kérelem fejlécei, soronként egynek kell lennie (pl. \'Content-type: application/json\')', + 'Class:ActionWebhook/Attribute:language' => 'Nyelv', + 'Class:ActionWebhook/Attribute:language+' => 'Az értesítés nyelve, leginkább az értesítések keresésekor használatos, de az attribútumok címkéjének lefordítására is használható.', + 'Class:ActionWebhook/Attribute:method' => 'Módszer', + 'Class:ActionWebhook/Attribute:method+' => 'A HTTP-kérés módszere', + 'Class:ActionWebhook/Attribute:method/Value:delete' => 'DELETE', + 'Class:ActionWebhook/Attribute:method/Value:get' => 'GET', + 'Class:ActionWebhook/Attribute:method/Value:head' => 'HEAD', + 'Class:ActionWebhook/Attribute:method/Value:patch' => 'PATCH', + 'Class:ActionWebhook/Attribute:method/Value:post' => 'POST', + 'Class:ActionWebhook/Attribute:method/Value:put' => 'PUT', + 'Class:ActionWebhook/Attribute:path' => 'Path~~', + 'Class:ActionWebhook/Attribute:path+' => 'Additional path to append to the connection URL (eg. \'/some/specific-endpoint\')~~', + 'Class:ActionWebhook/Attribute:payload' => 'Adatfolyam', + 'Class:ActionWebhook/Attribute:payload+' => 'A webhook-hívás során küldött adatok, legtöbbször ez egy JSON karakterlánc. Ezt használja, ha az adatfolyam struktúrája statikus. + +FONTOS: A rendszer figyelmen kívül hagyja, ha a \'Adatfolyam visszahívás előkészítése\' be van állítva', + 'Class:ActionWebhook/Attribute:prepare_payload_callback' => 'Adatfolyam visszahívás előkészítése', + 'Class:ActionWebhook/Attribute:prepare_payload_callback+' => 'PHP-módszer a webhook-hívás során elküldendő hasznos adatok előkészítésére. Ezt használja, ha az adatfolyam struktúráját dinamikusan kell felépíteni. + +2 féle módszert használhat: +- A kiváltó objektumból (pl. UserRequest), nyilvánosnak kell lennie. Példa: $this->XXX +- Bármely PHP osztályból, statikusnak ÉS nyilvánosnak kell lennie. A névnek teljesen minősített névnek kell lennie. Példa: \SomeClass::XXX + +FONTOS: Ha be van állítva, az \'Adatfolyam\' attribútumot figyelmen kívül hagyjuk.', + 'Class:ActionWebhook/Attribute:process_response_callback' => 'Folyamat válasz visszahívás', + 'Class:ActionWebhook/Attribute:process_response_callback+' => 'PHP-módszer a webhook-hívás válaszának feldolgozására. + +2 típusú metódust használhat: +- Magából a kiváltó objektumból (pl. UserRequest), nyilvánosnak kell lennie. Példa: $this->XXX +- Bármely PHP osztályból, statikusnak ÉS nyilvánosnak kell lennie. A névnek teljesen minősített névnek kell lennie. Példa: \SomeClass::XXX +- $oResponse bizonyos esetekben (pl. a kérés elküldése sikertelen) null lehet.', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id' => 'Kapcsolat', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id+' => 'A \'Bevezetve\' állapot esetén használandó kapcsolati információ', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id' => 'Teszt kapcsolat', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id+' => 'Kapcsolati információ, amelyet akkor kell használni, ha az állapot \'Tesztelés alatt\'', + 'Class:ActioniTopWebhook' => 'iTop webhook hívás', + 'Class:ActioniTopWebhook+' => 'Webhook hívás egy távoli iTop alkalmazáshoz', + 'Class:ActioniTopWebhook/Attribute:headers+' => 'A HTTP-kérelem fejlécének soronként egynek kell lennie (pl. \'Content-type: application/x-www-form-urlencoded\') + +IFONTOS: +- \'Content-type\' az \'application/x-www-form-urlencoded\' értéket kell beállítani az iTop esetében, még akkor is, ha JSON-t küldünk. +- A \'Basic authorization\' fejléc automatikusan hozzá lesz csatolva a kéréshez a küldés során, amely tartalmazza a kiválasztott kapcsolat hitelesítő adatait.', + 'Class:ActioniTopWebhook/Attribute:payload' => 'JSON adat', + 'Class:ActioniTopWebhook/Attribute:payload+' => 'A JSON adatfolyamnak egy JSON karakterláncnak kell lennie, amely tartalmazza a művelet nevét és paramétereit, részletes információért lásd a dokumentációt.', + 'Class:ActioniTopWebhook/Attribute:prepare_payload_callback+' => 'PHP-módszer a webhook-hívás során elküldendő hasznos adatok előkészítésére. Ezt használja, ha az adatfolyam struktúráját dinamikusan kell felépíteni. + +2 típusú metódust használhat: +- Magából a kiváltó objektumból (pl. UserRequest), nyilvánosnak kell lennie. Példa: $this->XXX +- Bármely PHP osztályból, statikusnak ÉS nyilvánosnak kell lennie. A névnek teljesen minősített névnek kell lennie. Példa: \SomeClass::XXX + +FONTOS: Ha be van állítva, a \'JSON adat\' attribútum figyelmen kívül marad.', + 'Class:EventWebhook' => 'Webhook kibocsátási esemény', + 'Class:EventWebhook/Attribute:action_finalclass' => 'Végleges osztály', + 'Class:EventWebhook/Attribute:headers' => 'Fejlécek', + 'Class:EventWebhook/Attribute:payload' => 'Adatfolyam', + 'Class:EventWebhook/Attribute:response' => 'Válasz', + 'Class:EventWebhook/Attribute:webhook_url' => 'Webhook URL', + 'Class:RemoteApplicationConnection' => 'Távoli alkalmazáskapcsolat', + 'Class:RemoteApplicationConnection/Attribute:actions_list' => 'Webhook értesítések', + 'Class:RemoteApplicationConnection/Attribute:actions_list+' => 'Webhook értesítések ezzel a kapcsolattal', + 'Class:RemoteApplicationConnection/Attribute:environment' => 'Környezet', + 'Class:RemoteApplicationConnection/Attribute:environment+' => 'A kapcsolat környezetének típusa', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:1-development' => 'Fejlesztés alatt', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:2-test' => 'Tesztelés alatt', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:3-production' => 'Bevezetve', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id' => 'Alkalmazás típus', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id+' => 'Az alkalmazás típusa, amelyre a kapcsolat vonatkozik (használja a \'Generic\' opciót, ha a sajátja nem szerepel a listán).', + 'Class:RemoteApplicationConnection/Attribute:url' => 'URL', + 'Class:RemoteApplicationType' => 'Távoli alkalmazás típusa', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list' => 'Kapcsolatok', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list+' => 'Csatlakozások az adott alkalmazáshoz', + 'Class:RemoteiTopConnection' => 'Távoli iTop kapcsolat', + 'Class:RemoteiTopConnection/Attribute:auth_pwd' => 'Jelszó', + 'Class:RemoteiTopConnection/Attribute:auth_pwd+' => 'A hitelesítéshez használt felhasználó jelszava (a távoli iTopon)', + 'Class:RemoteiTopConnection/Attribute:auth_user' => 'Felhasználónév', + 'Class:RemoteiTopConnection/Attribute:auth_user+' => 'A hitelesítéshez használt felhasználó bejelentkezése (a távoli iTopon)', + 'Class:RemoteiTopConnection/Attribute:version' => 'API verzió', + 'Class:RemoteiTopConnection/Attribute:version+' => 'A meghívott API verziója (pl. 1.3)', + 'Class:RemoteiTopConnectionToken' => 'Remote iTop connection using a Token~~', + 'Class:RemoteiTopConnectionToken/Attribute:token+' => 'Token~~', + 'Dashboard:Integrations:ActionWebhookList:Title' => 'Webhook típusú műveletek', + 'Dashboard:Integrations:Outgoing:Title' => 'Kimenő webhook integrációk', + 'Dashboard:Integrations:Title' => 'Integrációk külső alkalmazásokkal', + 'Menu:Webhook' => 'Webhooks~~', + 'RemoteApplicationConnection:authinfo' => 'Azonosítás', + 'RemoteApplicationConnection:baseinfo' => 'Általános információ', + 'RemoteApplicationConnection:moreinfo' => 'További információ', + 'Class:ActionWebhook/Error:InvalidJSONFormatForPayload' => 'Invalid JSON format for Payload~~', +]); diff --git a/datamodels/2.x/combodo-webhook-integration/dictionaries/it.dict.combodo-webhook-integration.php b/datamodels/2.x/combodo-webhook-integration/dictionaries/it.dict.combodo-webhook-integration.php new file mode 100644 index 0000000000..ee0680a8ca --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/dictionaries/it.dict.combodo-webhook-integration.php @@ -0,0 +1,215 @@ + 'Message~~', + 'ActionMicrosoftTeamsNotification:additionalelements' => 'Additional elements to include~~', + 'ActionMicrosoftTeamsNotification:message' => 'Basis message~~', + 'ActionMicrosoftTeamsNotification:theme' => 'Theme~~', + 'ActionRocketChatNotification:additionalelements' => 'Bot information~~', + 'ActionRocketChatNotification:message' => 'Basis message~~', + 'ActionSlackNotification:Payload:BlockKit:UserInfo' => 'Notification from <%2$s|%1$s> (%3$s)~~', + 'ActionSlackNotification:additionalelements' => 'Additional elements to include~~', + 'ActionSlackNotification:message' => 'Basis message~~', + 'ActionWebhook:advancedparameters' => 'Advanced parameters~~', + 'ActionWebhook:baseinfo' => 'General information~~', + 'ActionWebhook:moreinfo' => 'More information~~', + 'ActionWebhook:requestparameters' => 'Request parameters~~', + 'ActionWebhook:webhookconnection' => 'Webhook connection~~', + 'Class:ActionGoogleChatNotification' => 'Notification by Google Chat', + 'Class:ActionGoogleChatNotification+' => 'Send a notification as a Google Chat message in a space~~', + 'Class:ActionGoogleChatNotification/Attribute:message' => 'Message~~', + 'Class:ActionGoogleChatNotification/Attribute:message+' => 'Message that will be displayed in the chat, only plain text is supported for now.~~', + 'Class:ActionGoogleChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' will be ignored.~~', + 'Class:ActionMicrosoftTeamsNotification' => 'Notification by Microsoft Teams', + 'Class:ActionMicrosoftTeamsNotification+' => 'Send a notification as a Microsoft Teams message in a channel~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url' => 'Medallion picture~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url+' => 'URL of the image to display as a medallion in the message card, it must be publicly accessible on the internet for Microsoft Teams to be able to display it~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button' => 'Delete button~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes' => 'Attributes from~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'msteams\' view of the object triggering the notification . Note that the \'msteams\' view must be defined in the datamodel first (zlist)~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:msteams' => 'the custom "msteams" view~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button' => 'Modify button~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button' => 'Other actions buttons~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:message' => 'Message~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'title\', \'message\' and all \'additional elements\' will be ignored.~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions' => 'Other actions codes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color' => 'Highlight color~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color+' => 'Highlight color in Microsoft Teams, must be a valid hexadecimal color (eg. FF0000) for Message Cards and one of the following values: "default", "emphasis", "good", "attention", "warning" or "accent" for Adaptive Cards~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:title' => 'Title~~', + 'Class:ActionRocketChatNotification' => 'Notification by Rocket.Chat', + 'Class:ActionRocketChatNotification+' => 'Send a notification as a Rocket.Chat message in a channel or to a user~~', + 'Class:ActionRocketChatNotification/Attribute:bot_alias' => 'Alias~~', + 'Class:ActionRocketChatNotification/Attribute:bot_alias+' => 'Overrides the default bot alias, will appear before the username of the message~~', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar' => 'Emoji avatar~~', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar+' => 'Overrides the default bot avatar, can be any Rocket.Chat emojis (eg. :ghost:, :white_check_mark:, ...). Note that if an URL avatar is set, the emoji won\'t be displayed.~~', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar' => 'Image avatar~~', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar+' => 'Overrides the default bot avatar, must be an absolute URL to the image to use~~', + 'Class:ActionRocketChatNotification/Attribute:message' => 'Message~~', + 'Class:ActionRocketChatNotification/Attribute:message+' => 'Message that will be displayed in the chat~~', + 'Class:ActionRocketChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'bot information\' will be ignored.~~', + 'Class:ActionSlackNotification' => 'Notification by Slack', + 'Class:ActionSlackNotification+' => 'Send a notification as a Slack message in a channel or to a user~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button' => 'Delete button~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes' => 'Attributes from~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'slack\' view of the object triggering the notification . Note that the \'slack\' view must be defined in the datamodel first (zlist)~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:slack' => 'the custom "slack" view~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button' => 'Modify button~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button' => 'Other actions buttons~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_user_info' => 'User info.~~', + 'Class:ActionSlackNotification/Attribute:include_user_info+' => 'Display user information (full name) below the message~~', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:message' => 'Message~~', + 'Class:ActionSlackNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'additional elements\' will be ignored.~~', + 'Class:ActionSlackNotification/Attribute:specified_other_actions' => 'Other actions codes~~', + 'Class:ActionSlackNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')~~', + 'Class:ActionWebhook' => 'Action by Webhook (generic)', + 'Class:ActionWebhook+' => 'Webhook call for any kind of application~~', + 'Class:ActionWebhook/Attribute:asynchronous+' => 'Whether this action should be executed in background or not (mind that global setting for webhook actions is the "prefer_asynchronous" conf. parameter of the "combodo-webhook-action" module)~~', + 'Class:ActionWebhook/Attribute:headers' => 'Headers~~', + 'Class:ActionWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/json\')~~', + 'Class:ActionWebhook/Attribute:language' => 'Language~~', + 'Class:ActionWebhook/Attribute:language+' => 'Language of this notification, mostly used when searching for notifications but might also be used to translate attributes label~~', + 'Class:ActionWebhook/Attribute:method' => 'Method~~', + 'Class:ActionWebhook/Attribute:method+' => 'Method of the HTTP request~~', + 'Class:ActionWebhook/Attribute:method/Value:delete' => 'DELETE~~', + 'Class:ActionWebhook/Attribute:method/Value:get' => 'GET~~', + 'Class:ActionWebhook/Attribute:method/Value:head' => 'HEAD~~', + 'Class:ActionWebhook/Attribute:method/Value:patch' => 'PATCH~~', + 'Class:ActionWebhook/Attribute:method/Value:post' => 'POST~~', + 'Class:ActionWebhook/Attribute:method/Value:put' => 'PUT~~', + 'Class:ActionWebhook/Attribute:path' => 'Path~~', + 'Class:ActionWebhook/Attribute:path+' => 'Additional path to append to the connection URL (eg. \'/some/specific-endpoint\')~~', + 'Class:ActionWebhook/Attribute:payload' => 'Payload~~', + 'Class:ActionWebhook/Attribute:payload+' => 'Data sent during the webhook call, most of the time this is a JSON string. Use this if your payload structure is static. + +IMPORTANT: Will be ignored if \'Prepare payload callback\' is set~~', + 'Class:ActionWebhook/Attribute:prepare_payload_callback' => 'Prepare payload callback~~', + 'Class:ActionWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'Payload\' attribute will be ignored.~~', + 'Class:ActionWebhook/Attribute:process_response_callback' => 'Process response callback~~', + 'Class:ActionWebhook/Attribute:process_response_callback+' => 'PHP method to process the webhook call response. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX +- $oResponse can be null in some cases (eg. request failed to send)~~', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id' => 'Connection~~', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id+' => 'Connection information to use when status is \'in production\'~~', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id' => 'Test connection~~', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id+' => 'Connection information to use when status is \'being tested\'~~', + 'Class:ActioniTopWebhook' => 'Action by '.ITOP_APPLICATION_SHORT.' REST API', + 'Class:ActioniTopWebhook+' => 'Webhook call to a remote iTop application~~', + 'Class:ActioniTopWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/x-www-form-urlencoded\') + +IMPORTANT: +- \'Content-type\' should be set to \'application/x-www-form-urlencoded\' for iTop, even though we send JSON +- A \'Basic authorization\' header will be append automatically to request during sending, containing the credentials from the selected connection~~', + 'Class:ActioniTopWebhook/Attribute:payload' => 'JSON data~~', + 'Class:ActioniTopWebhook/Attribute:payload+' => 'The JSON payload, must be a JSON string containing the operation name and parameters, see documentation for detailed information~~', + 'Class:ActioniTopWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'JSON data\' attribute will be ignored.~~', + 'Class:EventWebhook' => 'Webhook triggered', + 'Class:EventWebhook/Attribute:action_finalclass' => 'Final class~~', + 'Class:EventWebhook/Attribute:headers' => 'Headers~~', + 'Class:EventWebhook/Attribute:payload' => 'Payload~~', + 'Class:EventWebhook/Attribute:response' => 'Response~~', + 'Class:EventWebhook/Attribute:webhook_url' => 'Webhook URL~~', + 'Class:RemoteApplicationConnection' => 'Remote application connection~~', + 'Class:RemoteApplicationConnection/Attribute:actions_list' => 'Webhook notifications~~', + 'Class:RemoteApplicationConnection/Attribute:actions_list+' => 'Webhook notifications using this connection~~', + 'Class:RemoteApplicationConnection/Attribute:environment' => 'Environment~~', + 'Class:RemoteApplicationConnection/Attribute:environment+' => 'Type of environment of the connection~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:1-development' => 'Development~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:2-test' => 'Test~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:3-production' => 'Production~~', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id' => 'Application type~~', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id+' => 'Type of application the connection is for (use \'Generic\' if yours is not in the list)~~', + 'Class:RemoteApplicationConnection/Attribute:url' => 'URL~~', + 'Class:RemoteApplicationType' => 'Remote application type~~', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list' => 'Connections~~', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list+' => 'Connections for that application~~', + 'Class:RemoteiTopConnection' => 'Remote iTop connection~~', + 'Class:RemoteiTopConnection/Attribute:auth_pwd' => 'Auth. password~~', + 'Class:RemoteiTopConnection/Attribute:auth_pwd+' => 'Password of the user (on the remote iTop) used for the authentication~~', + 'Class:RemoteiTopConnection/Attribute:auth_user' => 'Auth. user~~', + 'Class:RemoteiTopConnection/Attribute:auth_user+' => 'Login of the user (on the remote iTop) used for the authentication~~', + 'Class:RemoteiTopConnection/Attribute:version' => 'API version~~', + 'Class:RemoteiTopConnection/Attribute:version+' => 'Version of the API called (eg. 1.3)~~', + 'Class:RemoteiTopConnectionToken' => 'Remote iTop connection using a Token~~', + 'Class:RemoteiTopConnectionToken/Attribute:token+' => 'Token~~', + 'Dashboard:Integrations:ActionWebhookList:Title' => 'Webhook type actions~~', + 'Dashboard:Integrations:Outgoing:Title' => 'Outgoing webhook integrations~~', + 'Dashboard:Integrations:Title' => 'Integrations with external applications~~', + 'Menu:Webhook' => 'Webhooks~~', + 'RemoteApplicationConnection:authinfo' => 'Authentication~~', + 'RemoteApplicationConnection:baseinfo' => 'General information~~', + 'RemoteApplicationConnection:moreinfo' => 'More information~~', + 'Class:ActionWebhook/Error:InvalidJSONFormatForPayload' => 'Invalid JSON format for Payload~~', +]); diff --git a/datamodels/2.x/combodo-webhook-integration/dictionaries/ja.dict.combodo-webhook-integration.php b/datamodels/2.x/combodo-webhook-integration/dictionaries/ja.dict.combodo-webhook-integration.php new file mode 100644 index 0000000000..20ebc8765b --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/dictionaries/ja.dict.combodo-webhook-integration.php @@ -0,0 +1,215 @@ + 'Message~~', + 'ActionMicrosoftTeamsNotification:additionalelements' => 'Additional elements to include~~', + 'ActionMicrosoftTeamsNotification:message' => 'Basis message~~', + 'ActionMicrosoftTeamsNotification:theme' => 'Theme~~', + 'ActionRocketChatNotification:additionalelements' => 'Bot information~~', + 'ActionRocketChatNotification:message' => 'Basis message~~', + 'ActionSlackNotification:Payload:BlockKit:UserInfo' => 'Notification from <%2$s|%1$s> (%3$s)~~', + 'ActionSlackNotification:additionalelements' => 'Additional elements to include~~', + 'ActionSlackNotification:message' => 'Basis message~~', + 'ActionWebhook:advancedparameters' => 'Advanced parameters~~', + 'ActionWebhook:baseinfo' => 'General information~~', + 'ActionWebhook:moreinfo' => 'More information~~', + 'ActionWebhook:requestparameters' => 'Request parameters~~', + 'ActionWebhook:webhookconnection' => 'Webhook connection~~', + 'Class:ActionGoogleChatNotification' => 'Notification by Google Chat', + 'Class:ActionGoogleChatNotification+' => 'Send a notification as a Google Chat message in a space~~', + 'Class:ActionGoogleChatNotification/Attribute:message' => 'Message~~', + 'Class:ActionGoogleChatNotification/Attribute:message+' => 'Message that will be displayed in the chat, only plain text is supported for now.~~', + 'Class:ActionGoogleChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' will be ignored.~~', + 'Class:ActionMicrosoftTeamsNotification' => 'Notification by Microsoft Teams', + 'Class:ActionMicrosoftTeamsNotification+' => 'Send a notification as a Microsoft Teams message in a channel~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url' => 'Medallion picture~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url+' => 'URL of the image to display as a medallion in the message card, it must be publicly accessible on the internet for Microsoft Teams to be able to display it~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button' => 'Delete button~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes' => 'Attributes from~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'msteams\' view of the object triggering the notification . Note that the \'msteams\' view must be defined in the datamodel first (zlist)~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:msteams' => 'the custom "msteams" view~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button' => 'Modify button~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button' => 'Other actions buttons~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:message' => 'Message~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'title\', \'message\' and all \'additional elements\' will be ignored.~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions' => 'Other actions codes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color' => 'Highlight color~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color+' => 'Highlight color in Microsoft Teams, must be a valid hexadecimal color (eg. FF0000) for Message Cards and one of the following values: "default", "emphasis", "good", "attention", "warning" or "accent" for Adaptive Cards~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:title' => 'Title~~', + 'Class:ActionRocketChatNotification' => 'Notification by Rocket.Chat', + 'Class:ActionRocketChatNotification+' => 'Send a notification as a Rocket.Chat message in a channel or to a user~~', + 'Class:ActionRocketChatNotification/Attribute:bot_alias' => 'Alias~~', + 'Class:ActionRocketChatNotification/Attribute:bot_alias+' => 'Overrides the default bot alias, will appear before the username of the message~~', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar' => 'Emoji avatar~~', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar+' => 'Overrides the default bot avatar, can be any Rocket.Chat emojis (eg. :ghost:, :white_check_mark:, ...). Note that if an URL avatar is set, the emoji won\'t be displayed.~~', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar' => 'Image avatar~~', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar+' => 'Overrides the default bot avatar, must be an absolute URL to the image to use~~', + 'Class:ActionRocketChatNotification/Attribute:message' => 'Message~~', + 'Class:ActionRocketChatNotification/Attribute:message+' => 'Message that will be displayed in the chat~~', + 'Class:ActionRocketChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'bot information\' will be ignored.~~', + 'Class:ActionSlackNotification' => 'Notification by Slack', + 'Class:ActionSlackNotification+' => 'Send a notification as a Slack message in a channel or to a user~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button' => 'Delete button~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes' => 'Attributes from~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'slack\' view of the object triggering the notification . Note that the \'slack\' view must be defined in the datamodel first (zlist)~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:slack' => 'the custom "slack" view~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button' => 'Modify button~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button' => 'Other actions buttons~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_user_info' => 'User info.~~', + 'Class:ActionSlackNotification/Attribute:include_user_info+' => 'Display user information (full name) below the message~~', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:message' => 'Message~~', + 'Class:ActionSlackNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'additional elements\' will be ignored.~~', + 'Class:ActionSlackNotification/Attribute:specified_other_actions' => 'Other actions codes~~', + 'Class:ActionSlackNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')~~', + 'Class:ActionWebhook' => 'Action by Webhook (generic)', + 'Class:ActionWebhook+' => 'Webhook call for any kind of application~~', + 'Class:ActionWebhook/Attribute:asynchronous+' => 'Whether this action should be executed in background or not (mind that global setting for webhook actions is the "prefer_asynchronous" conf. parameter of the "combodo-webhook-action" module)~~', + 'Class:ActionWebhook/Attribute:headers' => 'Headers~~', + 'Class:ActionWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/json\')~~', + 'Class:ActionWebhook/Attribute:language' => 'Language~~', + 'Class:ActionWebhook/Attribute:language+' => 'Language of this notification, mostly used when searching for notifications but might also be used to translate attributes label~~', + 'Class:ActionWebhook/Attribute:method' => 'Method~~', + 'Class:ActionWebhook/Attribute:method+' => 'Method of the HTTP request~~', + 'Class:ActionWebhook/Attribute:method/Value:delete' => 'DELETE~~', + 'Class:ActionWebhook/Attribute:method/Value:get' => 'GET~~', + 'Class:ActionWebhook/Attribute:method/Value:head' => 'HEAD~~', + 'Class:ActionWebhook/Attribute:method/Value:patch' => 'PATCH~~', + 'Class:ActionWebhook/Attribute:method/Value:post' => 'POST~~', + 'Class:ActionWebhook/Attribute:method/Value:put' => 'PUT~~', + 'Class:ActionWebhook/Attribute:path' => 'Path~~', + 'Class:ActionWebhook/Attribute:path+' => 'Additional path to append to the connection URL (eg. \'/some/specific-endpoint\')~~', + 'Class:ActionWebhook/Attribute:payload' => 'Payload~~', + 'Class:ActionWebhook/Attribute:payload+' => 'Data sent during the webhook call, most of the time this is a JSON string. Use this if your payload structure is static. + +IMPORTANT: Will be ignored if \'Prepare payload callback\' is set~~', + 'Class:ActionWebhook/Attribute:prepare_payload_callback' => 'Prepare payload callback~~', + 'Class:ActionWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'Payload\' attribute will be ignored.~~', + 'Class:ActionWebhook/Attribute:process_response_callback' => 'Process response callback~~', + 'Class:ActionWebhook/Attribute:process_response_callback+' => 'PHP method to process the webhook call response. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX +- $oResponse can be null in some cases (eg. request failed to send)~~', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id' => 'Connection~~', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id+' => 'Connection information to use when status is \'in production\'~~', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id' => 'Test connection~~', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id+' => 'Connection information to use when status is \'being tested\'~~', + 'Class:ActioniTopWebhook' => 'Action by '.ITOP_APPLICATION_SHORT.' REST API', + 'Class:ActioniTopWebhook+' => 'Webhook call to a remote iTop application~~', + 'Class:ActioniTopWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/x-www-form-urlencoded\') + +IMPORTANT: +- \'Content-type\' should be set to \'application/x-www-form-urlencoded\' for iTop, even though we send JSON +- A \'Basic authorization\' header will be append automatically to request during sending, containing the credentials from the selected connection~~', + 'Class:ActioniTopWebhook/Attribute:payload' => 'JSON data~~', + 'Class:ActioniTopWebhook/Attribute:payload+' => 'The JSON payload, must be a JSON string containing the operation name and parameters, see documentation for detailed information~~', + 'Class:ActioniTopWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'JSON data\' attribute will be ignored.~~', + 'Class:EventWebhook' => 'Webhook triggered', + 'Class:EventWebhook/Attribute:action_finalclass' => 'Final class~~', + 'Class:EventWebhook/Attribute:headers' => 'Headers~~', + 'Class:EventWebhook/Attribute:payload' => 'Payload~~', + 'Class:EventWebhook/Attribute:response' => 'Response~~', + 'Class:EventWebhook/Attribute:webhook_url' => 'Webhook URL~~', + 'Class:RemoteApplicationConnection' => 'Remote application connection~~', + 'Class:RemoteApplicationConnection/Attribute:actions_list' => 'Webhook notifications~~', + 'Class:RemoteApplicationConnection/Attribute:actions_list+' => 'Webhook notifications using this connection~~', + 'Class:RemoteApplicationConnection/Attribute:environment' => 'Environment~~', + 'Class:RemoteApplicationConnection/Attribute:environment+' => 'Type of environment of the connection~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:1-development' => 'Development~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:2-test' => 'Test~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:3-production' => 'Production~~', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id' => 'Application type~~', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id+' => 'Type of application the connection is for (use \'Generic\' if yours is not in the list)~~', + 'Class:RemoteApplicationConnection/Attribute:url' => 'URL~~', + 'Class:RemoteApplicationType' => 'Remote application type~~', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list' => 'Connections~~', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list+' => 'Connections for that application~~', + 'Class:RemoteiTopConnection' => 'Remote iTop connection~~', + 'Class:RemoteiTopConnection/Attribute:auth_pwd' => 'Auth. password~~', + 'Class:RemoteiTopConnection/Attribute:auth_pwd+' => 'Password of the user (on the remote iTop) used for the authentication~~', + 'Class:RemoteiTopConnection/Attribute:auth_user' => 'Auth. user~~', + 'Class:RemoteiTopConnection/Attribute:auth_user+' => 'Login of the user (on the remote iTop) used for the authentication~~', + 'Class:RemoteiTopConnection/Attribute:version' => 'API version~~', + 'Class:RemoteiTopConnection/Attribute:version+' => 'Version of the API called (eg. 1.3)~~', + 'Class:RemoteiTopConnectionToken' => 'Remote iTop connection using a Token~~', + 'Class:RemoteiTopConnectionToken/Attribute:token+' => 'Token~~', + 'Dashboard:Integrations:ActionWebhookList:Title' => 'Webhook type actions~~', + 'Dashboard:Integrations:Outgoing:Title' => 'Outgoing webhook integrations~~', + 'Dashboard:Integrations:Title' => 'Integrations with external applications~~', + 'Menu:Webhook' => 'Webhooks~~', + 'RemoteApplicationConnection:authinfo' => 'Authentication~~', + 'RemoteApplicationConnection:baseinfo' => 'General information~~', + 'RemoteApplicationConnection:moreinfo' => 'More information~~', + 'Class:ActionWebhook/Error:InvalidJSONFormatForPayload' => 'Invalid JSON format for Payload~~', +]); diff --git a/datamodels/2.x/combodo-webhook-integration/dictionaries/nl.dict.combodo-webhook-integration.php b/datamodels/2.x/combodo-webhook-integration/dictionaries/nl.dict.combodo-webhook-integration.php new file mode 100644 index 0000000000..511adb20a7 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/dictionaries/nl.dict.combodo-webhook-integration.php @@ -0,0 +1,216 @@ + (2022) + * + */ +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ + 'ActionGoogleChatNotification:message' => 'Bericht', + 'ActionMicrosoftTeamsNotification:additionalelements' => 'Andere elementen om toe te voegen', + 'ActionMicrosoftTeamsNotification:message' => 'Basisbericht', + 'ActionMicrosoftTeamsNotification:theme' => 'Thema', + 'ActionRocketChatNotification:additionalelements' => 'Bot info', + 'ActionRocketChatNotification:message' => 'Basis-bericht', + 'ActionSlackNotification:Payload:BlockKit:UserInfo' => 'Notificatie van <%2$s|%1$s> (%3$s)', + 'ActionSlackNotification:additionalelements' => 'Extra elementen', + 'ActionSlackNotification:message' => 'Basis-bericht', + 'ActionWebhook:advancedparameters' => 'Geävanceerde parameters', + 'ActionWebhook:baseinfo' => 'Algemene info', + 'ActionWebhook:moreinfo' => 'Meer info', + 'ActionWebhook:requestparameters' => 'Request parameters', + 'ActionWebhook:webhookconnection' => 'Webhook-connectie', + 'Class:ActionGoogleChatNotification' => 'Google Chat-notificatie', + 'Class:ActionGoogleChatNotification+' => 'Stuur een notificatie als een Google Chat-bericht in een space', + 'Class:ActionGoogleChatNotification/Attribute:message' => 'Bericht', + 'Class:ActionGoogleChatNotification/Attribute:message+' => 'Bericht dat getoond zal worden in de chat. Enkel tekst zonder opmaak wordt momenteel ondersteund.', + 'Class:ActionGoogleChatNotification/Attribute:prepare_payload_callback+' => 'PHP-methode om de payload klaar te zetten die verstuurd wordt via de webhook. Gebruik dit als de standaardopties niet volstaan of als de payload-structuur dynamisch opgebouwd moet worden. + +Je kan 2 soorten methodes gebruiken: +- Gedefinieerd op het object zelf (bv. Gebruikersverzoek). Bv: "$this->XXX" voor een functie die binnen de PHP-klasse van het object gedefinieerd is als "public function XXX" +- Via eender welke PHP-klasse. De naam moet fully qualified opgegeven worden. Bv: "\SomeClass::XXX" voor een functie die in de PHP-klasse "\SomeClass" gedefinieerd is "public static function XXX" + +BELANGRIJK: Indien geconfigureerd, zal \'bericht\' genegeerd worden.', + 'Class:ActionMicrosoftTeamsNotification' => 'Microsoft Teams notification', + 'Class:ActionMicrosoftTeamsNotification+' => 'Stuur een notificatie als een Microsoft Teams-bericht in een kanaal.', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url' => 'Afbeelding medallion', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url+' => 'URL van de afbeelding die als medaillon wordt getoond bij het bericht. Dit moet een geldige publiek toegankelijke URL zijn zodat Microsoft Teams dit kan laden.', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button' => 'Delete button', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button+' => 'Voeg een knop toe onder het bericht om het object te verwijderen in '.ITOP_APPLICATION_SHORT, + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:no' => 'Nee', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:yes' => 'Ja', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes' => 'Attributen van', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes+' => 'Toon bijkomende attributen onder het bericht. Deze komen doorgaans uit de \'lijst\'-weergave of uit de \'msteams\'-weergave van het object dat de notificatie triggert. Merk op dat de \'msteams\'-weergave eerst gedefinieerd moet worden in het datamodel (zlist)', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:list' => 'Standaard lijst-weergave', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:msteams' => 'Aangepaste MS Teams-weergave', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button' => 'Knop "Modify"', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button+' => 'Voeg een knop toe onder het bericht om het object aan te passen in '.ITOP_APPLICATION_SHORT, + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:no' => 'Nee', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:yes' => 'Ja', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button' => 'Andere actie-knoppen', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button+' => 'Voeg andere acties toe (bv. beschikbare transities voor het object) onder het bericht', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:no' => 'Nee', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:specify' => 'Specifieer', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:yes' => 'Ja', + 'Class:ActionMicrosoftTeamsNotification/Attribute:message' => 'Bericht', + 'Class:ActionMicrosoftTeamsNotification/Attribute:prepare_payload_callback+' => 'PHP-methode om de payload klaar te zetten die verstuurd wordt via de webhook. Gebruik dit als de standaardopties niet volstaan of als de payload-structuur dynamisch opgebouwd moet worden. + +Je kan 2 soorten methodes gebruiken: +- Gedefinieerd op het object zelf (bv. Gebruikersverzoek). Bv: "$this->XXX" voor een functie die binnen de PHP-klasse van het object gedefinieerd is als "public function XXX" +- Via eender welke PHP-klasse. De naam moet fully qualified opgegeven worden. Bv: "\SomeClass::XXX" voor een functie die in de PHP-klasse "\SomeClass" gedefinieerd is "public static function XXX" + +BELANGRIJK: Indien geconfigureerd, zullen \'titel\', \'bericht\' en alle \'extra elementen\' genegeerd worden.', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions' => 'Andere actiecodes', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions+' => 'Specifieer welke andere actieknoppen beschikbaar moeten zijn onder het bericht. Dit wordt een kommagescheiden oplijsting van actiecodes (bv. \'ev_reopen, ev_close\')', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color' => 'Highlight-kleur', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color+' => 'Highlight-kleur van het bericht in Microsoft Teams. Dit moet een geldige hexadecimale waarde zijn (bv. #FF0000)', + 'Class:ActionMicrosoftTeamsNotification/Attribute:title' => 'Titel', + 'Class:ActionRocketChatNotification' => 'Rocket.Chat-notificatie', + 'Class:ActionRocketChatNotification+' => 'Stuur een notificatie als een Rocket.Chat-bericht in een kanaal of naar een gebruiker', + 'Class:ActionRocketChatNotification/Attribute:bot_alias' => 'Alias', + 'Class:ActionRocketChatNotification/Attribute:bot_alias+' => 'Hiermee wordt de standaard-alias van de bot overschreven. Dit verschijnt voor de gebruikersnaam van het bericht.', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar' => 'Emoji avatar', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar+' => 'Hiermee wordt de standaard-avatar van de bot overschreven met eender welke Rocket.Chat emoji (bv. :ghost:, :white_check_mark:, ...). Als er al een URL opgegeven werd, zal de emoji-avatar niet getoond worden.', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar' => 'Avatar', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar+' => 'Hiermee wordt de standaard-avatar van de bot overschreven. Dit moet een absolute URL zijn naar een afbeelding die gebruikt zal worden.', + 'Class:ActionRocketChatNotification/Attribute:message' => 'Bericht', + 'Class:ActionRocketChatNotification/Attribute:message+' => 'Bericht dat getoond zal worden in de chat', + 'Class:ActionRocketChatNotification/Attribute:prepare_payload_callback+' => 'PHP-methode om de payload klaar te zetten die verstuurd wordt via de webhook. Gebruik dit als de standaardopties niet volstaan of als de payload-structuur dynamisch opgebouwd moet worden. + +Je kan 2 soorten methodes gebruiken: +- Gedefinieerd op het object zelf (bv. Gebruikersverzoek). Bv: "$this->XXX" voor een functie die binnen de PHP-klasse van het object gedefinieerd is als "public function XXX" +- Via eender welke PHP-klasse. De naam moet fully qualified opgegeven worden. Bv: "\SomeClass::XXX" voor een functie die in de PHP-klasse "\SomeClass" gedefinieerd is "public static function XXX" + +BELANGRIJK: Indien geconfigureerd, zullen \'bericht\' en alle \'bot-informatie\' genegeerd worden.', + 'Class:ActionSlackNotification' => 'Slack-notificatie', + 'Class:ActionSlackNotification+' => 'Stuur een notificatie als een Slack-bericht in een kanaal of naar een gebruiker.', + 'Class:ActionSlackNotification/Attribute:include_delete_button' => 'Knop "Delete"', + 'Class:ActionSlackNotification/Attribute:include_delete_button+' => 'Voeg een knop toe onder het bericht om het object te verwijderen in '.ITOP_APPLICATION_SHORT, + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:no' => 'Nee', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:yes' => 'Ja', + 'Class:ActionSlackNotification/Attribute:include_list_attributes' => 'Attributen van', + 'Class:ActionSlackNotification/Attribute:include_list_attributes+' => 'Toon bijkomende attributen onder het bericht. Deze komen doorgaans uit de \'lijst\'-weergave of uit de \'slack\'-weergave van het object dat de notificatie triggert. Merk op dat de \'slack\'-weergave eerst gedefinieerd moet worden in het datamodel (zlist)', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:list' => 'Standaard lijst-weergave', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:slack' => 'Aangepaste Slack-weergave', + 'Class:ActionSlackNotification/Attribute:include_modify_button' => 'Knop "Modify"', + 'Class:ActionSlackNotification/Attribute:include_modify_button+' => 'Voeg een knop toe onder het bericht om het object aan te passen in '.ITOP_APPLICATION_SHORT, + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:no' => 'No', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:yes' => 'Yes', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button' => 'Andere actie-knoppen', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button+' => 'Voeg andere acties toe (bv. beschikbare transities voor het object) onder het bericht', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:no' => 'Nee', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:specify' => 'Specifieer', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:yes' => 'Ja', + 'Class:ActionSlackNotification/Attribute:include_user_info' => 'Gebruikersinfo.', + 'Class:ActionSlackNotification/Attribute:include_user_info+' => 'Toon de gebruikersinfo (volledige naam) onder het bericht', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:no' => 'Nee', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:yes' => 'Ja', + 'Class:ActionSlackNotification/Attribute:message' => 'Bericht', + 'Class:ActionSlackNotification/Attribute:prepare_payload_callback+' => 'PHP-methode om de payload klaar te zetten die verstuurd wordt via de webhook. Gebruik dit als de standaardopties niet volstaan of als de payload-structuur dynamisch opgebouwd moet worden. + +Je kan 2 soorten methodes gebruiken: +- Gedefinieerd op het object zelf (bv. Gebruikersverzoek). Bv: "$this->XXX" voor een functie die binnen de PHP-klasse van het object gedefinieerd is als "public function XXX" +- Via eender welke PHP-klasse. De naam moet fully qualified opgegeven worden. Bv: "\SomeClass::XXX" voor een functie die in de PHP-klasse "\SomeClass" gedefinieerd is "public static function XXX" + +BELANGRIJK: Indien geconfigureerd, zullen \'bericht\' en \'Extra elementen\' genegeerd worden.', + 'Class:ActionSlackNotification/Attribute:specified_other_actions' => 'Andere acties', + 'Class:ActionSlackNotification/Attribute:specified_other_actions+' => 'Specifieer welke andere actieknoppen beschikbaar moeten zijn onder het bericht. Dit wordt een kommagescheiden oplijsting van actiecodes (bv. \'ev_reopen, ev_close\')', + 'Class:ActionWebhook' => 'Webhook (generiek)', + 'Class:ActionWebhook+' => 'Webhook voor eender welke soort applicatie', + 'Class:ActionWebhook/Attribute:asynchronous+' => 'Whether this action should be executed in background or not (mind that global setting for webhook actions is the "prefer_asynchronous" conf. parameter of the "combodo-webhook-action" module)~~', + 'Class:ActionWebhook/Attribute:headers' => 'Hoofding (headers)', + 'Class:ActionWebhook/Attribute:headers+' => 'Headers voor het HTTP-verzoek. Eén header per regel (bv. \'Content-type: application/json\')', + 'Class:ActionWebhook/Attribute:language' => 'Taal', + 'Class:ActionWebhook/Attribute:language+' => 'Taal van deze notificatie. Meestal gebruikt om meldingen te zoeken, maar ook om de labels van attributen te vertalen', + 'Class:ActionWebhook/Attribute:method' => 'Methode', + 'Class:ActionWebhook/Attribute:method+' => 'Methode die gebruikt wordt om het HTTP-verzoek uit te voeren.', + 'Class:ActionWebhook/Attribute:method/Value:delete' => 'DELETE', + 'Class:ActionWebhook/Attribute:method/Value:get' => 'GET', + 'Class:ActionWebhook/Attribute:method/Value:head' => 'HEAD', + 'Class:ActionWebhook/Attribute:method/Value:patch' => 'PATCH', + 'Class:ActionWebhook/Attribute:method/Value:post' => 'POST', + 'Class:ActionWebhook/Attribute:method/Value:put' => 'PUT', + 'Class:ActionWebhook/Attribute:path' => 'Pad', + 'Class:ActionWebhook/Attribute:path+' => 'Additioneel pad om toe te voegen aan de connectie-URL (bv. \'/some/specific-endpoint\')', + 'Class:ActionWebhook/Attribute:payload' => 'Bericht (payload)', + 'Class:ActionWebhook/Attribute:payload+' => 'Data die verstuurd wordt tijdens het aanroepen van de webhook. Meestal is dit in een vast JSON-formaat. + +BELANGRIJK: Dit wordt genegeerd als er een \'"Bericht opmaak"-functie\' geconfigureerd is', + 'Class:ActionWebhook/Attribute:prepare_payload_callback' => '"Bericht opmaak"-functie', + 'Class:ActionWebhook/Attribute:prepare_payload_callback+' => 'PHP-methode om de payload klaar te zetten die verstuurd wordt via de webhook. Gebruik dit als de payload een dynamische structuur heeft. + +Je kan 2 soorten methodes gebruiken: +- Gedefinieerd op het object zelf (bv. Gebruikersverzoek). Bv: "$this->XXX" voor een functie die binnen de PHP-klasse van het object gedefinieerd is als "public function XXX" +- Via eender welke PHP-klasse. De methode moet static en public zijn. De naam moet fully qualified opgegeven worden. Bv: "\SomeClass::XXX" voor een functie die in de PHP-klasse "\SomeClass" gedefinieerd is "public static function XXX" + +BELANGRIJK: Indien geconfigureerd, zal het \'Payload\'-veld genegeerd worden.', + 'Class:ActionWebhook/Attribute:process_response_callback' => '"Verwerk antwoord"-functie', + 'Class:ActionWebhook/Attribute:process_response_callback+' => 'PHP-methode om het antwoord te verwerken. + +Je kan 2 soorten methodes gebruiken: +- Gedefinieerd op het object zelf (bv. Gebruikersverzoek). Bv: $this->XXX +- Via eender welke PHP-klasse. De methode moet static en public zijn. De naam moet fully qualified opgegeven worden. Bv: "\SomeClass:XXX" waarbij deze functie gedefinieerd is in de PHP-klasse "\SomeClass" als "public static function XXX($oObject, $oResponse, $oAction)" +- $oResponse kan null zijn in sommige gevallen (bv. de HTTP-aanvraag is mislukt)', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id' => 'Connectie', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id+' => 'Welke informatie gebruikt moet worden als de status \'In productie\' is', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id' => 'Test-connection', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id+' => 'Welke informatie gebruikt moet worden als de status \'Wordt getest\' is', + 'Class:ActioniTopWebhook' => 'iTop webhook', + 'Class:ActioniTopWebhook+' => 'Webhook naar een externe iTop-applicatie', + 'Class:ActioniTopWebhook/Attribute:headers+' => 'Headers voor het HTTP-verzoek. Eén header per regel (bv. \'Content-type: application/x-www-form-urlencoded\') + +BELANGRIJK: +- \'Content-type\' moet ingesteld worden op \'application/x-www-form-urlencoded\' voor iTop, ook al wordt er JSON verstuurd. +- Een \'Basic authorization\' header wordt automatisch toegevoegd tijdens het versturen. Het bevat de logingegevens die geconfigureerd zijn in de gekozen iTop-connectie.', + 'Class:ActioniTopWebhook/Attribute:payload' => 'JSON-data', + 'Class:ActioniTopWebhook/Attribute:payload+' => 'De JSON-payload, dit moet een JSON-structuur zijn met de naam van de operatie (operation) en parameters. Zie documentatie voor gedetailleerde info.', + 'Class:ActioniTopWebhook/Attribute:prepare_payload_callback+' => 'PHP-methode om de payload klaar te zetten die verstuurd wordt via de webhook. Gebruik dit als de payload een dynamische structuur heeft. + +Je kan 2 soorten methodes gebruiken: +- Gedefinieerd op het object zelf (bv. Gebruikersverzoek). De methode moet publiek zijn. Bv: "$this->XXX" voor een functie die binnen de PHP-klasse van het object gedefinieerd is als "public function XXX" +- Via eender welke PHP-klasse. De naam moet fully qualified opgegeven worden. Bv: "\SomeClass::XXX" voor een functie die in de PHP-klasse "\SomeClass" gedefinieerd is "public static function XXX" + +BELANGRIJK: Indien geconfigureerd, zal het \'JSON-data\'-veld genegeerd worden.', + 'Class:EventWebhook' => 'Webhook verzendgebeurtenis', + 'Class:EventWebhook/Attribute:action_finalclass' => 'Klasse', + 'Class:EventWebhook/Attribute:headers' => 'Hoofding (headers)', + 'Class:EventWebhook/Attribute:payload' => 'Bericht (payload)', + 'Class:EventWebhook/Attribute:response' => 'Antwoord (response)', + 'Class:EventWebhook/Attribute:webhook_url' => 'URL Webhook', + 'Class:RemoteApplicationConnection' => 'Connectie met externe applicatie', + 'Class:RemoteApplicationConnection/Attribute:actions_list' => 'Webhook-notificaties', + 'Class:RemoteApplicationConnection/Attribute:actions_list+' => 'Webhook-notificaties die deze connectie gebruiken', + 'Class:RemoteApplicationConnection/Attribute:environment' => 'Omgeving', + 'Class:RemoteApplicationConnection/Attribute:environment+' => 'Soort omgeving van deze connectie', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:1-development' => 'Ontwikkeling', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:2-test' => 'Test', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:3-production' => 'Productie', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id' => 'Soort applicatie', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id+' => 'Soort applicatie (gebruik "generiek" als jouw applicatie niet in de lijst staat)', + 'Class:RemoteApplicationConnection/Attribute:url' => 'URL', + 'Class:RemoteApplicationType' => 'Soort externe applicatie', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list' => 'Connecties', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list+' => 'Connecties voor deze applicatie', + 'Class:RemoteiTopConnection' => 'Externe iTop-verbinding', + 'Class:RemoteiTopConnection/Attribute:auth_pwd' => 'Auth. wachtwoord', + 'Class:RemoteiTopConnection/Attribute:auth_pwd+' => 'Wachtwoord van de gebruiker (op de externe iTop) die gebruikt wordt voor authenticatie', + 'Class:RemoteiTopConnection/Attribute:auth_user' => 'Auth. gebruiker', + 'Class:RemoteiTopConnection/Attribute:auth_user+' => 'Login van de gebruiker (op de externe iTop) die gebruikt wordt voor authenticatie', + 'Class:RemoteiTopConnection/Attribute:version' => 'API versie', + 'Class:RemoteiTopConnection/Attribute:version+' => 'Versie van de API (bv. 1.3)', + 'Class:RemoteiTopConnectionToken' => 'Remote iTop connection using a Token~~', + 'Class:RemoteiTopConnectionToken/Attribute:token+' => 'Token~~', + 'Dashboard:Integrations:ActionWebhookList:Title' => 'Soort webhook-acties', + 'Dashboard:Integrations:Outgoing:Title' => 'Uitgaande webhook-integraties', + 'Dashboard:Integrations:Title' => 'Integraties met externe applicaties', + 'Menu:Webhook' => 'Webhooks~~', + 'RemoteApplicationConnection:authinfo' => 'Authenticatie', + 'RemoteApplicationConnection:baseinfo' => 'Algemene info', + 'RemoteApplicationConnection:moreinfo' => 'Meer info', + 'Class:ActionWebhook/Error:InvalidJSONFormatForPayload' => 'Invalid JSON format for Payload~~', +]); diff --git a/datamodels/2.x/combodo-webhook-integration/dictionaries/pl.dict.combodo-webhook-integration.php b/datamodels/2.x/combodo-webhook-integration/dictionaries/pl.dict.combodo-webhook-integration.php new file mode 100644 index 0000000000..4c93d05413 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/dictionaries/pl.dict.combodo-webhook-integration.php @@ -0,0 +1,215 @@ + 'Message~~', + 'ActionMicrosoftTeamsNotification:additionalelements' => 'Additional elements to include~~', + 'ActionMicrosoftTeamsNotification:message' => 'Basis message~~', + 'ActionMicrosoftTeamsNotification:theme' => 'Theme~~', + 'ActionRocketChatNotification:additionalelements' => 'Bot information~~', + 'ActionRocketChatNotification:message' => 'Basis message~~', + 'ActionSlackNotification:Payload:BlockKit:UserInfo' => 'Notification from <%2$s|%1$s> (%3$s)~~', + 'ActionSlackNotification:additionalelements' => 'Additional elements to include~~', + 'ActionSlackNotification:message' => 'Basis message~~', + 'ActionWebhook:advancedparameters' => 'Advanced parameters~~', + 'ActionWebhook:baseinfo' => 'General information~~', + 'ActionWebhook:moreinfo' => 'More information~~', + 'ActionWebhook:requestparameters' => 'Request parameters~~', + 'ActionWebhook:webhookconnection' => 'Webhook connection~~', + 'Class:ActionGoogleChatNotification' => 'Notification by Google Chat', + 'Class:ActionGoogleChatNotification+' => 'Send a notification as a Google Chat message in a space~~', + 'Class:ActionGoogleChatNotification/Attribute:message' => 'Message~~', + 'Class:ActionGoogleChatNotification/Attribute:message+' => 'Message that will be displayed in the chat, only plain text is supported for now.~~', + 'Class:ActionGoogleChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' will be ignored.~~', + 'Class:ActionMicrosoftTeamsNotification' => 'Notification by Microsoft Teams', + 'Class:ActionMicrosoftTeamsNotification+' => 'Send a notification as a Microsoft Teams message in a channel~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url' => 'Medallion picture~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url+' => 'URL of the image to display as a medallion in the message card, it must be publicly accessible on the internet for Microsoft Teams to be able to display it~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button' => 'Delete button~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes' => 'Attributes from~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'msteams\' view of the object triggering the notification . Note that the \'msteams\' view must be defined in the datamodel first (zlist)~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:msteams' => 'the custom "msteams" view~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button' => 'Modify button~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button' => 'Other actions buttons~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:message' => 'Message~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'title\', \'message\' and all \'additional elements\' will be ignored.~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions' => 'Other actions codes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color' => 'Highlight color~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color+' => 'Highlight color in Microsoft Teams, must be a valid hexadecimal color (eg. FF0000) for Message Cards and one of the following values: "default", "emphasis", "good", "attention", "warning" or "accent" for Adaptive Cards~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:title' => 'Title~~', + 'Class:ActionRocketChatNotification' => 'Notification by Rocket.Chat', + 'Class:ActionRocketChatNotification+' => 'Send a notification as a Rocket.Chat message in a channel or to a user~~', + 'Class:ActionRocketChatNotification/Attribute:bot_alias' => 'Alias~~', + 'Class:ActionRocketChatNotification/Attribute:bot_alias+' => 'Overrides the default bot alias, will appear before the username of the message~~', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar' => 'Emoji avatar~~', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar+' => 'Overrides the default bot avatar, can be any Rocket.Chat emojis (eg. :ghost:, :white_check_mark:, ...). Note that if an URL avatar is set, the emoji won\'t be displayed.~~', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar' => 'Image avatar~~', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar+' => 'Overrides the default bot avatar, must be an absolute URL to the image to use~~', + 'Class:ActionRocketChatNotification/Attribute:message' => 'Message~~', + 'Class:ActionRocketChatNotification/Attribute:message+' => 'Message that will be displayed in the chat~~', + 'Class:ActionRocketChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'bot information\' will be ignored.~~', + 'Class:ActionSlackNotification' => 'Notification by Slack', + 'Class:ActionSlackNotification+' => 'Send a notification as a Slack message in a channel or to a user~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button' => 'Delete button~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes' => 'Attributes from~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'slack\' view of the object triggering the notification . Note that the \'slack\' view must be defined in the datamodel first (zlist)~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:slack' => 'the custom "slack" view~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button' => 'Modify button~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button' => 'Other actions buttons~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_user_info' => 'User info.~~', + 'Class:ActionSlackNotification/Attribute:include_user_info+' => 'Display user information (full name) below the message~~', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:message' => 'Message~~', + 'Class:ActionSlackNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'additional elements\' will be ignored.~~', + 'Class:ActionSlackNotification/Attribute:specified_other_actions' => 'Other actions codes~~', + 'Class:ActionSlackNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')~~', + 'Class:ActionWebhook' => 'Action by Webhook (generic)', + 'Class:ActionWebhook+' => 'Webhook call for any kind of application~~', + 'Class:ActionWebhook/Attribute:asynchronous+' => 'Whether this action should be executed in background or not (mind that global setting for webhook actions is the "prefer_asynchronous" conf. parameter of the "combodo-webhook-action" module)~~', + 'Class:ActionWebhook/Attribute:headers' => 'Headers~~', + 'Class:ActionWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/json\')~~', + 'Class:ActionWebhook/Attribute:language' => 'Language~~', + 'Class:ActionWebhook/Attribute:language+' => 'Language of this notification, mostly used when searching for notifications but might also be used to translate attributes label~~', + 'Class:ActionWebhook/Attribute:method' => 'Method~~', + 'Class:ActionWebhook/Attribute:method+' => 'Method of the HTTP request~~', + 'Class:ActionWebhook/Attribute:method/Value:delete' => 'DELETE~~', + 'Class:ActionWebhook/Attribute:method/Value:get' => 'GET~~', + 'Class:ActionWebhook/Attribute:method/Value:head' => 'HEAD~~', + 'Class:ActionWebhook/Attribute:method/Value:patch' => 'PATCH~~', + 'Class:ActionWebhook/Attribute:method/Value:post' => 'POST~~', + 'Class:ActionWebhook/Attribute:method/Value:put' => 'PUT~~', + 'Class:ActionWebhook/Attribute:path' => 'Path~~', + 'Class:ActionWebhook/Attribute:path+' => 'Additional path to append to the connection URL (eg. \'/some/specific-endpoint\')~~', + 'Class:ActionWebhook/Attribute:payload' => 'Payload~~', + 'Class:ActionWebhook/Attribute:payload+' => 'Data sent during the webhook call, most of the time this is a JSON string. Use this if your payload structure is static. + +IMPORTANT: Will be ignored if \'Prepare payload callback\' is set~~', + 'Class:ActionWebhook/Attribute:prepare_payload_callback' => 'Prepare payload callback~~', + 'Class:ActionWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'Payload\' attribute will be ignored.~~', + 'Class:ActionWebhook/Attribute:process_response_callback' => 'Process response callback~~', + 'Class:ActionWebhook/Attribute:process_response_callback+' => 'PHP method to process the webhook call response. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX +- $oResponse can be null in some cases (eg. request failed to send)~~', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id' => 'Connection~~', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id+' => 'Connection information to use when status is \'in production\'~~', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id' => 'Test connection~~', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id+' => 'Connection information to use when status is \'being tested\'~~', + 'Class:ActioniTopWebhook' => 'Action by '.ITOP_APPLICATION_SHORT.' REST API', + 'Class:ActioniTopWebhook+' => 'Webhook call to a remote iTop application~~', + 'Class:ActioniTopWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/x-www-form-urlencoded\') + +IMPORTANT: +- \'Content-type\' should be set to \'application/x-www-form-urlencoded\' for iTop, even though we send JSON +- A \'Basic authorization\' header will be append automatically to request during sending, containing the credentials from the selected connection~~', + 'Class:ActioniTopWebhook/Attribute:payload' => 'JSON data~~', + 'Class:ActioniTopWebhook/Attribute:payload+' => 'The JSON payload, must be a JSON string containing the operation name and parameters, see documentation for detailed information~~', + 'Class:ActioniTopWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'JSON data\' attribute will be ignored.~~', + 'Class:EventWebhook' => 'Webhook triggered', + 'Class:EventWebhook/Attribute:action_finalclass' => 'Final class~~', + 'Class:EventWebhook/Attribute:headers' => 'Headers~~', + 'Class:EventWebhook/Attribute:payload' => 'Payload~~', + 'Class:EventWebhook/Attribute:response' => 'Response~~', + 'Class:EventWebhook/Attribute:webhook_url' => 'Webhook URL~~', + 'Class:RemoteApplicationConnection' => 'Remote application connection~~', + 'Class:RemoteApplicationConnection/Attribute:actions_list' => 'Webhook notifications~~', + 'Class:RemoteApplicationConnection/Attribute:actions_list+' => 'Webhook notifications using this connection~~', + 'Class:RemoteApplicationConnection/Attribute:environment' => 'Environment~~', + 'Class:RemoteApplicationConnection/Attribute:environment+' => 'Type of environment of the connection~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:1-development' => 'Development~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:2-test' => 'Test~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:3-production' => 'Production~~', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id' => 'Application type~~', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id+' => 'Type of application the connection is for (use \'Generic\' if yours is not in the list)~~', + 'Class:RemoteApplicationConnection/Attribute:url' => 'URL~~', + 'Class:RemoteApplicationType' => 'Remote application type~~', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list' => 'Connections~~', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list+' => 'Connections for that application~~', + 'Class:RemoteiTopConnection' => 'Remote iTop connection~~', + 'Class:RemoteiTopConnection/Attribute:auth_pwd' => 'Auth. password~~', + 'Class:RemoteiTopConnection/Attribute:auth_pwd+' => 'Password of the user (on the remote iTop) used for the authentication~~', + 'Class:RemoteiTopConnection/Attribute:auth_user' => 'Auth. user~~', + 'Class:RemoteiTopConnection/Attribute:auth_user+' => 'Login of the user (on the remote iTop) used for the authentication~~', + 'Class:RemoteiTopConnection/Attribute:version' => 'API version~~', + 'Class:RemoteiTopConnection/Attribute:version+' => 'Version of the API called (eg. 1.3)~~', + 'Class:RemoteiTopConnectionToken' => 'Remote iTop connection using a Token~~', + 'Class:RemoteiTopConnectionToken/Attribute:token+' => 'Token~~', + 'Dashboard:Integrations:ActionWebhookList:Title' => 'Webhook type actions~~', + 'Dashboard:Integrations:Outgoing:Title' => 'Outgoing webhook integrations~~', + 'Dashboard:Integrations:Title' => 'Integrations with external applications~~', + 'Menu:Webhook' => 'Webhooks~~', + 'RemoteApplicationConnection:authinfo' => 'Authentication~~', + 'RemoteApplicationConnection:baseinfo' => 'General information~~', + 'RemoteApplicationConnection:moreinfo' => 'More information~~', + 'Class:ActionWebhook/Error:InvalidJSONFormatForPayload' => 'Invalid JSON format for Payload~~', +]); diff --git a/datamodels/2.x/combodo-webhook-integration/dictionaries/pt_br.dict.combodo-webhook-integration.php b/datamodels/2.x/combodo-webhook-integration/dictionaries/pt_br.dict.combodo-webhook-integration.php new file mode 100644 index 0000000000..9a6a699320 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/dictionaries/pt_br.dict.combodo-webhook-integration.php @@ -0,0 +1,215 @@ + 'Message~~', + 'ActionMicrosoftTeamsNotification:additionalelements' => 'Additional elements to include~~', + 'ActionMicrosoftTeamsNotification:message' => 'Basis message~~', + 'ActionMicrosoftTeamsNotification:theme' => 'Theme~~', + 'ActionRocketChatNotification:additionalelements' => 'Bot information~~', + 'ActionRocketChatNotification:message' => 'Basis message~~', + 'ActionSlackNotification:Payload:BlockKit:UserInfo' => 'Notification from <%2$s|%1$s> (%3$s)~~', + 'ActionSlackNotification:additionalelements' => 'Additional elements to include~~', + 'ActionSlackNotification:message' => 'Basis message~~', + 'ActionWebhook:advancedparameters' => 'Advanced parameters~~', + 'ActionWebhook:baseinfo' => 'General information~~', + 'ActionWebhook:moreinfo' => 'More information~~', + 'ActionWebhook:requestparameters' => 'Request parameters~~', + 'ActionWebhook:webhookconnection' => 'Webhook connection~~', + 'Class:ActionGoogleChatNotification' => 'Notification by Google Chat', + 'Class:ActionGoogleChatNotification+' => 'Send a notification as a Google Chat message in a space~~', + 'Class:ActionGoogleChatNotification/Attribute:message' => 'Message~~', + 'Class:ActionGoogleChatNotification/Attribute:message+' => 'Message that will be displayed in the chat, only plain text is supported for now.~~', + 'Class:ActionGoogleChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' will be ignored.~~', + 'Class:ActionMicrosoftTeamsNotification' => 'Notification by Microsoft Teams', + 'Class:ActionMicrosoftTeamsNotification+' => 'Send a notification as a Microsoft Teams message in a channel~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url' => 'Medallion picture~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url+' => 'URL of the image to display as a medallion in the message card, it must be publicly accessible on the internet for Microsoft Teams to be able to display it~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button' => 'Delete button~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes' => 'Attributes from~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'msteams\' view of the object triggering the notification . Note that the \'msteams\' view must be defined in the datamodel first (zlist)~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:msteams' => 'the custom "msteams" view~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button' => 'Modify button~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button' => 'Other actions buttons~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:message' => 'Message~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'title\', \'message\' and all \'additional elements\' will be ignored.~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions' => 'Other actions codes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color' => 'Highlight color~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color+' => 'Highlight color in Microsoft Teams, must be a valid hexadecimal color (eg. FF0000) for Message Cards and one of the following values: "default", "emphasis", "good", "attention", "warning" or "accent" for Adaptive Cards~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:title' => 'Title~~', + 'Class:ActionRocketChatNotification' => 'Notification by Rocket.Chat', + 'Class:ActionRocketChatNotification+' => 'Send a notification as a Rocket.Chat message in a channel or to a user~~', + 'Class:ActionRocketChatNotification/Attribute:bot_alias' => 'Alias~~', + 'Class:ActionRocketChatNotification/Attribute:bot_alias+' => 'Overrides the default bot alias, will appear before the username of the message~~', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar' => 'Emoji avatar~~', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar+' => 'Overrides the default bot avatar, can be any Rocket.Chat emojis (eg. :ghost:, :white_check_mark:, ...). Note that if an URL avatar is set, the emoji won\'t be displayed.~~', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar' => 'Image avatar~~', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar+' => 'Overrides the default bot avatar, must be an absolute URL to the image to use~~', + 'Class:ActionRocketChatNotification/Attribute:message' => 'Message~~', + 'Class:ActionRocketChatNotification/Attribute:message+' => 'Message that will be displayed in the chat~~', + 'Class:ActionRocketChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'bot information\' will be ignored.~~', + 'Class:ActionSlackNotification' => 'Notification by Slack', + 'Class:ActionSlackNotification+' => 'Send a notification as a Slack message in a channel or to a user~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button' => 'Delete button~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes' => 'Attributes from~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'slack\' view of the object triggering the notification . Note that the \'slack\' view must be defined in the datamodel first (zlist)~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:slack' => 'the custom "slack" view~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button' => 'Modify button~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button' => 'Other actions buttons~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_user_info' => 'User info.~~', + 'Class:ActionSlackNotification/Attribute:include_user_info+' => 'Display user information (full name) below the message~~', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:message' => 'Message~~', + 'Class:ActionSlackNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'additional elements\' will be ignored.~~', + 'Class:ActionSlackNotification/Attribute:specified_other_actions' => 'Other actions codes~~', + 'Class:ActionSlackNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')~~', + 'Class:ActionWebhook' => 'Action by Webhook (generic)', + 'Class:ActionWebhook+' => 'Webhook call for any kind of application~~', + 'Class:ActionWebhook/Attribute:asynchronous+' => 'Whether this action should be executed in background or not (mind that global setting for webhook actions is the "prefer_asynchronous" conf. parameter of the "combodo-webhook-action" module)~~', + 'Class:ActionWebhook/Attribute:headers' => 'Headers~~', + 'Class:ActionWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/json\')~~', + 'Class:ActionWebhook/Attribute:language' => 'Language~~', + 'Class:ActionWebhook/Attribute:language+' => 'Language of this notification, mostly used when searching for notifications but might also be used to translate attributes label~~', + 'Class:ActionWebhook/Attribute:method' => 'Method~~', + 'Class:ActionWebhook/Attribute:method+' => 'Method of the HTTP request~~', + 'Class:ActionWebhook/Attribute:method/Value:delete' => 'DELETE~~', + 'Class:ActionWebhook/Attribute:method/Value:get' => 'GET~~', + 'Class:ActionWebhook/Attribute:method/Value:head' => 'HEAD~~', + 'Class:ActionWebhook/Attribute:method/Value:patch' => 'PATCH~~', + 'Class:ActionWebhook/Attribute:method/Value:post' => 'POST~~', + 'Class:ActionWebhook/Attribute:method/Value:put' => 'PUT~~', + 'Class:ActionWebhook/Attribute:path' => 'Path~~', + 'Class:ActionWebhook/Attribute:path+' => 'Additional path to append to the connection URL (eg. \'/some/specific-endpoint\')~~', + 'Class:ActionWebhook/Attribute:payload' => 'Payload~~', + 'Class:ActionWebhook/Attribute:payload+' => 'Data sent during the webhook call, most of the time this is a JSON string. Use this if your payload structure is static. + +IMPORTANT: Will be ignored if \'Prepare payload callback\' is set~~', + 'Class:ActionWebhook/Attribute:prepare_payload_callback' => 'Prepare payload callback~~', + 'Class:ActionWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'Payload\' attribute will be ignored.~~', + 'Class:ActionWebhook/Attribute:process_response_callback' => 'Process response callback~~', + 'Class:ActionWebhook/Attribute:process_response_callback+' => 'PHP method to process the webhook call response. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX +- $oResponse can be null in some cases (eg. request failed to send)~~', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id' => 'Connection~~', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id+' => 'Connection information to use when status is \'in production\'~~', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id' => 'Test connection~~', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id+' => 'Connection information to use when status is \'being tested\'~~', + 'Class:ActioniTopWebhook' => 'Action by '.ITOP_APPLICATION_SHORT.' REST API', + 'Class:ActioniTopWebhook+' => 'Webhook call to a remote iTop application~~', + 'Class:ActioniTopWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/x-www-form-urlencoded\') + +IMPORTANT: +- \'Content-type\' should be set to \'application/x-www-form-urlencoded\' for iTop, even though we send JSON +- A \'Basic authorization\' header will be append automatically to request during sending, containing the credentials from the selected connection~~', + 'Class:ActioniTopWebhook/Attribute:payload' => 'JSON data~~', + 'Class:ActioniTopWebhook/Attribute:payload+' => 'The JSON payload, must be a JSON string containing the operation name and parameters, see documentation for detailed information~~', + 'Class:ActioniTopWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'JSON data\' attribute will be ignored.~~', + 'Class:EventWebhook' => 'Webhook triggered', + 'Class:EventWebhook/Attribute:action_finalclass' => 'Final class~~', + 'Class:EventWebhook/Attribute:headers' => 'Headers~~', + 'Class:EventWebhook/Attribute:payload' => 'Payload~~', + 'Class:EventWebhook/Attribute:response' => 'Response~~', + 'Class:EventWebhook/Attribute:webhook_url' => 'Webhook URL~~', + 'Class:RemoteApplicationConnection' => 'Remote application connection~~', + 'Class:RemoteApplicationConnection/Attribute:actions_list' => 'Webhook notifications~~', + 'Class:RemoteApplicationConnection/Attribute:actions_list+' => 'Webhook notifications using this connection~~', + 'Class:RemoteApplicationConnection/Attribute:environment' => 'Environment~~', + 'Class:RemoteApplicationConnection/Attribute:environment+' => 'Type of environment of the connection~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:1-development' => 'Development~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:2-test' => 'Test~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:3-production' => 'Production~~', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id' => 'Application type~~', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id+' => 'Type of application the connection is for (use \'Generic\' if yours is not in the list)~~', + 'Class:RemoteApplicationConnection/Attribute:url' => 'URL~~', + 'Class:RemoteApplicationType' => 'Remote application type~~', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list' => 'Connections~~', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list+' => 'Connections for that application~~', + 'Class:RemoteiTopConnection' => 'Remote iTop connection~~', + 'Class:RemoteiTopConnection/Attribute:auth_pwd' => 'Auth. password~~', + 'Class:RemoteiTopConnection/Attribute:auth_pwd+' => 'Password of the user (on the remote iTop) used for the authentication~~', + 'Class:RemoteiTopConnection/Attribute:auth_user' => 'Auth. user~~', + 'Class:RemoteiTopConnection/Attribute:auth_user+' => 'Login of the user (on the remote iTop) used for the authentication~~', + 'Class:RemoteiTopConnection/Attribute:version' => 'API version~~', + 'Class:RemoteiTopConnection/Attribute:version+' => 'Version of the API called (eg. 1.3)~~', + 'Class:RemoteiTopConnectionToken' => 'Remote iTop connection using a Token~~', + 'Class:RemoteiTopConnectionToken/Attribute:token+' => 'Token~~', + 'Dashboard:Integrations:ActionWebhookList:Title' => 'Webhook type actions~~', + 'Dashboard:Integrations:Outgoing:Title' => 'Outgoing webhook integrations~~', + 'Dashboard:Integrations:Title' => 'Integrations with external applications~~', + 'Menu:Webhook' => 'Webhooks~~', + 'RemoteApplicationConnection:authinfo' => 'Authentication~~', + 'RemoteApplicationConnection:baseinfo' => 'General information~~', + 'RemoteApplicationConnection:moreinfo' => 'More information~~', + 'Class:ActionWebhook/Error:InvalidJSONFormatForPayload' => 'Invalid JSON format for Payload~~', +]); diff --git a/datamodels/2.x/combodo-webhook-integration/dictionaries/ru.dict.combodo-webhook-integration.php b/datamodels/2.x/combodo-webhook-integration/dictionaries/ru.dict.combodo-webhook-integration.php new file mode 100644 index 0000000000..ee4083f35b --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/dictionaries/ru.dict.combodo-webhook-integration.php @@ -0,0 +1,215 @@ + 'Message~~', + 'ActionMicrosoftTeamsNotification:additionalelements' => 'Additional elements to include~~', + 'ActionMicrosoftTeamsNotification:message' => 'Basis message~~', + 'ActionMicrosoftTeamsNotification:theme' => 'Theme~~', + 'ActionRocketChatNotification:additionalelements' => 'Bot information~~', + 'ActionRocketChatNotification:message' => 'Basis message~~', + 'ActionSlackNotification:Payload:BlockKit:UserInfo' => 'Notification from <%2$s|%1$s> (%3$s)~~', + 'ActionSlackNotification:additionalelements' => 'Additional elements to include~~', + 'ActionSlackNotification:message' => 'Basis message~~', + 'ActionWebhook:advancedparameters' => 'Advanced parameters~~', + 'ActionWebhook:baseinfo' => 'General information~~', + 'ActionWebhook:moreinfo' => 'More information~~', + 'ActionWebhook:requestparameters' => 'Request parameters~~', + 'ActionWebhook:webhookconnection' => 'Webhook connection~~', + 'Class:ActionGoogleChatNotification' => 'Notification by Google Chat', + 'Class:ActionGoogleChatNotification+' => 'Send a notification as a Google Chat message in a space~~', + 'Class:ActionGoogleChatNotification/Attribute:message' => 'Message~~', + 'Class:ActionGoogleChatNotification/Attribute:message+' => 'Message that will be displayed in the chat, only plain text is supported for now.~~', + 'Class:ActionGoogleChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' will be ignored.~~', + 'Class:ActionMicrosoftTeamsNotification' => 'Notification by Microsoft Teams', + 'Class:ActionMicrosoftTeamsNotification+' => 'Send a notification as a Microsoft Teams message in a channel~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url' => 'Medallion picture~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url+' => 'URL of the image to display as a medallion in the message card, it must be publicly accessible on the internet for Microsoft Teams to be able to display it~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button' => 'Delete button~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes' => 'Attributes from~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'msteams\' view of the object triggering the notification . Note that the \'msteams\' view must be defined in the datamodel first (zlist)~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:msteams' => 'the custom "msteams" view~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button' => 'Modify button~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button' => 'Other actions buttons~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:message' => 'Message~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'title\', \'message\' and all \'additional elements\' will be ignored.~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions' => 'Other actions codes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color' => 'Highlight color~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color+' => 'Highlight color in Microsoft Teams, must be a valid hexadecimal color (eg. FF0000) for Message Cards and one of the following values: "default", "emphasis", "good", "attention", "warning" or "accent" for Adaptive Cards~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:title' => 'Title~~', + 'Class:ActionRocketChatNotification' => 'Notification by Rocket.Chat', + 'Class:ActionRocketChatNotification+' => 'Send a notification as a Rocket.Chat message in a channel or to a user~~', + 'Class:ActionRocketChatNotification/Attribute:bot_alias' => 'Alias~~', + 'Class:ActionRocketChatNotification/Attribute:bot_alias+' => 'Overrides the default bot alias, will appear before the username of the message~~', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar' => 'Emoji avatar~~', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar+' => 'Overrides the default bot avatar, can be any Rocket.Chat emojis (eg. :ghost:, :white_check_mark:, ...). Note that if an URL avatar is set, the emoji won\'t be displayed.~~', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar' => 'Image avatar~~', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar+' => 'Overrides the default bot avatar, must be an absolute URL to the image to use~~', + 'Class:ActionRocketChatNotification/Attribute:message' => 'Message~~', + 'Class:ActionRocketChatNotification/Attribute:message+' => 'Message that will be displayed in the chat~~', + 'Class:ActionRocketChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'bot information\' will be ignored.~~', + 'Class:ActionSlackNotification' => 'Notification by Slack', + 'Class:ActionSlackNotification+' => 'Send a notification as a Slack message in a channel or to a user~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button' => 'Delete button~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes' => 'Attributes from~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'slack\' view of the object triggering the notification . Note that the \'slack\' view must be defined in the datamodel first (zlist)~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:slack' => 'the custom "slack" view~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button' => 'Modify button~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button' => 'Other actions buttons~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_user_info' => 'User info.~~', + 'Class:ActionSlackNotification/Attribute:include_user_info+' => 'Display user information (full name) below the message~~', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:message' => 'Message~~', + 'Class:ActionSlackNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'additional elements\' will be ignored.~~', + 'Class:ActionSlackNotification/Attribute:specified_other_actions' => 'Other actions codes~~', + 'Class:ActionSlackNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')~~', + 'Class:ActionWebhook' => 'Action by Webhook (generic)', + 'Class:ActionWebhook+' => 'Webhook call for any kind of application~~', + 'Class:ActionWebhook/Attribute:asynchronous+' => 'Whether this action should be executed in background or not (mind that global setting for webhook actions is the "prefer_asynchronous" conf. parameter of the "combodo-webhook-action" module)~~', + 'Class:ActionWebhook/Attribute:headers' => 'Headers~~', + 'Class:ActionWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/json\')~~', + 'Class:ActionWebhook/Attribute:language' => 'Language~~', + 'Class:ActionWebhook/Attribute:language+' => 'Language of this notification, mostly used when searching for notifications but might also be used to translate attributes label~~', + 'Class:ActionWebhook/Attribute:method' => 'Method~~', + 'Class:ActionWebhook/Attribute:method+' => 'Method of the HTTP request~~', + 'Class:ActionWebhook/Attribute:method/Value:delete' => 'DELETE~~', + 'Class:ActionWebhook/Attribute:method/Value:get' => 'GET~~', + 'Class:ActionWebhook/Attribute:method/Value:head' => 'HEAD~~', + 'Class:ActionWebhook/Attribute:method/Value:patch' => 'PATCH~~', + 'Class:ActionWebhook/Attribute:method/Value:post' => 'POST~~', + 'Class:ActionWebhook/Attribute:method/Value:put' => 'PUT~~', + 'Class:ActionWebhook/Attribute:path' => 'Path~~', + 'Class:ActionWebhook/Attribute:path+' => 'Additional path to append to the connection URL (eg. \'/some/specific-endpoint\')~~', + 'Class:ActionWebhook/Attribute:payload' => 'Payload~~', + 'Class:ActionWebhook/Attribute:payload+' => 'Data sent during the webhook call, most of the time this is a JSON string. Use this if your payload structure is static. + +IMPORTANT: Will be ignored if \'Prepare payload callback\' is set~~', + 'Class:ActionWebhook/Attribute:prepare_payload_callback' => 'Prepare payload callback~~', + 'Class:ActionWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'Payload\' attribute will be ignored.~~', + 'Class:ActionWebhook/Attribute:process_response_callback' => 'Process response callback~~', + 'Class:ActionWebhook/Attribute:process_response_callback+' => 'PHP method to process the webhook call response. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX +- $oResponse can be null in some cases (eg. request failed to send)~~', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id' => 'Connection~~', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id+' => 'Connection information to use when status is \'in production\'~~', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id' => 'Test connection~~', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id+' => 'Connection information to use when status is \'being tested\'~~', + 'Class:ActioniTopWebhook' => 'Action by '.ITOP_APPLICATION_SHORT.' REST API', + 'Class:ActioniTopWebhook+' => 'Webhook call to a remote iTop application~~', + 'Class:ActioniTopWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/x-www-form-urlencoded\') + +IMPORTANT: +- \'Content-type\' should be set to \'application/x-www-form-urlencoded\' for iTop, even though we send JSON +- A \'Basic authorization\' header will be append automatically to request during sending, containing the credentials from the selected connection~~', + 'Class:ActioniTopWebhook/Attribute:payload' => 'JSON data~~', + 'Class:ActioniTopWebhook/Attribute:payload+' => 'The JSON payload, must be a JSON string containing the operation name and parameters, see documentation for detailed information~~', + 'Class:ActioniTopWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'JSON data\' attribute will be ignored.~~', + 'Class:EventWebhook' => 'Webhook triggered', + 'Class:EventWebhook/Attribute:action_finalclass' => 'Final class~~', + 'Class:EventWebhook/Attribute:headers' => 'Headers~~', + 'Class:EventWebhook/Attribute:payload' => 'Payload~~', + 'Class:EventWebhook/Attribute:response' => 'Response~~', + 'Class:EventWebhook/Attribute:webhook_url' => 'Webhook URL~~', + 'Class:RemoteApplicationConnection' => 'Remote application connection~~', + 'Class:RemoteApplicationConnection/Attribute:actions_list' => 'Webhook notifications~~', + 'Class:RemoteApplicationConnection/Attribute:actions_list+' => 'Webhook notifications using this connection~~', + 'Class:RemoteApplicationConnection/Attribute:environment' => 'Environment~~', + 'Class:RemoteApplicationConnection/Attribute:environment+' => 'Type of environment of the connection~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:1-development' => 'Development~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:2-test' => 'Test~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:3-production' => 'Production~~', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id' => 'Application type~~', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id+' => 'Type of application the connection is for (use \'Generic\' if yours is not in the list)~~', + 'Class:RemoteApplicationConnection/Attribute:url' => 'URL~~', + 'Class:RemoteApplicationType' => 'Remote application type~~', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list' => 'Connections~~', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list+' => 'Connections for that application~~', + 'Class:RemoteiTopConnection' => 'Remote iTop connection~~', + 'Class:RemoteiTopConnection/Attribute:auth_pwd' => 'Auth. password~~', + 'Class:RemoteiTopConnection/Attribute:auth_pwd+' => 'Password of the user (on the remote iTop) used for the authentication~~', + 'Class:RemoteiTopConnection/Attribute:auth_user' => 'Auth. user~~', + 'Class:RemoteiTopConnection/Attribute:auth_user+' => 'Login of the user (on the remote iTop) used for the authentication~~', + 'Class:RemoteiTopConnection/Attribute:version' => 'API version~~', + 'Class:RemoteiTopConnection/Attribute:version+' => 'Version of the API called (eg. 1.3)~~', + 'Class:RemoteiTopConnectionToken' => 'Remote iTop connection using a Token~~', + 'Class:RemoteiTopConnectionToken/Attribute:token+' => 'Token~~', + 'Dashboard:Integrations:ActionWebhookList:Title' => 'Webhook type actions~~', + 'Dashboard:Integrations:Outgoing:Title' => 'Outgoing webhook integrations~~', + 'Dashboard:Integrations:Title' => 'Integrations with external applications~~', + 'Menu:Webhook' => 'Webhooks~~', + 'RemoteApplicationConnection:authinfo' => 'Authentication~~', + 'RemoteApplicationConnection:baseinfo' => 'General information~~', + 'RemoteApplicationConnection:moreinfo' => 'More information~~', + 'Class:ActionWebhook/Error:InvalidJSONFormatForPayload' => 'Invalid JSON format for Payload~~', +]); diff --git a/datamodels/2.x/combodo-webhook-integration/dictionaries/sk.dict.combodo-webhook-integration.php b/datamodels/2.x/combodo-webhook-integration/dictionaries/sk.dict.combodo-webhook-integration.php new file mode 100644 index 0000000000..f32036af70 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/dictionaries/sk.dict.combodo-webhook-integration.php @@ -0,0 +1,215 @@ + 'Message~~', + 'ActionMicrosoftTeamsNotification:additionalelements' => 'Additional elements to include~~', + 'ActionMicrosoftTeamsNotification:message' => 'Basis message~~', + 'ActionMicrosoftTeamsNotification:theme' => 'Theme~~', + 'ActionRocketChatNotification:additionalelements' => 'Bot information~~', + 'ActionRocketChatNotification:message' => 'Basis message~~', + 'ActionSlackNotification:Payload:BlockKit:UserInfo' => 'Notification from <%2$s|%1$s> (%3$s)~~', + 'ActionSlackNotification:additionalelements' => 'Additional elements to include~~', + 'ActionSlackNotification:message' => 'Basis message~~', + 'ActionWebhook:advancedparameters' => 'Advanced parameters~~', + 'ActionWebhook:baseinfo' => 'General information~~', + 'ActionWebhook:moreinfo' => 'More information~~', + 'ActionWebhook:requestparameters' => 'Request parameters~~', + 'ActionWebhook:webhookconnection' => 'Webhook connection~~', + 'Class:ActionGoogleChatNotification' => 'Notification by Google Chat', + 'Class:ActionGoogleChatNotification+' => 'Send a notification as a Google Chat message in a space~~', + 'Class:ActionGoogleChatNotification/Attribute:message' => 'Message~~', + 'Class:ActionGoogleChatNotification/Attribute:message+' => 'Message that will be displayed in the chat, only plain text is supported for now.~~', + 'Class:ActionGoogleChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' will be ignored.~~', + 'Class:ActionMicrosoftTeamsNotification' => 'Notification by Microsoft Teams', + 'Class:ActionMicrosoftTeamsNotification+' => 'Send a notification as a Microsoft Teams message in a channel~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url' => 'Medallion picture~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url+' => 'URL of the image to display as a medallion in the message card, it must be publicly accessible on the internet for Microsoft Teams to be able to display it~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button' => 'Delete button~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes' => 'Attributes from~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'msteams\' view of the object triggering the notification . Note that the \'msteams\' view must be defined in the datamodel first (zlist)~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:msteams' => 'the custom "msteams" view~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button' => 'Modify button~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button' => 'Other actions buttons~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:message' => 'Message~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'title\', \'message\' and all \'additional elements\' will be ignored.~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions' => 'Other actions codes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color' => 'Highlight color~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color+' => 'Highlight color in Microsoft Teams, must be a valid hexadecimal color (eg. FF0000) for Message Cards and one of the following values: "default", "emphasis", "good", "attention", "warning" or "accent" for Adaptive Cards~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:title' => 'Title~~', + 'Class:ActionRocketChatNotification' => 'Notification by Rocket.Chat', + 'Class:ActionRocketChatNotification+' => 'Send a notification as a Rocket.Chat message in a channel or to a user~~', + 'Class:ActionRocketChatNotification/Attribute:bot_alias' => 'Alias~~', + 'Class:ActionRocketChatNotification/Attribute:bot_alias+' => 'Overrides the default bot alias, will appear before the username of the message~~', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar' => 'Emoji avatar~~', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar+' => 'Overrides the default bot avatar, can be any Rocket.Chat emojis (eg. :ghost:, :white_check_mark:, ...). Note that if an URL avatar is set, the emoji won\'t be displayed.~~', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar' => 'Image avatar~~', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar+' => 'Overrides the default bot avatar, must be an absolute URL to the image to use~~', + 'Class:ActionRocketChatNotification/Attribute:message' => 'Message~~', + 'Class:ActionRocketChatNotification/Attribute:message+' => 'Message that will be displayed in the chat~~', + 'Class:ActionRocketChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'bot information\' will be ignored.~~', + 'Class:ActionSlackNotification' => 'Notification by Slack', + 'Class:ActionSlackNotification+' => 'Send a notification as a Slack message in a channel or to a user~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button' => 'Delete button~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes' => 'Attributes from~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'slack\' view of the object triggering the notification . Note that the \'slack\' view must be defined in the datamodel first (zlist)~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:slack' => 'the custom "slack" view~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button' => 'Modify button~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button' => 'Other actions buttons~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_user_info' => 'User info.~~', + 'Class:ActionSlackNotification/Attribute:include_user_info+' => 'Display user information (full name) below the message~~', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:message' => 'Message~~', + 'Class:ActionSlackNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'additional elements\' will be ignored.~~', + 'Class:ActionSlackNotification/Attribute:specified_other_actions' => 'Other actions codes~~', + 'Class:ActionSlackNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')~~', + 'Class:ActionWebhook' => 'Action by Webhook (generic)', + 'Class:ActionWebhook+' => 'Webhook call for any kind of application~~', + 'Class:ActionWebhook/Attribute:asynchronous+' => 'Whether this action should be executed in background or not (mind that global setting for webhook actions is the "prefer_asynchronous" conf. parameter of the "combodo-webhook-action" module)~~', + 'Class:ActionWebhook/Attribute:headers' => 'Headers~~', + 'Class:ActionWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/json\')~~', + 'Class:ActionWebhook/Attribute:language' => 'Language~~', + 'Class:ActionWebhook/Attribute:language+' => 'Language of this notification, mostly used when searching for notifications but might also be used to translate attributes label~~', + 'Class:ActionWebhook/Attribute:method' => 'Method~~', + 'Class:ActionWebhook/Attribute:method+' => 'Method of the HTTP request~~', + 'Class:ActionWebhook/Attribute:method/Value:delete' => 'DELETE~~', + 'Class:ActionWebhook/Attribute:method/Value:get' => 'GET~~', + 'Class:ActionWebhook/Attribute:method/Value:head' => 'HEAD~~', + 'Class:ActionWebhook/Attribute:method/Value:patch' => 'PATCH~~', + 'Class:ActionWebhook/Attribute:method/Value:post' => 'POST~~', + 'Class:ActionWebhook/Attribute:method/Value:put' => 'PUT~~', + 'Class:ActionWebhook/Attribute:path' => 'Path~~', + 'Class:ActionWebhook/Attribute:path+' => 'Additional path to append to the connection URL (eg. \'/some/specific-endpoint\')~~', + 'Class:ActionWebhook/Attribute:payload' => 'Payload~~', + 'Class:ActionWebhook/Attribute:payload+' => 'Data sent during the webhook call, most of the time this is a JSON string. Use this if your payload structure is static. + +IMPORTANT: Will be ignored if \'Prepare payload callback\' is set~~', + 'Class:ActionWebhook/Attribute:prepare_payload_callback' => 'Prepare payload callback~~', + 'Class:ActionWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'Payload\' attribute will be ignored.~~', + 'Class:ActionWebhook/Attribute:process_response_callback' => 'Process response callback~~', + 'Class:ActionWebhook/Attribute:process_response_callback+' => 'PHP method to process the webhook call response. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX +- $oResponse can be null in some cases (eg. request failed to send)~~', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id' => 'Connection~~', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id+' => 'Connection information to use when status is \'in production\'~~', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id' => 'Test connection~~', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id+' => 'Connection information to use when status is \'being tested\'~~', + 'Class:ActioniTopWebhook' => 'Action by '.ITOP_APPLICATION_SHORT.' REST API', + 'Class:ActioniTopWebhook+' => 'Webhook call to a remote iTop application~~', + 'Class:ActioniTopWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/x-www-form-urlencoded\') + +IMPORTANT: +- \'Content-type\' should be set to \'application/x-www-form-urlencoded\' for iTop, even though we send JSON +- A \'Basic authorization\' header will be append automatically to request during sending, containing the credentials from the selected connection~~', + 'Class:ActioniTopWebhook/Attribute:payload' => 'JSON data~~', + 'Class:ActioniTopWebhook/Attribute:payload+' => 'The JSON payload, must be a JSON string containing the operation name and parameters, see documentation for detailed information~~', + 'Class:ActioniTopWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'JSON data\' attribute will be ignored.~~', + 'Class:EventWebhook' => 'Webhook triggered', + 'Class:EventWebhook/Attribute:action_finalclass' => 'Final class~~', + 'Class:EventWebhook/Attribute:headers' => 'Headers~~', + 'Class:EventWebhook/Attribute:payload' => 'Payload~~', + 'Class:EventWebhook/Attribute:response' => 'Response~~', + 'Class:EventWebhook/Attribute:webhook_url' => 'Webhook URL~~', + 'Class:RemoteApplicationConnection' => 'Remote application connection~~', + 'Class:RemoteApplicationConnection/Attribute:actions_list' => 'Webhook notifications~~', + 'Class:RemoteApplicationConnection/Attribute:actions_list+' => 'Webhook notifications using this connection~~', + 'Class:RemoteApplicationConnection/Attribute:environment' => 'Environment~~', + 'Class:RemoteApplicationConnection/Attribute:environment+' => 'Type of environment of the connection~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:1-development' => 'Development~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:2-test' => 'Test~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:3-production' => 'Production~~', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id' => 'Application type~~', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id+' => 'Type of application the connection is for (use \'Generic\' if yours is not in the list)~~', + 'Class:RemoteApplicationConnection/Attribute:url' => 'URL~~', + 'Class:RemoteApplicationType' => 'Remote application type~~', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list' => 'Connections~~', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list+' => 'Connections for that application~~', + 'Class:RemoteiTopConnection' => 'Remote iTop connection~~', + 'Class:RemoteiTopConnection/Attribute:auth_pwd' => 'Auth. password~~', + 'Class:RemoteiTopConnection/Attribute:auth_pwd+' => 'Password of the user (on the remote iTop) used for the authentication~~', + 'Class:RemoteiTopConnection/Attribute:auth_user' => 'Auth. user~~', + 'Class:RemoteiTopConnection/Attribute:auth_user+' => 'Login of the user (on the remote iTop) used for the authentication~~', + 'Class:RemoteiTopConnection/Attribute:version' => 'API version~~', + 'Class:RemoteiTopConnection/Attribute:version+' => 'Version of the API called (eg. 1.3)~~', + 'Class:RemoteiTopConnectionToken' => 'Remote iTop connection using a Token~~', + 'Class:RemoteiTopConnectionToken/Attribute:token+' => 'Token~~', + 'Dashboard:Integrations:ActionWebhookList:Title' => 'Webhook type actions~~', + 'Dashboard:Integrations:Outgoing:Title' => 'Outgoing webhook integrations~~', + 'Dashboard:Integrations:Title' => 'Integrations with external applications~~', + 'Menu:Webhook' => 'Webhooks~~', + 'RemoteApplicationConnection:authinfo' => 'Authentication~~', + 'RemoteApplicationConnection:baseinfo' => 'General information~~', + 'RemoteApplicationConnection:moreinfo' => 'More information~~', + 'Class:ActionWebhook/Error:InvalidJSONFormatForPayload' => 'Invalid JSON format for Payload~~', +]); diff --git a/datamodels/2.x/combodo-webhook-integration/dictionaries/tr.dict.combodo-webhook-integration.php b/datamodels/2.x/combodo-webhook-integration/dictionaries/tr.dict.combodo-webhook-integration.php new file mode 100644 index 0000000000..84f36d2d3c --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/dictionaries/tr.dict.combodo-webhook-integration.php @@ -0,0 +1,215 @@ + 'Message~~', + 'ActionMicrosoftTeamsNotification:additionalelements' => 'Additional elements to include~~', + 'ActionMicrosoftTeamsNotification:message' => 'Basis message~~', + 'ActionMicrosoftTeamsNotification:theme' => 'Theme~~', + 'ActionRocketChatNotification:additionalelements' => 'Bot information~~', + 'ActionRocketChatNotification:message' => 'Basis message~~', + 'ActionSlackNotification:Payload:BlockKit:UserInfo' => 'Notification from <%2$s|%1$s> (%3$s)~~', + 'ActionSlackNotification:additionalelements' => 'Additional elements to include~~', + 'ActionSlackNotification:message' => 'Basis message~~', + 'ActionWebhook:advancedparameters' => 'Advanced parameters~~', + 'ActionWebhook:baseinfo' => 'General information~~', + 'ActionWebhook:moreinfo' => 'More information~~', + 'ActionWebhook:requestparameters' => 'Request parameters~~', + 'ActionWebhook:webhookconnection' => 'Webhook connection~~', + 'Class:ActionGoogleChatNotification' => 'Notification by Google Chat', + 'Class:ActionGoogleChatNotification+' => 'Send a notification as a Google Chat message in a space~~', + 'Class:ActionGoogleChatNotification/Attribute:message' => 'Message~~', + 'Class:ActionGoogleChatNotification/Attribute:message+' => 'Message that will be displayed in the chat, only plain text is supported for now.~~', + 'Class:ActionGoogleChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' will be ignored.~~', + 'Class:ActionMicrosoftTeamsNotification' => 'Notification by Microsoft Teams', + 'Class:ActionMicrosoftTeamsNotification+' => 'Send a notification as a Microsoft Teams message in a channel~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url' => 'Medallion picture~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url+' => 'URL of the image to display as a medallion in the message card, it must be publicly accessible on the internet for Microsoft Teams to be able to display it~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button' => 'Delete button~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes' => 'Attributes from~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'msteams\' view of the object triggering the notification . Note that the \'msteams\' view must be defined in the datamodel first (zlist)~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:msteams' => 'the custom "msteams" view~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button' => 'Modify button~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button' => 'Other actions buttons~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:no' => 'No~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:message' => 'Message~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'title\', \'message\' and all \'additional elements\' will be ignored.~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions' => 'Other actions codes~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color' => 'Highlight color~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color+' => 'Highlight color in Microsoft Teams, must be a valid hexadecimal color (eg. FF0000) for Message Cards and one of the following values: "default", "emphasis", "good", "attention", "warning" or "accent" for Adaptive Cards~~', + 'Class:ActionMicrosoftTeamsNotification/Attribute:title' => 'Title~~', + 'Class:ActionRocketChatNotification' => 'Notification by Rocket.Chat', + 'Class:ActionRocketChatNotification+' => 'Send a notification as a Rocket.Chat message in a channel or to a user~~', + 'Class:ActionRocketChatNotification/Attribute:bot_alias' => 'Alias~~', + 'Class:ActionRocketChatNotification/Attribute:bot_alias+' => 'Overrides the default bot alias, will appear before the username of the message~~', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar' => 'Emoji avatar~~', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar+' => 'Overrides the default bot avatar, can be any Rocket.Chat emojis (eg. :ghost:, :white_check_mark:, ...). Note that if an URL avatar is set, the emoji won\'t be displayed.~~', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar' => 'Image avatar~~', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar+' => 'Overrides the default bot avatar, must be an absolute URL to the image to use~~', + 'Class:ActionRocketChatNotification/Attribute:message' => 'Message~~', + 'Class:ActionRocketChatNotification/Attribute:message+' => 'Message that will be displayed in the chat~~', + 'Class:ActionRocketChatNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'bot information\' will be ignored.~~', + 'Class:ActionSlackNotification' => 'Notification by Slack', + 'Class:ActionSlackNotification+' => 'Send a notification as a Slack message in a channel or to a user~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button' => 'Delete button~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button+' => 'Include a button below the message to delete the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes' => 'Attributes from~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes+' => 'Display additional attributes below the message. They can be either from the usual \'list\' view or the custom \'slack\' view of the object triggering the notification . Note that the \'slack\' view must be defined in the datamodel first (zlist)~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:list' => 'the usual list view~~', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:slack' => 'the custom "slack" view~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button' => 'Modify button~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button+' => 'Include a button below the message to edit the object in '.ITOP_APPLICATION_SHORT.'~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button' => 'Other actions buttons~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button+' => 'Include other actions (such as transitions available in the current state) below the message~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:specify' => 'Specify~~', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:include_user_info' => 'User info.~~', + 'Class:ActionSlackNotification/Attribute:include_user_info+' => 'Display user information (full name) below the message~~', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:no' => 'No~~', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:yes' => 'Yes~~', + 'Class:ActionSlackNotification/Attribute:message' => 'Message~~', + 'Class:ActionSlackNotification/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if the standard options are not flexible enough or if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'message\' and all \'additional elements\' will be ignored.~~', + 'Class:ActionSlackNotification/Attribute:specified_other_actions' => 'Other actions codes~~', + 'Class:ActionSlackNotification/Attribute:specified_other_actions+' => 'Specify which actions to include as buttons below the message. Should be a comma separated list of the actions codes (eg. \'ev_reopen, ev_close\')~~', + 'Class:ActionWebhook' => 'Action by Webhook (generic)', + 'Class:ActionWebhook+' => 'Webhook call for any kind of application~~', + 'Class:ActionWebhook/Attribute:asynchronous+' => 'Whether this action should be executed in background or not (mind that global setting for webhook actions is the "prefer_asynchronous" conf. parameter of the "combodo-webhook-action" module)~~', + 'Class:ActionWebhook/Attribute:headers' => 'Headers~~', + 'Class:ActionWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/json\')~~', + 'Class:ActionWebhook/Attribute:language' => 'Language~~', + 'Class:ActionWebhook/Attribute:language+' => 'Language of this notification, mostly used when searching for notifications but might also be used to translate attributes label~~', + 'Class:ActionWebhook/Attribute:method' => 'Method~~', + 'Class:ActionWebhook/Attribute:method+' => 'Method of the HTTP request~~', + 'Class:ActionWebhook/Attribute:method/Value:delete' => 'DELETE~~', + 'Class:ActionWebhook/Attribute:method/Value:get' => 'GET~~', + 'Class:ActionWebhook/Attribute:method/Value:head' => 'HEAD~~', + 'Class:ActionWebhook/Attribute:method/Value:patch' => 'PATCH~~', + 'Class:ActionWebhook/Attribute:method/Value:post' => 'POST~~', + 'Class:ActionWebhook/Attribute:method/Value:put' => 'PUT~~', + 'Class:ActionWebhook/Attribute:path' => 'Path~~', + 'Class:ActionWebhook/Attribute:path+' => 'Additional path to append to the connection URL (eg. \'/some/specific-endpoint\')~~', + 'Class:ActionWebhook/Attribute:payload' => 'Payload~~', + 'Class:ActionWebhook/Attribute:payload+' => 'Data sent during the webhook call, most of the time this is a JSON string. Use this if your payload structure is static. + +IMPORTANT: Will be ignored if \'Prepare payload callback\' is set~~', + 'Class:ActionWebhook/Attribute:prepare_payload_callback' => 'Prepare payload callback~~', + 'Class:ActionWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'Payload\' attribute will be ignored.~~', + 'Class:ActionWebhook/Attribute:process_response_callback' => 'Process response callback~~', + 'Class:ActionWebhook/Attribute:process_response_callback+' => 'PHP method to process the webhook call response. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX +- $oResponse can be null in some cases (eg. request failed to send)~~', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id' => 'Connection~~', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id+' => 'Connection information to use when status is \'in production\'~~', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id' => 'Test connection~~', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id+' => 'Connection information to use when status is \'being tested\'~~', + 'Class:ActioniTopWebhook' => 'Action by '.ITOP_APPLICATION_SHORT.' REST API', + 'Class:ActioniTopWebhook+' => 'Webhook call to a remote iTop application~~', + 'Class:ActioniTopWebhook/Attribute:headers+' => 'Headers of the HTTP request, must be one per line (eg. \'Content-type: application/x-www-form-urlencoded\') + +IMPORTANT: +- \'Content-type\' should be set to \'application/x-www-form-urlencoded\' for iTop, even though we send JSON +- A \'Basic authorization\' header will be append automatically to request during sending, containing the credentials from the selected connection~~', + 'Class:ActioniTopWebhook/Attribute:payload' => 'JSON data~~', + 'Class:ActioniTopWebhook/Attribute:payload+' => 'The JSON payload, must be a JSON string containing the operation name and parameters, see documentation for detailed information~~', + 'Class:ActioniTopWebhook/Attribute:prepare_payload_callback+' => 'PHP method to prepare payload data to be sent during the webhook call. Use this if your payload structure must be dynamically built. + +You can use 2 types of methods: +- From the triggering object itself (eg. UserRequest), must be public. Example: $this->XXX +- From any PHP class, must be static AND public. Name must be name fully qualified. Example: \SomeClass::XXX + +IMPORTANT: If set, the \'JSON data\' attribute will be ignored.~~', + 'Class:EventWebhook' => 'Webhook triggered', + 'Class:EventWebhook/Attribute:action_finalclass' => 'Final class~~', + 'Class:EventWebhook/Attribute:headers' => 'Headers~~', + 'Class:EventWebhook/Attribute:payload' => 'Payload~~', + 'Class:EventWebhook/Attribute:response' => 'Response~~', + 'Class:EventWebhook/Attribute:webhook_url' => 'Webhook URL~~', + 'Class:RemoteApplicationConnection' => 'Remote application connection~~', + 'Class:RemoteApplicationConnection/Attribute:actions_list' => 'Webhook notifications~~', + 'Class:RemoteApplicationConnection/Attribute:actions_list+' => 'Webhook notifications using this connection~~', + 'Class:RemoteApplicationConnection/Attribute:environment' => 'Environment~~', + 'Class:RemoteApplicationConnection/Attribute:environment+' => 'Type of environment of the connection~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:1-development' => 'Development~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:2-test' => 'Test~~', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:3-production' => 'Production~~', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id' => 'Application type~~', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id+' => 'Type of application the connection is for (use \'Generic\' if yours is not in the list)~~', + 'Class:RemoteApplicationConnection/Attribute:url' => 'URL~~', + 'Class:RemoteApplicationType' => 'Remote application type~~', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list' => 'Connections~~', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list+' => 'Connections for that application~~', + 'Class:RemoteiTopConnection' => 'Remote iTop connection~~', + 'Class:RemoteiTopConnection/Attribute:auth_pwd' => 'Auth. password~~', + 'Class:RemoteiTopConnection/Attribute:auth_pwd+' => 'Password of the user (on the remote iTop) used for the authentication~~', + 'Class:RemoteiTopConnection/Attribute:auth_user' => 'Auth. user~~', + 'Class:RemoteiTopConnection/Attribute:auth_user+' => 'Login of the user (on the remote iTop) used for the authentication~~', + 'Class:RemoteiTopConnection/Attribute:version' => 'API version~~', + 'Class:RemoteiTopConnection/Attribute:version+' => 'Version of the API called (eg. 1.3)~~', + 'Class:RemoteiTopConnectionToken' => 'Remote iTop connection using a Token~~', + 'Class:RemoteiTopConnectionToken/Attribute:token+' => 'Token~~', + 'Dashboard:Integrations:ActionWebhookList:Title' => 'Webhook type actions~~', + 'Dashboard:Integrations:Outgoing:Title' => 'Outgoing webhook integrations~~', + 'Dashboard:Integrations:Title' => 'Integrations with external applications~~', + 'Menu:Webhook' => 'Webhooks~~', + 'RemoteApplicationConnection:authinfo' => 'Authentication~~', + 'RemoteApplicationConnection:baseinfo' => 'General information~~', + 'RemoteApplicationConnection:moreinfo' => 'More information~~', + 'Class:ActionWebhook/Error:InvalidJSONFormatForPayload' => 'Invalid JSON format for Payload~~', +]); diff --git a/datamodels/2.x/combodo-webhook-integration/dictionaries/zh_cn.dict.combodo-webhook-integration.php b/datamodels/2.x/combodo-webhook-integration/dictionaries/zh_cn.dict.combodo-webhook-integration.php new file mode 100644 index 0000000000..8f6f895db1 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/dictionaries/zh_cn.dict.combodo-webhook-integration.php @@ -0,0 +1,215 @@ + '消息', + 'ActionMicrosoftTeamsNotification:additionalelements' => '要包含的附加元素', + 'ActionMicrosoftTeamsNotification:message' => '基本消息', + 'ActionMicrosoftTeamsNotification:theme' => '主题', + 'ActionRocketChatNotification:additionalelements' => '自动程序信息', + 'ActionRocketChatNotification:message' => '基本消息', + 'ActionSlackNotification:Payload:BlockKit:UserInfo' => '通知来自于<%2$s|%1$s>(%3$s)', + 'ActionSlackNotification:additionalelements' => '要包含的附加元素', + 'ActionSlackNotification:message' => '基本消息', + 'ActionWebhook:advancedparameters' => '高级参数', + 'ActionWebhook:baseinfo' => '常规信息', + 'ActionWebhook:moreinfo' => '更多信息', + 'ActionWebhook:requestparameters' => '请求参数', + 'ActionWebhook:webhookconnection' => 'Webhook连接', + 'Class:ActionGoogleChatNotification' => '谷歌聊天通知', + 'Class:ActionGoogleChatNotification+' => '以谷歌空间聊天消息发送通知', + 'Class:ActionGoogleChatNotification/Attribute:message' => '消息', + 'Class:ActionGoogleChatNotification/Attribute:message+' => '在聊天中要显示的消息,目前仅支持纯文本。', + 'Class:ActionGoogleChatNotification/Attribute:prepare_payload_callback+' => '筹备载荷数据的PHP方法,以用于此webhook调用时发送。请在标准选项不够灵活,或者所发送数据必须动态生成时使用。 + +可以使用2种类型的方法: +——来自触发对象自身(如用户请求),必须是公开的。例如:$this->XXX +——来自任何PHP类,必须是静态的且公开的。名称必须是合法的全名。例如:\SomeClass::XXX + +请注意:如果设置了此参数,则会忽略“消息”参数。', + 'Class:ActionMicrosoftTeamsNotification' => '微软Teams通知', + 'Class:ActionMicrosoftTeamsNotification+' => '以微软Teams频道消息发送通知', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url' => '徽章图像', + 'Class:ActionMicrosoftTeamsNotification/Attribute:image_url+' => '在此消息卡片中显示为徽章的图片URL,为使微软Teams能显示,其必须是在互联网可公开访问的', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button' => '删除按钮', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button+' => '在此消息之后包含一个按钮,以在'.ITOP_APPLICATION_SHORT.'中删除此对象', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:no' => '否', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_delete_button/Value:yes' => '是', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes' => '发送者属性', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes+' => '在此消息之后显示额外属性。其可以是来自触发此通知的对象的常规“列表”视图,或者自定义“msteams”视图。请注意,此“msteams”视图必须先在数据模型中定义(zlist)', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:list' => '常规“列表”视图', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_list_attributes/Value:msteams' => '自定义“msteams”视图', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button' => '修改按钮', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button+' => '在此消息之后包含一个按钮,以在'.ITOP_APPLICATION_SHORT.'中修改此对象', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:no' => '否', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_modify_button/Value:yes' => '是', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button' => '其他操作按钮', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button+' => '在此消息之后包含其他操作(例如当前状态下可用的转变)', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:no' => '否', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:specify' => '指定', + 'Class:ActionMicrosoftTeamsNotification/Attribute:include_other_actions_button/Value:yes' => '是', + 'Class:ActionMicrosoftTeamsNotification/Attribute:message' => '消息', + 'Class:ActionMicrosoftTeamsNotification/Attribute:prepare_payload_callback+' => '筹备载荷数据的PHP方法,以用于此webhook调用时发送。请在标准选项不够灵活,或者所发送数据必须动态生成时使用。 + +可以使用2种类型的方法: +——来自触发对象自身(如用户请求),必须是公开的。例如:$this->XXX +——来自任何PHP类,必须是静态的且公开的。名称必须是合法的全名。例如:\SomeClass::XXX + +请注意:如果设置了此参数,则会忽略“标题”、“消息”和所有的“附加元素”参数。', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions' => '其他操作编码', + 'Class:ActionMicrosoftTeamsNotification/Attribute:specified_other_actions+' => '指定在此消息之后要包含的操作按钮。应该为逗号分割的操作编码列表(例如“ev_reopen, ev_close”)', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color' => '高亮颜色', + 'Class:ActionMicrosoftTeamsNotification/Attribute:theme_color+' => '此消息卡片在微软Teams中的高亮颜色,必须是合法的16进制颜色编码(例如FF0000)', + 'Class:ActionMicrosoftTeamsNotification/Attribute:title' => '标题', + 'Class:ActionRocketChatNotification' => 'Rocket.Chat通知', + 'Class:ActionRocketChatNotification+' => '以Rocket.Chat频道或用户消息发送通知', + 'Class:ActionRocketChatNotification/Attribute:bot_alias' => '别名', + 'Class:ActionRocketChatNotification/Attribute:bot_alias+' => '覆盖默认的自动程序别名,显示在消息用户名之前', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar' => '表情符号', + 'Class:ActionRocketChatNotification/Attribute:bot_emoji_avatar+' => '覆盖默认的自动程序表情符号,可以是任何Rocket.Chat表情符号(例如:ghost:,:white_check_mark:,...)。请注意如果设置了头像URL,将不会显示表情符号。', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar' => '图片头像', + 'Class:ActionRocketChatNotification/Attribute:bot_url_avatar+' => '覆盖默认的自动程序头像,必须是此图片的绝对URL', + 'Class:ActionRocketChatNotification/Attribute:message' => '消息', + 'Class:ActionRocketChatNotification/Attribute:message+' => '在聊天中要显示的消息', + 'Class:ActionRocketChatNotification/Attribute:prepare_payload_callback+' => '筹备载荷数据的PHP方法,以用于此webhook调用时发送。请在标准选项不够灵活,或者所发送数据必须动态生成时使用。 + +可以使用2种类型的方法: +——来自触发对象自身(如用户请求),必须是公开的。例如:$this->XXX +——来自任何PHP类,必须是静态的且公开的。名称必须是合法的全名。例如:\SomeClass::XXX + +请注意:如果设置了此参数,则会忽略“消息”和所有的“自动程序信息”参数。', + 'Class:ActionSlackNotification' => 'Slack通知', + 'Class:ActionSlackNotification+' => '以Slack频道或用户消息发送通知', + 'Class:ActionSlackNotification/Attribute:include_delete_button' => '删除按钮', + 'Class:ActionSlackNotification/Attribute:include_delete_button+' => '在此消息之后包含一个按钮,以在'.ITOP_APPLICATION_SHORT.'中删除此对象', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:no' => '否', + 'Class:ActionSlackNotification/Attribute:include_delete_button/Value:yes' => '是', + 'Class:ActionSlackNotification/Attribute:include_list_attributes' => '发送者属性', + 'Class:ActionSlackNotification/Attribute:include_list_attributes+' => '在此消息之后显示额外属性。其可以是来自触发此通知的对象的常规“列表”视图,或者自定义“slack”视图。请注意,此“slack”视图必须先在数据模型中定义(zlist)', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:list' => '常规“列表”视图', + 'Class:ActionSlackNotification/Attribute:include_list_attributes/Value:slack' => '自定义“slack”视图', + 'Class:ActionSlackNotification/Attribute:include_modify_button' => '修改按钮', + 'Class:ActionSlackNotification/Attribute:include_modify_button+' => '在此消息之后包含一个按钮,以在'.ITOP_APPLICATION_SHORT.'中修改此对象', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:no' => '否', + 'Class:ActionSlackNotification/Attribute:include_modify_button/Value:yes' => '是', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button' => '其他操作按钮', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button+' => '在此消息之后包含其他操作(例如当前状态下可用的转变)', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:no' => '否', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:specify' => '指定', + 'Class:ActionSlackNotification/Attribute:include_other_actions_button/Value:yes' => '是', + 'Class:ActionSlackNotification/Attribute:include_user_info' => '用户信息', + 'Class:ActionSlackNotification/Attribute:include_user_info+' => '显示用户信息(全名)在此消息之后', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:no' => '否', + 'Class:ActionSlackNotification/Attribute:include_user_info/Value:yes' => '是', + 'Class:ActionSlackNotification/Attribute:message' => '消息', + 'Class:ActionSlackNotification/Attribute:prepare_payload_callback+' => '筹备载荷数据的PHP方法,以用于此webhook调用时发送。请在标准选项不够灵活,或者所发送数据必须动态生成时使用。 + +可以使用2种类型的方法: +——来自触发对象自身(如用户请求),必须是公开的。例如:$this->XXX +——来自任何PHP类,必须是静态的且公开的。名称必须是合法的全名。例如:\SomeClass::XXX + +请注意:如果设置了此参数,则会忽略“消息”和所有的“附加元素”参数。', + 'Class:ActionSlackNotification/Attribute:specified_other_actions' => '其他操作编码', + 'Class:ActionSlackNotification/Attribute:specified_other_actions+' => '指定在此消息之后要包含的操作按钮。应该为逗号分割的操作编码列表(例如“ev_reopen, ev_close”)', + 'Class:ActionWebhook' => 'Webhook调用(通用)', + 'Class:ActionWebhook+' => 'Webhook调用可用于任何应用', + 'Class:ActionWebhook/Attribute:asynchronous+' => 'Whether this action should be executed in background or not (mind that global setting for webhook actions is the "prefer_asynchronous" conf. parameter of the "combodo-webhook-action" module)~~', + 'Class:ActionWebhook/Attribute:headers' => '头信息', + 'Class:ActionWebhook/Attribute:headers+' => 'HTTP请求的头信息,每个必须时1行(例如“Content-type: application/json”)', + 'Class:ActionWebhook/Attribute:language' => '语言', + 'Class:ActionWebhook/Attribute:language+' => '通知的语言,通常用于搜索通知,也可用于翻译属性标签', + 'Class:ActionWebhook/Attribute:method' => '方法', + 'Class:ActionWebhook/Attribute:method+' => 'HTTP请求的方法', + 'Class:ActionWebhook/Attribute:method/Value:delete' => 'DELETE', + 'Class:ActionWebhook/Attribute:method/Value:get' => 'GET', + 'Class:ActionWebhook/Attribute:method/Value:head' => 'HEAD', + 'Class:ActionWebhook/Attribute:method/Value:patch' => 'PATCH', + 'Class:ActionWebhook/Attribute:method/Value:post' => 'POST', + 'Class:ActionWebhook/Attribute:method/Value:put' => 'PUT', + 'Class:ActionWebhook/Attribute:path' => 'Path~~', + 'Class:ActionWebhook/Attribute:path+' => 'Additional path to append to the connection URL (eg. \'/some/specific-endpoint\')~~', + 'Class:ActionWebhook/Attribute:payload' => '载荷', + 'Class:ActionWebhook/Attribute:payload+' => '调用时发送的数据,通常为JSON字符串。请在所发送数据为静态时使用。 + +请注意:如果设置了“筹备payload回调”,其将被忽略', + 'Class:ActionWebhook/Attribute:prepare_payload_callback' => '筹备载荷回调', + 'Class:ActionWebhook/Attribute:prepare_payload_callback+' => '筹备载荷数据的PHP方法,以用于此webhook调用时发送。请在所发送数据必须动态生成时使用。 + +可以使用2种类型的方法: +——来自触发对象自身(如用户请求),必须是公开的。例如:$this->XXX +——来自任何PHP类,必须是静态的且公开的。名称必须是合法的全名。例如:\SomeClass::XXX + +请注意:如果设置了,则会忽略“载荷”属性。', + 'Class:ActionWebhook/Attribute:process_response_callback' => '处理响应回调', + 'Class:ActionWebhook/Attribute:process_response_callback+' => 'PHP方法用以处理此webhook调用的响应。 + +可以使用2种类型的方法: +——来自触发对象自身(如用户请求),必须是公开的。例如:$this->XXX +——来自任何PHP类,必须是静态的且公开的。名称必须是合法的全名。例如:\SomeClass::XXX +——在某些情况下$oResponse可以为空(例如发送请求失败)', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id' => '连接', + 'Class:ActionWebhook/Attribute:remoteapplicationconnection_id+' => '状态为“线上”时使用的连接信息', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id' => '测试的连接', + 'Class:ActionWebhook/Attribute:test_remoteapplicationconnection_id+' => '状态为“测试”时使用的连接信息', + 'Class:ActioniTopWebhook' => ITOP_APPLICATION_SHORT.'webhook调用', + 'Class:ActioniTopWebhook+' => '远程'.ITOP_APPLICATION_SHORT.'应用的Webhook调用', + 'Class:ActioniTopWebhook/Attribute:headers+' => 'HTTP请求的头信息,每个必须1行(例如:“Content-type: application/x-www-form-urlencoded”) + +请注意: +——当应用为'.ITOP_APPLICATION_SHORT.'时“Content-type”必须设置为“application/x-www-form-urlencoded”,即使发送的是JSON +——名为“Basic authorization”的头信息将在发送时自动添加到请求,包含此所选连接的认证信息', + 'Class:ActioniTopWebhook/Attribute:payload' => 'JSON数据', + 'Class:ActioniTopWebhook/Attribute:payload+' => '此JSON载荷,必须是包含操作名称和参数的JSON字符串,详细信息请参考说明文档', + 'Class:ActioniTopWebhook/Attribute:prepare_payload_callback+' => '筹备载荷数据的PHP方法,以用于此webhook调用时发送。请在所发送数据必须动态生成时使用。 + +可以使用2种类型的方法: +——来自触发对象自身(如用户请求),必须是公开的。例如:$this->XXX +——来自任何PHP类,必须是静态的且公开的。名称必须是合法的全名。例如:\SomeClass::XXX + +请注意:如果设置了此参数,则会忽略“JSON数据”参数。', + 'Class:EventWebhook' => 'Webhook发行事件', + 'Class:EventWebhook/Attribute:action_finalclass' => '终态类', + 'Class:EventWebhook/Attribute:headers' => '头信息', + 'Class:EventWebhook/Attribute:payload' => '载荷', + 'Class:EventWebhook/Attribute:response' => '响应', + 'Class:EventWebhook/Attribute:webhook_url' => 'Webhook的URL', + 'Class:RemoteApplicationConnection' => '远程应用连接', + 'Class:RemoteApplicationConnection/Attribute:actions_list' => 'Webhook通知', + 'Class:RemoteApplicationConnection/Attribute:actions_list+' => '使用此连接的Webhook通知', + 'Class:RemoteApplicationConnection/Attribute:environment' => '环境', + 'Class:RemoteApplicationConnection/Attribute:environment+' => '此连接的环境的类型', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:1-development' => '开发', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:2-test' => '测试', + 'Class:RemoteApplicationConnection/Attribute:environment/Value:3-production' => '线上', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id' => '应用类型', + 'Class:RemoteApplicationConnection/Attribute:remoteapplicationtype_id+' => '此连接的应用的类型(如果列表中没有您的请使用“通用”)', + 'Class:RemoteApplicationConnection/Attribute:url' => 'URL', + 'Class:RemoteApplicationType' => '远程应用类型', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list' => '连接', + 'Class:RemoteApplicationType/Attribute:remoteapplicationconnections_list+' => '外部应用的连接', + 'Class:RemoteiTopConnection' => '远程'.ITOP_APPLICATION_SHORT.'连接', + 'Class:RemoteiTopConnection/Attribute:auth_pwd' => '验证密码', + 'Class:RemoteiTopConnection/Attribute:auth_pwd+' => '此身份验证所使用的用户(远程'.ITOP_APPLICATION_SHORT.')密码', + 'Class:RemoteiTopConnection/Attribute:auth_user' => '验证用户', + 'Class:RemoteiTopConnection/Attribute:auth_user+' => '此身份验证所使用的用户(远程'.ITOP_APPLICATION_SHORT.')登录名', + 'Class:RemoteiTopConnection/Attribute:version' => 'API版本', + 'Class:RemoteiTopConnection/Attribute:version+' => '此API调用的版本(例如1.3)', + 'Class:RemoteiTopConnectionToken' => 'Remote iTop connection using a Token~~', + 'Class:RemoteiTopConnectionToken/Attribute:token+' => 'Token~~', + 'Dashboard:Integrations:ActionWebhookList:Title' => 'Webhook类型操作', + 'Dashboard:Integrations:Outgoing:Title' => '外部的webhook集成', + 'Dashboard:Integrations:Title' => '与外部应用集成', + 'Menu:Webhook' => 'Webhooks~~', + 'RemoteApplicationConnection:authinfo' => '认证', + 'RemoteApplicationConnection:baseinfo' => '常规信息', + 'RemoteApplicationConnection:moreinfo' => '更多信息', + 'Class:ActionWebhook/Error:InvalidJSONFormatForPayload' => 'Invalid JSON format for Payload~~', +]); diff --git a/datamodels/2.x/combodo-webhook-integration/module.combodo-webhook-integration.php b/datamodels/2.x/combodo-webhook-integration/module.combodo-webhook-integration.php new file mode 100644 index 0000000000..384e2a22ef --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/module.combodo-webhook-integration.php @@ -0,0 +1,84 @@ + 'Webhook integrations', + 'category' => 'business', + + // Setup + // + 'dependencies' => array( + 'itop-structure/3.2.0', + 'itop-attribute-encrypted-password/1.0.0', + 'combodo-oauth2-client/1.0.0', + ), + 'mandatory' => false, + 'visible' => true, + 'installer' => 'WebhookIntegrationInstaller', + + // Components + // + 'datamodel' => array( + // Extension autoloader + 'vendor/autoload.php', + // Explicitly load DM classes + 'SendWebRequest.php', + 'model.combodo-webhook-integration.php', + ), + 'webservice' => array(), + 'data.struct' => array( + 'data.struct.remote_application_type.xml', + ), + 'data.sample' => array(), + + // Documentation + // + 'doc.manual_setup' => '', // hyperlink to manual setup documentation, if any + 'doc.more_information' => '', // hyperlink to more information, if any + + // Default settings + // + 'settings' => array( + // Configuración de proxy para las llamadas salientes de los webhooks + 'proxy' => array( + 'host' => 'ip.roxy:3128', // IP:PUERTO de tu proxy + 'user' => '', // si no requiere auth, dejalo vacío + 'password' => '', + ) + ) + ) +); + +if (!class_exists('WebhookIntegrationInstaller')) +{ + // Module installation handler + // + class WebhookIntegrationInstaller extends ModuleInstallerAPI + { + /** + * @inheritDoc + * @since 1.4.0 + */ + public static function BeforeDatabaseCreation(Config $oConfiguration, $sPreviousVersion, $sCurrentVersion) + { + if (strlen($sPreviousVersion) === 0) { + return; + } + + // Search for existing ActionWebhook where the language attribute was defined on its child + if (version_compare($sPreviousVersion, '1.4.0', '<')) { + SetupLog::Info("| Migrate ActionWebhook language attribute values to its parent."); + $sTableToRead = MetaModel::DBGetTable('ActionWebhook'); + $sTableToSet = MetaModel::DBGetTable('ActionNotification'); + self::MoveColumnInDB($sTableToRead, 'language', $sTableToSet, 'language', true); + SetupLog::Info("| ActionWebhook migration done."); + } + } + } +} diff --git a/datamodels/2.x/combodo-webhook-integration/src/Core/Notification/Action/Webhook/Exception/WebhookInvalidJsonValueException.php b/datamodels/2.x/combodo-webhook-integration/src/Core/Notification/Action/Webhook/Exception/WebhookInvalidJsonValueException.php new file mode 100644 index 0000000000..d62c3bcdd4 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/src/Core/Notification/Action/Webhook/Exception/WebhookInvalidJsonValueException.php @@ -0,0 +1,11 @@ + $oResponse, + 'aParams' => $aParams, + ]); + throw new Exception('Missing parameters in response handler. See error log for details.'); + } + /** @var DBObject $oTriggeringObject */ + $oTriggeringObject = is_object($aParams['oTriggeringObject']) ? + $aParams['oTriggeringObject'] : + MetaModel::GetObject($aParams['oTriggeringObject']['class'], $aParams['oTriggeringObject']['id'], true, true); + $oActionWebhook = MetaModel::GetObject($aParams['oActionWebhook']['class'], $aParams['oActionWebhook']['id'], true, true); + $sResponseCallback = $oActionWebhook->Get('process_response_callback'); + if (!empty($sResponseCallback)) { + $oCallBack = new CallbackService($sResponseCallback); + $oCallBack->CheckCallbackSignature(get_class($oTriggeringObject), [WebResponse::class, \ActionWebhook::class]); + $oCallBack->Invoke($oTriggeringObject, [$oResponse, $oActionWebhook]); + } + } + + /** + * @inheritDoc + * @since 1.4.0 + */ + public static function GetAsynchronousGlobalSetting(): bool + { + $oConfig = utils::GetConfig(); + return $oConfig->GetModuleSetting('combodo-webhook-integration', 'prefer_asynchronous', (WebRequestSender::DEFAULT_SEND_MODE === WebRequestSender::ENUM_SEND_MODE_ASYNC)); + } + + /** + * @inheritDoc + * + * @throws \ArchivedObjectException + * @throws \CoreException + */ + public function DoExecute($oTrigger, $aContextArgs) + { + // Create notification object to log status information if enabled + if (MetaModel::IsLogEnabledNotification()) + { + $oLog = new EventWebhook(); + if ($this->IsBeingTested()) + { + $oLog->Set('message', 'TEST - Notification pending'); + } + else + { + $oLog->Set('message', 'Notification pending'); + } + $oLog->Set('userinfo', UserRights::GetUser()); + $oLog->Set('action_finalclass', $this->Get('finalclass')); + $oLog->Set('trigger_id', $oTrigger->GetKey()); + $oLog->Set('action_id', $this->GetKey()); + $oLog->Set('object_id', $aContextArgs ['this->object()']->GetKey()); + $oLog->DBInsertNoReload(); + } + else + { + $oLog = null; + } + + try + { + // Execute Request + $sRes = $this->_DoExecute($oTrigger, $aContextArgs, $oLog); + + // Logging Feedback + if ($oLog) + { + $sPrefix = ($this->IsBeingTested()) ? 'TEST - ' : ''; + $oLog->Set('message', $sPrefix.$sRes); + } + + } + catch (Exception $oException) + { + if ($oLog) + { + $oLog->Set('message', 'Error: '.$oException->getMessage()); + } + } + if ($oLog) + { + $oLog->DBUpdate(); + } + } + + /** + * Do the execution itself + * + * @param \Trigger $oTrigger TriggerObject which called the action + * @param array $aContextArgs + * @param \EventNotification $oLog Reference to the Log Object for store information in EventNotification + * + * @return string + * @throws \Exception + */ + protected function _DoExecute($oTrigger, $aContextArgs, &$oLog) + { + $sPreviousUrlMaker = ApplicationContext::SetUrlMakerClass(); + try + { + $this->aRequestErrors = array(); + + $sActionClass = get_called_class(); + /** @var \DBObject $oTriggeringObject */ + $oTriggeringObject = $aContextArgs['this->object()']; + + $oRequest = $this->PrepareWebRequest($aContextArgs, $oLog); + + // Set default response handler if not already defined (this also custom ActionWebhook classes to define their own) + if ($oRequest->HasResponseHandler() === false) { + $aHandlerParams = [ + 'oActionWebhook' => [ + 'class' => $sActionClass, + 'id' => $this->GetKey(), + ], + ]; + + if ($this->IsAsynchronous()) { + $aHandlerParams['oTriggeringObject'] = [ + 'class' => get_class($oTriggeringObject), + 'id' => $oTriggeringObject->GetKey(), + ]; + } else { + $aHandlerParams['oTriggeringObject'] = $oTriggeringObject; + } + + $oRequest->SetResponseHandlerName($sActionClass.'::ExecuteResponseHandler') + ->SetResponseHandlerParams($aHandlerParams); + } + + // Errors during preparation + if (!empty($this->m_aWebrequestErrors)) + { + return 'Errors: '.implode(', ', $this->m_aWebrequestErrors); + } + + if ($this->IsBeingTested() && empty($oRequest->GetURL())) + { + return 'Not sent as there was no test webhook URL defined'; + } + + // Prepare "send mode" + $sSendMode = $this->IsAsynchronous() ? WebRequestSender::ENUM_SEND_MODE_ASYNC : WebRequestSender::ENUM_SEND_MODE_SYNC; + + $oSender = WebRequestSender::GetInstance(); + $aResult = $oSender->Send($oRequest, $this->aRequestErrors, $oLog, $sSendMode); + + switch ($aResult['sender_status']) + { + case WebRequestSender::ENUM_SEND_STATE_OK: + return 'Sent'; + + case WebRequestSender::ENUM_SEND_STATE_PENDING: + return 'Pending'; + + case WebRequestSender::ENUM_SEND_STATE_ERROR; + return 'Errors: '.implode(', ', $this->aRequestErrors); + } + } + catch (Exception $oException) + { + ApplicationContext::SetUrlMakerClass($sPreviousUrlMaker); + throw $oException; + } + ApplicationContext::SetUrlMakerClass($sPreviousUrlMaker); + + return 'Bug: Unknown behavior, check the event notification log.'; + } + + /** + * @param array $aContextArgs + * @param \EventNotification $oLog + * + * @return \Combodo\iTop\Core\WebRequest Prepare and return the WebRequest to be sent + * @throws \ArchivedObjectException + * @throws \CoreException + */ + abstract protected function PrepareWebRequest(array $aContextArgs, \EventNotification &$oLog); + + /** + * @param string $sJson + * + * @return string|array|boolean|null decoded value + * @throws WebhookInvalidJsonValueException if error on decode + * + * @uses json_decode + * @uses json_last_error + * + * @link https://www.json.org/json-en.html JSON string can contain an object (associative array), + * but also "null", or boolean ("true" or "false") or any other string values (for example "foo") + * @link https://www.php.net/manual/en/function.json-last-error.php for JSON error codes + * + * @since 1.3.2 N°6647 more generic method to check JSON validity + */ + public static function JsonDecodeWithError($sJson) + { + if (false === is_string($sJson)) { + throw new WebhookInvalidJsonValueException('Input JSON is not a string', [ + 'value' => $sJson, + ]); + } + + $decodedValue = json_decode($sJson, true); + $decodeError = json_last_error(); + if ($decodeError !== JSON_ERROR_NONE) { + throw new WebhookInvalidJsonValueException('Invalid JSON format', [ + 'value' => $sJson, + 'json_decode.error' => $decodeError, + 'json_decode.errormessage' => json_last_error_msg(), + ]); + } + + return $decodedValue; + } +} diff --git a/datamodels/2.x/combodo-webhook-integration/src/Core/WebRequest.php b/datamodels/2.x/combodo-webhook-integration/src/Core/WebRequest.php new file mode 100644 index 0000000000..639fd61be5 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/src/Core/WebRequest.php @@ -0,0 +1,170 @@ + + */ +class WebRequest +{ + /** @var string URL of the request */ + protected $sURL; + /** @var array cURL options */ + protected $aOptions; + /** + * @var string Name of the handler to be called on request's response + * - $this->Foo + * - \SomeClass::Foo + */ + protected $sResponseHandlerName; + /** @var array Structured data that will be passed to $sResponseHandlerName */ + protected $aResponseHandlerParams; + + /** + * @param string $sURL Url which should called with this request + */ + public function __construct($sURL) + { + $this->sURL = $sURL; + $this->aOptions = array(); + $this->sResponseHandlerName = ''; + $this->aResponseHandlerParams = []; + } + + /** + * Return the URL of the web request + * + * @return string + */ + public function GetURL() + { + return $this->sURL; + } + + /** + * Return the option value for the $sOption code. If no option matching, null is returned. + * + * @param string $sOption Option code to return + * + * @return mixed|null + */ + public function GetOption($sOption) + { + if(!array_key_exists($sOption, $this->aOptions)) + { + return null; + } + + return $this->aOptions[$sOption]; + } + + /** + * Return all options. + * + * @return array + */ + public function GetOptions() + { + return $this->aOptions; + } + + /** + * Set $sOption for curl call + * + * @param string $sOption name of curl option to be set + * @param string $sValue value to be set + * + * @return void + */ + public function SetOption($sOption, $sValue) + { + $this->aOptions[$sOption] = $sValue; + } + + /** + * Set multiple $aOptions for curl call at once. + * Note: Add / overwrite options present in $aOptions, but does not replace the entire array with $aOptions + * + * @param array $aOptions array with key values for options + * + * @return void + */ + public function SetOptions($aOptions) + { + foreach ($aOptions as $sOption => $sValue) + { + $this->aOptions[$sOption] = $sValue; + } + } + + /** + * @return bool + *@see \Combodo\iTop\Core\WebRequest::$sResponseHandlerName + */ + public function HasResponseHandler() + { + return strlen($this->sResponseHandlerName) > 0; + } + + /** + * @see \Combodo\iTop\Core\WebRequest::$sURL + * @return string + */ + public function GetResponseHandlerName() + { + return $this->sResponseHandlerName; + } + + /** + * @param string $sHandlerName + * + * @return $this + *@see \Combodo\iTop\Core\WebRequest::$sResponseHandlerName + */ + public function SetResponseHandlerName($sHandlerName) + { + $this->sResponseHandlerName = $sHandlerName; + return $this; + } + + /** + * @return array + *@see \Combodo\iTop\Core\WebRequest::$aResponseHandlerParams + */ + public function GetResponseHandlerParams() + { + return $this->aResponseHandlerParams; + } + + /** + * @param array $aParams + * + * @return $this + *@see \Combodo\iTop\Core\WebRequest::$aResponseHandlerParams + */ + public function SetResponseHandlerParams(array $aParams) + { + $this->aResponseHandlerParams = $aParams; + return $this; + } +} \ No newline at end of file diff --git a/datamodels/2.x/combodo-webhook-integration/src/Core/WebResponse.php b/datamodels/2.x/combodo-webhook-integration/src/Core/WebResponse.php new file mode 100644 index 0000000000..c3617b3208 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/src/Core/WebResponse.php @@ -0,0 +1,87 @@ + + */ +class WebResponse +{ + /** @var array $aHeaders */ + protected $aHeaders = array(); + /** @var string $sBody */ + protected $sBody = null; + + /** + * Constructor + */ + public function __construct() + { + } + + /** + * Set the headers as an associative array (header name => header value) + * + * @param array $aHeaders + * + * @return $this; + */ + public function SetHeaders(array $aHeaders) + { + $this->aHeaders = $aHeaders; + return $this; + } + + /** + * Return headers as an associative array + * + * @return array + */ + public function GetHeaders() + { + return $this->aHeaders; + } + + /** + * Set the raw body of the response + * + * @param string $sBody + * + * @return $this + */ + public function SetBody(string $sBody) + { + $this->sBody = $sBody; + return $this; + } + + /** + * Return the raw body + * + * @return string + */ + public function GetBody() + { + return $this->sBody; + } +} \ No newline at end of file diff --git a/datamodels/2.x/combodo-webhook-integration/src/Service/CallbackService.php b/datamodels/2.x/combodo-webhook-integration/src/Service/CallbackService.php new file mode 100644 index 0000000000..54937a719b --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/src/Service/CallbackService.php @@ -0,0 +1,109 @@ +CheckCallbackSignature(get_class($oTriggeringObject), [DBObject::class, 'string', 'int']); + * $callbackService->Invoke($oTriggeringObject, ['stringValue', 42]); + * + */ +class CallbackService +{ + private string $sCallBackClassName; + private string $sCallBackMethodName; + private bool $bIsStatic; + + /** + * @throws Exception + */ + public function __construct(string $sCallBackDefinition) + { + if (stripos($sCallBackDefinition, '$this->') !== false) { + $this->sCallBackMethodName = str_ireplace('$this->', '', $sCallBackDefinition); + $this->bIsStatic = false; + $this->sCallBackClassName = ''; // we don't need it for non-static methods + } else { + if (!is_callable($sCallBackDefinition)) { + $sMessageError = "The callback '$sCallBackDefinition' is not valid."; + IssueLog::Error($sMessageError, 'console'); + throw new Exception($sMessageError); + } + $iPos = strrpos($sCallBackDefinition, '::'); + if ($iPos !== false && $iPos > 0) { + $this->sCallBackClassName = substr($sCallBackDefinition, 0, $iPos); + $this->sCallBackMethodName = substr($sCallBackDefinition, $iPos + 2); + $this->bIsStatic = true; + } else { + $sMessageError = "The callback '$sCallBackDefinition' is not a valid static method."; + IssueLog::Error($sMessageError, 'console'); + throw new Exception($sMessageError); + } + } + } + + public function IsStatic(): bool + { + return $this->bIsStatic; + } + + /** + * @throws ReflectionException + * @throws SecurityException + */ + public function CheckCallbackSignature(string $sTriggeringObjectClass, array $aParamsType): void + { + $iParamCount = 0; + if ($this->bIsStatic) { // If the callback is static, we expect the first parameter to be the triggering object type + array_unshift($aParamsType, DBObject::class); + } else { + $this->sCallBackClassName = $sTriggeringObjectClass; + } + $oReflector = new ReflectionClass($this->sCallBackClassName); + $aCallbackParameters = $oReflector->getMethod($this->sCallBackMethodName)->getParameters(); + $iRequiredNumberOfParams = count($aParamsType); + if (count($aCallbackParameters) !== $iRequiredNumberOfParams) { + $sErrorMessage = "The callback method '$this->sCallBackMethodName' of class '$this->sCallBackClassName' must have exactly $iRequiredNumberOfParams parameters."; + IssueLog::Error($sErrorMessage); + throw new SecurityException($sErrorMessage); + } + foreach ($aParamsType as $iParamOrder => $sParamType) { + $oParam = $aCallbackParameters[$iParamOrder]; + if ($oParam->getType() === null) { + $sErrorMessage = "The callback method '$this->sCallBackMethodName' of class '$this->sCallBackClassName' must have type-hinted parameters, but parameter {$oParam->getName()} is not type-hinted."; + IssueLog::Error($sErrorMessage); + throw new SecurityException($sErrorMessage); + } + if ($oParam->getType()->getName() !== $sParamType) { + $sErrorMessage = "The callback method '$this->sCallBackMethodName' of class '$this->sCallBackClassName' must have a parameter of type '$sParamType', but it has {$oParam->getType()->getName()} instead."; + IssueLog::Error($sErrorMessage); + throw new SecurityException($sErrorMessage); + } + } + } + + /** + * @param $oTriggeringObject + * @param array $aParams + * + * @return mixed + */ + public function Invoke($oTriggeringObject, array $aParams): mixed + { + if ($this->bIsStatic) { + return call_user_func_array([$this->sCallBackClassName, $this->sCallBackMethodName], array_merge([$oTriggeringObject], $aParams)); + + } else { + return call_user_func_array([$oTriggeringObject, $this->sCallBackMethodName], $aParams); + } + } +} \ No newline at end of file diff --git a/datamodels/2.x/combodo-webhook-integration/src/Service/WebRequestSender.php b/datamodels/2.x/combodo-webhook-integration/src/Service/WebRequestSender.php new file mode 100644 index 0000000000..59393e93ee --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/src/Service/WebRequestSender.php @@ -0,0 +1,240 @@ + + */ +class WebRequestSender +{ + /** @var int Request sent successfully */ + const ENUM_SEND_STATE_OK = 0; + /** @var int Request still pending */ + const ENUM_SEND_STATE_PENDING = 1; + /** @var int Request could not be sent due to an error */ + const ENUM_SEND_STATE_ERROR = 2; + + /** @var string Request to be sent synchronously = immediately, blocking the current script execution while sending (eg. network wait) */ + const ENUM_SEND_MODE_SYNC = 'sync'; + /** @var string Request to be sent asynchronously = by the CRON job to avoid blocking script execution */ + const ENUM_SEND_MODE_ASYNC = 'async'; + + /** @var string \ContextTag placed around the ResponseHandler call */ + const CONTEXT_TAG_RESPONSE_HANDLER = 'Combodo\iTop\Service\WebRequestSender:ResponseHandler'; + + /** @var string */ + const DEFAULT_SEND_MODE = self::ENUM_SEND_MODE_SYNC; + /** @var int */ + const DEFAULT_CONNECTION_TIMEOUT_IN_SECONDS = 5; + + /** @var null|\Combodo\iTop\Service\WebRequestSender $oInstance */ + public static $oInstance = null; + private static bool $mockDoPostRequest = false; + + public static function SetMockDoPostRequest(bool $mockDoPostRequest): void + { + static::$mockDoPostRequest = $mockDoPostRequest; + } + /** + * Return the singleton instance for this class + * + * @return \Combodo\iTop\Service\WebRequestSender + */ + public static function GetInstance() + { + if(static::$oInstance === null) + { + static::$oInstance = new static(); + } + + return static::$oInstance; + } + + /** + * Send the $oRequest synchronously or asynchronously depending on the $bForcedSendMode parameter and the 'prefer_asynchronous' module parameter. + * + * @param \Combodo\iTop\Core\WebRequest $oRequest The web request to send + * @param array $aIssues Array of errors that occurred during sending + * @param null|\EventNotification $oLog + * @param null|string $sForcedSendMode If null, will check module parameter, otherwise force mode using static::ENUM_SEND_MODE_SYNC or static::ENUM_SEND_MODE_ASYNC + * + * @return array An array containing the 'sender_status' (static::ENUM_SEND_STATE_XXX) and optionally 'response' a WebResponse object. + */ + public function Send(WebRequest $oRequest, &$aIssues, $oLog = null, $sForcedSendMode = null) + { + if($sForcedSendMode === static::ENUM_SEND_MODE_SYNC) + { + $aResult = $this->SendSynchronously($oRequest, $aIssues, $oLog); + } + elseif($sForcedSendMode === static::ENUM_SEND_MODE_ASYNC) + { + $aResult = $this->SendAsynchronously($oRequest, $aIssues, $oLog); + } + elseif(MetaModel::GetModuleSetting('combodo-webhook-integration', 'prefer_asynchronous', (static::DEFAULT_SEND_MODE === static::ENUM_SEND_MODE_ASYNC))) + { + $aResult = $this->SendAsynchronously($oRequest, $aIssues, $oLog); + } + else + { + $aResult = $this->SendSynchronously($oRequest, $aIssues, $oLog); + } + + return $aResult; + } + + /** + * Sends the $oRequest immediately, then returns the sender status code and the response object + * + * @param \Combodo\iTop\Core\WebRequest $oRequest WebRequest to send + * @param array $aIssues Issue messages + * @param \EventNotification $oLog + * + * @return array + */ + public function SendSynchronously(WebRequest $oRequest, &$aIssues, $oLog = null) + { + try + { + // ============================ + // Inyectar opciones de proxy + // ============================ + $oConfig = MetaModel::GetConfig(); + $aProxyConf = $oConfig->GetModuleSetting('combodo-webhook-integration', 'proxy', null); + + if (is_array($aProxyConf) && !empty($aProxyConf['host'])) { + // Recuperar opciones actuales del request (si no hay, iniciamos array vacío) + $aCurlOptions = $oRequest->GetOptions(); + if (!is_array($aCurlOptions)) { + $aCurlOptions = array(); + } + + // Host:puerto del proxy + $aCurlOptions[CURLOPT_PROXY] = $aProxyConf['host']; + $aCurlOptions[CURLOPT_PROXYTYPE] = CURLPROXY_HTTP; + + // Auth opcional si el proxy la requiere + if (!empty($aProxyConf['user'])) { + $sAuth = $aProxyConf['user']; + if (!empty($aProxyConf['password'])) { + $sAuth .= ':'.$aProxyConf['password']; + } + $aCurlOptions[CURLOPT_PROXYUSERPWD] = $sAuth; + } + + // Guardar las opciones de vuelta en el request + $oRequest->SetOptions($aCurlOptions); + } + // ============================ + + $aResponseHeaders = array(); + $sResponse = $this->DoPostRequest($oRequest->GetURL(), array(), null, $aResponseHeaders, $oRequest->GetOptions()); + + $oResponse = new WebResponse(); + $oResponse->SetHeaders($aResponseHeaders) + ->SetBody($sResponse); + + // Log response + if($oLog !== null) + { + $oLog->Set('response', $sResponse); + $oLog->DBUpdate(); + } + + // Handle response + if ($oRequest->HasResponseHandler()) { + $oCtx = new ContextTag(static::CONTEXT_TAG_RESPONSE_HANDLER); + call_user_func($oRequest->GetResponseHandlerName(), $oResponse, $oRequest->GetResponseHandlerParams()); + // Manual var unset to force context tag to be removed, otherwise it will be removed when the current method ends + unset($oCtx); + } + + return array( + 'sender_status' => static::ENUM_SEND_STATE_OK, + 'response' => $oResponse, + ); + } + catch(Exception $oException) + { + $sErrorMessage = 'Error while sending request to webhook: '.$oException->getMessage(); + IssueLog::Error($sErrorMessage); + $aIssues[] = $sErrorMessage; + + return array( + 'sender_status' => static::ENUM_SEND_STATE_ERROR, + 'response' => null, + ); + } + } + + + /** + * Add the $oRequest to the queue in order to be send later + * + * @param \Combodo\iTop\Core\WebRequest $oRequest WebRequest to add in the queue + * @param array $aIssues Issue messages + * @param null|\EventNotification $oLog + * + * @return array + */ + public function SendAsynchronously(WebRequest $oRequest, &$aIssues, $oLog = null) + { + try + { + SendWebRequest::AddToQueue($oRequest, $oLog); + } + catch(Exception $oException) + { + $sErrorMessage = 'Exception thrown when trying to add request to queue: '.$oException->getMessage(); + IssueLog::Error($sErrorMessage); + $aIssues[] = $sErrorMessage; + + return array( + 'sender_status' => static::ENUM_SEND_STATE_ERROR, + 'response' => null, + ); + } + + return array( + 'sender_status' => static::ENUM_SEND_STATE_PENDING, + 'response' => null, + ); + } + + private function DoPostRequest($sUrl, $aData, $sOptionnalHeaders = null, &$aResponseHeaders = null, $aCurlOptions = array()) + { + if (static::$mockDoPostRequest) { + return ''; + } else { + return utils::DoPostRequest($sUrl, $aData, $sOptionnalHeaders, $aResponseHeaders, $aCurlOptions); + } + } +} \ No newline at end of file diff --git a/datamodels/2.x/combodo-webhook-integration/src/Service/WebRequestService.php b/datamodels/2.x/combodo-webhook-integration/src/Service/WebRequestService.php new file mode 100644 index 0000000000..44e1ee1144 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/src/Service/WebRequestService.php @@ -0,0 +1,65 @@ + 'Authorization: ******', + '/^Auth-Token:(.+)$/m' => 'Auth-Token: ******', + ]; + + $sObfuscatedRawHeaders = $sRawHeaders; + foreach($aReplaceRegexps as $sRegExp => $sAuthHeaderObfuscated){ + $sObfuscatedRawHeaders = preg_replace($sRegExp, $sAuthHeaderObfuscated, $sObfuscatedRawHeaders); + } + + return $sObfuscatedRawHeaders; + } + + public function EnrichHeader(RemoteOauthConnection $oRemoteOauthConnection, &$aHeaders) : void { + /** @var \OAuth2Client $oOauth2Client */ + $oOauth2Client = \MetaModel::GetObject(\Oauth2Client::class, $oRemoteOauthConnection->Get('oauth2client_id')); + + Oauth2Service::GetInstance()->InitByOauth2Client($oOauth2Client); + $sAccessToken = Oauth2Service::GetInstance()->GetAccessToken(); + $aHeaders[] = sprintf("Authorization: %s %s", + $oOauth2Client->Get('token_type'), $sAccessToken + ); + } +} diff --git a/datamodels/2.x/combodo-webhook-integration/vendor/autoload.php b/datamodels/2.x/combodo-webhook-integration/vendor/autoload.php new file mode 100644 index 0000000000..dc1c8d084c --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/vendor/autoload.php @@ -0,0 +1,25 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier + * @author Jordi Boggiano + * @see https://www.php-fig.org/psr/psr-0/ + * @see https://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + /** @var \Closure(string):void */ + private static $includeFile; + + /** @var string|null */ + private $vendorDir; + + // PSR-4 + /** + * @var array> + */ + private $prefixLengthsPsr4 = array(); + /** + * @var array> + */ + private $prefixDirsPsr4 = array(); + /** + * @var list + */ + private $fallbackDirsPsr4 = array(); + + // PSR-0 + /** + * List of PSR-0 prefixes + * + * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) + * + * @var array>> + */ + private $prefixesPsr0 = array(); + /** + * @var list + */ + private $fallbackDirsPsr0 = array(); + + /** @var bool */ + private $useIncludePath = false; + + /** + * @var array + */ + private $classMap = array(); + + /** @var bool */ + private $classMapAuthoritative = false; + + /** + * @var array + */ + private $missingClasses = array(); + + /** @var string|null */ + private $apcuPrefix; + + /** + * @var array + */ + private static $registeredLoaders = array(); + + /** + * @param string|null $vendorDir + */ + public function __construct($vendorDir = null) + { + $this->vendorDir = $vendorDir; + self::initializeIncludeClosure(); + } + + /** + * @return array> + */ + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); + } + + return array(); + } + + /** + * @return array> + */ + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + /** + * @return list + */ + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + /** + * @return list + */ + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + /** + * @return array Array of classname => path + */ + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + * + * @return void + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + * + * @return void + */ + public function add($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 base directories + * + * @return void + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + * + * @return void + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + * + * @return void + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + * + * @return void + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + * + * @return void + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + + if (null === $this->vendorDir) { + return; + } + + if ($prepend) { + self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; + } else { + unset(self::$registeredLoaders[$this->vendorDir]); + self::$registeredLoaders[$this->vendorDir] = $this; + } + } + + /** + * Unregisters this instance as an autoloader. + * + * @return void + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + + if (null !== $this->vendorDir) { + unset(self::$registeredLoaders[$this->vendorDir]); + } + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return true|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + $includeFile = self::$includeFile; + $includeFile($file); + + return true; + } + + return null; + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + /** + * Returns the currently registered loaders keyed by their corresponding vendor directories. + * + * @return array + */ + public static function getRegisteredLoaders() + { + return self::$registeredLoaders; + } + + /** + * @param string $class + * @param string $ext + * @return string|false + */ + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath . '\\'; + if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); + foreach ($this->prefixDirsPsr4[$search] as $dir) { + if (file_exists($file = $dir . $pathEnd)) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } + + /** + * @return void + */ + private static function initializeIncludeClosure() + { + if (self::$includeFile !== null) { + return; + } + + /** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + * + * @param string $file + * @return void + */ + self::$includeFile = \Closure::bind(static function($file) { + include $file; + }, null, null); + } +} diff --git a/datamodels/2.x/combodo-webhook-integration/vendor/composer/InstalledVersions.php b/datamodels/2.x/combodo-webhook-integration/vendor/composer/InstalledVersions.php new file mode 100644 index 0000000000..d50e0c9fcc --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/vendor/composer/InstalledVersions.php @@ -0,0 +1,350 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer; + +use Composer\Autoload\ClassLoader; +use Composer\Semver\VersionParser; + +/** + * This class is copied in every Composer installed project and available to all + * + * See also https://getcomposer.org/doc/07-runtime.md#installed-versions + * + * To require its presence, you can require `composer-runtime-api ^2.0` + */ +class InstalledVersions +{ + /** + * @var mixed[]|null + * @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array}|array{}|null + */ + private static $installed; + + /** + * @var bool|null + */ + private static $canGetVendors; + + /** + * @var array[] + * @psalm-var array}> + */ + private static $installedByVendor = array(); + + /** + * Returns a list of all package names which are present, either by being installed, replaced or provided + * + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackages() + { + $packages = array(); + foreach (self::getInstalled() as $installed) { + $packages[] = array_keys($installed['versions']); + } + + if (1 === \count($packages)) { + return $packages[0]; + } + + return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); + } + + /** + * Returns a list of all package names with a specific type e.g. 'library' + * + * @param string $type + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackagesByType($type) + { + $packagesByType = array(); + + foreach (self::getInstalled() as $installed) { + foreach ($installed['versions'] as $name => $package) { + if (isset($package['type']) && $package['type'] === $type) { + $packagesByType[] = $name; + } + } + } + + return $packagesByType; + } + + /** + * Checks whether the given package is installed + * + * This also returns true if the package name is provided or replaced by another package + * + * @param string $packageName + * @param bool $includeDevRequirements + * @return bool + */ + public static function isInstalled($packageName, $includeDevRequirements = true) + { + foreach (self::getInstalled() as $installed) { + if (isset($installed['versions'][$packageName])) { + return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']); + } + } + + return false; + } + + /** + * Checks whether the given package satisfies a version constraint + * + * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call: + * + * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') + * + * @param VersionParser $parser Install composer/semver to have access to this class and functionality + * @param string $packageName + * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package + * @return bool + */ + public static function satisfies(VersionParser $parser, $packageName, $constraint) + { + $constraint = $parser->parseConstraints($constraint); + $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); + + return $provided->matches($constraint); + } + + /** + * Returns a version constraint representing all the range(s) which are installed for a given package + * + * It is easier to use this via isInstalled() with the $constraint argument if you need to check + * whether a given version of a package is installed, and not just whether it exists + * + * @param string $packageName + * @return string Version constraint usable with composer/semver + */ + public static function getVersionRanges($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + $ranges = array(); + if (isset($installed['versions'][$packageName]['pretty_version'])) { + $ranges[] = $installed['versions'][$packageName]['pretty_version']; + } + if (array_key_exists('aliases', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); + } + if (array_key_exists('replaced', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); + } + if (array_key_exists('provided', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); + } + + return implode(' || ', $ranges); + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['version'])) { + return null; + } + + return $installed['versions'][$packageName]['version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getPrettyVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['pretty_version'])) { + return null; + } + + return $installed['versions'][$packageName]['pretty_version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference + */ + public static function getReference($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['reference'])) { + return null; + } + + return $installed['versions'][$packageName]['reference']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path. + */ + public static function getInstallPath($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @return array + * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string} + */ + public static function getRootPackage() + { + $installed = self::getInstalled(); + + return $installed[0]['root']; + } + + /** + * Returns the raw installed.php data for custom implementations + * + * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. + * @return array[] + * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array} + */ + public static function getRawData() + { + @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED); + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = include __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } + + return self::$installed; + } + + /** + * Returns the raw data of all installed.php which are currently loaded for custom implementations + * + * @return array[] + * @psalm-return list}> + */ + public static function getAllRawData() + { + return self::getInstalled(); + } + + /** + * Lets you reload the static array from another file + * + * This is only useful for complex integrations in which a project needs to use + * this class but then also needs to execute another project's autoloader in process, + * and wants to ensure both projects have access to their version of installed.php. + * + * A typical case would be PHPUnit, where it would need to make sure it reads all + * the data it needs from this class, then call reload() with + * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure + * the project in which it runs can then also use this class safely, without + * interference between PHPUnit's dependencies and the project's dependencies. + * + * @param array[] $data A vendor/composer/installed.php data set + * @return void + * + * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array} $data + */ + public static function reload($data) + { + self::$installed = $data; + self::$installedByVendor = array(); + } + + /** + * @return array[] + * @psalm-return list}> + */ + private static function getInstalled() + { + if (null === self::$canGetVendors) { + self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); + } + + $installed = array(); + + if (self::$canGetVendors) { + foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { + if (isset(self::$installedByVendor[$vendorDir])) { + $installed[] = self::$installedByVendor[$vendorDir]; + } elseif (is_file($vendorDir.'/composer/installed.php')) { + $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php'; + if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { + self::$installed = $installed[count($installed) - 1]; + } + } + } + } + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = require __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } + $installed[] = self::$installed; + + return $installed; + } +} diff --git a/datamodels/2.x/combodo-webhook-integration/vendor/composer/LICENSE b/datamodels/2.x/combodo-webhook-integration/vendor/composer/LICENSE new file mode 100644 index 0000000000..f27399a042 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/vendor/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/datamodels/2.x/combodo-webhook-integration/vendor/composer/autoload_classmap.php b/datamodels/2.x/combodo-webhook-integration/vendor/composer/autoload_classmap.php new file mode 100644 index 0000000000..b01cb33f63 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/vendor/composer/autoload_classmap.php @@ -0,0 +1,17 @@ + $baseDir . '/src/Core/Notification/Action/Webhook/Exception/WebhookInvalidJsonValueException.php', + 'Combodo\\iTop\\Core\\Notification\\Action\\_ActionWebhook' => $baseDir . '/src/Core/Notification/Action/_ActionWebhook.php', + 'Combodo\\iTop\\Core\\WebRequest' => $baseDir . '/src/Core/WebRequest.php', + 'Combodo\\iTop\\Core\\WebResponse' => $baseDir . '/src/Core/WebResponse.php', + 'Combodo\\iTop\\Service\\CallbackService' => $baseDir . '/src/Service/CallbackService.php', + 'Combodo\\iTop\\Service\\WebRequestSender' => $baseDir . '/src/Service/WebRequestSender.php', + 'Combodo\\iTop\\Service\\WebRequestService' => $baseDir . '/src/Service/WebRequestService.php', + 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', +); diff --git a/datamodels/2.x/combodo-webhook-integration/vendor/composer/autoload_namespaces.php b/datamodels/2.x/combodo-webhook-integration/vendor/composer/autoload_namespaces.php new file mode 100644 index 0000000000..15a2ff3ad6 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/vendor/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ + array($baseDir . '/src'), +); diff --git a/datamodels/2.x/combodo-webhook-integration/vendor/composer/autoload_real.php b/datamodels/2.x/combodo-webhook-integration/vendor/composer/autoload_real.php new file mode 100644 index 0000000000..2d077eb8ea --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/vendor/composer/autoload_real.php @@ -0,0 +1,37 @@ +setClassMapAuthoritative(true); + $loader->register(true); + + return $loader; + } +} diff --git a/datamodels/2.x/combodo-webhook-integration/vendor/composer/autoload_static.php b/datamodels/2.x/combodo-webhook-integration/vendor/composer/autoload_static.php new file mode 100644 index 0000000000..f0c76e3922 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/vendor/composer/autoload_static.php @@ -0,0 +1,43 @@ + + array ( + 'Combodo\\iTop\\' => 13, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'Combodo\\iTop\\' => + array ( + 0 => __DIR__ . '/../..' . '/src', + ), + ); + + public static $classMap = array ( + 'Combodo\\iTop\\Core\\Notification\\Action\\Webhook\\Exception\\WebhookInvalidJsonValueException' => __DIR__ . '/../..' . '/src/Core/Notification/Action/Webhook/Exception/WebhookInvalidJsonValueException.php', + 'Combodo\\iTop\\Core\\Notification\\Action\\_ActionWebhook' => __DIR__ . '/../..' . '/src/Core/Notification/Action/_ActionWebhook.php', + 'Combodo\\iTop\\Core\\WebRequest' => __DIR__ . '/../..' . '/src/Core/WebRequest.php', + 'Combodo\\iTop\\Core\\WebResponse' => __DIR__ . '/../..' . '/src/Core/WebResponse.php', + 'Combodo\\iTop\\Service\\CallbackService' => __DIR__ . '/../..' . '/src/Service/CallbackService.php', + 'Combodo\\iTop\\Service\\WebRequestSender' => __DIR__ . '/../..' . '/src/Service/WebRequestSender.php', + 'Combodo\\iTop\\Service\\WebRequestService' => __DIR__ . '/../..' . '/src/Service/WebRequestService.php', + 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInit5c648c5cddb3c29c87aec82f31f7e556::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit5c648c5cddb3c29c87aec82f31f7e556::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit5c648c5cddb3c29c87aec82f31f7e556::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/datamodels/2.x/combodo-webhook-integration/vendor/composer/installed.json b/datamodels/2.x/combodo-webhook-integration/vendor/composer/installed.json new file mode 100644 index 0000000000..87fda747e6 --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/vendor/composer/installed.json @@ -0,0 +1,5 @@ +{ + "packages": [], + "dev": true, + "dev-package-names": [] +} diff --git a/datamodels/2.x/combodo-webhook-integration/vendor/composer/installed.php b/datamodels/2.x/combodo-webhook-integration/vendor/composer/installed.php new file mode 100644 index 0000000000..050d2c2bfc --- /dev/null +++ b/datamodels/2.x/combodo-webhook-integration/vendor/composer/installed.php @@ -0,0 +1,23 @@ + array( + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'type' => 'library', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'reference' => '89ac178036910485c335ff7825101ca0af350336', + 'name' => '__root__', + 'dev' => true, + ), + 'versions' => array( + '__root__' => array( + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'type' => 'library', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'reference' => '89ac178036910485c335ff7825101ca0af350336', + 'dev_requirement' => false, + ), + ), +);