diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md new file mode 100644 index 00000000000..cfa5f147908 --- /dev/null +++ b/CONTRIBUTORS.md @@ -0,0 +1,129 @@ +# Contributors + +The following individuals have contributed code to Galaxy: + +* Enis Afgan +* Istvan Albert +* Renato Alves +* Guruprasad Ananda +* Florent Angly +* Raj Ayyampalayam +* Finn Bacall +* Dannon Baker +* Christopher Bare +* Dan Blanchard +* Daniel Blankenberg +* James Boocock +* Carlos Borroto +* Daniel Bouchard +* Dave Bouvier +* Adam Brenner +* Anthony Bretaudeau +* Richard Burhans +* Jennifer Cabral +* Martin Čech +* Ramkrishna Chakrabarty +* Brad Chapman +* John Chilton +* Saket Choudhary +* Wen-Yu Chung +* Dave Clements +* Peter Cock +* Ira Cooke +* Nate Coraor +* Michael Cotterell +* Gianmauro Cuccuru +* Frederik Delaere +* Olivia Doppelt +* John Duddy +* Carl Eberhard +* Kyle Ellrott +* Eric Enns +* Dorine Francheteau +* Jaime Frey +* Carie Genote +* Jeremy Goecks +* Nuwan Goonasekera +* Björn Grüning +* Aysam Guerler +* Simon Guest +* Jianbin He +* Morita Hideyuki +* Rob Hooft +* Y. Hoogstrate +* Jian-Long Huang +* Gert Hulselmans +* Jennifer Jackson +* Joachim Jacob +* Jim Johnson +* Radhesh Kamath +* Jan Kanis +* David King +* Rory Kirchner +* Brad Langhorst +* Ross Lazarus +* Simone Leo +* Kanwei Li +* Michael Li +* Philip Mabon +* Remi Marenco +* Thomas McGowan +* Scott McManus +* Hunter Moseley +* Arjun Nath +* Anton Nekrutenko +* Eric Paniagua +* Richard Park +* Lance Parsons +* Chinmay Rao +* Eric Rasche +* Andrew Robinson +* Andrea Sbardellati +* Ian Schenck +* Nick Semenkovich +* Matthew Shirley +* Clare Sloggett +* Nicola Soranzo +* Roy Storey +* Hanfei Sun +* Ilya Sytchev +* James Taylor +* Tomithy Too +* David Trudgian +* Nitesh Turaga +* Clayton Turner +* Marek Vavruša +* Martijn Vermaat +* Kelly Vincent +* Greg Von Kuster +* Hiral Vora +* Andrew Warren +* Trevor Wennblom +* Yi Zhang +* Freek de Bruijn +* Peter van Heusden +* Marius van den Beek + +# Institutional sponsors + +Galaxy development began at The Pennsylvania State University in 2006. +In 2009 all contributions to that point were licensed by The +Pennsylvania State University under the terms of the Academic Free +License 3.0 (see LICENSE.txt). This license applies to all subsequent +contributions - including but not limited to development at The +Pennsylvania State University, Emory University, Johns Hopkins +University, and George Washington University as part of the following +NIH and NSF grants: + +* NSF DBI 0543285, “Tailoring genomic data to the needs of experimental + biologists and educators” +* NIH R21 HG005133, “A turnkey solution for next generation sequence + data analysis” +* NIH R01 HG004909, “An efficient lightweight environment for biomedical + computation” +* NSF DBI 0850103, “Cyberinfrastructure for accessible and reproducible + research in life sciences” +* NIH RC2 HG005542, “Dynamically scalable accessible analysis for next + generation sequence data” +* NIH U41 HG006620, “Democratization of data analysis in life sciences + through Galaxy” diff --git a/LICENSE.txt b/LICENSE.txt index ee1e8c0c716..b9664cb17c2 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2005-2013 Pennsylvania State University +Copyright (c) 2005-2015 Galaxy Contributors (see CONTRIBUTORS.md) Licensed under the Academic Free License version 3.0 diff --git a/client/galaxy/scripts/mvc/form/form-input.js b/client/galaxy/scripts/mvc/form/form-input.js index 7cbf3f91c45..fd51ceaae10 100644 --- a/client/galaxy/scripts/mvc/form/form-input.js +++ b/client/galaxy/scripts/mvc/form/form-input.js @@ -124,7 +124,7 @@ define([], function() { tmp += '
'; if (options.help) { tmp += options.help; - if (options.argument && options.help.indexOf(options.argument) == -1) { + if (options.argument && options.help.indexOf('(' + options.argument + ')') == -1) { tmp += ' (' + options.argument + ')'; } } diff --git a/client/galaxy/scripts/mvc/groups/group-detail-view.js b/client/toolshed/scripts/mvc/groups/group-detail-view.js similarity index 99% rename from client/galaxy/scripts/mvc/groups/group-detail-view.js rename to client/toolshed/scripts/mvc/groups/group-detail-view.js index 062ae79274e..aa42e4bcaa5 100644 --- a/client/galaxy/scripts/mvc/groups/group-detail-view.js +++ b/client/toolshed/scripts/mvc/groups/group-detail-view.js @@ -1,6 +1,6 @@ define([ "libs/toastr", - "mvc/groups/group-model" + "toolshed/scripts/mvc/groups/group-model" ], function( mod_toastr, diff --git a/client/galaxy/scripts/mvc/groups/group-list-view.js b/client/toolshed/scripts/mvc/groups/group-list-view.js similarity index 96% rename from client/galaxy/scripts/mvc/groups/group-list-view.js rename to client/toolshed/scripts/mvc/groups/group-list-view.js index 3adeb0feefb..a34f332f78a 100644 --- a/client/galaxy/scripts/mvc/groups/group-list-view.js +++ b/client/toolshed/scripts/mvc/groups/group-list-view.js @@ -1,12 +1,12 @@ define([ "libs/toastr", - "mvc/groups/group-model", - "mvc/groups/group-listrow-view" + "toolshed/scripts/mvc/groups/group-model", + "toolshed/scripts/mvc/groups/group-listrow-view" ], function( mod_toastr, mod_group_model, - mod_group_listrow_view + mod_group_row ){ var GroupListView = Backbone.View.extend({ @@ -71,7 +71,7 @@ var GroupListView = Backbone.View.extend({ * @param {Group} model of the view that will be rendered */ renderOne: function( options ){ - var rowView = new mod_group_listrow_view.GroupListRowView( options ); + var rowView = new mod_group_row.GroupListRowView( options ); this.$el.find( '#group_list_body' ).append( rowView.el ); }, diff --git a/client/galaxy/scripts/mvc/groups/group-listrow-view.js b/client/toolshed/scripts/mvc/groups/group-listrow-view.js similarity index 100% rename from client/galaxy/scripts/mvc/groups/group-listrow-view.js rename to client/toolshed/scripts/mvc/groups/group-listrow-view.js diff --git a/client/galaxy/scripts/mvc/groups/group-model.js b/client/toolshed/scripts/mvc/groups/group-model.js similarity index 100% rename from client/galaxy/scripts/mvc/groups/group-model.js rename to client/toolshed/scripts/mvc/groups/group-model.js diff --git a/client/toolshed/scripts/test-file.js b/client/toolshed/scripts/test-file.js deleted file mode 100644 index 093dfad294e..00000000000 --- a/client/toolshed/scripts/test-file.js +++ /dev/null @@ -1,3 +0,0 @@ -define( [], function() { - return 'Remove this file'; -}); \ No newline at end of file diff --git a/client/galaxy/scripts/toolshed.groups.js b/client/toolshed/scripts/toolshed.groups.js similarity index 88% rename from client/galaxy/scripts/toolshed.groups.js rename to client/toolshed/scripts/toolshed.groups.js index 1785878ed51..d4843e4979a 100644 --- a/client/galaxy/scripts/toolshed.groups.js +++ b/client/toolshed/scripts/toolshed.groups.js @@ -3,9 +3,9 @@ // MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM define([ - "mvc/groups/group-list-view", - "mvc/groups/group-detail-view", - "mvc/groups/group-model" + 'toolshed/scripts/mvc/groups/group-list-view', + 'toolshed/scripts/mvc/groups/group-detail-view', + 'toolshed/scripts/mvc/groups/group-model' ], function( mod_group_list, diff --git a/lib/galaxy/tools/parameters/validation.py b/lib/galaxy/tools/parameters/validation.py index 3a29ee57dee..ff618ec98b6 100644 --- a/lib/galaxy/tools/parameters/validation.py +++ b/lib/galaxy/tools/parameters/validation.py @@ -5,11 +5,13 @@ Classes related to parameter validation. import logging import re from galaxy import model +from galaxy import util log = logging.getLogger( __name__ ) class LateValidationError( Exception ): + def __init__( self, message ): self.message = message @@ -18,6 +20,7 @@ class Validator( object ): """ A validator checks that a value meets some conditions OR raises ValueError """ + @classmethod def from_element( cls, param, elem ): type = elem.get( 'type', None ) @@ -46,6 +49,7 @@ class RegexValidator( Validator ): ... ValueError: Not gonna happen """ + @classmethod def from_element( cls, param, elem ): return cls( elem.get( 'message' ), elem.text ) @@ -79,6 +83,7 @@ class ExpressionValidator( Validator ): ... ValueError: Not gonna happen """ + @classmethod def from_element( cls, param, elem ): return cls( elem.get( 'message' ), elem.text, elem.get( 'substitute_value_in_message' ) ) @@ -105,10 +110,13 @@ class InRangeValidator( Validator ): >>> from galaxy.tools.parameters.basic import ToolParameter >>> p = ToolParameter.build( None, XML( ''' ... - ... + ... ... ... ''' ) ) >>> t = p.validate( 10 ) + Traceback (most recent call last): + ... + ValueError: Not gonna happen >>> t = p.validate( 15 ) >>> t = p.validate( 20 ) >>> t = p.validate( 21 ) @@ -116,22 +124,50 @@ class InRangeValidator( Validator ): ... ValueError: Not gonna happen """ + @classmethod def from_element( cls, param, elem ): - return cls( elem.get( 'message', None ), elem.get( 'min' ), elem.get( 'max' ) ) + return cls( elem.get( 'message', None ), elem.get( 'min' ), + elem.get( 'max' ), elem.get( 'exclude_min', 'false' ), + elem.get( 'exclude_max', 'false' ) ) - def __init__( self, message, range_min, range_max ): + def __init__( self, message, range_min, range_max, exclude_min=False, exclude_max=False ): + """ + When the optional exclude_min and exclude_max attributes are set + to true, the range excludes the end points (i.e., min < value < max), + while if set to False ( the default), then range includes the end points + (1.e., min <= value <= max). Combinations of exclude_min and exclude_max + values are allowed. + """ self.min = float( range_min if range_min is not None else '-inf' ) + self.exclude_min = util.asbool( exclude_min ) self.max = float( range_max if range_max is not None else 'inf' ) + self.exclude_max = util.asbool( exclude_max ) assert self.min <= self.max, 'min must be less than or equal to max' # Remove unneeded 0s and decimal from floats to make message pretty. self_min_str = str( self.min ).rstrip( '0' ).rstrip( '.' ) self_max_str = str( self.max ).rstrip( '0' ).rstrip( '.' ) - self.message = message or "Value must be between %s and %s" % ( self_min_str, self_max_str ) + op1 = '>=' + op2 = '<=' + if self.exclude_min: + op1 = '>' + if self.exclude_max: + op2 = '<' + self.message = message or "Value must be %s %s and %s %s" % ( op1, self_min_str, op2, self_max_str ) def validate( self, value, history=None ): - if not( self.min <= float( value ) <= self.max ): - raise ValueError( self.message ) + if self.exclude_min: + if not self.min < float( value ): + raise ValueError( self.message ) + else: + if not self.min <= float( value ): + raise ValueError( self.message ) + if self.exclude_max: + if not float( value ) < self.max: + raise ValueError( self.message ) + else: + if not float( value ) <= self.max: + raise ValueError( self.message ) class LengthValidator( Validator ): @@ -156,6 +192,7 @@ class LengthValidator( Validator ): ... ValueError: Must have length no more than 8 """ + @classmethod def from_element( cls, param, elem ): return cls( elem.get( 'message', None ), elem.get( 'min', None ), elem.get( 'max', None ) ) @@ -180,6 +217,7 @@ class DatasetOkValidator( Validator ): """ Validator that checks if a dataset is in an 'ok' state """ + def __init__( self, message=None ): self.message = message @@ -198,6 +236,7 @@ class MetadataValidator( Validator ): """ Validator that checks for missing metadata """ + def __init__( self, message=None, check="", skip="" ): self.message = message self.check = check.split( "," ) @@ -221,6 +260,7 @@ class UnspecifiedBuildValidator( Validator ): """ Validator that checks for dbkey not equal to '?' """ + def __init__( self, message=None ): if message is None: self.message = "Unspecified genome build, click the pencil icon in the history item to set the genome build" @@ -243,6 +283,7 @@ class UnspecifiedBuildValidator( Validator ): class NoOptionsValidator( Validator ): """Validator that checks for empty select list""" + def __init__( self, message=None ): self.message = message @@ -259,6 +300,7 @@ class NoOptionsValidator( Validator ): class EmptyTextfieldValidator( Validator ): """Validator that checks for empty text field""" + def __init__( self, message=None ): self.message = message @@ -277,6 +319,7 @@ class MetadataInFileColumnValidator( Validator ): """ Validator that checks if the value for a dataset's metadata item exists in a file. """ + @classmethod def from_element( cls, param, elem ): filename = elem.get( "filename", None ) @@ -315,6 +358,7 @@ class MetadataInDataTableColumnValidator( Validator ): """ Validator that checks if the value for a dataset's metadata item exists in a file. """ + @classmethod def from_element( cls, param, elem ): table_name = elem.get( "table_name", None ) @@ -363,7 +407,6 @@ class MetadataInDataTableColumnValidator( Validator ): return raise ValueError( self.message ) - validator_types = dict( expression=ExpressionValidator, regex=RegexValidator, in_range=InRangeValidator, diff --git a/lib/galaxy/webapps/tool_shed/controllers/groups.py b/lib/galaxy/webapps/tool_shed/controllers/groups.py index 1e1e80f1351..3fac05dee17 100644 --- a/lib/galaxy/webapps/tool_shed/controllers/groups.py +++ b/lib/galaxy/webapps/tool_shed/controllers/groups.py @@ -14,7 +14,7 @@ class Group( BaseUIController ): def index( self, trans, **kwd ): # define app configuration for generic mako template app = { - 'jscript' : "toolshed.groups" + 'jscript' : "../toolshed/scripts/toolshed.groups" } return trans.fill_template( '/webapps/tool_shed/group/index.mako', config = { diff --git a/lib/galaxy/workflow/modules.py b/lib/galaxy/workflow/modules.py index d288d64624d..d379bab244b 100644 --- a/lib/galaxy/workflow/modules.py +++ b/lib/galaxy/workflow/modules.py @@ -877,10 +877,13 @@ class ToolModule( WorkflowModule ): # Create new PJA associations with the created job, to be run on completion. # PJA Parameter Replacement (only applies to immediate actions-- rename specifically, for now) # Pass along replacement dict with the execution of the PJA so we don't have to modify the object. - post_job_actions = step.post_job_actions + + # Combine workflow and runtime post job actions into the effective post + # job actions for this execution. + effective_post_job_actions = step.post_job_actions[:] for key, value in self.runtime_post_job_actions.iteritems(): - post_job_actions.append( self.__to_pja( key, value, step ) ) - for pja in post_job_actions: + effective_post_job_actions.append( self.__to_pja( key, value, None ) ) + for pja in effective_post_job_actions: if pja.action_type in ActionBox.immediate_actions: ActionBox.execute( self.trans.app, self.trans.sa_session, pja, job, replacement_dict ) else: diff --git a/lib/tool_shed/scripts/api/common.py b/lib/tool_shed/scripts/api/common.py index 13ea5847599..ef8651bcc06 100644 --- a/lib/tool_shed/scripts/api/common.py +++ b/lib/tool_shed/scripts/api/common.py @@ -94,8 +94,10 @@ def display( url, api_key=None, return_formatted=True ): print 'Collection Members' print '------------------' for n, i in enumerate(r): - # All collection members should have a name and url in the response. - print '#%d: %s' % (n+1, i.pop( 'url' ) ) + # All collection members should have a name in the response. + # url is optional + if 'url' in i: + print '#%d: %s' % (n+1, i.pop( 'url' ) ) if 'name' in i: print ' name: %s' % i.pop( 'name' ) for k, v in i.items(): diff --git a/scripts/api/common.py b/scripts/api/common.py index d81c351a5c2..d1a58b50d77 100644 --- a/scripts/api/common.py +++ b/scripts/api/common.py @@ -89,8 +89,10 @@ def display( api_key, url, return_formatted=True ): print 'Collection Members' print '------------------' for n, i in enumerate(r): - # All collection members should have a name and url in the response. - print '#%d: %s' % (n+1, i.pop( 'url' ) ) + # All collection members should have a name in the response. + # url is optional + if 'url' in i: + print '#%d: %s' % (n+1, i.pop( 'url' ) ) if 'name' in i: print ' name: %s' % i.pop( 'name' ) for k, v in i.items(): diff --git a/static/maps/mvc/form/form-input.js.map b/static/maps/mvc/form/form-input.js.map index bb5a13f8723..a7c7c96b5f6 100644 --- a/static/maps/mvc/form/form-input.js.map +++ b/static/maps/mvc/form/form-input.js.map @@ -1 +1 @@ -{"version":3,"file":"form-input.js","sources":["../../../src/mvc/form/form-input.js"],"names":["define","Backbone","View","extend","initialize","app","options","this","text_enable","text_disable","cls_enable","cls_disable","field","default_value","setElement","_template","$field","$el","find","$optional","$optional_icon","$error_text","$error","prepend","collapsed","collapsible","value","JSON","stringify","collapsible_value","_refresh","self","on","trigger","error","text","html","show","addClass","reset","hide","removeClass","_tooltip","fadeIn","title","cls","length","tooltip","placement","attr","tmp","label","help","argument","indexOf"],"mappings":"AAGAA,UAAW,WACP,MAAOC,UAASC,KAAKC,QACjBC,WAAY,SAASC,EAAKC,GAEtBC,KAAKF,IAAMA,EAGXE,KAAKC,YAAiBH,EAAIC,QAAQE,aAAe,SACjDD,KAAKE,aAAiBJ,EAAIC,QAAQG,cAAgB,UAClDF,KAAKG,WAAiBL,EAAIC,QAAQI,YAAc,4BAChDH,KAAKI,YAAiBN,EAAIC,QAAQK,aAAe,0BAGjDJ,KAAKK,MAAQN,EAAQM,MACrBL,KAAKM,cAAgBP,EAAQO,cAG7BN,KAAKO,WAAWP,KAAKQ,UAAUT,IAG/BC,KAAKS,OAAST,KAAKU,IAAIC,KAAK,wBAC5BX,KAAKY,UAAYZ,KAAKU,IAAIC,KAAK,2BAC/BX,KAAKa,eAAiBb,KAAKU,IAAIC,KAAK,2BAA2BA,KAAK,SACpEX,KAAKc,YAAcd,KAAKU,IAAIC,KAAK,6BACjCX,KAAKe,OAASf,KAAKU,IAAIC,KAAK,wBAG5BX,KAAKS,OAAOO,QAAQhB,KAAKK,MAAMK,KAG/BV,KAAKK,MAAMY,UAAalB,EAAQmB,aAAenB,EAAQoB,OAC/BC,KAAKC,UAAUtB,EAAQoB,QAAUC,KAAKC,UAAUtB,EAAQuB,mBAGhFtB,KAAKuB,UAGL,IAAIC,GAAOxB,IACXA,MAAKY,UAAUa,GAAG,QAAS,WAEvBD,EAAKnB,MAAMY,WAAaO,EAAKnB,MAAMY,UAGnCO,EAAKD,WAGLC,EAAK1B,IAAI4B,QAAQ,aAMzBC,MAAO,SAASC,GACZ5B,KAAKc,YAAYe,KAAKD,GACtB5B,KAAKe,OAAOe,OACZ9B,KAAKU,IAAIqB,SAAS,aAKtBC,MAAO,WACHhC,KAAKe,OAAOkB,OACZjC,KAAKU,IAAIwB,YAAY,aAKzBX,SAAU,WAENvB,KAAKa,eAAeqB,cAAcH,SAAS,QAGtC/B,KAAKK,MAAMY,WAOZjB,KAAKS,OAAOwB,OACZjC,KAAKmC,SAASnC,KAAKC,YAAaD,KAAKG,YACrCH,KAAKK,MAAMc,OAASnB,KAAKK,MAAMc,MAAMnB,KAAKM,iBAP1CN,KAAKS,OAAO2B,OAAO,QACnBpC,KAAKmC,SAASnC,KAAKE,aAAcF,KAAKI,aACtCJ,KAAKF,IAAI4B,QAAQ,YAWzBS,SAAU,SAASE,EAAOC,GAClBtC,KAAKY,UAAU2B,QACfvC,KAAKa,eAAekB,SAASO,GACTE,SAAUC,UAAW,WACrBC,KAAK,sBAAuBL,GAC5BG,QAAQ,YAAYA,QAAQ,SAMxDhC,UAAW,SAAST,GAEhB,GAAI4C,GAAQ,8LAkCZ,OA1BIA,IADA5C,EAAQmB,YACQ,wDAC0BnB,EAAQ6C,MAClC,SAET7C,EAAQ6C,MAInBD,GAAgB,0CAIhBA,GAAoB,mCAChB5C,EAAQ8C,OACRF,GAAoB5C,EAAQ8C,KACxB9C,EAAQ+C,UAAsD,IAA1C/C,EAAQ8C,KAAKE,QAAQhD,EAAQ+C,YACjDH,GAAO,KAAO5C,EAAQ+C,SAAW,MAGzCH,GAAoB,SAGpBA,GAAgB"} \ No newline at end of file +{"version":3,"file":"form-input.js","sources":["../../../src/mvc/form/form-input.js"],"names":["define","Backbone","View","extend","initialize","app","options","this","text_enable","text_disable","cls_enable","cls_disable","field","default_value","setElement","_template","$field","$el","find","$optional","$optional_icon","$error_text","$error","prepend","collapsed","collapsible","value","JSON","stringify","collapsible_value","_refresh","self","on","trigger","error","text","html","show","addClass","reset","hide","removeClass","_tooltip","fadeIn","title","cls","length","tooltip","placement","attr","tmp","label","help","argument","indexOf"],"mappings":"AAGAA,UAAW,WACP,MAAOC,UAASC,KAAKC,QACjBC,WAAY,SAASC,EAAKC,GAEtBC,KAAKF,IAAMA,EAGXE,KAAKC,YAAiBH,EAAIC,QAAQE,aAAe,SACjDD,KAAKE,aAAiBJ,EAAIC,QAAQG,cAAgB,UAClDF,KAAKG,WAAiBL,EAAIC,QAAQI,YAAc,4BAChDH,KAAKI,YAAiBN,EAAIC,QAAQK,aAAe,0BAGjDJ,KAAKK,MAAQN,EAAQM,MACrBL,KAAKM,cAAgBP,EAAQO,cAG7BN,KAAKO,WAAWP,KAAKQ,UAAUT,IAG/BC,KAAKS,OAAST,KAAKU,IAAIC,KAAK,wBAC5BX,KAAKY,UAAYZ,KAAKU,IAAIC,KAAK,2BAC/BX,KAAKa,eAAiBb,KAAKU,IAAIC,KAAK,2BAA2BA,KAAK,SACpEX,KAAKc,YAAcd,KAAKU,IAAIC,KAAK,6BACjCX,KAAKe,OAASf,KAAKU,IAAIC,KAAK,wBAG5BX,KAAKS,OAAOO,QAAQhB,KAAKK,MAAMK,KAG/BV,KAAKK,MAAMY,UAAalB,EAAQmB,aAAenB,EAAQoB,OAC/BC,KAAKC,UAAUtB,EAAQoB,QAAUC,KAAKC,UAAUtB,EAAQuB,mBAGhFtB,KAAKuB,UAGL,IAAIC,GAAOxB,IACXA,MAAKY,UAAUa,GAAG,QAAS,WAEvBD,EAAKnB,MAAMY,WAAaO,EAAKnB,MAAMY,UAGnCO,EAAKD,WAGLC,EAAK1B,IAAI4B,QAAQ,aAMzBC,MAAO,SAASC,GACZ5B,KAAKc,YAAYe,KAAKD,GACtB5B,KAAKe,OAAOe,OACZ9B,KAAKU,IAAIqB,SAAS,aAKtBC,MAAO,WACHhC,KAAKe,OAAOkB,OACZjC,KAAKU,IAAIwB,YAAY,aAKzBX,SAAU,WAENvB,KAAKa,eAAeqB,cAAcH,SAAS,QAGtC/B,KAAKK,MAAMY,WAOZjB,KAAKS,OAAOwB,OACZjC,KAAKmC,SAASnC,KAAKC,YAAaD,KAAKG,YACrCH,KAAKK,MAAMc,OAASnB,KAAKK,MAAMc,MAAMnB,KAAKM,iBAP1CN,KAAKS,OAAO2B,OAAO,QACnBpC,KAAKmC,SAASnC,KAAKE,aAAcF,KAAKI,aACtCJ,KAAKF,IAAI4B,QAAQ,YAWzBS,SAAU,SAASE,EAAOC,GAClBtC,KAAKY,UAAU2B,QACfvC,KAAKa,eAAekB,SAASO,GACTE,SAAUC,UAAW,WACrBC,KAAK,sBAAuBL,GAC5BG,QAAQ,YAAYA,QAAQ,SAMxDhC,UAAW,SAAST,GAEhB,GAAI4C,GAAQ,8LAkCZ,OA1BIA,IADA5C,EAAQmB,YACQ,wDAC0BnB,EAAQ6C,MAClC,SAET7C,EAAQ6C,MAInBD,GAAgB,0CAIhBA,GAAoB,mCAChB5C,EAAQ8C,OACRF,GAAoB5C,EAAQ8C,KACxB9C,EAAQ+C,UAAkE,IAAtD/C,EAAQ8C,KAAKE,QAAQ,IAAMhD,EAAQ+C,SAAW,OAClEH,GAAO,KAAO5C,EAAQ+C,SAAW,MAGzCH,GAAoB,SAGpBA,GAAgB"} \ No newline at end of file diff --git a/static/scripts/mvc/form/form-input.js b/static/scripts/mvc/form/form-input.js index 72b89e1821c..076cd0680fe 100644 --- a/static/scripts/mvc/form/form-input.js +++ b/static/scripts/mvc/form/form-input.js @@ -1,2 +1,2 @@ -define([],function(){return Backbone.View.extend({initialize:function(a,b){this.app=a,this.text_enable=a.options.text_enable||"Enable",this.text_disable=a.options.text_disable||"Disable",this.cls_enable=a.options.cls_enable||"fa fa-caret-square-o-down",this.cls_disable=a.options.cls_disable||"fa fa-caret-square-o-up",this.field=b.field,this.default_value=b.default_value,this.setElement(this._template(b)),this.$field=this.$el.find(".ui-table-form-field"),this.$optional=this.$el.find(".ui-table-form-optional"),this.$optional_icon=this.$el.find(".ui-table-form-optional").find(".icon"),this.$error_text=this.$el.find(".ui-table-form-error-text"),this.$error=this.$el.find(".ui-table-form-error"),this.$field.prepend(this.field.$el),this.field.collapsed=b.collapsible&&b.value&&JSON.stringify(b.value)==JSON.stringify(b.collapsible_value),this._refresh();var c=this;this.$optional.on("click",function(){c.field.collapsed=!c.field.collapsed,c._refresh(),c.app.trigger("change")})},error:function(a){this.$error_text.html(a),this.$error.show(),this.$el.addClass("ui-error")},reset:function(){this.$error.hide(),this.$el.removeClass("ui-error")},_refresh:function(){this.$optional_icon.removeClass().addClass("icon"),this.field.collapsed?(this.$field.hide(),this._tooltip(this.text_enable,this.cls_enable),this.field.value&&this.field.value(this.default_value)):(this.$field.fadeIn("fast"),this._tooltip(this.text_disable,this.cls_disable),this.app.trigger("change"))},_tooltip:function(a,b){this.$optional.length&&this.$optional_icon.addClass(b).tooltip({placement:"bottom"}).attr("data-original-title",a).tooltip("fixTitle").tooltip("hide")},_template:function(a){var b='
';return b+=a.collapsible?'
'+a.label+"
":a.label,b+='
',b+='
',a.help&&(b+=a.help,a.argument&&-1==a.help.indexOf(a.argument)&&(b+=" ("+a.argument+")")),b+="
",b+="
"}})}); +define([],function(){return Backbone.View.extend({initialize:function(a,b){this.app=a,this.text_enable=a.options.text_enable||"Enable",this.text_disable=a.options.text_disable||"Disable",this.cls_enable=a.options.cls_enable||"fa fa-caret-square-o-down",this.cls_disable=a.options.cls_disable||"fa fa-caret-square-o-up",this.field=b.field,this.default_value=b.default_value,this.setElement(this._template(b)),this.$field=this.$el.find(".ui-table-form-field"),this.$optional=this.$el.find(".ui-table-form-optional"),this.$optional_icon=this.$el.find(".ui-table-form-optional").find(".icon"),this.$error_text=this.$el.find(".ui-table-form-error-text"),this.$error=this.$el.find(".ui-table-form-error"),this.$field.prepend(this.field.$el),this.field.collapsed=b.collapsible&&b.value&&JSON.stringify(b.value)==JSON.stringify(b.collapsible_value),this._refresh();var c=this;this.$optional.on("click",function(){c.field.collapsed=!c.field.collapsed,c._refresh(),c.app.trigger("change")})},error:function(a){this.$error_text.html(a),this.$error.show(),this.$el.addClass("ui-error")},reset:function(){this.$error.hide(),this.$el.removeClass("ui-error")},_refresh:function(){this.$optional_icon.removeClass().addClass("icon"),this.field.collapsed?(this.$field.hide(),this._tooltip(this.text_enable,this.cls_enable),this.field.value&&this.field.value(this.default_value)):(this.$field.fadeIn("fast"),this._tooltip(this.text_disable,this.cls_disable),this.app.trigger("change"))},_tooltip:function(a,b){this.$optional.length&&this.$optional_icon.addClass(b).tooltip({placement:"bottom"}).attr("data-original-title",a).tooltip("fixTitle").tooltip("hide")},_template:function(a){var b='
';return b+=a.collapsible?'
'+a.label+"
":a.label,b+='
',b+='
',a.help&&(b+=a.help,a.argument&&-1==a.help.indexOf("("+a.argument+")")&&(b+=" ("+a.argument+")")),b+="
",b+="
"}})}); //# sourceMappingURL=../../../maps/mvc/form/form-input.js.map \ No newline at end of file diff --git a/static/scripts/mvc/groups/group-detail-view.js b/static/scripts/mvc/groups/group-detail-view.js deleted file mode 100644 index fcee488d131..00000000000 --- a/static/scripts/mvc/groups/group-detail-view.js +++ /dev/null @@ -1,2 +0,0 @@ -define(["libs/toastr","mvc/groups/group-model"],function(a,b){var c=Backbone.View.extend({el:"#groups_element",options:{},app:null,initialize:function(a){this.options=_.extend(this.options,a),this.app=window.globalTS.groups,null!==this.app.collection?(this.model=this.app.collection.get(this.options.group_id),this.render()):this.fetchGroup()},fetchGroup:function(c){var d=this;this.options=_.extend(this.options,c),this.model=new b.Group({id:this.options.group_id}),this.model.fetch({success:function(a){console.log("received data: "),console.log(a),d.render()},error:function(b,c){a.error("undefined"!=typeof c.responseJSON?c.responseJSON.err_msg:"An error ocurred.")}})},render:function(){var a=this.templateRow();this.$el.html(a({group:this.model})),$("#center [data-toggle]").tooltip()},templateRow:function(){return _.template(["
",'

<%= group.get("name") %>

','

','A group of <%= group.get("members").length %> members with <%= group.get("repositories").length %> repositories and a total of <%= group.get("total_downloads") %> combined tool downloads.

',"

Members

",'',"","","","","","",'<% _.each(group.get("members"), function(member) { %>',"","","","","","<% }); %>","","
NameRepositoriesRegistered
","<%= member.username %>","",'<%= member.user_repos_count %>',"","<%= member.time_created %>","
","

Repositories

",'',"","","","","","","","","","",'<% _.each(group.get("repositories"), function(repo) { %>',"","","","","","","","","","<% }); %>","","
NameDescriptionDownloadsOwnerCreatedRatingVerified
",'<%= repo.name %>',"","<%= repo.description %>","","<%= repo.times_downloaded %>","","<%= repo.owner %>","","<%= repo.time_created %>","","<%= repo.ratings_mean %>","","<%= repo.approved %>","
","
"].join(""))}});return{GroupDetailView:c}}); -//# sourceMappingURL=../../../maps/mvc/groups/group-detail-view.js.map \ No newline at end of file diff --git a/static/scripts/mvc/groups/group-groupdetail-view.js b/static/scripts/mvc/groups/group-groupdetail-view.js deleted file mode 100644 index ac9d5f5c776..00000000000 --- a/static/scripts/mvc/groups/group-groupdetail-view.js +++ /dev/null @@ -1,2 +0,0 @@ -define([],function(){var a=Backbone.View.extend({events:{},initialize:function(a){this.render(a)},render:function(a){var b=this.templateRow();return this.setElement(b({group:a})),this.$el.show(),this},templateRow:function(){return _.template(["
TEST GROUP PAGE
"].join(""))}});return{GroupDetailView:a}}); -//# sourceMappingURL=../../../maps/mvc/groups/group-groupdetail-view.js.map \ No newline at end of file diff --git a/static/scripts/mvc/groups/group-grouprow-view.js b/static/scripts/mvc/groups/group-grouprow-view.js deleted file mode 100644 index 49178b680f1..00000000000 --- a/static/scripts/mvc/groups/group-grouprow-view.js +++ /dev/null @@ -1,2 +0,0 @@ -define([],function(){var a=Backbone.View.extend({events:{},initialize:function(a){this.render(a)},render:function(a){var b=this.templateRow();return this.setElement(b({group:a})),this.$el.show(),this},templateRow:function(){return _.template(['">','"><%= group.get("name") %>',"description",'<%= group.get("total_members") %>','<%= group.get("total_repos") %>',""].join(""))}});return{GroupRowView:a}}); -//# sourceMappingURL=../../../maps/mvc/groups/group-grouprow-view.js.map \ No newline at end of file diff --git a/static/scripts/mvc/groups/group-list-view.js b/static/scripts/mvc/groups/group-list-view.js deleted file mode 100644 index d14a196bd3f..00000000000 --- a/static/scripts/mvc/groups/group-list-view.js +++ /dev/null @@ -1,2 +0,0 @@ -define(["libs/toastr","mvc/groups/group-model","mvc/groups/group-listrow-view"],function(a,b,c){var d=Backbone.View.extend({el:"#groups_element",defaults:{},initialize:function(c){this.options=_.defaults(this.options||{},this.defaults,c);var d=this;window.globalTS.groups.collection=new b.Groups,window.globalTS.groups.collection.fetch({success:function(a){console.log("received data: "),console.log(a),d.render()},error:function(b,c){a.error("undefined"!=typeof c.responseJSON?c.responseJSON.err_msg:"An error ocurred.")}})},fetch:function(){},render:function(a){this.options=_.extend(this.options,a),$(".tooltip").hide();var b=this.templateGroupsList();this.$el.html(b({length:10,order:"asc"})),this.renderRows(window.globalTS.groups.collection.models),$("#center [data-toggle]").tooltip(),$("#center").css("overflow","auto")},renderRows:function(a){for(var b=0;b'),tmpl_array.push("
"),tmpl_array.push('
'),tmpl_array.push("<% if(length === 0) { %>"),tmpl_array.push("
There are no groups yet.
"),tmpl_array.push("<% } else{ %>"),tmpl_array.push(''),tmpl_array.push(" "),tmpl_array.push(' '),tmpl_array.push(' '),tmpl_array.push(' '),tmpl_array.push(' '),tmpl_array.push(" "),tmpl_array.push(' '),tmpl_array.push(" "),tmpl_array.push("
name descriptionmembersrepositories
"),tmpl_array.push("<% }%>"),tmpl_array.push("
"),_.template(tmpl_array.join(""))}});return{GroupListView:d}}); -//# sourceMappingURL=../../../maps/mvc/groups/group-list-view.js.map \ No newline at end of file diff --git a/static/scripts/mvc/groups/group.model.js b/static/scripts/mvc/groups/group.model.js deleted file mode 100644 index b050bdad096..00000000000 --- a/static/scripts/mvc/groups/group.model.js +++ /dev/null @@ -1,2 +0,0 @@ -define([],function(){var a=Backbone.Model.extend({urlRoot:"/api/groups/"}),b=Backbone.Collection.extend({url:"/api/groups",model:a});return{Group:a,Groups:b}}); -//# sourceMappingURL=../../../maps/mvc/groups/group.model.js.map \ No newline at end of file diff --git a/static/scripts/toolshed.groups.js b/static/scripts/toolshed.groups.js deleted file mode 100644 index 4c0663b9afb..00000000000 --- a/static/scripts/toolshed.groups.js +++ /dev/null @@ -1,2 +0,0 @@ -define(["mvc/groups/group-list-view","mvc/groups/group-detail-view","mvc/groups/group-model"],function(a,b){var c=Backbone.Router.extend({routes:{"":"groups",":group_id":"group_page"}}),d=Backbone.View.extend({groupListView:null,groupDetailView:null,collection:null,initialize:function(){window.globalTS.groups=this,this.ts_router=new c,this.ts_router.on("route:groups",function(){window.globalTS.groups.groupListView=new a.GroupListView}),this.ts_router.on("route:group_page",function(a){window.globalTS.groups.groupDetailView=new b.GroupDetailView({group_id:a})}),Backbone.history.start({pushState:!1})}});return{ToolshedGroups:d}}); -//# sourceMappingURL=../maps/toolshed.groups.js.map \ No newline at end of file diff --git a/static/toolshed/maps/mvc/groups/group-detail-view.js.map b/static/toolshed/maps/mvc/groups/group-detail-view.js.map new file mode 100644 index 00000000000..516498bde80 --- /dev/null +++ b/static/toolshed/maps/mvc/groups/group-detail-view.js.map @@ -0,0 +1 @@ +{"version":3,"file":"group-detail-view.js","sources":["../../../src/mvc/groups/group-detail-view.js"],"names":["define","mod_toastr","mod_group_model","GroupDetailView","Backbone","View","extend","el","options","app","initialize","this","_","window","globalTS","groups","collection","model","get","group_id","render","fetchGroup","that","Group","id","fetch","success","console","log","error","response","responseJSON","err_msg","template","templateRow","$el","html","group","$","tooltip","join"],"mappings":"AAAAA,QACI,cACA,2CAEJ,SACIC,EACAC,GAIJ,GAAIC,GAAkBC,SAASC,KAAKC,QAChCC,GAAI,kBACJC,WACAC,IAAK,KAELC,WAAa,SAAUF,GACnBG,KAAKH,QAAUI,EAAEN,OAAQK,KAAKH,QAASA,GACvCG,KAAKF,IAAMI,OAAOC,SAASC,OAEE,OAAxBJ,KAAKF,IAAIO,YACVL,KAAKM,MAAQN,KAAKF,IAAIO,WAAWE,IAAKP,KAAKH,QAAQW,UACnDR,KAAKS,UAELT,KAAKU,cAKbA,WAAY,SAAUb,GAClB,GAAIc,GAAOX,IACXA,MAAKH,QAAUI,EAAEN,OAAQK,KAAKH,QAASA,GACvCG,KAAKM,MAAQ,GAAIf,GAAgBqB,OAASC,GAAIb,KAAKH,QAAQW,WAC3DR,KAAKM,MAAMQ,OACTC,QAAS,SAAUT,GACjBU,QAAQC,IAAK,mBACbD,QAAQC,IAAKX,GACbK,EAAKF,UAEPS,MAAO,SAAUZ,EAAOa,GAElB7B,EAAW4B,MADyB,mBAA1BC,GAASC,aACDD,EAASC,aAAaC,QAEtB,yBAM9BZ,OAAQ,WACJ,GAAIa,GAAWtB,KAAKuB,aACpBvB,MAAKwB,IAAIC,KAAMH,GAAYI,MAAO1B,KAAKM,SACvCqB,EAAE,yBAAyBC,WAG/BL,YAAa,WACT,MAAOtB,GAAEqB,UACD,QACI,oCACA,mCACA,kMAEA,mBACA,6CACI,UACI,gBACA,wBACA,sBACJ,WACA,UACI,wDACA,OACI,OACI,yBACJ,QACA,OACI,gPACJ,QACA,OACI,6BACJ,QACJ,QACA,YACJ,WACJ,WAEA,wBACA,6CACI,UACI,gBACA,uBACA,qBACA,iBACA,mBACA,kBACA,oBACJ,WACA,UACI,2DACA,OACI,OACI,6KACJ,QACA,OACI,0BACJ,QACA,OACI,+BACJ,QACA,OACI,oBACJ,QACA,OACI,2BACJ,QACA,OACI,2BACJ,QACA,OACI,uBACJ,QACJ,QACA,YACJ,WACJ,WACJ,UACNO,KAAK,OAGf,QACIrC,gBAAiBA"} \ No newline at end of file diff --git a/static/toolshed/maps/mvc/groups/group-list-view.js.map b/static/toolshed/maps/mvc/groups/group-list-view.js.map new file mode 100644 index 00000000000..2214b0b5952 --- /dev/null +++ b/static/toolshed/maps/mvc/groups/group-list-view.js.map @@ -0,0 +1 @@ +{"version":3,"file":"group-list-view.js","sources":["../../../src/mvc/groups/group-list-view.js"],"names":["define","mod_toastr","mod_group_model","mod_group_row","GroupListView","Backbone","View","extend","el","defaults","initialize","options","this","_","that","window","globalTS","groups","collection","Groups","fetch","success","model","console","log","render","error","response","responseJSON","err_msg","$","hide","template","templateGroupsList","$el","html","length","order","renderRows","models","tooltip","css","groups_to_render","i","group","renderOne","rowView","GroupListRowView","find","append","tmpl_array","push","join"],"mappings":"AAAAA,QACI,cACA,0CACA,kDAED,SACCC,EACAC,EACAC,GAGJ,GAAIC,GAAgBC,SAASC,KAAKC,QAC9BC,GAAI,kBACJC,YAOAC,WAAa,SAAUC,GACnBC,KAAKD,QAAUE,EAAEJ,SAAUG,KAAKD,YAAeC,KAAKH,SAAUE,EAC9D,IAAIG,GAAOF,IACXG,QAAOC,SAASC,OAAOC,WAAa,GAAIhB,GAAgBiB,OACxDJ,OAAOC,SAASC,OAAOC,WAAWE,OAChCC,QAAS,SAAUC,GACjBC,QAAQC,IAAK,mBACbD,QAAQC,IAAKF,GACbR,EAAKW,UAEPC,MAAO,SAAUJ,EAAOK,GAElB1B,EAAWyB,MADyB,mBAA1BC,GAASC,aACDD,EAASC,aAAaC,QAEtB,yBAO9BT,MAAO,aAMPK,OAAQ,SAAWd,GACfC,KAAKD,QAAUE,EAAEN,OAAQK,KAAKD,QAASA,GACvCmB,EAAG,YAAaC,MAChB,IAAIC,GAAWpB,KAAKqB,oBACpBrB,MAAKsB,IAAIC,KAAMH,GAAYI,OAAQ,GAAIC,MAAO,SAC9CzB,KAAK0B,WAAYvB,OAAOC,SAASC,OAAOC,WAAWqB,QACnDT,EAAG,yBAA0BU,UAC7BV,EAAG,WAAYW,IAAK,WAAW,SAOnCH,WAAY,SAAUI,GAClB,IAAM,GAAIC,GAAI,EAAGA,EAAID,EAAiBN,OAAQO,IAAM,CAChD,GAAIC,GAAQF,EAAiBC,EAC7B/B,MAAKiC,WAAaD,MAAOA,MAQjCC,UAAW,SAAUlC,GACjB,GAAImC,GAAU,GAAI3C,GAAc4C,iBAAkBpC,EAClDC,MAAKsB,IAAIc,KAAM,oBAAqBC,OAAQH,EAAQtC,KAyCxDyB,mBAAoB,WAuBhB,MAtBAiB,eAEAA,WAAWC,KAAK,qBAChBD,WAAWC,KAAK,UAChBD,WAAWC,KAAK,mDAChBD,WAAWC,KAAK,4BAChBD,WAAWC,KAAK,uCAChBD,WAAWC,KAAK,iBAChBD,WAAWC,KAAK,8CAChBD,WAAWC,KAAK,cAChBD,WAAWC,KAAK,mMAChBD,WAAWC,KAAK,gDAChBD,WAAWC,KAAK,6CAChBD,WAAWC,KAAK,iDAChBD,WAAWC,KAAK,eAChBD,WAAWC,KAAK,mCAEhBD,WAAWC,KAAK,eAChBD,WAAWC,KAAK,YAChBD,WAAWC,KAAK,UAChBD,WAAWC,KAAK,UAETtC,EAAEmB,SAASkB,WAAWE,KAAK,OAK1C,QACIhD,cAAeA"} \ No newline at end of file diff --git a/static/toolshed/maps/mvc/groups/group-listrow-view.js.map b/static/toolshed/maps/mvc/groups/group-listrow-view.js.map new file mode 100644 index 00000000000..a3a50073eab --- /dev/null +++ b/static/toolshed/maps/mvc/groups/group-listrow-view.js.map @@ -0,0 +1 @@ +{"version":3,"file":"group-listrow-view.js","sources":["../../../src/mvc/groups/group-listrow-view.js"],"names":["define","GroupListRowView","Backbone","View","extend","events","initialize","options","this","render","group","tmpl","templateRow","setElement","$el","show","_","template","join"],"mappings":"AAAAA,UACA,WAGA,GAAIC,GAAmBC,SAASC,KAAKC,QACjCC,UAEAC,WAAa,SAAUC,GACnBC,KAAKC,OAAQF,EAAQG,QAGzBD,OAAQ,SAAUC,GACd,GAAIC,GAAOH,KAAKI,aAGhB,OAFAJ,MAAKK,WAAWF,GAAQD,MAAMA,KAC9BF,KAAKM,IAAIC,OACFP,MAGXI,YAAa,WACT,MAAOI,GAAEC,UACD,iDACA,iFACA,uBACA,6CACA,2CACA,SACNC,KAAK,OAKf,QACIjB,iBAAkBA"} \ No newline at end of file diff --git a/static/toolshed/maps/mvc/groups/group-model.js.map b/static/toolshed/maps/mvc/groups/group-model.js.map new file mode 100644 index 00000000000..7cf16222049 --- /dev/null +++ b/static/toolshed/maps/mvc/groups/group-model.js.map @@ -0,0 +1 @@ +{"version":3,"file":"group-model.js","sources":["../../../src/mvc/groups/group-model.js"],"names":["define","Group","Backbone","Model","extend","urlRoot","Groups","Collection","url","model"],"mappings":"AAAAA,UAAW,WAKP,GAAIC,GAAQC,SAASC,MAAMC,QACzBC,QAAS,gBAGPC,EAASJ,SAASK,WAAWH,QAC/BI,IAAK,cAELC,MAAOR,GAIb,QACIA,MAAOA,EACPK,OAAQA"} \ No newline at end of file diff --git a/static/toolshed/maps/test-file.js.map b/static/toolshed/maps/test-file.js.map new file mode 100644 index 00000000000..60e635db925 --- /dev/null +++ b/static/toolshed/maps/test-file.js.map @@ -0,0 +1 @@ +{"version":3,"file":"test-file.js","sources":["../src/test-file.js"],"names":["define"],"mappings":"AAAAA,UAAY,WACX,MAAO"} \ No newline at end of file diff --git a/static/toolshed/maps/toolshed.groups.js.map b/static/toolshed/maps/toolshed.groups.js.map new file mode 100644 index 00000000000..654c967d2c1 --- /dev/null +++ b/static/toolshed/maps/toolshed.groups.js.map @@ -0,0 +1 @@ +{"version":3,"file":"toolshed.groups.js","sources":["../src/toolshed.groups.js"],"names":["define","mod_group_list","mod_group_detail","ToolshedRouter","Backbone","Router","extend","routes",":group_id","ToolshedGroups","View","groupListView","groupDetailView","collection","initialize","window","globalTS","groups","this","ts_router","on","GroupListView","group_id","GroupDetailView","history","start","pushState"],"mappings":"AAIAA,QACQ,8CACA,gDACA,2CAEJ,SACIC,EACAC,GAMR,GAAIC,GAAiBC,SAASC,OAAOC,QACjCC,QACI,GAA4B,SAC5BC,YAA4B,gBAKhCC,EAAiBL,SAASM,KAAKJ,QAC/BK,cAAe,KACfC,gBAAiB,KACjBC,WAAY,KAEZC,WAAa,WACTC,OAAOC,SAASC,OAASC,KAEzBA,KAAKC,UAAY,GAAIhB,GACrBe,KAAKC,UAAUC,GAAI,eAAgB,WAC/BL,OAAOC,SAASC,OAAON,cAAgB,GAAIV,GAAeoB,gBAG9DH,KAAKC,UAAUC,GAAI,mBAAoB,SAAUE,GAC7CP,OAAOC,SAASC,OAAOL,gBAAkB,GAAIV,GAAiBqB,iBAAmBD,SAAUA,MAG/FlB,SAASoB,QAAQC,OAAOC,WAAW,MAI3C,QACIjB,eAAgBA"} \ No newline at end of file diff --git a/static/toolshed/scripts/mvc/groups/group-detail-view.js b/static/toolshed/scripts/mvc/groups/group-detail-view.js new file mode 100644 index 00000000000..92a188269c3 --- /dev/null +++ b/static/toolshed/scripts/mvc/groups/group-detail-view.js @@ -0,0 +1,2 @@ +define(["libs/toastr","toolshed/scripts/mvc/groups/group-model"],function(a,b){var c=Backbone.View.extend({el:"#groups_element",options:{},app:null,initialize:function(a){this.options=_.extend(this.options,a),this.app=window.globalTS.groups,null!==this.app.collection?(this.model=this.app.collection.get(this.options.group_id),this.render()):this.fetchGroup()},fetchGroup:function(c){var d=this;this.options=_.extend(this.options,c),this.model=new b.Group({id:this.options.group_id}),this.model.fetch({success:function(a){console.log("received data: "),console.log(a),d.render()},error:function(b,c){a.error("undefined"!=typeof c.responseJSON?c.responseJSON.err_msg:"An error ocurred.")}})},render:function(){var a=this.templateRow();this.$el.html(a({group:this.model})),$("#center [data-toggle]").tooltip()},templateRow:function(){return _.template(["
",'

<%= group.get("name") %>

','

','A group of <%= group.get("members").length %> members with <%= group.get("repositories").length %> repositories and a total of <%= group.get("total_downloads") %> combined tool downloads.

',"

Members

",'',"","","","","","",'<% _.each(group.get("members"), function(member) { %>',"","","","","","<% }); %>","","
NameRepositoriesRegistered
","<%= member.username %>","",'<%= member.user_repos_count %>',"","<%= member.time_created %>","
","

Repositories

",'',"","","","","","","","","","",'<% _.each(group.get("repositories"), function(repo) { %>',"","","","","","","","","","<% }); %>","","
NameDescriptionDownloadsOwnerCreatedRatingVerified
",'<%= repo.name %>',"","<%= repo.description %>","","<%= repo.times_downloaded %>","","<%= repo.owner %>","","<%= repo.time_created %>","","<%= repo.ratings_mean %>","","<%= repo.approved %>","
","
"].join(""))}});return{GroupDetailView:c}}); +//# sourceMappingURL=../../../maps/mvc/groups/group-detail-view.js.map \ No newline at end of file diff --git a/static/toolshed/scripts/mvc/groups/group-list-view.js b/static/toolshed/scripts/mvc/groups/group-list-view.js new file mode 100644 index 00000000000..f956c996d92 --- /dev/null +++ b/static/toolshed/scripts/mvc/groups/group-list-view.js @@ -0,0 +1,2 @@ +define(["libs/toastr","toolshed/scripts/mvc/groups/group-model","toolshed/scripts/mvc/groups/group-listrow-view"],function(a,b,c){var d=Backbone.View.extend({el:"#groups_element",defaults:{},initialize:function(c){this.options=_.defaults(this.options||{},this.defaults,c);var d=this;window.globalTS.groups.collection=new b.Groups,window.globalTS.groups.collection.fetch({success:function(a){console.log("received data: "),console.log(a),d.render()},error:function(b,c){a.error("undefined"!=typeof c.responseJSON?c.responseJSON.err_msg:"An error ocurred.")}})},fetch:function(){},render:function(a){this.options=_.extend(this.options,a),$(".tooltip").hide();var b=this.templateGroupsList();this.$el.html(b({length:10,order:"asc"})),this.renderRows(window.globalTS.groups.collection.models),$("#center [data-toggle]").tooltip(),$("#center").css("overflow","auto")},renderRows:function(a){for(var b=0;b'),tmpl_array.push(""),tmpl_array.push('
'),tmpl_array.push("<% if(length === 0) { %>"),tmpl_array.push("
There are no groups yet.
"),tmpl_array.push("<% } else{ %>"),tmpl_array.push(''),tmpl_array.push(" "),tmpl_array.push(' '),tmpl_array.push(' '),tmpl_array.push(' '),tmpl_array.push(' '),tmpl_array.push(" "),tmpl_array.push(' '),tmpl_array.push(" "),tmpl_array.push("
name descriptionmembersrepositories
"),tmpl_array.push("<% }%>"),tmpl_array.push("
"),_.template(tmpl_array.join(""))}});return{GroupListView:d}}); +//# sourceMappingURL=../../../maps/mvc/groups/group-list-view.js.map \ No newline at end of file diff --git a/static/scripts/mvc/groups/group-listrow-view.js b/static/toolshed/scripts/mvc/groups/group-listrow-view.js similarity index 100% rename from static/scripts/mvc/groups/group-listrow-view.js rename to static/toolshed/scripts/mvc/groups/group-listrow-view.js diff --git a/static/scripts/mvc/groups/group-model.js b/static/toolshed/scripts/mvc/groups/group-model.js similarity index 100% rename from static/scripts/mvc/groups/group-model.js rename to static/toolshed/scripts/mvc/groups/group-model.js diff --git a/static/toolshed/scripts/toolshed.groups.js b/static/toolshed/scripts/toolshed.groups.js new file mode 100644 index 00000000000..87de050425f --- /dev/null +++ b/static/toolshed/scripts/toolshed.groups.js @@ -0,0 +1,2 @@ +define(["toolshed/scripts/mvc/groups/group-list-view","toolshed/scripts/mvc/groups/group-detail-view","toolshed/scripts/mvc/groups/group-model"],function(a,b){var c=Backbone.Router.extend({routes:{"":"groups",":group_id":"group_page"}}),d=Backbone.View.extend({groupListView:null,groupDetailView:null,collection:null,initialize:function(){window.globalTS.groups=this,this.ts_router=new c,this.ts_router.on("route:groups",function(){window.globalTS.groups.groupListView=new a.GroupListView}),this.ts_router.on("route:group_page",function(a){window.globalTS.groups.groupDetailView=new b.GroupDetailView({group_id:a})}),Backbone.history.start({pushState:!1})}});return{ToolshedGroups:d}}); +//# sourceMappingURL=../maps/toolshed.groups.js.map \ No newline at end of file diff --git a/templates/webapps/tool_shed/group/index.mako b/templates/webapps/tool_shed/group/index.mako index e070faec5ee..297c16fda8d 100644 --- a/templates/webapps/tool_shed/group/index.mako +++ b/templates/webapps/tool_shed/group/index.mako @@ -41,6 +41,11 @@