summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files/appinfo/update.php57
-rw-r--r--apps/files/appinfo/version2
-rw-r--r--lib/private/mimetypes.list.php22
3 files changed, 78 insertions, 3 deletions
diff --git a/apps/files/appinfo/update.php b/apps/files/appinfo/update.php
index de635e5ce6b..a9b8ccbf824 100644
--- a/apps/files/appinfo/update.php
+++ b/apps/files/appinfo/update.php
@@ -6,3 +6,60 @@ if (version_compare(\OCP\Config::getSystemValue('version', '0.0.0'), '7.0.0', '<
\OCP\Config::deleteSystemValue('allowZipDownload');
\OCP\Config::deleteSystemValue('maxZipInputSize');
}
+
+if (version_compare(\OCP\Config::getAppValue('files', 'installed_version'), '1.1.9', '<')) {
+
+ // update wrong mimetypes
+ $wrongMimetypes = array(
+ 'application/mspowerpoint' => 'application/vnd.ms-powerpoint',
+ 'application/msexcel' => 'application/vnd.ms-excel',
+ );
+
+ $stmt = OC_DB::prepare('
+ UPDATE `*PREFIX*mimetypes`
+ SET `mimetype` = ?
+ WHERE `mimetype` = ?
+ ');
+
+ foreach ($wrongMimetypes as $wrong => $correct) {
+ OC_DB::executeAudited($stmt, array($wrong, $correct));
+ }
+
+ $updatedMimetypes = array(
+ 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
+ 'xlsx' => 'application/vnd.ms-excel',
+ 'pptx' => 'application/vnd.ms-powerpoint',
+ );
+
+ // separate doc from docx etc
+ foreach ($updatedMimetypes as $extension => $mimetype ) {
+ $result = OC_DB::executeAudited('
+ SELECT count(`mimetype`)
+ FROM `*PREFIX*mimetypes`
+ WHERE `mimetype` = ?
+ ', array($mimetype)
+ );
+
+ $exists = $result->fetchOne();
+
+ if ( ! $exists ) {
+ // insert mimetype
+ OC_DB::executeAudited('
+ INSERT INTO `*PREFIX*mimetypes` ( `mimetype` )
+ VALUES ( ? )
+ ', array($mimetype)
+ );
+ }
+
+ // change mimetype for files with x extension
+ OC_DB::executeAudited('
+ UPDATE `*PREFIX*filecache`
+ SET `mimetype` = (
+ SELECT `id`
+ FROM `*PREFIX*mimetypes`
+ WHERE `mimetype` = ?
+ ) WHERE `name` LIKE ?
+ ', array($mimetype, '%.'.$extension)
+ );
+ }
+} \ No newline at end of file
diff --git a/apps/files/appinfo/version b/apps/files/appinfo/version
index 18efdb9ae67..512a1faa680 100644
--- a/apps/files/appinfo/version
+++ b/apps/files/appinfo/version
@@ -1 +1 @@
-1.1.8
+1.1.9
diff --git a/lib/private/mimetypes.list.php b/lib/private/mimetypes.list.php
index 3fe454f41f1..ba1b9ca10b1 100644
--- a/lib/private/mimetypes.list.php
+++ b/lib/private/mimetypes.list.php
@@ -52,6 +52,7 @@ return array(
'c++' => array('text/x-c++src', null),
'deb' => array('application/x-deb', null),
'doc' => array('application/msword', null),
+ 'docm' => array('application/vnd.ms-word.document.macroEnabled.12', null),
'docx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', null),
'dot' => array('application/msword', null),
'dotx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.template', null),
@@ -91,6 +92,7 @@ return array(
'mpg' => array('video/mpeg', null),
'msi' => array('application/x-msi', null),
'numbers' => array('application/x-iwork-numbers-sffnumbers', null),
+ 'odf' => array('application/vnd.oasis.opendocument.formula', null),
'odg' => array('application/vnd.oasis.opendocument.graphics', null),
'odp' => array('application/vnd.oasis.opendocument.presentation', null),
'ods' => array('application/vnd.oasis.opendocument.spreadsheet', null),
@@ -104,7 +106,16 @@ return array(
'php' => array('application/x-php', null),
'pl' => array('application/x-perl', null),
'png' => array('image/png', null),
- 'ppt' => array('application/mspowerpoint', null),
+ 'pot' => array('application/vnd.ms-powerpoint', null),
+ 'potm' => array('application/vnd.ms-powerpoint.template.macroEnabled.12', null),
+ 'potx' => array('application/vnd.openxmlformats-officedocument.presentationml.template', null),
+ 'ppa' => array('application/vnd.ms-powerpoint', null),
+ 'ppam' => array('application/vnd.ms-powerpoint.addin.macroEnabled.12', null),
+ 'pps' => array('application/vnd.ms-powerpoint', null),
+ 'ppsm' => array('application/vnd.ms-powerpoint.slideshow.macroEnabled.12', null),
+ 'ppsx' => array('application/vnd.openxmlformats-officedocument.presentationml.slideshow', null),
+ 'ppt' => array('application/vnd.ms-powerpoint', null),
+ 'pptm' => array('application/vnd.ms-powerpoint.presentation.macroEnabled.12', null),
'pptx' => array('application/vnd.openxmlformats-officedocument.presentationml.presentation', null),
'psd' => array('application/x-photoshop', null),
'py' => array('text/x-python', null),
@@ -130,8 +141,15 @@ return array(
'woff' => array('application/font-woff', null),
'wmv' => array('video/x-ms-asf', null),
'xcf' => array('application/x-gimp', null),
- 'xls' => array('application/msexcel', null),
+ 'xla' => array('application/vnd.ms-excel', null),
+ 'xlam' => array('application/vnd.ms-excel.addin.macroEnabled.12', null),
+ 'xls' => array('application/vnd.ms-excel', null),
+ 'xlsb' => array('application/vnd.ms-excel.sheet.binary.macroEnabled.12', null),
+ 'xlsm' => array('application/vnd.ms-excel.sheet.macroEnabled.12', null),
'xlsx' => array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', null),
+ 'xlt' => array('application/vnd.ms-excel', null),
+ 'xltm' => array('application/vnd.ms-excel.template.macroEnabled.12', null),
+ 'xltx' => array('application/vnd.openxmlformats-officedocument.spreadsheetml.template', null),
'xml' => array('application/xml', 'text/plain'),
'zip' => array('application/zip', null),
);