Browse Source

Declare OCA.Search directly, not via a monkey patch

Apps could use OCA.Search very early on a page load without a problem
prior to Nextcloud 20 (current master). Since the unified search work
moved some code around, it now was added later, resulting in `TypeError:
OCA.Search is not a constructor` errors if the apps did not wrap their
calls in a `DOMLoaded` event handler.

To ensure existing code continues to work without modification, this
patch moves the declaration of the `OCA.Search` API to where we defined
`OCA`, instead of monkey-patching it later on.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
pull/22511/head
Christoph Wurst 5 years ago
parent
commit
e2d209536f
No known key found for this signature in database GPG Key ID: CC42AC2A7F0E56D8
  1. 2
      core/js/dist/login.js
  2. 2
      core/js/dist/login.js.map
  3. 2
      core/js/dist/main.js
  4. 2
      core/js/dist/main.js.map
  5. 2
      core/js/dist/unified-search.js
  6. 2
      core/js/dist/unified-search.js.map
  7. 9
      core/src/OCA/index.js
  8. 34
      core/src/OCA/search.js
  9. 12
      core/src/unified-search.js

2
core/js/dist/login.js
File diff suppressed because it is too large
View File

2
core/js/dist/login.js.map
File diff suppressed because it is too large
View File

2
core/js/dist/main.js
File diff suppressed because it is too large
View File

2
core/js/dist/main.js.map
File diff suppressed because it is too large
View File

2
core/js/dist/unified-search.js
File diff suppressed because it is too large
View File

2
core/js/dist/unified-search.js.map
File diff suppressed because it is too large
View File

9
core/src/OCA/index.js

@ -19,8 +19,15 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import Search from './search'
/**
* Namespace for apps
* @namespace OCA
*/
export default {}
export default {
/**
* @deprecated 20.0.0, will be removed in Nextcloud 22
*/
Search,
}

34
core/src/OCA/search.js

@ -0,0 +1,34 @@
/*
* @copyright 2020 Christoph Wurst <christoph@winzerhof-wurst.at>
*
* @author 2020 Christoph Wurst <christoph@winzerhof-wurst.at>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* @deprecated 20.0.0, will be removed in Nextcloud 22
*/
export default class Search {
/**
* @deprecated 20.0.0, will be removed in Nextcloud 22
*/
constructor() {
console.warn('OCA.Search is deprecated. Please use the unified search API instead')
}
}

12
core/src/unified-search.js

@ -32,18 +32,6 @@ __webpack_nonce__ = btoa(getRequestToken())
// eslint-disable-next-line camelcase
__webpack_public_path__ = generateFilePath('core', '', 'js/')
// TODO: remove with nc22
if (!OCA.Search) {
class Search {
constructor() {
console.warn('OCA.Search is deprecated. Please use the unified search API instead')
}
}
OCA.Search = Search
}
Vue.mixin({
methods: {
t,

Loading…
Cancel
Save