diff options
Diffstat (limited to 'www/wiki/extensions/Maps/resources/api.js')
-rw-r--r-- | www/wiki/extensions/Maps/resources/api.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/www/wiki/extensions/Maps/resources/api.js b/www/wiki/extensions/Maps/resources/api.js new file mode 100644 index 00000000..5cb70741 --- /dev/null +++ b/www/wiki/extensions/Maps/resources/api.js @@ -0,0 +1,44 @@ +(function($, mw) { + 'use strict'; + + function canEditPage(pageName) { + let deferred = $.Deferred(); + + new mw.Api().get({ + action: 'query', + format: 'json', + titles: pageName, + prop: 'info', + intestactions: 'edit' + }).done(function(response) { + // Next level usability in the MW API: + let canEdit = response.query.pages[Object.keys(response.query.pages)[0]].actions.hasOwnProperty('edit'); + deferred.resolve(canEdit); + }); + + return deferred.promise(); + } + + function getLatestRevision(pageName) { + let deferred = $.Deferred(); + + new mw.Api().post({ + action: 'query', + prop: 'revisions', + rvlimit: 1, + rvprop: [ 'ids', 'content' ], + titles: pageName + }).done(function(response) { + deferred.resolve(response.query.pages[Object.keys(response.query.pages)[0]].revisions[0]); + }); + + return deferred.promise(); + } + + if (!window.maps) {window.maps = {};} + + window.maps.api = { + canEditPage: canEditPage, + getLatestRevision: getLatestRevision + }; +})(window.jQuery, window.mediaWiki); |