Allow array parsing through url

This commit is contained in:
guerler
2017-08-03 22:51:13 -04:00
parent 6c11ffbe84
commit cd8314808e
11 changed files with 26 additions and 25 deletions
+2 -1
View File
@@ -5,6 +5,7 @@ var jQuery = require( 'jquery' ),
FormWrapper = require( 'mvc/form/form-wrapper' ),
GridView = require( 'mvc/grid/grid-view' ),
Ui = require( 'mvc/ui/ui-misc' ),
QueryStringParsing = require( 'utils/query-string-parsing' ),
Router = require( 'layout/router' ),
Page = require( 'layout/page' );
@@ -30,7 +31,7 @@ window.app = function app( options, bootstrapped ){
show_forms : function( form_id ) {
var options = {
title : 'Reset passwords',
url : 'admin/reset_user_password?' + $.param( Galaxy.params ),
url : 'admin/reset_user_password?id=' + QueryStringParsing.get( 'id' ),
icon : 'fa-user'
};
this.page.display( new FormWrapper.View ( options ) );
@@ -2,14 +2,14 @@ define([], function(){
// ============================================================================
function get( key, queryString ){
queryString = queryString || window.location.search.substr( 1 );
var keyRegex = new RegExp( key + '=([^&#$]+)' ),
matches = queryString.match( keyRegex );
var keyRegex = new RegExp( key + '=([^&#$]+)', 'g' );
var matches = queryString.match( keyRegex );
if( !matches || !matches.length ){
return undefined;
}
matches = matches.splice( 1 );
matches = _.map( matches, function( match ) { return match.substr( key.length + 1 ) } );
if( matches.length === 1 ){
return matches[0];
return matches[ 0 ];
}
return matches;
}
@@ -130,7 +130,7 @@ class UserListGrid( grids.Grid ):
grids.GridOperation( "Reset Password",
condition=( lambda item: not item.deleted ),
allow_multiple=True,
url_args=dict( action="forms/reset_password" ),
url_args=dict( action="forms/reset_user_password" ),
target="top" ),
grids.GridOperation( "Recalculate Disk Usage",
condition=( lambda item: not item.deleted ),
@@ -1615,7 +1615,7 @@ class AdminGalaxy( controller.JSAppLauncher, AdminActions, UsesQuotaMixin, Quota
def reset_user_password( self, trans, **kwd ):
users = util.listify( kwd.get( 'id' ) )
return {
'inputs' : [ { 'name': user_id } for user_id in users ]
'inputs' : [ { 'id': user_id, 'name': user_id } for user_id in users ]
}
@web.expose
@@ -1 +1 @@
{"version":3,"file":"query-string-parsing.js","sources":["../../src/utils/query-string-parsing.js"],"names":["define","get","key","queryString","window","location","search","substr","keyRegex","RegExp","matches","match","length","splice","undefined","parse","parsed","split","forEach","pairString","pair","decodeURI"],"mappings":"AAAAA,UAAW,WAEX,QAASC,GAAKC,EAAKC,GACfA,EAAcA,GAAeC,OAAOC,SAASC,OAAOC,OAAQ,EAC5D,IAAIC,GAAW,GAAIC,QAAQP,EAAM,cAC7BQ,EAAUP,EAAYQ,MAAOH,EACjC,OAAKE,IAAYA,EAAQE,QAGzBF,EAAUA,EAAQG,OAAQ,GACH,IAAnBH,EAAQE,OACDF,EAAQ,GAEZA,GANII,OASf,QAASC,GAAOZ,GACZ,IAAKA,EAAe,QACpB,IAAIa,MACAC,EAAQd,EAAYc,MAAO,IAK/B,OAJAA,GAAMC,QAAS,SAAUC,GACrB,GAAIC,GAAOD,EAAWF,MAAO,IAC7BD,GAAQI,EAAK,IAAOC,UAAWD,EAAK,MAEjCJ,EAIP,OACIf,IAAUA,EACVc,MAAUA"}
{"version":3,"file":"query-string-parsing.js","sources":["../../src/utils/query-string-parsing.js"],"names":["define","get","key","queryString","window","location","search","substr","keyRegex","RegExp","matches","match","length","_","map","undefined","parse","parsed","split","forEach","pairString","pair","decodeURI"],"mappings":"AAAAA,UAAW,WAEX,QAASC,GAAKC,EAAKC,GACfA,EAAcA,GAAeC,OAAOC,SAASC,OAAOC,OAAQ,EAC5D,IAAIC,GAAW,GAAIC,QAAQP,EAAM,aAAc,KAC3CQ,EAAUP,EAAYQ,MAAOH,EACjC,OAAKE,IAAYA,EAAQE,QAGzBF,EAAUG,EAAEC,IAAKJ,EAAS,SAAUC,GAAU,MAAOA,GAAMJ,OAAQL,EAAIU,OAAS,KACzD,IAAnBF,EAAQE,OACDF,EAAS,GAEbA,GANIK,OASf,QAASC,GAAOb,GACZ,IAAKA,EAAe,QACpB,IAAIc,MACAC,EAAQf,EAAYe,MAAO,IAK/B,OAJAA,GAAMC,QAAS,SAAUC,GACrB,GAAIC,GAAOD,EAAWF,MAAO,IAC7BD,GAAQI,EAAK,IAAOC,UAAWD,EAAK,MAEjCJ,EAIP,OACIhB,IAAUA,EACVe,MAAUA"}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,2 +1,2 @@
define([],function(){function a(a,b){b=b||window.location.search.substr(1);var c=new RegExp(a+"=([^&#$]+)"),d=b.match(c);return d&&d.length?(d=d.splice(1),1===d.length?d[0]:d):void 0}function b(a){if(!a)return{};var b={},c=a.split("&");return c.forEach(function(a){var c=a.split("=");b[c[0]]=decodeURI(c[1])}),b}return{get:a,parse:b}});
define([],function(){function a(a,b){b=b||window.location.search.substr(1);var c=new RegExp(a+"=([^&#$]+)","g"),d=b.match(c);return d&&d.length?(d=_.map(d,function(b){return b.substr(a.length+1)}),1===d.length?d[0]:d):void 0}function b(a){if(!a)return{};var b={},c=a.split("&");return c.forEach(function(a){var c=a.split("=");b[c[0]]=decodeURI(c[1])}),b}return{get:a,parse:b}});
//# sourceMappingURL=../../maps/utils/query-string-parsing.js.map