Skip to content

Commit

Permalink
add template for DirectEditor errors
Browse files Browse the repository at this point in the history
  • Loading branch information
rivexe committed Dec 14, 2023
1 parent 0820593 commit 5582fe7
Show file tree
Hide file tree
Showing 2 changed files with 91 additions and 1 deletion.
4 changes: 3 additions & 1 deletion lib/DirectEditor.php
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,8 @@ public function open(IToken $token): Response {
"inviewer" => false,
"anchor" => null
];
$this->logger->debug("Direct", ["app" => $this->appName]);
return $this->renderError("TEST_ERROR");

$response = new TemplateResponse($this->appName, "editor", $params, "base");

Expand Down Expand Up @@ -282,7 +284,7 @@ public function open(IToken $token): Response {
* @return TemplateResponse
*/
private function renderError($error, $hint = "") {
return new TemplateResponse("", "error", [
return new TemplateResponse($this->appName, "directeditorerror", [
"errors" => [
[
"error" => $error,
Expand Down
88 changes: 88 additions & 0 deletions templates/directeditorerror.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
<?php
/**
*
* (c) Copyright Ascensio System SIA 2023
*
* This program is a free software product.
* You can redistribute it and/or modify it under the terms of the GNU Affero General Public License
* (AGPL) version 3 as published by the Free Software Foundation.
* In accordance with Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* For details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions of the Program
* must display Appropriate Legal Notices, as required under Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product logo when distributing the program.
* Pursuant to Section 7(e) we decline to grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as well as technical
* writing content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International.
* See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/

script("onlyoffice", "onlyoffice-directeditor");
?>
<div class="guest-box">
<h2><?php p($l->t('Error')) ?></h2>
<ul>
<?php foreach ($_["errors"] as $error):?>
<li>
<p><?php p($error['error']) ?></p>
<?php if (isset($error['hint']) && $error['hint']): ?>
<p class='hint'><?php p($error['hint']) ?></p>
<?php endif;?>
</li>
<?php endforeach ?>
</ul>
</div>


<script nonce="<?php p(base64_encode($_["requesttoken"])) ?>">

var callMobileMessage = function (messageName, attributes) {
var message = messageName
if (typeof attributes !== "undefined") {
message = {
MessageName: messageName,
Values: attributes,
};
}
var attributesString = null
try {
attributesString = JSON.stringify(attributes);
} catch (e) {
attributesString = null;
}

// Forward to mobile handler
console.log(window);
if (window.DirectEditingMobileInterface && typeof window.DirectEditingMobileInterface[messageName] === "function") {
if (attributesString === null || typeof attributesString === "undefined") {
window.DirectEditingMobileInterface[messageName]();
} else {
window.DirectEditingMobileInterface[messageName](attributesString);
}
}

// iOS webkit fallback
if (window.webkit
&& window.webkit.messageHandlers
&& window.webkit.messageHandlers.DirectEditingMobileInterface) {
window.webkit.messageHandlers.DirectEditingMobileInterface.postMessage(message);
}

window.postMessage(message);
}

window.addEventListener("load", () => {
callMobileMessage('loaded');
});

</script>

0 comments on commit 5582fe7

Please sign in to comment.