Content deleted Content added
Polygnotus (talk | contribs) No edit summary |
Polygnotus (talk | contribs) No edit summary |
||
(4 intermediate revisions by the same user not shown) | |||
Line 72:
}
console.log(`VE Button Script: Fetching configuration from User:${username}/
const result = await api.get({
action: 'query',
prop: 'revisions',
titles: `User:${username}/
rvslots: '*',
rvprop: 'content',
Line 142:
if (typeof content === 'string') {
// This handles patterns like "text" + ":more" or "pre~~" + "~~post"
content = content.replace(/
}
Line 220:
const buttonNames = buttons.map(config => config.name);
console.log('VE Button Script: Button names for toolbar group:', buttonNames);
// Check if OO and ve.ui are properly defined
if (!OO || !ve.ui || !ve.ui.ToolGroup) {
console.error('VE Button Script: Required OOUI components are not available');
tryJQueryFallback(buttons);
return;
}
// First, ensure our custom toolbar group class is defined
Line 229 ⟶ 236:
// Define a custom toolbar group
ve.ui.CustomToolbarGroup = function VeUiCustomToolbarGroup(toolFactory, config) {
// Ensure this is being called as a constructor
if (!(this instanceof VeUiCustomToolbarGroup)) {
return new VeUiCustomToolbarGroup(toolFactory, config);
}
// Call parent constructor
ve.ui.ToolGroup.call(this, toolFactory, config);
};
// Safe inheritance with fallbacks
if (OO.inheritClass) {
OO.inheritClass(ve.ui.CustomToolbarGroup, ve.ui.BarToolGroup);
} else {
// Fallback inheritance if OO.inheritClass is not available
ve.ui.CustomToolbarGroup.prototype = Object.create(ve.ui.BarToolGroup.prototype);
ve.ui.CustomToolbarGroup.prototype.constructor = ve.ui.CustomToolbarGroup;
// Copy static properties
if (ve.ui.BarToolGroup.static) {
ve.ui.CustomToolbarGroup.static = Object.assign({}, ve.ui.BarToolGroup.static);
} else {
ve.ui.CustomToolbarGroup.static = {};
}
}
ve.ui.CustomToolbarGroup.static.name = 'customTools';
ve.ui.CustomToolbarGroup.static.title = 'Custom tools';
// Register the toolbar group
if (ve.ui.toolGroupFactory
console.log('VE Button Script: CustomToolbarGroup registered successfully');
} else {
console.error('VE Button Script: toolGroupFactory not available');
throw new Error('toolGroupFactory not available');
}
} catch (error) {
console.error('VE Button Script: Error defining CustomToolbarGroup:', error);
tryJQueryFallback(buttons);
return;
}
Line 392 ⟶ 426:
let content = config.insertText;
// Handle the concatenation pattern with single quotes
if (typeof content === 'string') {
content = content.replace(/
}
|