వాడుకరి:MGA73/common.js
స్వరూపం
గమనిక: భద్రపరచిన తర్వాత, మార్పులను చూడాలంటే మీ విహారిణి కోశాన్ని తీసేయాల్సిరావచ్చు.
- ఫైర్ఫాక్స్ / సఫారి: Shift మీటని నొక్కిపట్టి Reloadని నొక్కండి లేదా Ctrl-F5 గానీ Ctrl-R (మాకింటోషులో ⌘-Shift-R) గానీ నొక్కండి
- గూగుల్ క్రోమ్: Ctrl-Shift-R (మాక్ లో ⌘-Shift-R) నొక్కండి
- ఇంటర్నెట్ ఎక్ప్లోరర్/ఎడ్జి: Ctrl ను నొక్కిపట్టి Refresh నొక్కండి లేదా Ctrl-F5 నొక్కండి.
- ఒపేరా:* Ctrl-F5 నొక్కండి.
$(document).ready(function () {
// Only run this script on File pages
if (mw.config.get('wgNamespaceNumber') === 6) {
// Function to fetch pages that use the file
function fetchFileUsage() {
var fileName = mw.config.get('wgPageName').replace(/^(File|దస్త్రం):/, ''); // Get the file name without prefix
// Fetch pages that use the file via the imageusage API
var api = new mw.Api();
api.get({
action: 'query',
list: 'imageusage',
iutitle: 'File:' + fileName,
iulimit: 10, // Limit to 10 results for now (can adjust as needed)
format: 'json'
}).done(function (data) {
console.log("File usage data: ", data); // Log the usage data
var usagePages = data.query.imageusage.map(function (usage) {
return `[[${usage.title}|${usage.title}]]`; // Format the pages using the file
}).join(', ');
// Proceed to update the description field with the file usage
if (usagePages) {
prependFileUsageToDescription(usagePages);
} else {
console.log("No pages found using this file.");
alert("No pages found using this file.");
}
}).fail(function (error) {
console.error("Error fetching file usage: ", error); // Log error if API request fails
});
}
// Function to prepend file usage to the description field
function prependFileUsageToDescription(usagePages) {
var fileName = mw.config.get('wgPageName'); // Full page name
var api = new mw.Api();
// Fetch the current content of the file page
api.get({
action: 'query',
titles: fileName,
prop: 'revisions',
rvprop: 'content',
format: 'json'
}).done(function (data) {
var page = Object.values(data.query.pages)[0];
if (!page || !page.revisions) {
console.error("No content found for this page.");
alert("No content found for this page.");
return;
}
var pageContent = page.revisions[0]['*']; // Get the current content
console.log("Current page content: ", pageContent);
// Find the description field and prepend the usage pages
var updatedContent = pageContent.replace(
/(\|[ \t]*description[ \t]*=[ \t]*)(.*)/i, // Match the `| description =` line
function (match, prefix, existingContent) {
return `${prefix} ${usagePages} ${existingContent}`; // Prepend usagePages and keep existingContent
}
);
if (updatedContent === pageContent) {
alert("Could not find '| description =' in the content.");
return;
}
// Redirect to the edit page with the updated content
var editUrl = mw.util.getUrl(fileName, {
action: 'edit',
updatedText: encodeURIComponent(updatedContent)
});
window.location.href = editUrl; // Redirect to the edit page
}).fail(function (error) {
console.error("Error fetching page content: ", error); // Log error if API request fails
});
}
// Add the "Information" button to the page
var $button = $('<button>')
.text('[Update Description]')
.css({
backgroundColor: '#007BFF',
color: '#FFFFFF',
border: '1px solid #007BFF',
borderRadius: '3px',
padding: '5px 10px',
cursor: 'pointer',
margin: '5px'
})
.click(function (event) {
event.preventDefault(); // Prevent default button behavior
fetchFileUsage(); // Fetch the file usage and then proceed
});
// Add the button to the page (below the page title)
$('#contentSub').append($button);
// Automatically update the edit box content if in edit mode
var urlParams = new URLSearchParams(window.location.search);
if (mw.config.get('wgAction') === 'edit' && urlParams.has('updatedText')) {
var updatedText = decodeURIComponent(urlParams.get('updatedText'));
var editBox = $('#wpTextbox1');
editBox.val(updatedText);
// Set the edit summary
$('#wpSummary').val('Updating description field with file usage');
}
}
});