mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-16 09:35:36 -05:00
* Merge from vscode bead496a613e475819f89f08e9e882b841bc1fe8 * Bump distro * Upgrade GCC to 4.9 due to yarn install errors * Update build image * Fix bootstrap base url * Bump distro * Fix build errors * Update source map file * Disable checkbox for blocking migration issues (#15131) * disable checkbox for blocking issues * wip * disable checkbox fixes * fix strings * Remove duplicate tsec command * Default to off for tab color if settings not present * re-skip failing tests * Fix mocha error * Bump sqlite version & fix notebooks search view * Turn off esbuild warnings * Update esbuild log level * Fix overflowactionbar tests * Fix ts-ignore in dropdown tests * cleanup/fixes * Fix hygiene * Bundle in entire zone.js module * Remove extra constructor param * bump distro for web compile break * bump distro for web compile break v2 * Undo log level change * New distro * Fix integration test scripts * remove the "no yarn.lock changes" workflow * fix scripts v2 * Update unit test scripts * Ensure ads-kerberos2 updates in .vscodeignore * Try fix unit tests * Upload crash reports * remove nogpu * always upload crashes * Use bash script * Consolidate data/ext dir names * Create in tmp directory Co-authored-by: chlafreniere <hichise@gmail.com> Co-authored-by: Christopher Suh <chsuh@microsoft.com> Co-authored-by: chgagnon <chgagnon@microsoft.com>
98 lines
2.6 KiB
TypeScript
98 lines
2.6 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import { onceDocumentLoaded } from './events';
|
|
|
|
declare let acquireVsCodeApi: any;
|
|
const vscode = acquireVsCodeApi();
|
|
|
|
function getSettings() {
|
|
const element = document.getElementById('simple-browser-settings');
|
|
if (element) {
|
|
const data = element.getAttribute('data-settings');
|
|
if (data) {
|
|
return JSON.parse(data);
|
|
}
|
|
}
|
|
|
|
throw new Error(`Could not load settings`);
|
|
}
|
|
|
|
const settings = getSettings();
|
|
|
|
const iframe = document.querySelector('iframe')!;
|
|
const header = document.querySelector('.header')!;
|
|
const input = header.querySelector<HTMLInputElement>('.url-input')!;
|
|
const forwardButton = header.querySelector<HTMLButtonElement>('.forward-button')!;
|
|
const backButton = header.querySelector<HTMLButtonElement>('.back-button')!;
|
|
const reloadButton = header.querySelector<HTMLButtonElement>('.reload-button')!;
|
|
const openExternalButton = header.querySelector<HTMLButtonElement>('.open-external-button')!;
|
|
|
|
window.addEventListener('message', e => {
|
|
switch (e.data.type) {
|
|
case 'focus':
|
|
{
|
|
iframe.focus();
|
|
break;
|
|
}
|
|
case 'didChangeFocusLockIndicatorEnabled':
|
|
{
|
|
toggleFocusLockIndicatorEnabled(e.data.enabled);
|
|
break;
|
|
}
|
|
}
|
|
});
|
|
|
|
onceDocumentLoaded(() => {
|
|
setInterval(() => {
|
|
const iframeFocused = document.activeElement?.tagName === 'IFRAME';
|
|
document.body.classList.toggle('iframe-focused', iframeFocused);
|
|
}, 50);
|
|
|
|
iframe.addEventListener('load', () => {
|
|
// Noop
|
|
});
|
|
|
|
input.addEventListener('change', e => {
|
|
const url = (e.target as HTMLInputElement).value;
|
|
navigateTo(url);
|
|
});
|
|
|
|
forwardButton.addEventListener('click', () => {
|
|
history.forward();
|
|
});
|
|
|
|
backButton.addEventListener('click', () => {
|
|
history.back();
|
|
});
|
|
|
|
openExternalButton.addEventListener('click', () => {
|
|
vscode.postMessage({
|
|
type: 'openExternal',
|
|
url: input.value
|
|
});
|
|
});
|
|
|
|
reloadButton.addEventListener('click', () => {
|
|
// This does not seem to trigger what we want
|
|
// history.go(0);
|
|
|
|
// This incorrectly adds entries to the history but does reload
|
|
iframe.src = input.value;
|
|
});
|
|
|
|
navigateTo(settings.url);
|
|
toggleFocusLockIndicatorEnabled(settings.focusLockIndicatorEnabled);
|
|
|
|
function navigateTo(url: string): void {
|
|
iframe.src = url;
|
|
}
|
|
});
|
|
|
|
function toggleFocusLockIndicatorEnabled(enabled: boolean) {
|
|
document.body.classList.toggle('enable-focus-lock-indicator', enabled);
|
|
}
|
|
|