mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-03 12:39:25 +01:00
filter out legacy JS code from importmap and sort it
also only add extension-less includes for .ts files (was accidentally commented out) and fix some .js imports without extension
This commit is contained in:
parent
d6c6e14abf
commit
ee508c50b9
@ -12,8 +12,8 @@
|
|||||||
egw_action;
|
egw_action;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {EGW_AO_STATE_FOCUSED, EGW_AO_STATE_SELECTED, egwActionObjectInterface, EGW_AI_DRAG_OVER, EGW_AI_DRAG_OUT} from "./egw_action";
|
import {EGW_AO_STATE_FOCUSED, EGW_AO_STATE_SELECTED, egwActionObjectInterface, EGW_AI_DRAG_OVER, EGW_AI_DRAG_OUT} from "./egw_action.js";
|
||||||
import {egwBitIsSet} from "./egw_action_common";
|
import {egwBitIsSet} from "./egw_action_common.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This file contains an egw_actionObjectInterface which allows a dhtmlx tree
|
* This file contains an egw_actionObjectInterface which allows a dhtmlx tree
|
||||||
|
@ -17,7 +17,6 @@ import { et2_register_widget } from "./et2_core_widget";
|
|||||||
import { ClassWithAttributes } from "./et2_core_inheritance";
|
import { ClassWithAttributes } from "./et2_core_inheritance";
|
||||||
import { et2_no_init } from "./et2_core_common";
|
import { et2_no_init } from "./et2_core_common";
|
||||||
import { et2_vfsSize } from "./et2_widget_vfs";
|
import { et2_vfsSize } from "./et2_widget_vfs";
|
||||||
import "../Resumable/resumable.js";
|
|
||||||
/**
|
/**
|
||||||
* Class which implements file upload
|
* Class which implements file upload
|
||||||
*
|
*
|
||||||
|
@ -20,7 +20,6 @@ import {ClassWithAttributes} from "./et2_core_inheritance";
|
|||||||
import {et2_no_init} from "./et2_core_common";
|
import {et2_no_init} from "./et2_core_common";
|
||||||
import {et2_DOMWidget} from "./et2_core_DOMWidget";
|
import {et2_DOMWidget} from "./et2_core_DOMWidget";
|
||||||
import {et2_vfsSize} from "./et2_widget_vfs";
|
import {et2_vfsSize} from "./et2_widget_vfs";
|
||||||
import "../Resumable/resumable.js";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class which implements file upload
|
* Class which implements file upload
|
||||||
|
@ -27,7 +27,7 @@ import { et2_compileLegacyJS } from "./et2_core_legacyJSFunctions";
|
|||||||
import { et2_loadXMLFromURL } from "./et2_core_xml";
|
import { et2_loadXMLFromURL } from "./et2_core_xml";
|
||||||
import { et2_nextmatch, et2_nextmatch_header_bar } from "./et2_extension_nextmatch";
|
import { et2_nextmatch, et2_nextmatch_header_bar } from "./et2_extension_nextmatch";
|
||||||
import '../jsapi/egw_json.js';
|
import '../jsapi/egw_json.js';
|
||||||
import { egwIsMobile } from "../egw_action/egw_action_common";
|
import { egwIsMobile } from "../egw_action/egw_action_common.js";
|
||||||
/* Include all widget classes here, we only care about them registering, not importing anything
|
/* Include all widget classes here, we only care about them registering, not importing anything
|
||||||
import './et2_widget_template';
|
import './et2_widget_template';
|
||||||
import './et2_widget_grid';
|
import './et2_widget_grid';
|
||||||
|
@ -85,7 +85,7 @@ import {et2_loadXMLFromURL} from "./et2_core_xml";
|
|||||||
import {et2_nextmatch, et2_nextmatch_header_bar} from "./et2_extension_nextmatch";
|
import {et2_nextmatch, et2_nextmatch_header_bar} from "./et2_extension_nextmatch";
|
||||||
import {et2_tabbox} from "./et2_widget_tabs";
|
import {et2_tabbox} from "./et2_widget_tabs";
|
||||||
import '../jsapi/egw_json.js';
|
import '../jsapi/egw_json.js';
|
||||||
import {egwIsMobile} from "../egw_action/egw_action_common";
|
import {egwIsMobile} from "../egw_action/egw_action_common.js";
|
||||||
|
|
||||||
/* Include all widget classes here, we only care about them registering, not importing anything
|
/* Include all widget classes here, we only care about them registering, not importing anything
|
||||||
import './et2_widget_template';
|
import './et2_widget_template';
|
||||||
|
@ -19,5 +19,6 @@
|
|||||||
/vendor/egroupware/magicsuggest/magicsuggest.js;
|
/vendor/egroupware/magicsuggest/magicsuggest.js;
|
||||||
/api/js/jquery/splitter.js;
|
/api/js/jquery/splitter.js;
|
||||||
/api/js/jquery/blueimp/js/blueimp-gallery.min.js;
|
/api/js/jquery/blueimp/js/blueimp-gallery.min.js;
|
||||||
|
/api/js/Resumable/resumable.js;
|
||||||
*/
|
*/
|
||||||
jQuery.noConflict();
|
jQuery.noConflict();
|
@ -78,7 +78,7 @@ window.app = {classes: {}};
|
|||||||
window.egw_appName = egw_script.getAttribute('data-app');
|
window.egw_appName = egw_script.getAttribute('data-app');
|
||||||
|
|
||||||
// split includes in legacy js and modules
|
// split includes in legacy js and modules
|
||||||
const legacy_js_regexp = /\/dhtmlx|jquery/;
|
const legacy_js_regexp = /\/dhtmlx|jquery|magicsuggest|resumable/;
|
||||||
|
|
||||||
// check if egw object was injected by window open
|
// check if egw object was injected by window open
|
||||||
if (typeof window.egw == 'undefined')
|
if (typeof window.egw == 'undefined')
|
||||||
|
@ -1124,7 +1124,7 @@ abstract class Framework extends Framework\Extra
|
|||||||
/**
|
/**
|
||||||
* Files imported via script tag in egw.js, because they are no modules
|
* Files imported via script tag in egw.js, because they are no modules
|
||||||
*/
|
*/
|
||||||
const legacy_js_imports = '/\/dhtmlx|jquery/';
|
const legacy_js_imports = '#/dhtmlx|jquery|magicsuggest|resumable#';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add EGroupware URL prefix eg. '/egroupware' to files AND bundles
|
* Add EGroupware URL prefix eg. '/egroupware' to files AND bundles
|
||||||
@ -1137,8 +1137,6 @@ abstract class Framework extends Framework\Extra
|
|||||||
|
|
||||||
// adding some extra mappings
|
// adding some extra mappings
|
||||||
if (($prefix = parse_url($GLOBALS['egw_info']['server']['webserver_url'], PHP_URL_PATH)) === '/') $prefix = '';
|
if (($prefix = parse_url($GLOBALS['egw_info']['server']['webserver_url'], PHP_URL_PATH)) === '/') $prefix = '';
|
||||||
$imports['jquery'] = $imports[$prefix.'/vendor/bower-asset/jquery/dist/jquery.js'];
|
|
||||||
$imports['jqueryui'] = $imports[$prefix.'/vendor/bower-asset/jquery-ui/jquery-ui.js'];
|
|
||||||
|
|
||||||
// fix egw_global(.d.ts) import
|
// fix egw_global(.d.ts) import
|
||||||
$imports[$prefix.'/api/js/jsapi/egw_global'] = $prefix.'/api/js/jsapi/egw_global.js?'.
|
$imports[$prefix.'/api/js/jsapi/egw_global'] = $prefix.'/api/js/jsapi/egw_global.js?'.
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
|
|
||||||
namespace EGroupware\Api\Framework;
|
namespace EGroupware\Api\Framework;
|
||||||
|
|
||||||
|
use EGroupware\Api;
|
||||||
use EGroupware\Api\Cache;
|
use EGroupware\Api\Cache;
|
||||||
use EGroupware\Api\Header\UserAgent;
|
use EGroupware\Api\Header\UserAgent;
|
||||||
|
|
||||||
@ -380,12 +381,20 @@ class Bundle
|
|||||||
if (!$use_bundle) $target = $file;
|
if (!$use_bundle) $target = $file;
|
||||||
$map[$prefix . $file] = $prefix.$target.'?'.filemtime(EGW_SERVER_ROOT.$target);
|
$map[$prefix . $file] = $prefix.$target.'?'.filemtime(EGW_SERVER_ROOT.$target);
|
||||||
// typescript unfortunately has currently no option to add ".js" to it's es6 import statements
|
// typescript unfortunately has currently no option to add ".js" to it's es6 import statements
|
||||||
// therefore we add extra entries without .js extension to the map if (file_exists(EGW_SERVER_ROOT.substr($file, 0, -3) . '.ts'))
|
// therefore we add extra entries without .js extension to the map
|
||||||
|
if (file_exists(EGW_SERVER_ROOT.substr($file, 0, -3) . '.ts'))
|
||||||
{
|
{
|
||||||
$map[$prefix . substr($file, 0, -3)] = $prefix.$target.'?'.filemtime(EGW_SERVER_ROOT.$target);
|
$map[$prefix . substr($file, 0, -3)] = $prefix.$target.'?'.filemtime(EGW_SERVER_ROOT.$target);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// filter out legacy js files not load via import
|
||||||
|
$map = array_filter($map, function($url)
|
||||||
|
{
|
||||||
|
return !preg_match(Api\Framework::legacy_js_imports, $url);
|
||||||
|
});
|
||||||
|
ksort($map);
|
||||||
|
|
||||||
return $map;
|
return $map;
|
||||||
}, [], 30);
|
}, [], 30);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user