summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/UploadWizard/resources/deed/uw.deed.External.js
blob: 3387e20dc269146b3e9e12ceb3725e2d0e5cd800 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/*
 * This file is part of the MediaWiki extension UploadWizard.
 *
 * UploadWizard is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * UploadWizard is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with UploadWizard.  If not, see <http://www.gnu.org/licenses/>.
 */

( function ( mw, uw, $, OO ) {
	/**
	 * @param {Object} config The UW config
	 * @param {mw.UploadWizardUpload} upload Uploads that this deed refers to
	 * @class uw.deed.External
	 * @constructor
	 */
	uw.deed.External = function UWDeedExternal( config, upload ) {
		uw.deed.Custom.call( this, config, upload );

		this.licenseInput = new mw.UploadWizardLicenseInput(
			undefined,
			config,
			1,
			upload.api
		);
		this.licenseInput.$element.addClass( 'mwe-upwiz-External-deed' );
		this.licenseInputField = new uw.FieldLayout( this.licenseInput );
		this.licenseInput.setDefaultValues();
	};

	OO.inheritClass( uw.deed.External, uw.deed.Custom );

	/**
	 * @return {uw.FieldLayout[]} Fields that need validation
	 */
	uw.deed.External.prototype.getFields = function () {
		return [ this.licenseInputField ];
	};

	/**
	 * @inheritdoc
	 */
	uw.deed.External.prototype.getLicenseWikiText = function () {
		if ( this.upload.file.licenseValue ) {
			return this.upload.file.licenseValue + this.licenseInput.getWikiText();
		} else {
			return this.licenseInput.getWikiText();
		}
	};

	/**
	 * @return {Object}
	 */
	uw.deed.External.prototype.getSerialized = function () {
		return $.extend( uw.deed.Custom.prototype.getSerialized.call( this ), {
			license: this.licenseInput.getSerialized()
		} );
	};

	/**
	 * @param {Object} serialized
	 */
	uw.deed.External.prototype.setSerialized = function ( serialized ) {
		uw.deed.Custom.prototype.setSerialized.call( this, serialized );

		if ( serialized.license ) {
			this.licenseInput.setSerialized( serialized.license );
		}
	};
}( mediaWiki, mediaWiki.uploadWizard, jQuery, OO ) );