mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
073c2dc8ca
* Remove dark mode styling * Condense & rename light mode stylesheet * Upgrade to Bootstrap 5.3.2 * Swap out Bootstrap for Tabler; remove custom styling * Update base page layout for Tabler * Update login page * Bump node to v18 * Update button styles * Update object list view * Tweak navbar size * Clean up dashboard widgets * Ditch separate stylesheet for print media * Remove simplebar * Remove obsolete sidebar styling * Clean up object view template * Clean up object edit template * Standardize primary button sizing * Clean up object list styling * Add buttons for add & import to navigation menu * Fix global search bar * Fix slim-select form widget styling * Fix toast styling * Set base fonts * Clean up paginator styling * Clean up navigation menu group headings * Clean up footer links * Clean up card styles * Move SVG styles to a designated directory * Restructure SCSS files * Remove obsolete/redundant dependencies * Fix icon spacing * Update background color classes * Tweak banner & footer styling and spacing * Fix badge background colors in table content * Bump @types/bootstrap to 5.2.10 * Clean up form layouts * Fix object selector button style * Fix icon padding inside small buttons * Fix icon & badge spacing inside buttons and tabs * Hide paginator for empty pages * Fix hover color for list items (Tabler bug #1694) * Fix width of checkbox column in empty tables * Clean up bulk edit template * Fix border color of reslug button * Package & serve Google fonts locally * Fix tab styling * Reduce vetical space at top of dashboard * Remove obsolete content-wrapper template block * Fix icon spacing in dropdown menu items * Fix color label sizing * Separate bulk delete form & object list into tabs * Fix styling of filter group headings * Fix styling for object changelog & journal views * Standardize ordering & styling of action buttons * Fix designation of active menu item * Automatically expand menu section containing the active link * Clean up nav menu styling * Remove button colors; hide buttons except on hover/active * Highlight menu group containing the active item * Update & standardize alert styling * Refactor base templates to ensure consistent display of header content * Tweak styling for links inside badges * Clean up top menu * Fix JSON/YAML toggles for config context data * Fix object template header * Constrain tabs to container-xl; tweak header margins * Fix object identifier styling * Fix positioning of card header buttons * Remove padding from HTMX tables inside cards * Ensure consistent use of row headings in attribute tables * Remove padding surrounding tables inside cards * Remove obsolete CSS classes * Misc cleanup of old styling * Refactor 'controls' template block; ditch old classes * Fix login button sizing * Limit object edit form width * Append asterisk to required form field labels * Remove obsolete styling * Remove obsolete styling * Fix position of progress bar outside label * Fix alignment of delete button in report/script lists * Fix <pre> styling * Clean up page headers * Replace SVG icons with Material Design icons * Restore dark mode togle functionality * Fix top navbar background color under dark mode * Rebuild static assets
127 lines
2.9 KiB
JavaScript
127 lines
2.9 KiB
JavaScript
const esbuild = require('esbuild');
|
|
const { sassPlugin } = require('esbuild-sass-plugin');
|
|
|
|
// Bundler options common to all bundle jobs.
|
|
const options = {
|
|
outdir: './dist',
|
|
bundle: true,
|
|
minify: true,
|
|
sourcemap: 'external',
|
|
sourcesContent: false,
|
|
logLevel: 'error',
|
|
};
|
|
|
|
// Get CLI arguments for optional overrides.
|
|
const ARGS = process.argv.slice(2);
|
|
|
|
async function bundleGraphIQL() {
|
|
try {
|
|
const result = await esbuild.build({
|
|
...options,
|
|
entryPoints: {
|
|
graphiql: 'netbox-graphiql/index.ts',
|
|
},
|
|
target: 'es2016',
|
|
define: {
|
|
global: 'window',
|
|
},
|
|
});
|
|
if (result.errors.length === 0) {
|
|
console.log(`✅ Bundled source file 'netbox-graphiql/index.ts' to 'graphiql.js'`);
|
|
}
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Bundle Core NetBox JavaScript.
|
|
*/
|
|
async function bundleNetBox() {
|
|
const entryPoints = {
|
|
netbox: 'src/index.ts',
|
|
};
|
|
try {
|
|
const result = await esbuild.build({
|
|
...options,
|
|
entryPoints,
|
|
target: 'es2016',
|
|
});
|
|
if (result.errors.length === 0) {
|
|
for (const [targetName, sourceName] of Object.entries(entryPoints)) {
|
|
const source = sourceName.split('/')[1];
|
|
console.log(`✅ Bundled source file '${source}' to '${targetName}.js'`);
|
|
}
|
|
}
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Run script bundle jobs.
|
|
*/
|
|
async function bundleScripts() {
|
|
for (const bundle of [bundleNetBox, bundleGraphIQL]) {
|
|
await bundle();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Run style bundle jobs.
|
|
*/
|
|
async function bundleStyles() {
|
|
try {
|
|
const entryPoints = {
|
|
'netbox-external': 'styles/external.scss',
|
|
'netbox': 'styles/netbox.scss',
|
|
rack_elevation: 'styles/svg/rack_elevation.scss',
|
|
cable_trace: 'styles/svg/cable_trace.scss',
|
|
graphiql: 'netbox-graphiql/graphiql.scss',
|
|
};
|
|
const pluginOptions = { outputStyle: 'compressed' };
|
|
// Allow cache disabling.
|
|
if (ARGS.includes('--no-cache')) {
|
|
pluginOptions.cache = false;
|
|
}
|
|
let result = await esbuild.build({
|
|
...options,
|
|
// Disable sourcemaps for CSS/SCSS files, see #7068
|
|
sourcemap: false,
|
|
entryPoints,
|
|
plugins: [sassPlugin(pluginOptions)],
|
|
loader: {
|
|
'.eot': 'file',
|
|
'.woff': 'file',
|
|
'.woff2': 'file',
|
|
'.svg': 'file',
|
|
'.ttf': 'file',
|
|
},
|
|
});
|
|
if (result.errors.length === 0) {
|
|
for (const [targetName, sourceName] of Object.entries(entryPoints)) {
|
|
console.log(`✅ Bundled source file '${sourceName}' to '${targetName}.css'`);
|
|
}
|
|
}
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Run all bundle jobs.
|
|
*/
|
|
async function bundleAll() {
|
|
if (ARGS.includes('--styles')) {
|
|
// Only run style jobs.
|
|
return await bundleStyles();
|
|
} else if (ARGS.includes('--scripts')) {
|
|
// Only run script jobs.
|
|
return await bundleScripts();
|
|
}
|
|
await bundleStyles();
|
|
await bundleScripts();
|
|
}
|
|
|
|
bundleAll();
|