debian-mirror-gitlab/app/assets/javascripts/visual_review_toolbar/index.js

52 lines
1.8 KiB
JavaScript
Raw Normal View History

2019-09-04 21:01:54 +05:30
import './styles/toolbar.css';
2019-10-12 21:52:04 +05:30
import { buttonAndForm, note, selectForm, selectContainer } from './components';
import { REVIEW_CONTAINER } from './shared';
import { eventLookup, getInitialView, initializeGlobalListeners, initializeState } from './store';
2019-09-04 21:01:54 +05:30
/*
Welcome to the visual review toolbar files. A few useful notes:
- These files build a static script that is served from our webpack
assets folder. (https://gitlab.com/assets/webpack/visual_review_toolbar.js)
- To compile this file, run `yarn webpack-vrt`.
- Vue is not used in these files because we do not want to ask users to
install another library at this time. It's all pure vanilla javascript.
*/
window.addEventListener('load', () => {
initializeState(window, document);
2019-10-12 21:52:04 +05:30
const mainContent = buttonAndForm(getInitialView());
2019-09-04 21:01:54 +05:30
const container = document.createElement('div');
container.setAttribute('id', REVIEW_CONTAINER);
2019-09-30 21:07:59 +05:30
container.insertAdjacentHTML('beforeend', note);
container.insertAdjacentHTML('beforeend', mainContent);
2019-09-04 21:01:54 +05:30
document.body.insertBefore(container, document.body.firstChild);
selectContainer().addEventListener('click', event => {
2019-10-12 21:52:04 +05:30
eventLookup(event.target.id)();
2019-09-04 21:01:54 +05:30
});
2019-10-12 21:52:04 +05:30
selectForm().addEventListener('submit', event => {
// this is important to prevent the form from adding data
// as URL params and inadvertently revealing secrets
event.preventDefault();
const id =
event.target.querySelector('.gitlab-button-wrapper') &&
event.target.querySelector('.gitlab-button-wrapper').getElementsByTagName('button')[0] &&
event.target.querySelector('.gitlab-button-wrapper').getElementsByTagName('button')[0].id;
// even if this is called with false, it's ok; it will get the default no-op
eventLookup(id)();
});
initializeGlobalListeners();
2019-09-04 21:01:54 +05:30
});