Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: forward url path segments to iframe #545

Merged
merged 1 commit into from Oct 31, 2023
Merged

feat: forward url path segments to iframe #545

merged 1 commit into from Oct 31, 2023

Conversation

pReya
Copy link
Contributor

@pReya pReya commented Aug 29, 2023

  • allow URL parameters and path segments to be forwarded to the included iframe (e.g. trying to open www.mycloud.com/external/1/subpage will properly forward the subpage path segment to your embedded page)

closes #479

@pReya pReya marked this pull request as ready for review August 29, 2023 09:38
@pReya pReya changed the title feat: add url path segments to iframe feat: add url path segments and params to iframe Aug 29, 2023
@pReya pReya changed the base branch from stable27 to master August 29, 2023 13:44
@pReya pReya changed the base branch from master to stable27 August 29, 2023 13:44
@pReya pReya changed the base branch from stable27 to master August 29, 2023 13:45
@provokateurin provokateurin self-requested a review August 30, 2023 06:05
Copy link
Member

@provokateurin provokateurin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This does not work with query parameters and I don't think that will be possible. Still passing paths as a feature is fine.

I saw some weird behaviour when the external site already had a path, because then somehow the id of the site was added to the end of the url. I will have another look once the current comments are fixed.

appinfo/routes.php Outdated Show resolved Hide resolved
appinfo/routes.php Show resolved Hide resolved
appinfo/routes.php Show resolved Hide resolved
lib/Controller/SiteController.php Outdated Show resolved Hide resolved
lib/Controller/SiteController.php Outdated Show resolved Hide resolved
lib/Controller/SiteController.php Outdated Show resolved Hide resolved
@pReya pReya changed the title feat: add url path segments and params to iframe feat: add url path segments to iframe Sep 1, 2023
@pReya pReya changed the title feat: add url path segments to iframe feat: forward url path segments to iframe Sep 1, 2023
Copy link
Member

@provokateurin provokateurin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your code doesn't work for me and always fails with Some mandatory parameters are missing (\"path\") to generate a URL for route \"external.site.showPage\". after adding a simple page and reloading the settings. Please check what's wrong with that.

lib/Controller/SiteController.php Outdated Show resolved Hide resolved
appinfo/routes.php Outdated Show resolved Hide resolved
@pReya
Copy link
Contributor Author

pReya commented Sep 4, 2023

@provokateurin I'm having trouble testing/running the plugin when I use the master branch. What NC version should I use to test/run the master branch? I've tried 27.0.2 and I'm getting incompatibility warnings. Any way to still enable the plugin, even with these warnings?

@provokateurin
Copy link
Member

You need to run the server master branch as well. You can use something like https://github.com/juliushaertl/nextcloud-docker-dev to get that working.

@pReya
Copy link
Contributor Author

pReya commented Sep 4, 2023

@provokateurin Can you give it another try? I've just tested it with the current Nextcloud master version.

Regarding the showDefaultPage route: I don't think it's a good idea to support url paths on this default route. The route is not unambigous. E.g.

apps/external/something would match both routes:

['name' => 'site#showDefaultPage', 'url' => '/{path}', 'verb' => 'GET', 'requirements' => ['path' => '.*']],
['name' => 'site#showPage', 'url' => '/{id}/{path}', 'verb' => 'GET', 'requirements' => ['path' => '.*']],

If we want to do this, then we could only separate those two cases by not allowing numerical paths as the first path segment on the default route – which would be a very weird and arbitrary limitation.

I'd rather not support path segments on the default route at all. It can be clearly documented, that path segments will only work, if the route contains your app ID, and they will not work on the default route.

P.S.: Where would you document this feature? In the readme.md file? In the UI?

Copy link
Member

@provokateurin provokateurin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please don't put the { on a new line. This syntax is only supported on PHP 8 and we sometimes have to backport stuff and these changes will make that very annoying.

@pReya
Copy link
Contributor Author

pReya commented Sep 6, 2023

@provokateurin Anything else I can do to move this along?

@provokateurin
Copy link
Member

Sorry you will have to wait a bit with the next review. I don't work every day and have other things to do as well.

@github-actions
Copy link

Hello there,
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.

We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process.

Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6

Thank you for contributing to Nextcloud and we hope to hear from you soon!

@pReya
Copy link
Contributor Author

pReya commented Oct 25, 2023

@provokateurin If you ever find the time, could you take another look at this PR?

@provokateurin
Copy link
Member

Sorry I forgot about this. I'll check it again soon

@provokateurin
Copy link
Member

@pReya Can you squash your changes and rebase them against master? This PR includes dependabot commits from master and a merge commit as well which makes it hard to rebase because of conflicts.

@provokateurin
Copy link
Member

I rebased it locally to be able to test the code. If you want I can push it to your branch

Copy link
Member

@provokateurin provokateurin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I finally found why it was so broken for me: When generating URLs for the route you need to pass along the new path parameter:

diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php
index afd1309..33e94cc 100644
--- a/lib/AppInfo/Application.php
+++ b/lib/AppInfo/Application.php
@@ -82,7 +82,7 @@ class Application extends App implements IBootstrap {
 
 				$href = $site['url'];
 				if (!$site['redirect']) {
-					$href = $url->linkToRoute('external.site.showPage', ['id' => $site['id']]);
+					$href = $url->linkToRoute('external.site.showPage', ['id' => $site['id'], 'path' => '']);
 				}
 
 				return [
diff --git a/lib/BeforeTemplateRenderedListener.php b/lib/BeforeTemplateRenderedListener.php
index 0006519..70c3f92 100644
--- a/lib/BeforeTemplateRenderedListener.php
+++ b/lib/BeforeTemplateRenderedListener.php
@@ -97,7 +97,7 @@ class BeforeTemplateRenderedListener implements IEventListener {
 
 	protected function getHref(array $site): string {
 		if (!$site['redirect']) {
-			return $this->urlGenerator->linkToRoute('external.site.showPage', ['id' => $site['id']]);
+			return $this->urlGenerator->linkToRoute('external.site.showPage', ['id' => $site['id'], 'path' => '']);
 		}
 
 		return $site['url'];
diff --git a/lib/Settings/Personal.php b/lib/Settings/Personal.php
index 5721195..a95c187 100644
--- a/lib/Settings/Personal.php
+++ b/lib/Settings/Personal.php
@@ -56,7 +56,7 @@ class Personal implements ISettings {
 
 		$url = $quotaLink['url'];
 		if (!$quotaLink['redirect']) {
-			$url = $this->url->linkToRoute('external.site.showPage', ['id' => $quotaLink['id']]);
+			$url = $this->url->linkToRoute('external.site.showPage', ['id' => $quotaLink['id'], 'path' => '']);
 		}
 
 		return new TemplateResponse('external', 'quota', [

lib/Controller/SiteController.php Outdated Show resolved Hide resolved
lib/Controller/SiteController.php Outdated Show resolved Hide resolved
lib/Controller/SiteController.php Outdated Show resolved Hide resolved
@provokateurin
Copy link
Member

The changes from #545 (review) are still missing.

@pReya
Copy link
Contributor Author

pReya commented Oct 30, 2023

I finally found why it was so broken for me: When generating URLs for the route you need to pass along the new path parameter:

That's why I went for the nullable parameter, b/c then these changes are not necessary. Passing an empty string as a parameter is not very pretty imo. But I'm fine either way, if this is your preferred style.

I'd also like to document this feature. But I'm really unsure where to put this, as the readme.md currently holds no usage instructations or feature description at all.

@provokateurin
Copy link
Member

It doesn't matter if you make it nullable or not. The URL generator throws an exception because of the requirement in the route but that one is also necessary to allow it being empty.

@pReya
Copy link
Contributor Author

pReya commented Oct 30, 2023

It doesn't matter if you make it nullable or not. The URL generator throws an exception because of the requirement in the route but that one is also necessary to allow it being empty.

When did you see this exception? What action triggered it?

@provokateurin
Copy link
Member

Just reloading any page on the server lead to an internal server error (I locally reverted the URL generator changes to show this to you):

[Mon Oct 30 13:56:16 2023] {"Exception":"Symfony\\Component\\Routing\\Exception\\MissingMandatoryParametersException","Message":"Some mandatory parameters are missing (\"path\") to generate a URL for route \"external.site.showPage\".","Code":0,"Trace":[{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/3rdparty\/symfony\/routing\/Generator\/UrlGenerator.php","line":161,"function":"doGenerate","class":"Symfony\\Component\\Routing\\Generator\\UrlGenerator","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/Route\/Router.php","line":372,"function":"generate","class":"Symfony\\Component\\Routing\\Generator\\UrlGenerator","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/URLGenerator.php","line":103,"function":"generate","class":"OC\\Route\\Router","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/apps\/external\/lib\/AppInfo\/Application.php","line":85,"function":"linkToRoute","class":"OC\\URLGenerator","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/NavigationManager.php","line":115,"function":"OCA\\External\\AppInfo\\{closure}","class":"OCA\\External\\AppInfo\\Application","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/TemplateLayout.php","line":108,"function":"getAll","class":"OC\\NavigationManager","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/legacy\/OC_Template.php","line":142,"function":"__construct","class":"OC\\TemplateLayout","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/public\/AppFramework\/Http\/TemplateResponse.php","line":211,"function":"fetchPage","class":"OC_Template","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/AppFramework\/Http\/Dispatcher.php","line":182,"function":"render","class":"OCP\\AppFramework\\Http\\TemplateResponse","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/AppFramework\/App.php","line":184,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/Route\/Router.php","line":315,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/base.php","line":1069,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/index.php","line":37,"function":"handleRequest","class":"OC","type":"::"}],"File":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/3rdparty\/symfony\/routing\/Generator\/UrlGenerator.php","Line":178,"message":"Some mandatory parameters are missing (\"path\") to generate a URL for route \"external.site.showPage\".","exception":{},"CustomMessage":"Some mandatory parameters are missing (\"path\") to generate a URL for route \"external.site.showPage\"."}
[Mon Oct 30 13:56:16 2023] {"Exception":"Symfony\\Component\\Routing\\Exception\\MissingMandatoryParametersException","Message":"Some mandatory parameters are missing (\"path\") to generate a URL for route \"external.site.showPage\".","Code":0,"Trace":[{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/3rdparty\/symfony\/routing\/Generator\/UrlGenerator.php","line":161,"function":"doGenerate","class":"Symfony\\Component\\Routing\\Generator\\UrlGenerator","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/Route\/Router.php","line":372,"function":"generate","class":"Symfony\\Component\\Routing\\Generator\\UrlGenerator","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/URLGenerator.php","line":103,"function":"generate","class":"OC\\Route\\Router","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/apps\/external\/lib\/AppInfo\/Application.php","line":85,"function":"linkToRoute","class":"OC\\URLGenerator","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/NavigationManager.php","line":115,"function":"OCA\\External\\AppInfo\\{closure}","class":"OCA\\External\\AppInfo\\Application","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/TemplateLayout.php","line":108,"function":"getAll","class":"OC\\NavigationManager","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/legacy\/OC_Template.php","line":142,"function":"__construct","class":"OC\\TemplateLayout","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/public\/AppFramework\/Http\/TemplateResponse.php","line":211,"function":"fetchPage","class":"OC_Template","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/AppFramework\/Http\/Dispatcher.php","line":182,"function":"render","class":"OCP\\AppFramework\\Http\\TemplateResponse","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/AppFramework\/App.php","line":184,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/Route\/Router.php","line":315,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/base.php","line":1069,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/index.php","line":37,"function":"handleRequest","class":"OC","type":"::"}],"File":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/3rdparty\/symfony\/routing\/Generator\/UrlGenerator.php","Line":178,"CustomMessage":"--"}
[Mon Oct 30 13:56:16 2023] {"Exception":"Symfony\\Component\\Routing\\Exception\\MissingMandatoryParametersException","Message":"Some mandatory parameters are missing (\"path\") to generate a URL for route \"external.site.showPage\".","Code":0,"Trace":[{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/3rdparty\/symfony\/routing\/Generator\/UrlGenerator.php","line":161,"function":"doGenerate","class":"Symfony\\Component\\Routing\\Generator\\UrlGenerator","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/Route\/Router.php","line":372,"function":"generate","class":"Symfony\\Component\\Routing\\Generator\\UrlGenerator","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/URLGenerator.php","line":103,"function":"generate","class":"OC\\Route\\Router","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/apps\/external\/lib\/AppInfo\/Application.php","line":85,"function":"linkToRoute","class":"OC\\URLGenerator","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/NavigationManager.php","line":115,"function":"OCA\\External\\AppInfo\\{closure}","class":"OCA\\External\\AppInfo\\Application","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/apps\/theming\/lib\/ThemingDefaults.php","line":194,"function":"getAll","class":"OC\\NavigationManager","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/legacy\/OC_Defaults.php","line":271,"function":"getShortFooter","class":"OCA\\Theming\\ThemingDefaults","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/public\/Defaults.php","line":176,"function":"getLongFooter","class":"OC_Defaults","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/core\/templates\/layout.guest.php","line":52,"function":"getLongFooter","class":"OCP\\Defaults","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/Template\/Base.php","line":180,"args":["\/home\/jld3103\/src\/github.com\/nextcloud\/server\/core\/templates\/layout.guest.php"],"function":"include"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/Template\/Base.php","line":150,"function":"load","class":"OC\\Template\\Base","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/legacy\/OC_Template.php","line":139,"function":"fetchPage","class":"OC\\Template\\Base","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/legacy\/OC_Template.php","line":170,"function":"fetchPage","class":"OC_Template","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/Template\/Base.php","line":132,"function":"fetchPage","class":"OC_Template","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/legacy\/OC_Template.php","line":291,"function":"printPage","class":"OC\\Template\\Base","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/index.php","line":87,"function":"printExceptionErrorPage","class":"OC_Template","type":"::"}],"File":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/3rdparty\/symfony\/routing\/Generator\/UrlGenerator.php","Line":178,"CustomMessage":"--"}

@pReya
Copy link
Contributor Author

pReya commented Oct 30, 2023

Just reloading any page on the server lead to an internal server error (I locally reverted the URL generator changes to show this to you):

[Mon Oct 30 13:56:16 2023] {"Exception":"Symfony\\Component\\Routing\\Exception\\MissingMandatoryParametersException","Message":"Some mandatory parameters are missing (\"path\") to generate a URL for route \"external.site.showPage\".","Code":0,"Trace":[{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/3rdparty\/symfony\/routing\/Generator\/UrlGenerator.php","line":161,"function":"doGenerate","class":"Symfony\\Component\\Routing\\Generator\\UrlGenerator","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/Route\/Router.php","line":372,"function":"generate","class":"Symfony\\Component\\Routing\\Generator\\UrlGenerator","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/URLGenerator.php","line":103,"function":"generate","class":"OC\\Route\\Router","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/apps\/external\/lib\/AppInfo\/Application.php","line":85,"function":"linkToRoute","class":"OC\\URLGenerator","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/NavigationManager.php","line":115,"function":"OCA\\External\\AppInfo\\{closure}","class":"OCA\\External\\AppInfo\\Application","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/TemplateLayout.php","line":108,"function":"getAll","class":"OC\\NavigationManager","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/legacy\/OC_Template.php","line":142,"function":"__construct","class":"OC\\TemplateLayout","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/public\/AppFramework\/Http\/TemplateResponse.php","line":211,"function":"fetchPage","class":"OC_Template","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/AppFramework\/Http\/Dispatcher.php","line":182,"function":"render","class":"OCP\\AppFramework\\Http\\TemplateResponse","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/AppFramework\/App.php","line":184,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/Route\/Router.php","line":315,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/base.php","line":1069,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/index.php","line":37,"function":"handleRequest","class":"OC","type":"::"}],"File":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/3rdparty\/symfony\/routing\/Generator\/UrlGenerator.php","Line":178,"message":"Some mandatory parameters are missing (\"path\") to generate a URL for route \"external.site.showPage\".","exception":{},"CustomMessage":"Some mandatory parameters are missing (\"path\") to generate a URL for route \"external.site.showPage\"."}
[Mon Oct 30 13:56:16 2023] {"Exception":"Symfony\\Component\\Routing\\Exception\\MissingMandatoryParametersException","Message":"Some mandatory parameters are missing (\"path\") to generate a URL for route \"external.site.showPage\".","Code":0,"Trace":[{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/3rdparty\/symfony\/routing\/Generator\/UrlGenerator.php","line":161,"function":"doGenerate","class":"Symfony\\Component\\Routing\\Generator\\UrlGenerator","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/Route\/Router.php","line":372,"function":"generate","class":"Symfony\\Component\\Routing\\Generator\\UrlGenerator","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/URLGenerator.php","line":103,"function":"generate","class":"OC\\Route\\Router","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/apps\/external\/lib\/AppInfo\/Application.php","line":85,"function":"linkToRoute","class":"OC\\URLGenerator","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/NavigationManager.php","line":115,"function":"OCA\\External\\AppInfo\\{closure}","class":"OCA\\External\\AppInfo\\Application","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/TemplateLayout.php","line":108,"function":"getAll","class":"OC\\NavigationManager","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/legacy\/OC_Template.php","line":142,"function":"__construct","class":"OC\\TemplateLayout","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/public\/AppFramework\/Http\/TemplateResponse.php","line":211,"function":"fetchPage","class":"OC_Template","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/AppFramework\/Http\/Dispatcher.php","line":182,"function":"render","class":"OCP\\AppFramework\\Http\\TemplateResponse","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/AppFramework\/App.php","line":184,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/Route\/Router.php","line":315,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/base.php","line":1069,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/index.php","line":37,"function":"handleRequest","class":"OC","type":"::"}],"File":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/3rdparty\/symfony\/routing\/Generator\/UrlGenerator.php","Line":178,"CustomMessage":"--"}
[Mon Oct 30 13:56:16 2023] {"Exception":"Symfony\\Component\\Routing\\Exception\\MissingMandatoryParametersException","Message":"Some mandatory parameters are missing (\"path\") to generate a URL for route \"external.site.showPage\".","Code":0,"Trace":[{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/3rdparty\/symfony\/routing\/Generator\/UrlGenerator.php","line":161,"function":"doGenerate","class":"Symfony\\Component\\Routing\\Generator\\UrlGenerator","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/Route\/Router.php","line":372,"function":"generate","class":"Symfony\\Component\\Routing\\Generator\\UrlGenerator","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/URLGenerator.php","line":103,"function":"generate","class":"OC\\Route\\Router","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/apps\/external\/lib\/AppInfo\/Application.php","line":85,"function":"linkToRoute","class":"OC\\URLGenerator","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/NavigationManager.php","line":115,"function":"OCA\\External\\AppInfo\\{closure}","class":"OCA\\External\\AppInfo\\Application","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/apps\/theming\/lib\/ThemingDefaults.php","line":194,"function":"getAll","class":"OC\\NavigationManager","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/legacy\/OC_Defaults.php","line":271,"function":"getShortFooter","class":"OCA\\Theming\\ThemingDefaults","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/public\/Defaults.php","line":176,"function":"getLongFooter","class":"OC_Defaults","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/core\/templates\/layout.guest.php","line":52,"function":"getLongFooter","class":"OCP\\Defaults","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/Template\/Base.php","line":180,"args":["\/home\/jld3103\/src\/github.com\/nextcloud\/server\/core\/templates\/layout.guest.php"],"function":"include"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/Template\/Base.php","line":150,"function":"load","class":"OC\\Template\\Base","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/legacy\/OC_Template.php","line":139,"function":"fetchPage","class":"OC\\Template\\Base","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/legacy\/OC_Template.php","line":170,"function":"fetchPage","class":"OC_Template","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/Template\/Base.php","line":132,"function":"fetchPage","class":"OC_Template","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/lib\/private\/legacy\/OC_Template.php","line":291,"function":"printPage","class":"OC\\Template\\Base","type":"->"},{"file":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/index.php","line":87,"function":"printExceptionErrorPage","class":"OC_Template","type":"::"}],"File":"\/home\/jld3103\/src\/github.com\/nextcloud\/server\/3rdparty\/symfony\/routing\/Generator\/UrlGenerator.php","Line":178,"CustomMessage":"--"}

Thanks. I'm not sure why I never got that error. But now I was able to do some more (manual) testing and everything seems to work fine. I added some minimal documentation to the Admin section - are you okay with that @provokateurin ?

@provokateurin
Copy link
Member

Documentation looks good, thanks for adding it. You need to remove the changes in l10n/ because that will be done by Transifex. Other than that this PR should be ready to merge

@provokateurin
Copy link
Member

Ah please squash again in the end :)

Signed-off-by: Moritz Stückler <moritz@bitbetter.de>
@pReya
Copy link
Contributor Author

pReya commented Oct 31, 2023

@provokateurin Done. Sorry for so many rounds of review. The process is all new to me. Thanks for helping me!

Copy link
Member

@provokateurin provokateurin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No problem at all, I'm happy to help :)

@provokateurin provokateurin merged commit 6de2c76 into nextcloud:master Oct 31, 2023
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Feature Request: Foward query parameters (and or path segments) to iFrame
2 participants