diff options
Diffstat (limited to 'www/wiki/extensions/Maps/resources/MapSaver.js')
-rw-r--r-- | www/wiki/extensions/Maps/resources/MapSaver.js | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/www/wiki/extensions/Maps/resources/MapSaver.js b/www/wiki/extensions/Maps/resources/MapSaver.js new file mode 100644 index 00000000..2dd22ac1 --- /dev/null +++ b/www/wiki/extensions/Maps/resources/MapSaver.js @@ -0,0 +1,57 @@ +(function(mw) { + 'use strict'; + + function getUserHasPermission(permission, callback) { + mw.user.getRights( + function(rights) { + callback(rights.includes(permission)) + } + ); + } + + function ifUserHasPermission(permission, callback) { + getUserHasPermission( + permission, + function(hasPermission) { + if (hasPermission) { + callback(); + } + } + ); + } + + let MapSaver = function(pageName) { + let self = {}; + + // parameters.newContent: required string + // parameters.summary: required string + // parameters.done: required callback function + self.save = function(paremeters) { + new mw.Api().edit( + pageName, + function(revision) { + let editApiParameters = { + text: paremeters.newContent, + summary: paremeters.summary, + minor: false + }; + + ifUserHasPermission( + "applychangetags", + function() { + editApiParameters.tags = ['maps-visual-edit']; + } + ); + + return editApiParameters; + } + ).then(paremeters.done); + }; + + return self; + }; + + if (!window.maps) {window.maps = {};} + + window.maps.MapSaver = MapSaver; +})(window.mediaWiki); |