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

Global templates cannot be added #3473

Open
akroii opened this issue Feb 16, 2024 · 2 comments
Open

Global templates cannot be added #3473

akroii opened this issue Feb 16, 2024 · 2 comments

Comments

@akroii
Copy link

akroii commented Feb 16, 2024

Describe the bug
When you go to global template section and choose a template via the + icon: it acknowledged with error message: An error occurred: Only template files can be uploaded

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Administration -> Office' and scroll to Global templates
  2. Click on '+' icon nd cchoose your *.ott file
  3. See error

Expected behavior
The template is chooseable and display in the list global templates

Screenshots
image

Client details:

  • OS: 28.0.2
  • Browser error appears on every browser: firefox, chrome, opera, edge... in each Versions
  • Device: Desktop / Webui

Server details

Operating system: Linux 5.10.0-27-amd64 #1 SMP Debian 5.10.205-2 (2023-12-31) x86_64

Webserver: Apache (cgi-fcgi)

Database: mysql 10.5.23

PHP version: 8.1.27

Modules loaded: Core, date, libxml, openssl, pcre, sqlite3, zlib, bcmath, bz2, calendar, ctype, curl, dba, dom, hash, fileinfo, filter, ftp, gd, gettext, gmp, json, htscanner, iconv, SPL, intl, session, ldap, mbstring, mcrypt, standard, mysqlnd, OAuth, pcntl, exif, mysqli, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_ODBC, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, readline, redis, Reflection, imap, shmop, SimpleXML, soap, sockets, sodium, ssh2, sysvmsg, sysvsem, sysvshm, tidy, timezonedb, tokenizer, xml, xmlreader, xmlwriter, xsl, zip, cgi-fcgi, imagick, apcu, Zend OPcache

Nextcloud version: 28.0.2 - 28.0.2.5

Updated from an older Nextcloud/ownCloud or fresh install:

Where did you install Nextcloud from: unknown

Signing status

Nextcloud log (data/nextcloud.log)

log is empty

Browser log

09:24:15.769 richdocuments:387 
        
        
       GET https://XXXXXXXX/index.php/apps/richdocuments/template/preview/10184?y=297&x=210 404 (Not Found)
09:24:16.217 bootstrap:19 JQMIGRATE: Migrate is installed, version 3.4.1
09:24:16.695 UnifiedSearch.vue:51 Unified search initialized!
09:24:17.340 session-heartbeat.js:103 session heartbeat polling started
09:24:17.399 init.js:136 [Violation] Added non-passive event listener to a scroll-blocking 'touchstart' event. Consider marking event handler as 'passive' to make the page more responsive. See https://www.chromestatus.com/feature/5745543795965952
addEvent @ snap.js:143
(anonymous) @ snap.js:250
listen @ snap.js:249
e.exports @ snap.js:512
Je @ init.js:136
(anonymous) @ main.js:44
Show 4 more frames
Show less
09:24:17.399 init.js:136 [Violation] Added non-passive event listener to a scroll-blocking 'touchmove' event. Consider marking event handler as 'passive' to make the page more responsive. See https://www.chromestatus.com/feature/5745543795965952
addEvent @ snap.js:143
(anonymous) @ snap.js:253
listen @ snap.js:252
e.exports @ snap.js:512
Je @ init.js:136
(anonymous) @ main.js:44
Show 4 more frames
Show less
09:24:17.422 richdocuments:1 [DOM] Password forms should have (optionally hidden) username fields for accessibility: (More info: https://goo.gl/9p2vKq) <form id=​"sudo-login-form" class=​"hidden" method=​"POST">​…​</form>​
09:24:17.476 UnifiedSearchModal.vue:244 Search providers (4) [{…}, {…}, {…}, {…}, __ob__: e]
09:24:17.609 UnifiedSearchModal.vue:248 Contacts (25) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, __ob__: e]
09:24:48.058 XHR finished loading: GET "<URL>".
09:24:48.058 XHR finished loading: GET "<URL>".
09:24:48.058 XHR finished loading: GET "<URL>".
09:24:48.058 XHR finished loading: GET "<URL>".
09:24:48.058 XHR finished loading: GET "<URL>".
09:24:17.814 UnifiedSearchService.js:104 XHR finished loading: POST "https://XXXXXXXX/index.php/contactsmenu/contacts".
(anonymous) @ xhr.js:258
xhr @ xhr.js:49
p @ dispatchRequest.js:51
request @ Axios.js:146
(anonymous) @ Axios.js:185
(anonymous) @ bind.js:5
_e @ UnifiedSearchService.js:104
mounted @ UnifiedSearchModal.vue:246
En @ vue.runtime.esm.js:3033
_r @ vue.runtime.esm.js:4048
insert @ vue.runtime.esm.js:4443
k @ vue.runtime.esm.js:6966
Qi.nodeOps @ vue.runtime.esm.js:7180
e._update @ vue.runtime.esm.js:3781
r @ vue.runtime.esm.js:3891
e.get @ vue.runtime.esm.js:3462
e @ vue.runtime.esm.js:3452
e @ vue.runtime.esm.js:3908
la.$mount @ vue.runtime.esm.js:8797
e._init @ vue.runtime.esm.js:5724
la @ vue.runtime.esm.js:5785
67001 @ unified-search.js:50
r @ bootstrap:19
(anonymous) @ core-unified-search.js?v=fcb8ef06-23:2
r.O @ chunk loaded:25
(anonymous) @ core-unified-search.js?v=fcb8ef06-23:2
(anonymous) @ core-unified-search.js?v=fcb8ef06-23:2
Show 19 more frames
Show less
09:24:17.833 heartbeatService.js:34 XHR finished loading: PUT "https://XXXXXXXX/ocs/v2.php/apps/user_status/api/v1/heartbeat?format=json".
(anonymous) @ xhr.js:258
xhr @ xhr.js:49
p @ dispatchRequest.js:51
request @ Axios.js:146
(anonymous) @ Axios.js:185
(anonymous) @ bind.js:5
(anonymous) @ heartbeatService.js:34
_backgroundHeartbeat @ UserStatus.vue:154
mounted @ UserStatus.vue:118
En @ vue.runtime.esm.js:3033
_r @ vue.runtime.esm.js:4048
insert @ vue.runtime.esm.js:4443
k @ vue.runtime.esm.js:6966
Qi.nodeOps @ vue.runtime.esm.js:7180
e._update @ vue.runtime.esm.js:3781
r @ vue.runtime.esm.js:3891
e.get @ vue.runtime.esm.js:3462
e @ vue.runtime.esm.js:3452
e @ vue.runtime.esm.js:3908
la.$mount @ vue.runtime.esm.js:8797
e._init @ vue.runtime.esm.js:5724
la @ vue.runtime.esm.js:5785
B @ menu.js:44
(anonymous) @ index.mjs:43
emit @ index.mjs:41
h @ index.mjs:105
mounted @ UserMenu.vue:159
En @ vue.runtime.esm.js:3033
_r @ vue.runtime.esm.js:4048
insert @ vue.runtime.esm.js:4443
k @ vue.runtime.esm.js:6966
Qi.nodeOps @ vue.runtime.esm.js:7180
e._update @ vue.runtime.esm.js:3781
r @ vue.runtime.esm.js:3891
e.get @ vue.runtime.esm.js:3462
e @ vue.runtime.esm.js:3452
e @ vue.runtime.esm.js:3908
la.$mount @ vue.runtime.esm.js:8797
e._init @ vue.runtime.esm.js:5724
la @ vue.runtime.esm.js:5785
(anonymous) @ UserMenu.js:32
Je @ init.js:127
(anonymous) @ main.js:44
Show 35 more frames
Show less
09:24:17.905 NotificationsApp.vue:219 Registering notifications container as a menu
09:24:17.916 NotificationsApp.vue:470 Notifications permissions not yet requested
09:24:17.922 NotificationsApp.vue:416 Polling interval updated to 30000
09:24:17.923 NotificationsApp.vue:275 Started background fetcher as session_keepalive is enabled
09:24:18.122 RedirectUnsupportedBrowsers.js:38 [DEBUG] core: this browser is officially supported ! 🚀 {app: 'core', uid: 'admin', level: 0}
09:24:18.138 NotificationsApp.vue:376 Got notification data, restoring default polling interval.
09:24:18.241 xhr-request.js:64 Fetch failed loading: GET "https://collabora.xxxxxxx/hosting/discovery".
(anonymous) @ xhr-request.js:64
checkFrontend @ AdminSettings.vue:625
checkSettings @ AdminSettings.vue:621
await in checkSettings (async)
beforeMount @ AdminSettings.vue:594
Cn @ vue.runtime.esm.js:3017
Ar @ vue.runtime.esm.js:4032
e @ vue.runtime.esm.js:3854
ui.$mount @ vue.runtime.esm.js:8779
init @ vue.runtime.esm.js:4411
(anonymous) @ vue.runtime.esm.js:6571
g @ vue.runtime.esm.js:6525
eo.nodeOps @ vue.runtime.esm.js:7113
e._update @ vue.runtime.esm.js:3765
r @ vue.runtime.esm.js:3875
e.get @ vue.runtime.esm.js:3446
e @ vue.runtime.esm.js:3436
e @ vue.runtime.esm.js:3892
ui.$mount @ vue.runtime.esm.js:8779
(anonymous) @ admin.js:25
(anonymous) @ admin.js:144
(anonymous) @ admin.js:144
Show 14 more frames
Show less
09:24:18.758 xhr-request.js:64 Fetch failed loading: GET "https://collabora.xxxxxxx/hosting/capabilities".
(anonymous) @ xhr-request.js:64
checkFrontend @ AdminSettings.vue:626
await in checkFrontend (async)
checkSettings @ AdminSettings.vue:621
await in checkSettings (async)
beforeMount @ AdminSettings.vue:594
Cn @ vue.runtime.esm.js:3017
Ar @ vue.runtime.esm.js:4032
e @ vue.runtime.esm.js:3854
ui.$mount @ vue.runtime.esm.js:8779
init @ vue.runtime.esm.js:4411
(anonymous) @ vue.runtime.esm.js:6571
g @ vue.runtime.esm.js:6525
eo.nodeOps @ vue.runtime.esm.js:7113
e._update @ vue.runtime.esm.js:3765
r @ vue.runtime.esm.js:3875
e.get @ vue.runtime.esm.js:3446
e @ vue.runtime.esm.js:3436
e @ vue.runtime.esm.js:3892
ui.$mount @ vue.runtime.esm.js:8779
(anonymous) @ admin.js:25
(anonymous) @ admin.js:144
(anonymous) @ admin.js:144
Show 14 more frames
Show less
09:24:42.139 jquery.fileupload.js?v=fcb8ef06-23:915 
        
        
       POST https://XXXXXXXX/index.php/apps/richdocuments/template 400 (Bad Request)
send @ jquery.js:9940
ajax @ jquery.js:9521
(anonymous) @ jquery-migrate.min.js:2
e.<computed> @ jquery-migrate.min.js:2
send @ jquery.fileupload.js?v=fcb8ef06-23:915
_onSend @ jquery.fileupload.js?v=fcb8ef06-23:977
(anonymous) @ jquery-ui.js:143
data.submit @ jquery.fileupload.js?v=fcb8ef06-23:677
add @ admin.js:109
_trigger @ jquery-ui.js:717
(anonymous) @ jquery.fileupload.js?v=fcb8ef06-23:1051
each @ jquery.js:383
_onAdd @ jquery.fileupload.js?v=fcb8ef06-23:1044
(anonymous) @ jquery-ui.js:143
(anonymous) @ jquery.fileupload.js?v=fcb8ef06-23:1254
l @ jquery.js:3223
add @ jquery.js:3282
always @ jquery.js:3435
_onChange @ jquery.fileupload.js?v=fcb8ef06-23:1244
(anonymous) @ jquery-ui.js:143
a @ jquery-ui.js:626
dispatch @ jquery.js:5145
g.handle @ jquery.js:4949
Show 15 more frames
Show less
09:24:42.565 jquery.fileupload.js?v=fcb8ef06-23:915 XHR failed loading: POST "https://XXXXXXXX/index.php/apps/richdocuments/template".
send @ jquery.js:9940
ajax @ jquery.js:9521
(anonymous) @ jquery-migrate.min.js:2
e.<computed> @ jquery-migrate.min.js:2
send @ jquery.fileupload.js?v=fcb8ef06-23:915
_onSend @ jquery.fileupload.js?v=fcb8ef06-23:977
(anonymous) @ jquery-ui.js:143
data.submit @ jquery.fileupload.js?v=fcb8ef06-23:677
add @ admin.js:109
_trigger @ jquery-ui.js:717
(anonymous) @ jquery.fileupload.js?v=fcb8ef06-23:1051
each @ jquery.js:383
_onAdd @ jquery.fileupload.js?v=fcb8ef06-23:1044
(anonymous) @ jquery-ui.js:143
(anonymous) @ jquery.fileupload.js?v=fcb8ef06-23:1254
l @ jquery.js:3223
add @ jquery.js:3282
always @ jquery.js:3435
_onChange @ jquery.fileupload.js?v=fcb8ef06-23:1244
(anonymous) @ jquery-ui.js:143
a @ jquery-ui.js:626
dispatch @ jquery.js:5145
g.handle @ jquery.js:4949
Show 15 more frames
Show less

Possible workaround: put your template into nextcloud/appdata_ocu20xefurkh/richdocuments/templates
Then run occ files:scan-app-data

@juliushaertl
Copy link
Member

Do you have an example file that shows this issue that you could share maybe?

@joshtrichards
Copy link
Member

joshtrichards commented Mar 6, 2024

The check generating that warning is performed based on mime types.

We look at both the extension (to match to distributed as well as locally added mime type mappings) as well as, if necessary, the content to determine the file's mime type.

The ones we accept are:

/** Accepted templates mime types */
public const MIMES_DOCUMENTS = [
'application/vnd.oasis.opendocument.text-template',
'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
'application/msword'
];
public const MIMES_SHEETS = [
'application/vnd.oasis.opendocument.spreadsheet-template',
'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
'application/vnd.ms-excel'
];
public const MIMES_PRESENTATIONS = [
'application/vnd.oasis.opendocument.presentation-template',
'application/vnd.openxmlformats-officedocument.presentationml.template',
'application/vnd.ms-powerpoint'
];
public const MIMES_DRAWINGS = [
'application/vnd.oasis.opendocument.graphics-template',
];

Extension takes precedence over content as long as the extension is listed in the mime type mappings.

The file you've uploaded is listed in the default maps:

https://github.com/nextcloud/server/blob/8d0746fddf8556bb480558468b2e8aa6c3e7f239/resources/config/mimetypemapping.dist.json#L150

And seems to match here:

'application/vnd.oasis.opendocument.text-template',

Unclear why this wouldn't work. Have you done any local mime type mappings customizations by chance?

EDIT: (below)

Possible workaround: put your template into nextcloud/appdata_ocu20xefurkh/richdocuments/templates
Then run occ files:scan-app-data

This likely works because it bypasses the mime checks. It does validate your template is otherwise valid (assuming your template works for real after adding it this way). So this comes back to maybe your mime types being incomplete or some previously unknown bug here that merely causes our sanity checks to fail.

@joshtrichards joshtrichards changed the title Global templates not pickable Global templates cannot be added Mar 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants