From: Stas Vilchik Date: Thu, 13 Jul 2017 13:16:51 +0000 (+0200) Subject: make SelectList available for extensions X-Git-Tag: 6.6-RC1~805 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=24d034efcdc705bb254cea481a9f78c96f04405b;p=sonarqube.git make SelectList available for extensions --- diff --git a/server/sonar-web/src/main/js/app/utils/exposeLibraries.js b/server/sonar-web/src/main/js/app/utils/exposeLibraries.js index b3e7214dd73..24927bd3555 100644 --- a/server/sonar-web/src/main/js/app/utils/exposeLibraries.js +++ b/server/sonar-web/src/main/js/app/utils/exposeLibraries.js @@ -28,6 +28,7 @@ import FavoriteContainer from '../../components/controls/FavoriteContainer'; import ListFooter from '../../components/controls/ListFooter'; import Tooltip from '../../components/controls/Tooltip'; import ModalForm from '../../components/common/modal-form'; +import SelectList from '../../components/SelectList'; const exposeLibraries = () => { window.moment = moment; @@ -42,7 +43,8 @@ const exposeLibraries = () => { Tooltip, Select, // deprecated, used in Governance - ModalForm_deprecated: ModalForm + ModalForm_deprecated: ModalForm, + SelectList }; }; diff --git a/server/sonar-web/src/main/js/apps/groups/users-view.js b/server/sonar-web/src/main/js/apps/groups/users-view.js index d6538289abf..5d82a12997c 100644 --- a/server/sonar-web/src/main/js/apps/groups/users-view.js +++ b/server/sonar-web/src/main/js/apps/groups/users-view.js @@ -19,7 +19,7 @@ */ import escapeHtml from 'escape-html'; import Modal from '../../components/common/modals'; -import '../../components/SelectList'; +import SelectList from '../../components/SelectList'; import Template from './templates/groups-users.hbs'; export default Modal.extend({ @@ -39,7 +39,7 @@ export default Modal.extend({ extra.organization = this.organization.key; } - new window.SelectList({ + new SelectList({ el: this.$('#groups-users'), width: '100%', readOnly: false, diff --git a/server/sonar-web/src/main/js/apps/quality-gates/views/gate-projects-view.js b/server/sonar-web/src/main/js/apps/quality-gates/views/gate-projects-view.js index 6df371f3a93..7909394dfe4 100644 --- a/server/sonar-web/src/main/js/apps/quality-gates/views/gate-projects-view.js +++ b/server/sonar-web/src/main/js/apps/quality-gates/views/gate-projects-view.js @@ -19,7 +19,7 @@ */ import Marionette from 'backbone.marionette'; import escapeHtml from 'escape-html'; -import '../../../components/SelectList'; +import SelectList from '../../../components/SelectList'; import { translate } from '../../../helpers/l10n'; export default Marionette.ItemView.extend({ @@ -28,7 +28,7 @@ export default Marionette.ItemView.extend({ onRender() { const { qualityGate } = this.options; - new window.SelectList({ + new SelectList({ el: this.options.container, width: '100%', readOnly: !this.options.edit, diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeProjectsForm.js b/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeProjectsForm.js index 45e2d1fcae2..a25638dbaf8 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeProjectsForm.js +++ b/server/sonar-web/src/main/js/apps/quality-profiles/details/ChangeProjectsForm.js @@ -22,6 +22,7 @@ import React from 'react'; import Modal from 'react-modal'; import escapeHtml from 'escape-html'; import type { Profile } from '../propTypes'; +import SelectList from '../../../components/SelectList'; import { translate } from '../../../helpers/l10n'; type Props = { @@ -49,7 +50,7 @@ export default class ChangeProjectsForm extends React.PureComponent { const searchUrl = window.baseUrl + '/api/qualityprofiles/projects?key=' + encodeURIComponent(key); - new window.SelectList({ + new SelectList({ searchUrl, el: this.container, width: '100%', diff --git a/server/sonar-web/src/main/js/apps/users/groups-view.js b/server/sonar-web/src/main/js/apps/users/groups-view.js index d1ea9ba765c..be257dd3863 100644 --- a/server/sonar-web/src/main/js/apps/users/groups-view.js +++ b/server/sonar-web/src/main/js/apps/users/groups-view.js @@ -19,7 +19,7 @@ */ import escapeHtml from 'escape-html'; import Modal from '../../components/common/modals'; -import '../../components/SelectList'; +import SelectList from '../../components/SelectList'; import Template from './templates/users-groups.hbs'; export default Modal.extend({ @@ -27,7 +27,7 @@ export default Modal.extend({ onRender() { Modal.prototype.onRender.apply(this, arguments); - new window.SelectList({ + new SelectList({ el: this.$('#users-groups'), width: '100%', readOnly: false, diff --git a/server/sonar-web/src/main/js/components/SelectList/index.js b/server/sonar-web/src/main/js/components/SelectList/index.js index cc162f93d95..9c89ab5517f 100644 --- a/server/sonar-web/src/main/js/components/SelectList/index.js +++ b/server/sonar-web/src/main/js/components/SelectList/index.js @@ -370,8 +370,8 @@ const SelectListView = Backbone.View.extend({ * SelectList Entry Point */ -window.SelectList = function(options) { - this.settings = $.extend(window.SelectList.defaults, options); +const SelectList = function(options) { + this.settings = $.extend(this.defaults, options); this.collection = new SelectListCollection({ parse: this.settings.parse @@ -392,12 +392,12 @@ window.SelectList = function(options) { * SelectList API Methods */ -window.SelectList.prototype.filter = function(filter) { +SelectList.prototype.filter = function(filter) { this.view.filterBySelection(filter); return this; }; -window.SelectList.prototype.search = function(query) { +SelectList.prototype.search = function(query) { this.view.searchByQuery(query); return this; }; @@ -406,7 +406,7 @@ window.SelectList.prototype.search = function(query) { * SelectList Defaults */ -window.SelectList.defaults = { +SelectList.prototype.defaults = { width: '50%', height: 400, @@ -438,3 +438,5 @@ window.SelectList.defaults = { errorMessage: 'Something gone wrong, try to reload the page and try again.' }; + +export default SelectList;