summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/MultimediaViewer/resources/mmv/logging/mmv.logging.AttributionLogger.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/MultimediaViewer/resources/mmv/logging/mmv.logging.AttributionLogger.js')
-rw-r--r--www/wiki/extensions/MultimediaViewer/resources/mmv/logging/mmv.logging.AttributionLogger.js73
1 files changed, 73 insertions, 0 deletions
diff --git a/www/wiki/extensions/MultimediaViewer/resources/mmv/logging/mmv.logging.AttributionLogger.js b/www/wiki/extensions/MultimediaViewer/resources/mmv/logging/mmv.logging.AttributionLogger.js
new file mode 100644
index 00000000..52171977
--- /dev/null
+++ b/www/wiki/extensions/MultimediaViewer/resources/mmv/logging/mmv.logging.AttributionLogger.js
@@ -0,0 +1,73 @@
+/*
+ * This file is part of the MediaWiki extension MultimediaViewer.
+ *
+ * MultimediaViewer 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.
+ *
+ * MultimediaViewer 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 MultimediaViewer. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+( function ( mw, $, oo ) {
+ var AL;
+
+ /**
+ * Writes EventLogging entries for duration measurements
+ *
+ * @class mw.mmv.logging.AttributionLogger
+ * @extends mw.mmv.logging.Logger
+ * @constructor
+ */
+ function AttributionLogger() {}
+
+ oo.inheritClass( AttributionLogger, mw.mmv.logging.Logger );
+
+ AL = AttributionLogger.prototype;
+
+ /**
+ * @override
+ * @inheritdoc
+ */
+ AL.samplingFactor = mw.config.get( 'wgMultimediaViewer' ).attributionSamplingFactor;
+
+ /**
+ * @override
+ * @inheritdoc
+ */
+ AL.schema = 'MultimediaViewerAttribution';
+
+ /**
+ * Logs attribution data
+ *
+ * @param {mw.mmv.model.Image} image Image data
+ */
+ AL.logAttribution = function ( image ) {
+ var data;
+
+ data = {
+ authorPresent: !!image.author,
+ sourcePresent: !!image.source,
+ licensePresent: !!image.license,
+ loggedIn: !mw.user.isAnon(),
+ samplingFactor: this.samplingFactor
+ };
+
+ if ( this.isEnabled() ) {
+ mw.log( 'author: ' + ( data.authorPresent ? 'present' : 'absent' ) +
+ ', source: ' + ( data.sourcePresent ? 'present' : 'absent' ) +
+ ', license: ' + ( data.licensePresent ? 'present' : 'absent' ) );
+ }
+
+ this.log( data );
+ };
+
+ mw.mmv.logging.AttributionLogger = AttributionLogger;
+ mw.mmv.attributionLogger = new AttributionLogger();
+}( mediaWiki, jQuery, OO ) );