Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MediaWiki:Gadget-database-songs-core.js

MediaWiki interface page
Revision as of 04:12, 15 April 2023 by ChaoticShadow (talk | contribs)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
( function ( $, mw, psw ) {
	'use strict';

	var qOptions = new psw.db.QueryOptions();
	var dOptions = new psw.db.DisplayOptions();
	
	qOptions.addButtonMultiInput(
		'units',
		{ label: 'Unit categories' },
		{
			multiselect: true,
			delimiter: ';',
			items: [
				{ label: 'VIRTUAL SINGER' },
				{ label: 'Leo/need' },
				{ label: 'MORE MORE JUMP!' },
				{ label: 'Vivid BAD SQUAD' },
				{ label: 'Wonderlands×Showtime' },
				{ label: '25-ji, Nightcord de.' },
				{ label: 'Other' }
			]
		}
	);
	
	[
		{ param: '3d mv', label: '3D MV?' },
		{ param: '2d mv', label: '2D MV?' },
		{ param: 'original mv', label: 'Original MV?' }
	].forEach( function( paramLabel ) {
		qOptions.addButtonMultiInput(
			paramLabel.param,
			{ label: paramLabel.label },
			{
				items: [
					{ label: 'Any', data: '+' },
					{ label: 'Yes', data: '1' },
					{ label: 'No',  data: '0' }
				],
				selected: 'Any'
			}
		);
	} );
	
	qOptions.addButtonMultiInput(
		'song type',
		{ label: 'Type(s)' },
		{
			multiselect: true,
			items: [
				{ label: 'Pre-existing', data: 'Pre-existing' },
				{ label: 'Commissioned', data: 'Commissioned' },
				{ label: 'Contest winner',  data: 'Contest winner' }
			]
		}
	);
	
	qOptions.addNumberInput(
		'min game duration',
		{ label: 'Minimum game duration (seconds)'  },
		{ min: 1, showButtons: false }
	);
	
	qOptions.addNumberInput(
		'max game duration',
		{ label: 'Maximum game duration (seconds)' },
		{ min: 1, showButtons: false }
	);
	
	qOptions.addDateInput(
		'released after',
		{ label: 'Released after' }
	);
	qOptions.addDateInput(
		'released before',
		{ label: 'Released before' }
	);
	
	[
		{ param: 'easy diff',   label: 'Easy difficulties',   min: 5,  max: 9 },
		{ param: 'normal diff', label: 'Normal difficulties', min: 10, max: 15 },
		{ param: 'hard diff',   label: 'Hard difficulties',   min: 15, max: 23 },
		{ param: 'expert diff', label: 'Expert difficulties', min: 21, max: 31 },
		{ param: 'master diff', label: 'Master difficulties', min: 26, max: 36 }
	].forEach( function( diff ) {
		var diffItems = [];
		for ( var i = diff.min; i <= diff.max; i++ ) {
			diffItems.push( { label: i.toString() } );
		}
		
		qOptions.addButtonMultiInput(
			diff.param,
			{ label: diff.label },
			{
				multiselect: true,
				items: diffItems
			}
		);
	} );
	
	dOptions.addColumnSelector(
		[
			{ name: 'Producer', selected: true, label: 'Producer' },
			{ name: 'Unit category', selected: true, label: 'Unit category' },
			{ name: 'BPM', selected: true, label: 'BPM' },
			{ name: 'Game duration', selected: true, label: 'Duration' },
			{ name: 'Release date#-F[Y/m/d]', selected: true, label: 'Release date' },
			{ name: 'Song type', selected: true, label: 'Type' },
			{ name: 'Has 3D MV', selected: true, label: '3D MV' },
			{ name: 'Has 2D MV', selected: true, label: '2D MV' },
			{ name: 'Has original MV', selected: true, label: 'Original MV' },
			{ name: 'Easy difficulty', selected: false, label: 'Easy difficulty' },
			{ name: 'Normal difficulty', selected: false, label: 'Normal difficulty' },
			{ name: 'Hard difficulty', selected: false, label: 'Hard difficulty' },
			{ name: 'Expert difficulty', selected: false, label: 'Expert difficulty' },
			{ name: 'Master difficulty', selected: false, label: 'Master difficulty' },
			{ name: 'Easy notes', selected: false, label: 'Easy notes' },
			{ name: 'Normal notes', selected: false, label: 'Normal notes' },
			{ name: 'Hard notes', selected: false, label: 'Hard notes' },
			{ name: 'Expert notes', selected: false, label: 'Expert notes' },
			{ name: 'Master notes', selected: false, label: 'Master notes' },
		],
		{ }
	);
	
	$( function () {
		var search = new psw.db.SearchWidget(
			{ queryOptions: qOptions, displayOptions: dOptions },
			{ selector: '#song-results', template: 'Song datatable'	}
		);
		
		$( '#song-query' ).append( search.fieldset.$element );
	});
	
} )( jQuery, mediaWiki, pswiki );
Cookies help us deliver our services. By using our services, you agree to our use of cookies.