move egw_get_file_editor_prefered_mimes() to egw.file_editor_prefered_mimes() as everything in old jsapi.js is deprecated and should be removed

.
This commit is contained in:
ralf
2022-10-18 08:30:15 +02:00
parent 9d2a319821
commit 05b316f7ff
9 changed files with 49 additions and 34 deletions

View File

@@ -92,7 +92,7 @@ export class Et2VfsMime extends Et2ImageExpose
let gallery = super.isExposable(); let gallery = super.isExposable();
// @ts-ignore Wants an argument, but does not require it // @ts-ignore Wants an argument, but does not require it
let fe = egw_get_file_editor_prefered_mimes(); let fe = egw.file_editor_prefered_mimes();
if(fe && fe.mime && fe.edit && fe.mime[this.exposeValue.mime]) if(fe && fe.mime && fe.edit && fe.mime[this.exposeValue.mime])
{ {
return true; return true;
@@ -131,7 +131,7 @@ export class Et2VfsMime extends Et2ImageExpose
if(true == super_handled) if(true == super_handled)
{ {
// @ts-ignore Wants an argument, but does not require it // @ts-ignore Wants an argument, but does not require it
let fe = egw_get_file_editor_prefered_mimes(); let fe = egw.file_editor_prefered_mimes();
if(fe && fe.mime && fe.edit && fe.mime[this.exposeValue.mime]) if(fe && fe.mime && fe.edit && fe.mime[this.exposeValue.mime])
{ {
egw.open_link(egw.link('/index.php', { egw.open_link(egw.link('/index.php', {

View File

@@ -15,7 +15,7 @@ import {css, html, LitElement, render} from "@lion/core";
import {et2_nextmatch} from "../et2_extension_nextmatch"; import {et2_nextmatch} from "../et2_extension_nextmatch";
import {Et2Dialog} from "../Et2Dialog/Et2Dialog"; import {Et2Dialog} from "../Et2Dialog/Et2Dialog";
import {ET2_DATAVIEW_STEPSIZE} from "../et2_dataview_controller"; import {ET2_DATAVIEW_STEPSIZE} from "../et2_dataview_controller";
import {egw, egw_get_file_editor_prefered_mimes} from "../../jsapi/egw_global"; import {egw} from "../../jsapi/egw_global";
// Minimum data to qualify as an image and not cause errors // Minimum data to qualify as an image and not cause errors
const IMAGE_DEFAULT = { const IMAGE_DEFAULT = {
@@ -182,7 +182,7 @@ export function ExposeMixin<B extends Constructor<LitElement>>(superclass : B)
} }
else else
{ {
let fe = egw_get_file_editor_prefered_mimes(_value.mime); let fe = egw.file_editor_prefered_mimes(_value.mime);
if(fe && fe.mime[_value.mime] && fe.mime[_value.mime].favIconUrl) if(fe && fe.mime[_value.mime] && fe.mime[_value.mime].favIconUrl)
{ {
mediaContent[0].thumbnail = fe.mime[_value.mime].favIconUrl; mediaContent[0].thumbnail = fe.mime[_value.mime].favIconUrl;

View File

@@ -27,7 +27,7 @@ import {et2_file} from "./et2_widget_file";
import {et2_inputWidget} from "./et2_core_inputWidget"; import {et2_inputWidget} from "./et2_core_inputWidget";
import {et2_IDetachedDOM} from "./et2_core_interfaces"; import {et2_IDetachedDOM} from "./et2_core_interfaces";
import {et2_no_init} from "./et2_core_common"; import {et2_no_init} from "./et2_core_common";
import {egw, egw_get_file_editor_prefered_mimes} from "../jsapi/egw_global"; import {egw} from "../jsapi/egw_global";
import {egw_getAppObjectManager, egwActionObject} from "../egw_action/egw_action.js"; import {egw_getAppObjectManager, egwActionObject} from "../egw_action/egw_action.js";
import {egw_keyHandler} from '../egw_action/egw_keymanager.js'; import {egw_keyHandler} from '../egw_action/egw_keymanager.js';
import {EGW_KEY_ENTER} from '../egw_action/egw_action_constants.js'; import {EGW_KEY_ENTER} from '../egw_action/egw_action_constants.js';
@@ -893,7 +893,7 @@ export class et2_vfsUpload extends et2_file
let vfs_attrs = {value: file_data, onclick: undefined}; let vfs_attrs = {value: file_data, onclick: undefined};
if (file_data && (typeof file_data.download_url != 'undefined')) if (file_data && (typeof file_data.download_url != 'undefined'))
{ {
var fe_mime = egw_get_file_editor_prefered_mimes(file_data.mime); var fe_mime = egw.file_editor_prefered_mimes(file_data.mime);
// Check if the link entry is mime with media type, in order to open it in expose view // Check if the link entry is mime with media type, in order to open it in expose view
if (typeof file_data.mime === 'string' && if (typeof file_data.mime === 'string' &&
(file_data.mime.match(mime.mime_regexp,'ig') || (fe_mime && fe_mime.mime[file_data.mime]))) (file_data.mime.match(mime.mime_regexp,'ig') || (fe_mime && fe_mime.mime[file_data.mime])))

View File

@@ -454,6 +454,13 @@ declare interface IegwGlobal
* @return grant object, false if not (yet) loaded and no callback or undefined * @return grant object, false if not (yet) loaded and no callback or undefined
*/ */
grants(_app : string) /*, _callback, _context)*/ : any; grants(_app : string) /*, _callback, _context)*/ : any;
/**
* Get mime types supported by file editor AND not excluded by user
*
* @param {string} _mime current mime type
* @returns {object|null} returns object of filemanager editor hook
*/
file_editor_prefered_mimes(_mime : string) : object|null;
/** /**
* implemented in egw_store.js * implemented in egw_store.js

View File

@@ -1,6 +1,5 @@
//export var app = window.app; //export var app = window.app;
export var egw = window.egw; export var egw = window.egw;
export var framework = window.framework; export var framework = window.framework;
export var egw_get_file_editor_prefered_mimes = window.egw_get_file_editor_prefered_mimes;
export var egw_getFramework = window.egw_getFramework; export var egw_getFramework = window.egw_getFramework;
export var jQuery = window.jQuery; export var jQuery = window.jQuery;

View File

@@ -539,7 +539,7 @@ egw.extend('links', egw.MODULE_GLOBAL, function()
{ {
return false; return false;
} }
let fe = egw_get_file_editor_prefered_mimes(mime); let fe = this.file_editor_prefered_mimes(mime);
if (!fe || !fe.mime || fe && fe.mime && !fe.mime[mime]) if (!fe || !fe.mime || fe && fe.mime && !fe.mime[mime])
{ {
return false; return false;

View File

@@ -276,6 +276,35 @@ egw.extend('preferences', egw.MODULE_GLOBAL, function()
if (typeof _callback == 'function') return false; if (typeof _callback == 'function') return false;
}*/ }*/
return typeof grants[_app] === 'object' ? jQuery.extend({}, grants[_app]) : grants[_app]; return typeof grants[_app] === 'object' ? jQuery.extend({}, grants[_app]) : grants[_app];
},
/**
* Get mime types supported by file editor AND not excluded by user
*
* @param {string} _mime current mime type
* @returns {object|null} returns object of filemanager editor hook
*/
file_editor_prefered_mimes: function(_mime)
{
const fe = jQuery.extend(true, {}, this.link_get_registry('filemanager-editor'));
let ex_mimes = this.preference('collab_excluded_mimes', 'filemanager');
const dblclick_action = this.preference('document_doubleclick_action', 'filemanager');
if (dblclick_action === 'download' && typeof _mime === 'string')
{
ex_mimes = !ex_mimes ? _mime : ex_mimes+','+_mime;
}
if (fe && fe.mime && ex_mimes && typeof ex_mimes === 'string')
{
ex_mimes = ex_mimes.split(',');
for (let mime in fe.mime)
{
for (let i in ex_mimes)
{
if (ex_mimes[i] === mime) delete(fe.mime[mime]);
}
}
}
return fe && fe.mime ? fe : null;
} }
}; };
}); });

View File

@@ -700,31 +700,11 @@ window.addOption = function(id,label,value,do_onchange)
} }
/** /**
* * @deprecated use egw.file_editor_prefered_mimes()
* @param {string} _mime current mime type
* @returns {object|null} returns object of filemanager editor hook
*/ */
window.egw_get_file_editor_prefered_mimes = function(_mime) window.egw_get_file_editor_prefered_mimes = function(_mime)
{ {
var fe = jQuery.extend(true, {},egw.link_get_registry('filemanager-editor')); return egw.file_editor_prefered_mimes(_mime);
var ex_mimes = egw.preference('collab_excluded_mimes', 'filemanager');
var dblclick_action = egw.preference('document_doubleclick_action', 'filemanager');
if (dblclick_action == 'download' && typeof _mime === 'string')
{
ex_mimes = !ex_mimes ? _mime : ex_mimes+','+_mime;
}
if (fe && fe.mime && ex_mimes && typeof ex_mimes === 'string')
{
ex_mimes = ex_mimes.split(',');
for (var mime in fe.mime)
{
for (var i in ex_mimes)
{
if (ex_mimes[i] == mime) delete(fe.mime[mime]);
}
}
}
return fe && fe.mime?fe:null;
} }
/** /**
* Install click handlers for popup and multiple triggers of uiaccountselection * Install click handlers for popup and multiple triggers of uiaccountselection

View File

@@ -17,7 +17,7 @@ import {etemplate2} from "../../api/js/etemplate/etemplate2";
import {Et2Dialog} from "../../api/js/etemplate/Et2Dialog/Et2Dialog"; import {Et2Dialog} from "../../api/js/etemplate/Et2Dialog/Et2Dialog";
import {et2_file} from "../../api/js/etemplate/et2_widget_file"; import {et2_file} from "../../api/js/etemplate/et2_widget_file";
import {et2_nextmatch_controller} from "../../api/js/etemplate/et2_extension_nextmatch_controller"; import {et2_nextmatch_controller} from "../../api/js/etemplate/et2_extension_nextmatch_controller";
import {egw, egw_get_file_editor_prefered_mimes} from "../../api/js/jsapi/egw_global"; import {egw} from "../../api/js/jsapi/egw_global";
import {et2_selectbox} from "../../api/js/etemplate/et2_widget_selectbox"; import {et2_selectbox} from "../../api/js/etemplate/et2_widget_selectbox";
import {et2_textbox} from "../../api/js/etemplate/et2_widget_textbox"; import {et2_textbox} from "../../api/js/etemplate/et2_widget_textbox";
@@ -853,7 +853,7 @@ export class filemanagerAPP extends EgwApp
let mime = this.et2._inst.widgetContainer.getWidgetById('$row'); let mime = this.et2._inst.widgetContainer.getWidgetById('$row');
// try to get mime widget DOM node out of the row DOM // try to get mime widget DOM node out of the row DOM
let mime_dom = jQuery(_senders[0].iface.getDOMNode()).find("span#filemanager-index_\\$row"); let mime_dom = jQuery(_senders[0].iface.getDOMNode()).find("span#filemanager-index_\\$row");
let fe = egw_get_file_editor_prefered_mimes(); let fe = egw.file_editor_prefered_mimes();
// symlinks dont have mime 'http/unix-directory', but server marks all directories with class 'isDir' // symlinks dont have mime 'http/unix-directory', but server marks all directories with class 'isDir'
if (data.data.mime == 'httpd/unix-directory' || data.data['class'] && data.data['class'].split(/ +/).indexOf('isDir') != -1) if (data.data.mime == 'httpd/unix-directory' || data.data['class'] && data.data['class'].split(/ +/).indexOf('isDir') != -1)
@@ -1420,7 +1420,7 @@ export class filemanagerAPP extends EgwApp
if (_senders.length>1) return false; if (_senders.length>1) return false;
let data = egw.dataGetUIDdata(_senders[0].id); let data = egw.dataGetUIDdata(_senders[0].id);
let mime = this.et2.getInstanceManager().widgetContainer.getWidgetById('$row'); let mime = this.et2.getInstanceManager().widgetContainer.getWidgetById('$row');
let fe = egw_get_file_editor_prefered_mimes(data.data.mime); let fe = egw.file_editor_prefered_mimes(data.data.mime);
if (fe && fe.mime && !fe.mime[data.data.mime]) return false; if (fe && fe.mime && !fe.mime[data.data.mime]) return false;
return !!data.data.mime.match(mime.mime_odf_regex); return !!data.data.mime.match(mime.mime_odf_regex);
} }