galaxy-commits
Threads by month
- ----- 2024 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
April 2014
- 1 participants
- 261 discussions
commit/galaxy-central: carlfeberhard: QA: adjust HDA API test for new anon ability to create contents
by commits-noreply@bitbucket.org 18 Apr '14
by commits-noreply@bitbucket.org 18 Apr '14
18 Apr '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/47860aa3f96d/
Changeset: 47860aa3f96d
User: carlfeberhard
Date: 2014-04-18 16:25:37
Summary: QA: adjust HDA API test for new anon ability to create contents
Affected #: 1 file
diff -r 5bbadf58b213db0e23740a01396f38699dbd7ccd -r 47860aa3f96d9d1276e08f0590506d5cf1c15fc7 test/casperjs/api-anon-history-tests.js
--- a/test/casperjs/api-anon-history-tests.js
+++ b/test/casperjs/api-anon-history-tests.js
@@ -114,25 +114,29 @@
this.test.assert( hda.deleted, 'successfully deleted' );
// ------------------------------------------------------------------------------------------- anon forbidden
- //TODO: should be allowed...
- this.test.comment( 'Calling create should fail for an anonymous user' );
- this.api.assertRaises( function(){
- this.api.hdas.create( current.id, { source: 'hda', content: 'doesntmatter' });
- }, 403, 'API authentication required for this request', 'create failed with error' );
+ this.test.comment( 'Creating an hda should work for an anonymous user' );
+ var returned = this.api.hdas.create( current.id, { source: 'hda', content: hda.id });
+ //this.debug( this.jsonStr( returned ) );
+ this.test.assert( returned.name === hda.name, 'name matches: ' + returned.name );
+ this.test.assert( returned.id !== hda.id, 'new id: ' + returned.id );
- //TODO: should be allowed (along with purge) and automatically creates new history (as UI)
- this.test.comment( 'Calling delete should fail for an anonymous user' );
+ //TODO: should be allowed
+ this.test.comment( 'Calling hda delete should fail for an anonymous user' );
this.api.assertRaises( function(){
this.api.hdas.delete_( current.id, hda.id );
}, 403, 'API authentication required for this request', 'delete failed with error' );
//TODO: only sharing, tags, annotations should be blocked/prevented
this.test.comment( 'Calling update with keys other than "visible" or "deleted" should fail silently' );
+ this.test.comment( 'Calling update on tags should fail silently' );
changed = this.api.hdas.update( current.id, hda.id, { tags: [ 'one' ] });
hda = this.api.hdas.show( current.id, hda.id );
- this.debug( this.jsonStr( hda.tags ) );
+ this.test.assert( hda.tags.length === 0, 'tags were not set: ' + this.jsonStr( hda.tags ) );
- this.test.assert( hda.tags.length === 0, 'tags were not set' );
+ this.test.comment( 'Calling update on annotation should fail silently' );
+ changed = this.api.hdas.update( current.id, hda.id, { annotation: 'yup yup yup' });
+ hda = this.api.hdas.show( current.id, hda.id );
+ this.test.assert( !hda.annotation, 'annotation was not set: ' + hda.annotation );
});
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
2 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/3d30cac626a8/
Changeset: 3d30cac626a8
User: carlfeberhard
Date: 2014-04-18 15:56:31
Summary: QA: add qunit tests for galaxy-app-base; Fix defaults in metrics-logger tests
Affected #: 4 files
diff -r 7f05a259b98a16f0cb86e69a9c2e8746f1520623 -r 3d30cac626a8484eaba7d28adb0359eb9e124b4d static/scripts/galaxy-app-base.js
--- a/static/scripts/galaxy-app-base.js
+++ b/static/scripts/galaxy-app-base.js
@@ -40,7 +40,6 @@
self.debug( 'GalaxyApp.options: ', self.options );
self._patchGalaxy( window.Galaxy );
- self.debug( 'GalaxyApp.options: ', self.options );
self._initLogger( options.loggerOptions || {} );
self.debug( 'GalaxyApp.logger: ', self.logger );
diff -r 7f05a259b98a16f0cb86e69a9c2e8746f1520623 -r 3d30cac626a8484eaba7d28adb0359eb9e124b4d test/qunit/tests/galaxy-app-base.html
--- /dev/null
+++ b/test/qunit/tests/galaxy-app-base.html
@@ -0,0 +1,10 @@
+<!doctype html>
+<!-- Minimal outline test page for a requirejs+qunit testing setup,
+ test environment is bootstrapped in test-common.js -->
+<html>
+ <head>
+ <script data-main="../test-common" src="../scripts/libs/require.js"></script>
+ </head>
+ <body>
+ </body>
+</html>
diff -r 7f05a259b98a16f0cb86e69a9c2e8746f1520623 -r 3d30cac626a8484eaba7d28adb0359eb9e124b4d test/qunit/tests/galaxy-app-base.js
--- /dev/null
+++ b/test/qunit/tests/galaxy-app-base.js
@@ -0,0 +1,113 @@
+define( 'bootstrapped-data', function(){
+ return {
+ config : {
+ "allow_user_deletion": false,
+ "allow_user_creation": true,
+ "wiki_url": "http://wiki.galaxyproject.org/",
+ "ftp_upload_site": null,
+ "support_url": "https://wiki.galaxyproject.org/Support",
+ "allow_user_dataset_purge": false,
+ "allow_library_path_paste": false,
+ "user_library_import_dir": null,
+ "terms_url": null,
+ "ftp_upload_dir": null,
+ "library_import_dir": null,
+ "logo_url": null,
+ "enable_unique_workflow_defaults": false
+ },
+ user : {
+ "username": "test",
+ "quota_percent": null,
+ "total_disk_usage": 61815527,
+ "nice_total_disk_usage": "59.0 MB",
+ "email": "test(a)test.test",
+ "tags_used": [
+ "test"
+ ],
+ "model_class": "User",
+ "id": "f2db41e1fa331b3e"
+ }
+ };
+});
+define([
+ "galaxy-app-base",
+ 'bootstrapped-data',
+ "jquery",
+ "sinon-qunit"
+], function(
+ appBase,
+ bootstrapped,
+ $,
+ sinon
+){
+ /*globals equal test module expect deepEqual strictEqual throws ok */
+ "use strict";
+
+ module( "Galaxy client app tests" );
+
+ test( "App base construction/initializiation defaults", function() {
+ var app = new appBase.GalaxyApp({});
+ ok( app.hasOwnProperty( 'options' ) && typeof app.options === 'object' );
+ ok( app.hasOwnProperty( 'logger' ) && typeof app.logger === 'object' );
+ ok( app.hasOwnProperty( 'localize' ) && typeof app.localize === 'function' );
+ ok( app.hasOwnProperty( 'config' ) && typeof app.config === 'object' );
+ ok( app.hasOwnProperty( 'user' ) && typeof app.config === 'object' );
+
+ equal( app.localize, window._l );
+ });
+
+ test( "App base default options", function() {
+ var app = new appBase.GalaxyApp({});
+ ok( app.hasOwnProperty( 'options' ) && typeof app.options === 'object' );
+ equal( app.options.root, '/' );
+ equal( app.options.patchExisting, true );
+ });
+
+ test( "App base extends from Backbone.Events", function() {
+ var app = new appBase.GalaxyApp({});
+ [ 'on', 'off', 'trigger', 'listenTo', 'stopListening' ].forEach( function( fn ){
+ ok( app.hasOwnProperty( fn ) && typeof app[ fn ] === 'function' );
+ });
+ });
+
+ test( "App base has logging methods from utils/add-logging.js", function() {
+ var app = new appBase.GalaxyApp({});
+ [ 'debug', 'info', 'warn', 'error', 'metric' ].forEach( function( fn ){
+ ok( typeof app[ fn ] === 'function' );
+ });
+ ok( app._logNamespace === 'GalaxyApp' );
+ });
+
+ test( 'App base will patch in attributes from existing Galaxy objects', function(){
+ window.Galaxy = {
+ attribute : {
+ subattr : 1
+ }
+ };
+ var app = new appBase.GalaxyApp({});
+ ok( typeof app.attribute === 'object' && app.attribute.subattr === 1 );
+ });
+
+ test( "App base logger", function() {
+ var app = new appBase.GalaxyApp({});
+ ok( app.hasOwnProperty( 'logger' ) && typeof app.config === 'object' );
+ });
+
+ test( "App base config", function() {
+ var app = new appBase.GalaxyApp({});
+ ok( app.hasOwnProperty( 'config' ) && typeof app.config === 'object' );
+ equal( app.config.allow_user_deletion, false );
+ equal( app.config.allow_user_creation, true );
+ equal( app.config.wiki_url, "http://wiki.galaxyproject.org/" );
+ equal( app.config.ftp_upload_site, null );
+ //...
+ });
+
+ test( "App base user", function() {
+ var app = new appBase.GalaxyApp({});
+ ok( app.hasOwnProperty( 'user' ) && typeof app.user === 'object' );
+ ok( app.hasOwnProperty( 'currUser' ) && app.user === app.currUser );
+ ok( app.user.isAdmin() === false );
+ });
+
+});
diff -r 7f05a259b98a16f0cb86e69a9c2e8746f1520623 -r 3d30cac626a8484eaba7d28adb0359eb9e124b4d test/qunit/tests/metrics-logger.js
--- a/test/qunit/tests/metrics-logger.js
+++ b/test/qunit/tests/metrics-logger.js
@@ -17,7 +17,7 @@
test( "logger construction/initializiation defaults", function() {
var logger = new metrics.MetricsLogger({});
equal( logger.consoleLogger, null );
- equal( logger.options.logLevel, metrics.MetricsLogger.INFO );
+ equal( logger.options.logLevel, metrics.MetricsLogger.NONE );
equal( logger.options.consoleLevel, metrics.MetricsLogger.NONE );
equal( logger.options.defaultNamespace, 'Galaxy' );
equal( logger.options.clientPrefix, 'client.' );
https://bitbucket.org/galaxy/galaxy-central/commits/5bbadf58b213/
Changeset: 5bbadf58b213
User: carlfeberhard
Date: 2014-04-18 15:57:35
Summary: merge
Affected #: 1 file
diff -r 3d30cac626a8484eaba7d28adb0359eb9e124b4d -r 5bbadf58b213db0e23740a01396f38699dbd7ccd test/base/interactor.py
--- a/test/base/interactor.py
+++ b/test/base/interactor.py
@@ -3,7 +3,7 @@
from galaxy.tools.parameters import grouping
from galaxy import eggs
eggs.require( "requests" )
-from galaxy.util import listify
+from galaxy import util
from galaxy.util.odict import odict
import galaxy.model
from galaxy.model.orm import and_, desc
@@ -13,7 +13,10 @@
from logging import getLogger
log = getLogger( __name__ )
-VERBOSE_ERRORS = False
+# Off by default because it can pound the database pretty heavily
+# and result in sqlite errors on larger tests or larger numbers of
+# tests.
+VERBOSE_ERRORS = util.asbool( os.environ.get( "GALAXY_TEST_VERBOSE_ERRORS", False ) )
ERROR_MESSAGE_DATASET_SEP = "--------------------------------------"
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: jmchilton: Add option test system environment option GALAXY_TEST_VERBOSE_ERRORS to report on dataset errors.
by commits-noreply@bitbucket.org 18 Apr '14
by commits-noreply@bitbucket.org 18 Apr '14
18 Apr '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/183668ed911c/
Changeset: 183668ed911c
User: jmchilton
Date: 2014-04-18 15:41:59
Summary: Add option test system environment option GALAXY_TEST_VERBOSE_ERRORS to report on dataset errors.
Implemented a while ago to aid debugging but disabled by default because it can cause sqlite locking errors. It can now be enabled as needed using GALAXY_TEST_VERBOSE_ERRORS.
Affected #: 1 file
diff -r 7f05a259b98a16f0cb86e69a9c2e8746f1520623 -r 183668ed911ca0ad937f3ffebf81557fb6567fd4 test/base/interactor.py
--- a/test/base/interactor.py
+++ b/test/base/interactor.py
@@ -3,7 +3,7 @@
from galaxy.tools.parameters import grouping
from galaxy import eggs
eggs.require( "requests" )
-from galaxy.util import listify
+from galaxy import util
from galaxy.util.odict import odict
import galaxy.model
from galaxy.model.orm import and_, desc
@@ -13,7 +13,10 @@
from logging import getLogger
log = getLogger( __name__ )
-VERBOSE_ERRORS = False
+# Off by default because it can pound the database pretty heavily
+# and result in sqlite errors on larger tests or larger numbers of
+# tests.
+VERBOSE_ERRORS = util.asbool( os.environ.get( "GALAXY_TEST_VERBOSE_ERRORS", False ) )
ERROR_MESSAGE_DATASET_SEP = "--------------------------------------"
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: carlfeberhard: Client app: allow bootstrapping data as require dependency, use window-scoped 'on ready' fn (for now), mixin Backbone.Events; galaxy.panels.mako: fix app ready v. doc ready order; Fix target fo addLogging; history.mako: simplify
by commits-noreply@bitbucket.org 18 Apr '14
by commits-noreply@bitbucket.org 18 Apr '14
18 Apr '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/7f05a259b98a/
Changeset: 7f05a259b98a
User: carlfeberhard
Date: 2014-04-18 15:34:16
Summary: Client app: allow bootstrapping data as require dependency, use window-scoped 'on ready' fn (for now), mixin Backbone.Events; galaxy.panels.mako: fix app ready v. doc ready order; Fix target fo addLogging; history.mako: simplify
Affected #: 8 files
diff -r 934681daa52e477e60bc4e99fbcc154a537dd3b3 -r 7f05a259b98a16f0cb86e69a9c2e8746f1520623 static/scripts/galaxy-app-base.js
--- a/static/scripts/galaxy-app-base.js
+++ b/static/scripts/galaxy-app-base.js
@@ -2,8 +2,9 @@
'mvc/user/user-model',
'utils/metrics-logger',
'utils/add-logging',
- 'utils/localization'
-], function( userModel, metricsLogger, addLogging, localize ){
+ 'utils/localization',
+ 'bootstrapped-data'
+], function( userModel, metricsLogger, addLogging, localize, bootstrapped ){
// ============================================================================
/** Base galaxy client-side application.
* Iniitializes:
@@ -17,39 +18,47 @@
var self = this;
return self._init( options || {} );
}
+
// add logging shortcuts for this object
addLogging( GalaxyApp, 'GalaxyApp' );
/** default options */
-GalaxyApp.defaultOptions = {
+GalaxyApp.prototype.defaultOptions = {
+ /** monkey patch attributes from existing window.Galaxy object? */
+ patchExisting : true,
/** root url of this app */
// move to self.root?
- root : '/'
+ root : '/'
};
/** initalize options and sub-components */
GalaxyApp.prototype._init = function init( options ){
var self = this;
+ _.extend( self, Backbone.Events );
self._processOptions( options );
self.debug( 'GalaxyApp.options: ', self.options );
+ self._patchGalaxy( window.Galaxy );
+ self.debug( 'GalaxyApp.options: ', self.options );
+
self._initLogger( options.loggerOptions || {} );
self.debug( 'GalaxyApp.logger: ', self.logger );
self._initLocale();
self.debug( 'GalaxyApp.localize: ', self.localize );
- self.config = options.config || {};
+ self.config = options.config || bootstrapped.config || {};
self.debug( 'GalaxyApp.config: ', self.config );
- self._initUser( options.userJSON || {} );
+ self._initUser( options.user || bootstrapped.user || {} );
self.debug( 'GalaxyApp.user: ', self.user );
//TODO: temp
- if( typeof options.onload === 'function' ){
- options.onload();
- }
+ self.trigger( 'ready', self );
+ //if( typeof options.onload === 'function' ){
+ // options.onload();
+ //}
return self;
};
@@ -57,7 +66,7 @@
/** add an option from options if the key matches an option in defaultOptions */
GalaxyApp.prototype._processOptions = function _processOptions( options ){
var self = this,
- defaults = GalaxyApp.defaultOptions;
+ defaults = self.defaultOptions;
self.debug( '_processOptions: ', options );
self.options = {};
@@ -69,14 +78,21 @@
return self;
};
-/** set up the current user as a Backbone model (mvc/user/user-model) */
-GalaxyApp.prototype._initUser = function _initUser( userJSON ){
+/** add an option from options if the key matches an option in defaultOptions */
+GalaxyApp.prototype._patchGalaxy = function _processOptions( patchWith ){
var self = this;
- self.debug( '_initUser:', userJSON );
- self.user = new userModel.User( userJSON );
- //TODO: temp
- self.currUser = self.user;
- return self;
+ // in case req or plain script tag order has created a prev. version of the Galaxy obj...
+ if( self.options.patchExisting && patchWith ){
+ self.debug( 'found existing Galaxy object:', patchWith );
+ // ...(for now) monkey patch any added attributes that the previous Galaxy may have had
+ //TODO: move those attributes to more formal assignment in GalaxyApp
+ for( var k in patchWith ){
+ if( patchWith.hasOwnProperty( k ) ){
+ self.debug( '\t patching in ' + k + ' to Galaxy' );
+ self[ k ] = patchWith[ k ];
+ }
+ }
+ }
};
/** set up the metrics logger (utils/metrics-logger) and pass loggerOptions */
@@ -97,6 +113,16 @@
return self;
};
+/** set up the current user as a Backbone model (mvc/user/user-model) */
+GalaxyApp.prototype._initUser = function _initUser( userJSON ){
+ var self = this;
+ self.debug( '_initUser:', userJSON );
+ self.user = new userModel.User( userJSON );
+ //TODO: temp - old alias
+ self.currUser = self.user;
+ return self;
+};
+
/** string rep */
GalaxyApp.prototype.toString = function toString(){
var userEmail = this.user.get( 'email' ) || '(anonymous)';
diff -r 934681daa52e477e60bc4e99fbcc154a537dd3b3 -r 7f05a259b98a16f0cb86e69a9c2e8746f1520623 static/scripts/packed/galaxy-app-base.js
--- a/static/scripts/packed/galaxy-app-base.js
+++ b/static/scripts/packed/galaxy-app-base.js
@@ -1,1 +1,1 @@
-define(["mvc/user/user-model","utils/metrics-logger","utils/add-logging","utils/localization"],function(a,c,f,d){function g(m){var l=this;return l._init(m||{})}f(g,"GalaxyApp");g.defaultOptions={root:"/"};g.prototype._init=function j(m){var l=this;l._processOptions(m);l.debug("GalaxyApp.options: ",l.options);l._initLogger(m.loggerOptions||{});l.debug("GalaxyApp.logger: ",l.logger);l._initLocale();l.debug("GalaxyApp.localize: ",l.localize);l.config=m.config||{};l.debug("GalaxyApp.config: ",l.config);l._initUser(m.userJSON||{});l.debug("GalaxyApp.user: ",l.user);if(typeof m.onload==="function"){m.onload()}return l};g.prototype._processOptions=function e(n){var m=this,o=g.defaultOptions;m.debug("_processOptions: ",n);m.options={};for(var l in o){if(o.hasOwnProperty(l)){m.options[l]=(n.hasOwnProperty(l))?(n[l]):(o[l])}}return m};g.prototype._initUser=function i(m){var l=this;l.debug("_initUser:",m);l.user=new a.User(m);l.currUser=l.user;return l};g.prototype._initLogger=function k(m){var l=this;l.debug("_initLogger:",m);l.logger=new c.MetricsLogger(m);return l};g.prototype._initLocale=function h(m){var l=this;l.debug("_initLocale:",m);l.localize=d;window._l=l.localize;return l};g.prototype.toString=function b(){var l=this.user.get("email")||"(anonymous)";return"GalaxyApp("+l+")"};return{GalaxyApp:g}});
\ No newline at end of file
+define(["mvc/user/user-model","utils/metrics-logger","utils/add-logging","utils/localization","bootstrapped-data"],function(b,d,g,e,a){function h(n){var m=this;return m._init(n||{})}g(h,"GalaxyApp");h.prototype.defaultOptions={patchExisting:true,root:"/"};h.prototype._init=function k(n){var m=this;_.extend(m,Backbone.Events);m._processOptions(n);m.debug("GalaxyApp.options: ",m.options);m._patchGalaxy(window.Galaxy);m.debug("GalaxyApp.options: ",m.options);m._initLogger(n.loggerOptions||{});m.debug("GalaxyApp.logger: ",m.logger);m._initLocale();m.debug("GalaxyApp.localize: ",m.localize);m.config=n.config||a.config||{};m.debug("GalaxyApp.config: ",m.config);m._initUser(n.user||a.user||{});m.debug("GalaxyApp.user: ",m.user);m.trigger("ready",m);return m};h.prototype._processOptions=function f(o){var n=this,p=n.defaultOptions;n.debug("_processOptions: ",o);n.options={};for(var m in p){if(p.hasOwnProperty(m)){n.options[m]=(o.hasOwnProperty(m))?(o[m]):(p[m])}}return n};h.prototype._patchGalaxy=function f(m){var o=this;if(o.options.patchExisting&&m){o.debug("found existing Galaxy object:",m);for(var n in m){if(m.hasOwnProperty(n)){o.debug("\t patching in "+n+" to Galaxy");o[n]=m[n]}}}};h.prototype._initLogger=function l(n){var m=this;m.debug("_initLogger:",n);m.logger=new d.MetricsLogger(n);return m};h.prototype._initLocale=function j(n){var m=this;m.debug("_initLocale:",n);m.localize=e;window._l=m.localize;return m};h.prototype._initUser=function i(n){var m=this;m.debug("_initUser:",n);m.user=new b.User(n);m.currUser=m.user;return m};h.prototype.toString=function c(){var m=this.user.get("email")||"(anonymous)";return"GalaxyApp("+m+")"};return{GalaxyApp:h}});
\ No newline at end of file
diff -r 934681daa52e477e60bc4e99fbcc154a537dd3b3 -r 7f05a259b98a16f0cb86e69a9c2e8746f1520623 static/scripts/packed/utils/add-logging.js
--- a/static/scripts/packed/utils/add-logging.js
+++ b/static/scripts/packed/utils/add-logging.js
@@ -1,1 +1,1 @@
-define([],function(){function a(c,b){if(b!==undefined){c._logNamespace=b}["debug","info","warn","error","metric"].forEach(function(d){(c.prototype||c)[d]=function(){if(!this.logger){return undefined}if(this.logger.emit){return this.logger.emit(d,this._logNamespace,arguments)}if(this.logger[d]){return this.logger[d].apply(this.logger,arguments)}return undefined}});return c}return a});
\ No newline at end of file
+define([],function(){function a(d,c){var b=(d.prototype!==undefined)?(d.prototype):(d);if(c!==undefined){b._logNamespace=c}["debug","info","warn","error","metric"].forEach(function(e){b[e]=function(){if(!this.logger){return undefined}if(this.logger.emit){return this.logger.emit(e,this._logNamespace,arguments)}if(this.logger[e]){return this.logger[e].apply(this.logger,arguments)}return undefined}});return d}return a});
\ No newline at end of file
diff -r 934681daa52e477e60bc4e99fbcc154a537dd3b3 -r 7f05a259b98a16f0cb86e69a9c2e8746f1520623 static/scripts/utils/add-logging.js
--- a/static/scripts/utils/add-logging.js
+++ b/static/scripts/utils/add-logging.js
@@ -2,12 +2,13 @@
], function(){
//==============================================================================
function addLogging( obj, namespace ){
+ var addTo = ( obj.prototype !== undefined )?( obj.prototype ):( obj );
if( namespace !== undefined ){
- obj._logNamespace = namespace;
+ addTo._logNamespace = namespace;
}
[ 'debug', 'info', 'warn', 'error', 'metric' ].forEach( function( logFn ){
- ( obj.prototype || obj )[ logFn ] = function(){
+ addTo[ logFn ] = function(){
if( !this.logger ){ return undefined; }
if( this.logger.emit ){
return this.logger.emit( logFn, this._logNamespace, arguments );
diff -r 934681daa52e477e60bc4e99fbcc154a537dd3b3 -r 7f05a259b98a16f0cb86e69a9c2e8746f1520623 templates/base/base_panels.mako
--- a/templates/base/base_panels.mako
+++ b/templates/base/base_panels.mako
@@ -1,6 +1,6 @@
<!DOCTYPE HTML>
-<%namespace name="galaxy_client" file="../galaxy_client_app.mako" />
+<%namespace name="galaxy_client" file="/galaxy_client_app.mako" /><%
self.has_left_panel = hasattr( self, 'left_panel' )
self.has_right_panel = hasattr( self, 'right_panel' )
@@ -59,7 +59,8 @@
'libs/require',
"mvc/ui"
)}
- ${ galaxy_client.bootstrap() }
+
+ ${ galaxy_client.load() }
<script type="text/javascript">
## global configuration object
@@ -72,9 +73,6 @@
if (window != window.top)
$('<link href="' + galaxy_config.root + 'static/style/galaxy.frame.masthead.css" rel="stylesheet">').appendTo('head');
- // start a Galaxy namespace for objects created
- window.Galaxy = window.Galaxy || {};
-
// console protection
window.console = window.console || {
log : function(){},
diff -r 934681daa52e477e60bc4e99fbcc154a537dd3b3 -r 7f05a259b98a16f0cb86e69a9c2e8746f1520623 templates/galaxy_client_app.mako
--- a/templates/galaxy_client_app.mako
+++ b/templates/galaxy_client_app.mako
@@ -1,33 +1,41 @@
## ============================================================================
-<%def name="bootstrap()">
+<%def name="bootstrap( **kwargs )">
## Bootstap dictionaries for GalaxyApp object's JSON, create GalaxyApp,
## and steal existing attributes from plain objects already created
+ <%
+ kwargs.update({
+ 'config' : get_config_dict(),
+ 'user' : get_user_dict(),
+ })
+ %><script type="text/javascript">
- require([ 'galaxy-app-base' ], function( app ){
- galaxy = new app.GalaxyApp({
- config : ${ get_config_json() },
- userJSON : ${ get_user_json() },
+ %for key in kwargs:
+ ( window.bootstrapped = window.bootstrapped || {} )[ '${key}' ] = (
+ ${ h.to_json_string( kwargs[ key ], indent=( 2 if trans.debug else 0 ) )} );
+ %endfor
+ define( 'bootstrapped-data', function(){
+ return window.bootstrapped;
+ });
+ </script>
+</%def>
+
+<%def name="load( init_fn=None, **kwargs )">
+ ${ self.bootstrap( **kwargs ) }
+ <script type="text/javascript">
+ require([ 'require', 'galaxy-app-base' ], function( require, galaxy ){
+ //TODO: global...
+ window.Galaxy = new galaxy.GalaxyApp({
root : '${h.url_for( "/" )}',
//TODO: get these options from the server
- onload : window.Galaxy? window.Galaxy.onload: null,
- loggerOptions : {
- }
+ loggerOptions : {}
});
- // in case req or plain script tag order has created a prev. version of the Galaxy obj...
- if( window.Galaxy ){
- // ...(for now) monkey patch any added attributes that the previous Galaxy may have had
- //TODO: move those attributes to more formal assignment in GalaxyApp
- for( var k in window.Galaxy ){
- if( window.Galaxy.hasOwnProperty( k ) ){
- galaxy.debug( 'patching in ' + k + ' to Galaxy' )
- galaxy[ k ] = window.Galaxy[ k ];
- }
- }
+
+ var initFn = ${ 'window[ "%s" ]' %( init_fn ) if init_fn else 'undefined' };
+ if( typeof initFn === 'function' ){
+ initFn();
}
- window.Galaxy = galaxy;
});
-
</script></%def>
@@ -69,6 +77,7 @@
# tags used
users_api_controller = trans.webapp.api_controllers[ 'users' ]
user_dict[ 'tags_used' ] = users_api_controller.get_user_tags_used( trans, user=trans.user )
+ user_dict[ 'is_admin' ] = trans.user_is_admin()
return user_dict
usage = 0
diff -r 934681daa52e477e60bc4e99fbcc154a537dd3b3 -r 7f05a259b98a16f0cb86e69a9c2e8746f1520623 templates/webapps/galaxy/galaxy.panels.mako
--- a/templates/webapps/galaxy/galaxy.panels.mako
+++ b/templates/webapps/galaxy/galaxy.panels.mako
@@ -1,5 +1,5 @@
<%namespace name="masthead" file="/webapps/galaxy/galaxy.masthead.mako"/>
-<%namespace name="galaxy_client" file="../../galaxy_client_app.mako" />
+<%namespace name="galaxy_client" file="/galaxy_client_app.mako" /><!DOCTYPE HTML>
@@ -38,10 +38,7 @@
'libs/d3',
'galaxy.base',
'galaxy.panels',
- 'libs/handlebars.runtime'
- )}
-
- ${h.js(
+ 'libs/handlebars.runtime',
"mvc/ui"
)}
@@ -109,11 +106,11 @@
// load any app configured
var galaxy_config = ${ h.to_json_string( self.galaxy_config ) };
- Galaxy.onload = function(){
+ window.init = function(){
var jscript = galaxy_config.app.jscript;
if( jscript ){
- $( function(){
- require([ jscript ], function( js_lib ){
+ require([ jscript ], function( js_lib ){
+ $( function(){
## load galaxy module application
var module = new js_lib.GalaxyApp();
});
@@ -123,7 +120,7 @@
}
}
</script>
- ${ galaxy_client.bootstrap() }
+ ${ galaxy_client.load( init_fn='init' ) }
</%def>
diff -r 934681daa52e477e60bc4e99fbcc154a537dd3b3 -r 7f05a259b98a16f0cb86e69a9c2e8746f1520623 templates/webapps/galaxy/root/history.mako
--- a/templates/webapps/galaxy/root/history.mako
+++ b/templates/webapps/galaxy/root/history.mako
@@ -1,14 +1,13 @@
<%inherit file="/base.mako"/>
+<%namespace file="/galaxy_client_app.mako" name="galaxy_client" /><%def name="title()">
- ${_('Galaxy History')}
+ ${ _( 'Galaxy History' ) }
</%def>
-<%namespace file="/galaxy.masthead.mako" import="get_user_json" />
-
## -----------------------------------------------------------------------------
<%def name="stylesheets()">
- ${parent.stylesheets()}
+ ${ parent.stylesheets() }
<style>
body.historyPage {
margin: 0px;
@@ -19,48 +18,33 @@
## -----------------------------------------------------------------------------
<%def name="javascripts()">
-${parent.javascripts()}
+${ parent.javascripts() }
<script type="text/javascript">
-if( !window.Galaxy ){
- window.Galaxy = {};
-}
$(function(){
$( 'body' ).addClass( 'historyPage' ).addClass( 'history-panel' );
});
-require([
- 'mvc/user/user-model',
- 'mvc/history/current-history-panel',
- 'utils/localization'
-], function( user, historyPanel, _l ){
- $(function(){
- window._l = _l;
- Galaxy.currUser = new user.User( ${h.to_json_string( get_user_json() )} );
- // history module is already in the dpn chain from the panel. We can re-scope it here.
- var historyModel = require( 'mvc/history/history-model' ),
- debugging = JSON.parse( sessionStorage.getItem( 'debugging' ) ) || false,
- historyJSON = ${h.to_json_string( history )},
- hdaJSON = ${h.to_json_string( hdas )};
-
- var history = new historyModel.History( historyJSON, hdaJSON, {
- logger: ( debugging )?( console ):( null )
- });
-
- var panel = new historyPanel.CurrentHistoryPanel({
- show_deleted : ${ 'true' if show_deleted == True else ( 'null' if show_deleted == None else 'false' ) },
- show_hidden : ${ 'true' if show_hidden == True else ( 'null' if show_hidden == None else 'false' ) },
- el : $( "body.historyPage" ),
- model : history,
- onready : function(){
- this.render();
- if( Galaxy ){
- Galaxy.currHistoryPanel = this;
+window.app = function(){
+ require([
+ 'mvc/history/current-history-panel'
+ ], function( historyPanel ){
+ $(function(){
+ // history module is already in the dpn chain from the panel. We can re-scope it here.
+ var historyModel = require( 'mvc/history/history-model' );
+ window.panel = new historyPanel.CurrentHistoryPanel({
+ show_deleted : bootstrapped.show_deleted,
+ show_hidden : bootstrapped.show_hidden,
+ el : $( "body" ),
+ model : new historyModel.History( bootstrapped.history, bootstrapped.hdas ),
+ onready : function(){
+ this.render( 0 );
}
- }
+ });
});
});
-});
+}
</script>
+${ galaxy_client.load( 'app', history=history, hdas=hdas, show_deleted=show_deleted, show_hidden=show_hidden ) }
</%def>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: guerler: Charts: Improve histogram module
by commits-noreply@bitbucket.org 17 Apr '14
by commits-noreply@bitbucket.org 17 Apr '14
17 Apr '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/934681daa52e/
Changeset: 934681daa52e
User: guerler
Date: 2014-04-18 00:03:54
Summary: Charts: Improve histogram module
Affected #: 1 file
diff -r 8f940d25dc283ed462ab8df3873d235789cabe38 -r 934681daa52e477e60bc4e99fbcc154a537dd3b3 config/plugins/visualizations/charts/static/charts/nvd3_histogram/nvd3_histogram.js
--- a/config/plugins/visualizations/charts/static/charts/nvd3_histogram/nvd3_histogram.js
+++ b/config/plugins/visualizations/charts/static/charts/nvd3_histogram/nvd3_histogram.js
@@ -14,12 +14,12 @@
draw : function(process_id, chart, request_dictionary)
{
// configure request
- var index = 0;
+ var index = 1;
for (var i in request_dictionary.groups) {
var group = request_dictionary.groups[i];
group.columns = {
x: {
- index: index++
+ index: 0
},
y: {
index: index++
@@ -32,50 +32,7 @@
// load nvd3
var nvd3 = new NVD3(this.app, this.options);
- nvd3.draw(process_id, nv.models.multiBarChart(), chart, request_dictionary, function() {
- // ensure data consistency
- self._fix_partial_data(request_dictionary.groups);
- });
- },
-
- // the histogram module might generate partial data i.e. length(col1) = 10, length(col2) = 11, length(col3) = 12.
- // this function ensures that data is consistent, such that all columns have the same length.
- _fix_partial_data: function(groups) {
- // x-values
- var x_list = {};
-
- // identify all x values
- for (var i in groups) {
- var x_sub = this._identify_x_values(groups[i].values);
- x_list = _.extend(x_list, x_sub);
- }
-
- // identify all x values
- for (var i in groups) {
- var values = groups[i].values;
- var x_sub = this._identify_x_values(values);
- for (var x in x_list) {
- if (x_sub[x] === undefined) {
- values.push({
- x: parseFloat(x),
- y: 0.0
- });
- }
- }
- values.sort(function(a, b) {return a.x - b.x})
- }
- },
-
- // identify available x-values
- _identify_x_values: function(values) {
- var x_list = {};
- for (var j in values) {
- var x_value = values[j].x;
- if (x_value !== undefined && x_value !== null) {
- x_list[x_value] = true;
- }
- }
- return x_list;
+ nvd3.draw(process_id, nv.models.multiBarChart(), chart, request_dictionary);
}
});
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: davebgx: Correct usage of "it's" versus "its".
by commits-noreply@bitbucket.org 17 Apr '14
by commits-noreply@bitbucket.org 17 Apr '14
17 Apr '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/8f940d25dc28/
Changeset: 8f940d25dc28
User: davebgx
Date: 2014-04-17 21:49:32
Summary: Correct usage of "it's" versus "its".
Affected #: 80 files
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 config/plugins/visualizations/charts/static/plugins/nvd3/nv.d3.js
--- a/config/plugins/visualizations/charts/static/plugins/nvd3/nv.d3.js
+++ b/config/plugins/visualizations/charts/static/plugins/nvd3/nv.d3.js
@@ -894,7 +894,7 @@
// Easy way to bind multiple functions to window.onresize
-// TODO: give a way to remove a function after its bound, other than removing all of them
+// TODO: give a way to remove a function after it's bound, other than removing all of them
nv.utils.windowResize = function(fun){
if (fun === undefined) return;
var oldresize = window.onresize;
@@ -10405,7 +10405,7 @@
.attr("ry", 3);
group.append('text')
- .style('text-anchor', labelSunbeamLayout ? ((d.startAngle + d.endAngle) / 2 < Math.PI ? 'start' : 'end') : 'middle') //center the text on it's origin or begin/end if orthogonal aligned
+ .style('text-anchor', labelSunbeamLayout ? ((d.startAngle + d.endAngle) / 2 < Math.PI ? 'start' : 'end') : 'middle') //center the text on its origin or begin/end if orthogonal aligned
.style('fill', '#000')
});
@@ -10447,7 +10447,7 @@
}
});
pieLabels.select(".nv-label text")
- .style('text-anchor', labelSunbeamLayout ? ((d.startAngle + d.endAngle) / 2 < Math.PI ? 'start' : 'end') : 'middle') //center the text on it's origin or begin/end if orthogonal aligned
+ .style('text-anchor', labelSunbeamLayout ? ((d.startAngle + d.endAngle) / 2 < Math.PI ? 'start' : 'end') : 'middle') //center the text on its origin or begin/end if orthogonal aligned
.text(function(d, i) {
var percent = (d.endAngle - d.startAngle) / (2 * Math.PI);
var labelTypes = {
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 config/plugins/visualizations/common/templates/visualization_base.mako
--- a/config/plugins/visualizations/common/templates/visualization_base.mako
+++ b/config/plugins/visualizations/common/templates/visualization_base.mako
@@ -14,7 +14,7 @@
${self.get_body()}
</%def>
-## render this as it's own page
+## render this as its own page
<%def name="as_page()"><!DOCTYPE HTML><html>
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/datatypes/assembly.py
--- a/lib/galaxy/datatypes/assembly.py
+++ b/lib/galaxy/datatypes/assembly.py
@@ -94,7 +94,7 @@
break
return True
else:
- break #we found a non-empty line, but its not a fasta header
+ break #we found a non-empty line, but it's not a fasta header
fh.close()
except:
pass
@@ -128,7 +128,7 @@
break
return True
else:
- break #we found a non-empty line, but its not a fasta header
+ break #we found a non-empty line, but it's not a fasta header
fh.close()
except:
pass
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/datatypes/dataproviders/base.py
--- a/lib/galaxy/datatypes/dataproviders/base.py
+++ b/lib/galaxy/datatypes/dataproviders/base.py
@@ -149,7 +149,7 @@
"""
String representation for easier debugging.
- Will call `__str__` on it's source so this will display piped dataproviders.
+ Will call `__str__` on its source so this will display piped dataproviders.
"""
# we need to protect against recursion (in __getattr__) if self.source hasn't been set
source_str = str( self.source ) if hasattr( self, 'source' ) else ''
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/datatypes/dataproviders/chunk.py
--- a/lib/galaxy/datatypes/dataproviders/chunk.py
+++ b/lib/galaxy/datatypes/dataproviders/chunk.py
@@ -20,7 +20,7 @@
# -----------------------------------------------------------------------------
class ChunkDataProvider( base.DataProvider ):
"""
- Data provider that yields chunks of data from it's file.
+ Data provider that yields chunks of data from its file.
Note: this version does not account for lines and works with Binary datatypes.
"""
@@ -75,7 +75,7 @@
class Base64ChunkDataProvider( ChunkDataProvider ):
"""
- Data provider that yields chunks of base64 encoded data from it's file.
+ Data provider that yields chunks of base64 encoded data from its file.
"""
def encode( self, chunk ):
"""
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/datatypes/dataproviders/column.py
--- a/lib/galaxy/datatypes/dataproviders/column.py
+++ b/lib/galaxy/datatypes/dataproviders/column.py
@@ -19,7 +19,7 @@
# ----------------------------------------------------------------------------- base classes
class ColumnarDataProvider( line.RegexLineDataProvider ):
"""
- Data provider that provide a list of columns from the lines of it's source.
+ Data provider that provide a list of columns from the lines of its source.
Columns are returned in the order given in indeces, so this provider can
re-arrange columns.
@@ -209,7 +209,7 @@
class FilteredByColumnDataProvider( ColumnarDataProvider ):
"""
- Data provider that provide a list of columns from the lines of it's source
+ Data provider that provide a list of columns from the lines of its source
_only_ if they pass a given filter function.
e.g. column #3 is type int and > N
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/datatypes/dataproviders/dataset.py
--- a/lib/galaxy/datatypes/dataproviders/dataset.py
+++ b/lib/galaxy/datatypes/dataproviders/dataset.py
@@ -33,7 +33,7 @@
class DatasetDataProvider( base.DataProvider ):
"""
Class that uses the file contents and/or metadata from a Galaxy DatasetInstance
- as it's source.
+ as its source.
DatasetDataProvider can be seen as the intersection between a datatype's
metadata and a dataset's file contents. It (so far) mainly provides helper
@@ -173,7 +173,7 @@
# ----------------------------------------------------------------------------- uses metadata for settings
class DatasetColumnarDataProvider( column.ColumnarDataProvider ):
"""
- Data provider that uses a DatasetDataProvider as it's source and the
+ Data provider that uses a DatasetDataProvider as its source and the
dataset's metadata to buuild settings for the ColumnarDataProvider it's
inherited from.
"""
@@ -196,7 +196,7 @@
class DatasetDictDataProvider( column.DictDataProvider ):
"""
- Data provider that uses a DatasetDataProvider as it's source and the
+ Data provider that uses a DatasetDataProvider as its source and the
dataset's metadata to buuild settings for the DictDataProvider it's
inherited from.
"""
@@ -255,7 +255,7 @@
Data provider that parses chromosome, start, and end data from a file
using the datasets metadata settings.
- Is a ColumnarDataProvider that uses a DatasetDataProvider as it's source.
+ Is a ColumnarDataProvider that uses a DatasetDataProvider as its source.
If `named_columns` is true, will return dictionaries with the keys
'chrom', 'start', 'end'.
@@ -565,7 +565,7 @@
"""
Create a source from running a subprocess on a dataset's file.
- Uses a subprocess as it's source and has a dataset (gen. as an input file
+ Uses a subprocess as its source and has a dataset (gen. as an input file
for the process).
"""
#TODO: below should be a subclass of this and not RegexSubprocess
@@ -581,7 +581,7 @@
class SamtoolsDataProvider( line.RegexLineDataProvider ):
"""
- Data provider that uses samtools on a Sam or Bam file as it's source.
+ Data provider that uses samtools on a Sam or Bam file as its source.
This can be piped through other providers (column, map, genome region, etc.).
@@ -680,7 +680,7 @@
class BcftoolsDataProvider( line.RegexLineDataProvider ):
"""
- Data provider that uses an bcftools on a bcf (or vcf?) file as it's source.
+ Data provider that uses an bcftools on a bcf (or vcf?) file as its source.
This can be piped through other providers (column, map, genome region, etc.).
"""
@@ -692,7 +692,7 @@
class BGzipTabixDataProvider( base.DataProvider ):
"""
- Data provider that uses an g(un)zip on a file as it's source.
+ Data provider that uses an g(un)zip on a file as its source.
This can be piped through other providers (column, map, genome region, etc.).
"""
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/datatypes/dataproviders/external.py
--- a/lib/galaxy/datatypes/dataproviders/external.py
+++ b/lib/galaxy/datatypes/dataproviders/external.py
@@ -24,7 +24,7 @@
class SubprocessDataProvider( base.DataProvider ):
"""
Data provider that uses the output from an intermediate program and
- subprocess as it's data source.
+ subprocess as its data source.
"""
#TODO: need better ways of checking returncode, stderr for errors and raising
def __init__( self, *args, **kwargs ):
@@ -74,7 +74,7 @@
class RegexSubprocessDataProvider( line.RegexLineDataProvider ):
"""
- RegexLineDataProvider that uses a SubprocessDataProvider as it's data source.
+ RegexLineDataProvider that uses a SubprocessDataProvider as its data source.
"""
# this is a conv. class and not really all that necc...
def __init__( self, *args, **kwargs ):
@@ -86,7 +86,7 @@
# ----------------------------------------------------------------------------- other apis
class URLDataProvider( base.DataProvider ):
"""
- Data provider that uses the contents of a URL for it's data source.
+ Data provider that uses the contents of a URL for its data source.
This can be piped through other providers (column, map, genome region, etc.).
"""
@@ -128,7 +128,7 @@
# ----------------------------------------------------------------------------- generic compression
class GzipDataProvider( base.DataProvider ):
"""
- Data provider that uses g(un)zip on a file as it's source.
+ Data provider that uses g(un)zip on a file as its source.
This can be piped through other providers (column, map, genome region, etc.).
"""
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/datatypes/dataproviders/hierarchy.py
--- a/lib/galaxy/datatypes/dataproviders/hierarchy.py
+++ b/lib/galaxy/datatypes/dataproviders/hierarchy.py
@@ -61,7 +61,7 @@
"""
# search for partial match of selector to the element tag
#TODO: add more flexibility here w/o re-implementing xpath
- #TODO: fails with '#' - browser thinks it's anchor - use urlencode
+ #TODO: fails with '#' - browser thinks it's an anchor - use urlencode
#TODO: need removal/replacement of etree namespacing here - then move to string match
return bool( ( selector == None )
or ( isinstance( element, elementtree.Element ) and selector in element.tag ) )
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/datatypes/dataproviders/line.py
--- a/lib/galaxy/datatypes/dataproviders/line.py
+++ b/lib/galaxy/datatypes/dataproviders/line.py
@@ -22,7 +22,7 @@
# ----------------------------------------------------------------------------- text
class FilteredLineDataProvider( base.LimitedOffsetDataProvider ):
"""
- Data provider that yields lines of data from it's source allowing
+ Data provider that yields lines of data from its source allowing
optional control over which line to start on and how many lines
to return.
"""
@@ -86,7 +86,7 @@
class RegexLineDataProvider( FilteredLineDataProvider ):
"""
- Data provider that yields only those lines of data from it's source
+ Data provider that yields only those lines of data from its source
that do (or do not when `invert` is True) match one or more of the given list
of regexs.
@@ -137,7 +137,7 @@
Class that uses formats where multiple lines combine to describe a single
datum. The data output will be a list of either map/dicts or sub-arrays.
- Uses FilteredLineDataProvider as it's source (kwargs **not** passed).
+ Uses FilteredLineDataProvider as its source (kwargs **not** passed).
e.g. Fasta, GenBank, MAF, hg log
Note: mem intensive (gathers list of lines before output)
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/datatypes/registry.py
--- a/lib/galaxy/datatypes/registry.py
+++ b/lib/galaxy/datatypes/registry.py
@@ -76,7 +76,7 @@
an installed Tool Shed repository. If deactivate is True, an installed Tool Shed repository that includes custom datatypes
is being deactivated or uninstalled, so appropriate loaded datatypes will be removed from the registry. The value of
override will be False when a Tool Shed repository is being installed. Since installation is occurring after the datatypes
- registry has been initialized at server startup, it's contents cannot be overridden by newly introduced conflicting data types.
+ registry has been initialized at server startup, its contents cannot be overridden by newly introduced conflicting data types.
"""
def __import_module( full_path, datatype_module, datatype_class_name ):
@@ -309,7 +309,7 @@
distributed config) or contained within an installed Tool Shed repository. If deactivate is True, an installed Tool
Shed repository that includes custom sniffers is being deactivated or uninstalled, so appropriate loaded sniffers will
be removed from the registry. The value of override will be False when a Tool Shed repository is being installed.
- Since installation is occurring after the datatypes registry has been initialized at server startup, it's contents
+ Since installation is occurring after the datatypes registry has been initialized at server startup, its contents
cannot be overridden by newly introduced conflicting sniffers.
"""
sniffer_elem_classes = [ e.attrib[ 'type' ] for e in self.sniffer_elems ]
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/datatypes/sequence.py
--- a/lib/galaxy/datatypes/sequence.py
+++ b/lib/galaxy/datatypes/sequence.py
@@ -270,7 +270,7 @@
break
return True
else:
- break #we found a non-empty line, but its not a fasta header
+ break #we found a non-empty line, but it's not a fasta header
fh.close()
except:
pass
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/datatypes/tabular.py
--- a/lib/galaxy/datatypes/tabular.py
+++ b/lib/galaxy/datatypes/tabular.py
@@ -283,7 +283,7 @@
return self._serve_raw(trans, dataset, to_ext)
elif dataset.metadata.columns > 50:
#Fancy tabular display is only suitable for datasets without an incredibly large number of columns.
- #We should add a new datatype 'matrix', with it's own draw method, suitable for this kind of data.
+ #We should add a new datatype 'matrix', with its own draw method, suitable for this kind of data.
#For now, default to the old behavior, ugly as it is. Remove this after adding 'matrix'.
max_peek_size = 1000000 # 1 MB
if os.stat( dataset.file_name ).st_size < max_peek_size:
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/jobs/runners/lwr.py
--- a/lib/galaxy/jobs/runners/lwr.py
+++ b/lib/galaxy/jobs/runners/lwr.py
@@ -389,7 +389,7 @@
# Right now remote metadata handling assumes from_work_dir outputs
# have been copied over before it runs. So do that remotely. This is
# not the default though because adding it to the command line is not
- # cross-platform (no cp on Windows) and its un-needed work outside
+ # cross-platform (no cp on Windows) and it's un-needed work outside
# the context of metadata settting (just as easy to download from
# either place.)
return LwrJobRunner.__remote_metadata( lwr_client )
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/model/migrate/check.py
--- a/lib/galaxy/model/migrate/check.py
+++ b/lib/galaxy/model/migrate/check.py
@@ -66,7 +66,7 @@
dataset_table = Table( "dataset", meta, autoload=True )
except NoSuchTableError:
# No 'dataset' table means a completely uninitialized database. If we have an app, we'll
- # set it's new_installation setting to True so the tool migration process will be skipped.
+ # set its new_installation setting to True so the tool migration process will be skipped.
if app:
app.new_installation = True
log.info( "No database, initializing" )
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/model/search.py
--- a/lib/galaxy/model/search.py
+++ b/lib/galaxy/model/search.py
@@ -3,7 +3,7 @@
syntax to obtain items from the Galaxy installations.
Rather then allow/force the user to do queries on the Galaxy schema, it uses
a small set of 'Views' which are simple table representations of complex galaxy ideas.
-So while a history and it's tags may exist in seperate tables in the real schema, in
+So while a history and its tags may exist in seperate tables in the real schema, in
GQL they exist in the same view
Example Queries:
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/model/tool_shed_install/__init__.py
--- a/lib/galaxy/model/tool_shed_install/__init__.py
+++ b/lib/galaxy/model/tool_shed_install/__init__.py
@@ -354,7 +354,7 @@
tool_shed, name, owner, changeset_revision, prior_installation_required, only_if_compiling_contained_td = \
common_util.parse_repository_dependency_tuple( rd_tup, contains_error=False )
# The repository dependency will only be required to be previously installed if it does not fall into the category of
- # a repository that must be installed only so that it's contained tool dependency can be used for compiling the tool
+ # a repository that must be installed only so that its contained tool dependency can be used for compiling the tool
# dependency of the dependent repository.
if not asbool( only_if_compiling_contained_td ):
if asbool( prior_installation_required ):
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/model/tool_shed_install/migrate/check.py
--- a/lib/galaxy/model/tool_shed_install/migrate/check.py
+++ b/lib/galaxy/model/tool_shed_install/migrate/check.py
@@ -59,7 +59,7 @@
Table( "tool_shed_repository", meta, autoload=True )
except NoSuchTableError:
# No table means a completely uninitialized database. If we
- # have an app, we'll set it's new_installation setting to True
+ # have an app, we'll set its new_installation setting to True
# so the tool migration process will be skipped.
migrate()
return
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/tools/__init__.py
--- a/lib/galaxy/tools/__init__.py
+++ b/lib/galaxy/tools/__init__.py
@@ -589,7 +589,7 @@
# the case where the tool is contained in a repository installed from the tool shed, and the Galaxy
# administrator has retrieved updates to the installed repository. In this case, the tool may have
# been updated, but the version was not changed, so the tool should always be reloaded here. We used
- # to only load the tool if it's it was not found in self.tools_by_id, but performing that check did
+ # to only load the tool if it was not found in self.tools_by_id, but performing that check did
# not enable this scenario.
self.tools_by_id[ tool.id ] = tool
if load_panel_dict:
@@ -2117,7 +2117,7 @@
elif isinstance( input, Conditional ):
group_state = state[input.name]
group_prefix = "%s|" % ( key )
- # Deal with the 'test' element and see if it's value changed
+ # Deal with the 'test' element and see if its value changed
if input.value_ref and not input.value_ref_in_group:
# We are referencing an existent parameter, which is not
# part of this group
@@ -2210,7 +2210,7 @@
Update the tool state in `state` using the user input in `incoming`.
This is designed to be called recursively: `inputs` contains the
set of inputs being processed, and `prefix` specifies a prefix to
- add to the name of each input to extract it's value from `incoming`.
+ add to the name of each input to extract its value from `incoming`.
If `update_only` is True, values that are not in `incoming` will
not be modified. In this case `old_errors` can be provided, and any
@@ -2290,7 +2290,7 @@
group_old_errors = old_errors.get( input.name, {} )
old_current_case = group_state['__current_case__']
group_prefix = "%s|" % ( key )
- # Deal with the 'test' element and see if it's value changed
+ # Deal with the 'test' element and see if its value changed
if input.value_ref and not input.value_ref_in_group:
# We are referencing an existent parameter, which is not
# part of this group
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/tools/parameters/dataset_matcher.py
--- a/lib/galaxy/tools/parameters/dataset_matcher.py
+++ b/lib/galaxy/tools/parameters/dataset_matcher.py
@@ -68,7 +68,7 @@
accessible = self.hda_accessible( hda )
if accessible and ( hda.visible or ( self.selected( hda ) and not hda.implicitly_converted_parent_datasets ) ):
# If we are sending data to an external application, then we need to make sure there are no roles
- # associated with the dataset that restrict it's access from "public".
+ # associated with the dataset that restrict its access from "public".
require_public = self.tool and self.tool.tool_type == 'data_destination'
if require_public and not self.trans.app.security_agent.dataset_is_public( hda.dataset ):
return False
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/util/inflection.py
--- a/lib/galaxy/util/inflection.py
+++ b/lib/galaxy/util/inflection.py
@@ -354,7 +354,7 @@
return self.Inflector.unaccent(text)
def urlize(self, text) :
- '''Transform a string its unaccented and underscored
+ '''Transform a string to its unaccented and underscored
version ready to be inserted in friendly URLs'''
return self.Inflector.urlize(text)
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/util/simplegraph.py
--- a/lib/galaxy/util/simplegraph.py
+++ b/lib/galaxy/util/simplegraph.py
@@ -42,7 +42,7 @@
class SimpleGraph( object ):
"""
- Each node is unique (by id) and stores it's own index in the node list/odict.
+ Each node is unique (by id) and stores its own index in the node list/odict.
Each edge is represented as two indeces into the node list/odict.
Both nodes and edges allow storing extra information if needed.
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/visualization/data_providers/phyloviz/newickparser.py
--- a/lib/galaxy/visualization/data_providers/phyloviz/newickparser.py
+++ b/lib/galaxy/visualization/data_providers/phyloviz/newickparser.py
@@ -80,7 +80,7 @@
def _mapName(self, newickString, nameMap):
"""
Necessary to replace names of terms inside nexus representation
- Also, its here because Mailaud's doesnt deal with id_strings outside of quotes(" ")
+ Also, it's here because Mailaud's doesnt deal with id_strings outside of quotes(" ")
"""
newString = ""
start = 0
@@ -120,7 +120,7 @@
# Base case where there is only an empty string
if string == "":
return
- # Base case there its only an internal claude
+ # Base case there it's only an internal claude
if string.find("(") == -1:
return self._makeNodesFromString(string, depth)
@@ -172,7 +172,7 @@
start = j + 1
continue
- if depth == 0: # if its the root node, we do nothing about it and return
+ if depth == 0: # if it's the root node, we do nothing about it and return
return nodes[0]
# Adding last most set of children
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/visualization/registry.py
--- a/lib/galaxy/visualization/registry.py
+++ b/lib/galaxy/visualization/registry.py
@@ -473,7 +473,7 @@
returned[ 'render_target' ] = render_target.text
else:
returned[ 'render_target' ] = 'galaxy_main'
- # consider unifying the above into it's own element and parsing method
+ # consider unifying the above into its own element and parsing method
return returned
@@ -791,7 +791,7 @@
# optionally rename the variable returned, defaulting to the original name
var_name_in_template = param_config.get( 'var_name_in_template', param_name )
- # if the param is present, get it's value, any param modifiers for that param, and parse it into a resource
+ # if the param is present, get its value, any param modifiers for that param, and parse it into a resource
# use try catch here and not caller to fall back on the default value or re-raise if required
resource = None
query_val = query_params.get( param_name, None )
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/web/base/controller.py
--- a/lib/galaxy/web/base/controller.py
+++ b/lib/galaxy/web/base/controller.py
@@ -1018,7 +1018,7 @@
def _apply_library_folder_permissions_to_ldda( self, trans, library_folder, ldda ):
"""
- Copy actions/roles from library folder to an ldda (and it's library_dataset).
+ Copy actions/roles from library folder to an ldda (and its library_dataset).
"""
#PRECONDITION: permissions for this action on library_folder and ldda have been checked
security_agent = trans.app.security_agent
@@ -1072,7 +1072,7 @@
if flush_needed:
trans.sa_session.flush()
- # finally, apply the new library_dataset to it's associated ldda (must be the same)
+ # finally, apply the new library_dataset to its associated ldda (must be the same)
security_agent.copy_library_permissions( trans, library_dataset, ldda )
return security_agent.get_permissions( ldda )
@@ -2348,8 +2348,8 @@
trans.sa_session.flush()
# Create a new info_association between the current library item and form_values
if item_type == 'folder':
- # A LibraryFolder is a special case because if it inherited the template from it's parent,
- # we want to set inheritable to True for it's info_association. This allows for the default
+ # A LibraryFolder is a special case because if it inherited the template from its parent,
+ # we want to set inheritable to True for its info_association. This allows for the default
# inheritance to be False for each level in the Library hierarchy unless we're creating a new
# level in the hierarchy, in which case we'll inherit the "inheritable" setting from the parent
# level.
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/web/base/pluginframework.py
--- a/lib/galaxy/web/base/pluginframework.py
+++ b/lib/galaxy/web/base/pluginframework.py
@@ -44,7 +44,7 @@
A PluginManager discovers and manages these plugins.
- This is an non-abstract class but it's usefulness is limited and is meant
+ This is an non-abstract class but its usefulness is limited and is meant
to be inherited.
"""
@@ -53,7 +53,7 @@
Set up the manager and load all plugins.
:type app: UniverseApplication
- :param app: the application (and it's configuration) using this manager
+ :param app: the application (and its configuration) using this manager
:type directories_setting: string (default: None)
:param directories_setting: the filesystem path (or paths)
to search for plugins. Can be CSV string of paths. Will be treated as
@@ -267,7 +267,7 @@
try:
#TODO: hate this hack but only way to get package imports inside the plugin to work?
sys.path.append( plugin.path )
- # sys.modules will now have import_as in it's list
+ # sys.modules will now have import_as in its list
module = imp.load_module( import_as, module_file, pathname, description )
finally:
module_file.close()
@@ -382,7 +382,7 @@
Set up the manager and load all plugins.
:type app: UniverseApplication
- :param app: the application (and it's configuration) using this manager
+ :param app: the application (and its configuration) using this manager
:type base_url: string
:param base_url: url to prefix all plugin urls with
:type template_cache_dir: string
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/webapps/galaxy/api/histories.py
--- a/lib/galaxy/webapps/galaxy/api/histories.py
+++ b/lib/galaxy/webapps/galaxy/api/histories.py
@@ -209,7 +209,7 @@
:param kwd: (optional) dictionary structure containing:
* payload: a dictionary itself containing:
- * purge: if True, purge the history and all of it's HDAs
+ * purge: if True, purge the history and all of its HDAs
:rtype: dict
:returns: an error object if an error occurred or a dictionary containing:
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/webapps/galaxy/api/library_contents.py
--- a/lib/galaxy/webapps/galaxy/api/library_contents.py
+++ b/lib/galaxy/webapps/galaxy/api/library_contents.py
@@ -264,7 +264,7 @@
adding ``ldda_message`` to the new ldda's ``message``.
``library_contents.create`` will branch to this if called with 'from_hda_id'
- in it's payload.
+ in its payload.
"""
log.debug( '_copy_hda_to_library_folder: %s' %( str(( from_hda_id, library_id, folder_id, ldda_message )) ) )
#PRECONDITION: folder_id has already been altered to remove the folder prefix ('F')
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/webapps/galaxy/api/tool_shed_repositories.py
--- a/lib/galaxy/webapps/galaxy/api/tool_shed_repositories.py
+++ b/lib/galaxy/webapps/galaxy/api/tool_shed_repositories.py
@@ -60,7 +60,7 @@
annotation = exported_workflow_dict.get( 'annotation', '' )
format_version = exported_workflow_dict.get( 'format-version', '' )
workflow_name = exported_workflow_dict.get( 'name', '' )
- # Since we don't have an in-memory object with an id, we'll identify the exported workflow via it's
+ # Since we don't have an in-memory object with an id, we'll identify the exported workflow via its
# location (i.e., index) in the list.
display_dict = dict( index=index, annotation=annotation, format_version=format_version, workflow_name=workflow_name )
exported_workflows.append( display_dict )
@@ -95,7 +95,7 @@
raise HTTPBadRequest( detail="Missing required parameter 'index'." )
repository = suc.get_tool_shed_repository_by_id( trans, tool_shed_repository_id )
exported_workflows = json.from_json_string( self.exported_workflows( trans, tool_shed_repository_id ) )
- # Since we don't have an in-memory object with an id, we'll identify the exported workflow via it's location (i.e., index) in the list.
+ # Since we don't have an in-memory object with an id, we'll identify the exported workflow via its location (i.e., index) in the list.
exported_workflow = exported_workflows[ int( index ) ]
workflow_name = exported_workflow[ 'workflow_name' ]
workflow, status, error_message = workflow_util.import_workflow( trans, repository, workflow_name )
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py
--- a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py
+++ b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py
@@ -217,7 +217,7 @@
def deactivate_or_uninstall_repository( self, trans, **kwd ):
"""
Handle all changes when a tool shed repository is being deactivated or uninstalled. Notice that if the repository contents include
- a file named tool_data_table_conf.xml.sample, it's entries are not removed from the defined config.shed_tool_data_table_config. This
+ a file named tool_data_table_conf.xml.sample, its entries are not removed from the defined config.shed_tool_data_table_config. This
is because it becomes a bit complex to determine if other installed repositories include tools that require the same entry. For now
we'll never delete entries from config.shed_tool_data_table_config, but we may choose to do so in the future if it becomes necessary.
"""
@@ -1270,7 +1270,7 @@
tool_panel_section_keys = []
metadata = tool_shed_repository.metadata
# Keep track of tool dependencies defined for the current repository or those defined for any of
- # it's repository dependencies.
+ # its repository dependencies.
includes_tool_dependencies = tool_shed_repository.includes_tool_dependencies
if tool_shed_repository.includes_tools_for_display_in_tool_panel:
# Handle the selected tool panel location for loading tools included in the tool shed repository.
@@ -1494,7 +1494,7 @@
includes_tool_dependencies = updated_repo_info_dict.get( 'includes_tool_dependencies', False )
repo_info_dict = updated_repo_info_dict[ 'repo_info_dict' ]
else:
- # There are no updates available from the tool shed for the repository, so use it's locally stored metadata.
+ # There are no updates available from the tool shed for the repository, so use its locally stored metadata.
has_repository_dependencies = False
includes_data_managers = False
includes_datatypes = False
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/webapps/galaxy/controllers/dataset.py
--- a/lib/galaxy/webapps/galaxy/controllers/dataset.py
+++ b/lib/galaxy/webapps/galaxy/controllers/dataset.py
@@ -966,7 +966,7 @@
toolbox = self.get_toolbox()
tool = toolbox.get_tool( job.tool_id )
assert tool is not None, 'Requested tool has not been loaded.'
- #Load parameter objects, if a parameter type has changed, its possible for the value to no longer be valid
+ #Load parameter objects, if a parameter type has changed, it's possible for the value to no longer be valid
try:
params_objects = job.get_param_values( trans.app, ignore_errors=False )
except:
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/webapps/galaxy/controllers/history.py
--- a/lib/galaxy/webapps/galaxy/controllers/history.py
+++ b/lib/galaxy/webapps/galaxy/controllers/history.py
@@ -339,7 +339,7 @@
if n_deleted:
part = "Deleted %d %s" % ( n_deleted, iff( n_deleted != 1, "histories", "history" ) )
if purge and trans.app.config.allow_user_dataset_purge:
- part += " and removed %s datasets from disk" % iff( n_deleted != 1, "their", "its" )
+ part += " and removed %s dataset%s from disk" % ( iff( n_deleted != 1, "their", "its" ), iff( n_deleted != 1, 's', '' ) )
elif purge:
part += " but the datasets were not removed from disk because that feature is not enabled in this Galaxy instance"
message_parts.append( "%s. " % part )
@@ -1121,7 +1121,7 @@
elif action == "public":
trans.app.security_agent.make_dataset_public( hda.dataset )
# Populate histories_for_sharing with the history after performing any requested actions on
- # it's datasets to make them accessible by the other user.
+ # its datasets to make them accessible by the other user.
if send_to_user not in histories_for_sharing:
histories_for_sharing[ send_to_user ] = [ history ]
elif history not in histories_for_sharing[ send_to_user ]:
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/webapps/galaxy/controllers/library_common.py
--- a/lib/galaxy/webapps/galaxy/controllers/library_common.py
+++ b/lib/galaxy/webapps/galaxy/controllers/library_common.py
@@ -1645,9 +1645,9 @@
contents = util.string_as_bool( params.get( 'contents', 'False' ) )
trans.app.security_agent.make_library_public( library, contents=contents )
if contents:
- message = "The data library (%s) and all it's contents have been made publicly accessible." % library.name
+ message = "The data library (%s) and all its contents have been made publicly accessible." % library.name
else:
- message = "The data library (%s) has been made publicly accessible, but access to it's contents has been left unchanged." % library.name
+ message = "The data library (%s) has been made publicly accessible, but access to its contents has been left unchanged." % library.name
elif item_type == 'folder':
folder = trans.sa_session.query( trans.model.LibraryFolder ).get( trans.security.decode_id( id ) )
self._check_access( trans, cntrller, is_admin, folder, current_user_roles, use_panels, library_id, show_deleted )
@@ -2281,13 +2281,13 @@
include = True
if move_folder:
if __is_contained_in( folder, move_folder ):
- # Don't allow moving a folder to one of it's sub-folders (circular issues in db)
+ # Don't allow moving a folder to one of its sub-folders (circular issues in db)
include = False
if move_folder.id == folder.id:
# Don't allow moving a folder to itself
include = False
if move_folder.parent and move_folder.parent.id == folder.id:
- # Don't allow moving a folder to it's current parent folder
+ # Don't allow moving a folder to its current parent folder
include = False
if include:
filtered_folders.append( folder )
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/webapps/galaxy/controllers/root.py
--- a/lib/galaxy/webapps/galaxy/controllers/root.py
+++ b/lib/galaxy/webapps/galaxy/controllers/root.py
@@ -139,7 +139,7 @@
@web.expose
def history( self, trans, as_xml=False, show_deleted=None, show_hidden=None, **kwd ):
"""
- Display the current history in it's own page or as xml.
+ Display the current history in its own page or as xml.
"""
if as_xml:
return self.history_as_xml( trans,
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/webapps/galaxy/controllers/visualization.py
--- a/lib/galaxy/webapps/galaxy/controllers/visualization.py
+++ b/lib/galaxy/webapps/galaxy/controllers/visualization.py
@@ -984,13 +984,13 @@
config = None
data = None
- # if id, then this is a saved visualization; get it's config and the dataset_id from there
+ # if id, then this is a saved visualization; get its config and the dataset_id from there
if id:
visualization = self.get_visualization( trans, id )
config = self.get_visualization_config( trans, visualization )
dataset_id = config.get( 'dataset_id', None )
- # get the hda if we can, then it's data using the phyloviz parsers
+ # get the hda if we can, then its data using the phyloviz parsers
if dataset_id:
hda = self.get_dataset( trans, dataset_id, check_ownership=False, check_accessible=True )
else:
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/webapps/tool_shed/api/repository_revisions.py
--- a/lib/galaxy/webapps/tool_shed/api/repository_revisions.py
+++ b/lib/galaxy/webapps/tool_shed/api/repository_revisions.py
@@ -24,7 +24,7 @@
def export( self, trans, payload, **kwd ):
"""
POST /api/repository_revisions/export
- Creates and saves a gzip compressed tar archive of a repository and optionally all of it's repository dependencies.
+ Creates and saves a gzip compressed tar archive of a repository and optionally all of its repository dependencies.
The following parameters are included in the payload.
:param tool_shed_url (required): the base URL of the Tool Shed from which the Repository is to be exported
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/galaxy/webapps/tool_shed/controllers/repository.py
--- a/lib/galaxy/webapps/tool_shed/controllers/repository.py
+++ b/lib/galaxy/webapps/tool_shed/controllers/repository.py
@@ -838,7 +838,7 @@
repository_id = kwd.get( 'id', None )
if 'f-free-text-search' in kwd:
if 'f-Category.name' in kwd:
- # The user browsed to a category and then entered a search string, so get the category associated with it's value.
+ # The user browsed to a category and then entered a search string, so get the category associated with its value.
category_name = kwd[ 'f-Category.name' ]
category = suc.get_category_by_name( trans, category_name )
# Set the id value in kwd since it is required by the ValidRepositoryGrid.build_initial_query method.
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/tool_shed/galaxy_install/install_manager.py
--- a/lib/tool_shed/galaxy_install/install_manager.py
+++ b/lib/tool_shed/galaxy_install/install_manager.py
@@ -159,7 +159,7 @@
def create_or_update_tool_shed_repository_records( self, name, changeset_revision, repository_dependencies_dict ):
"""
- Make sure the repository defined by name and changeset_revision and all of it's repository dependencies have
+ Make sure the repository defined by name and changeset_revision and all of its repository dependencies have
associated tool_shed_repository table rows in the Galaxy database.
"""
created_tool_shed_repositories = []
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/tool_shed/galaxy_install/repository_util.py
--- a/lib/tool_shed/galaxy_install/repository_util.py
+++ b/lib/tool_shed/galaxy_install/repository_util.py
@@ -150,7 +150,7 @@
"""
Inspect the installed repository dependency hierarchy for a specified repository and attempt to make sure they are all properly installed as well as
each repository's tool dependencies. This method is called only from Galaxy when attempting to correct issues with an installed repository that has
- installation problems somewhere in it's dependency hierarchy.
+ installation problems somewhere in its dependency hierarchy.
"""
tsr_ids = []
repo_info_dicts = []
@@ -287,7 +287,7 @@
"""
The received encoded_tsr_ids, repo_info_dicts, and tool_panel_section_keys are 3 lists that contain associated elements at each location in
the list. This method will return the elements from repo_info_dicts and tool_panel_section_keys associated with the received encoded_tsr_id
- by determining it's location in the received encoded_tsr_ids list.
+ by determining its location in the received encoded_tsr_ids list.
"""
for index, tsr_id in enumerate( encoded_tsr_ids ):
if tsr_id == encoded_tsr_id:
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/tool_shed/galaxy_install/tool_dependencies/fabric_util.py
--- a/lib/tool_shed/galaxy_install/tool_dependencies/fabric_util.py
+++ b/lib/tool_shed/galaxy_install/tool_dependencies/fabric_util.py
@@ -410,7 +410,7 @@
The second tag set defines a specific package dependency that has been previously installed (guaranteed by the
tag set discussed above) and compiled, where the compiled dependency is needed by the tool dependency currently
- being installed (osra version 2.0.0 in this case) and complied in order for it's installation and compilation to
+ being installed (osra version 2.0.0 in this case) and complied in order for its installation and compilation to
succeed. This tag set is contained within the <package name="osra" version="2.0.0"> tag set, which implies that
version 2.0.0 of the osra package requires version 1.3.18 of the graphicsmagick package in order to successfully
compile. When this tag set is handled, one of the effects is that the env.sh file associated with graphicsmagick
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/tool_shed/galaxy_install/tool_dependencies/td_common_util.py
--- a/lib/tool_shed/galaxy_install/tool_dependencies/td_common_util.py
+++ b/lib/tool_shed/galaxy_install/tool_dependencies/td_common_util.py
@@ -189,7 +189,7 @@
tool_dependency_name = sub_elem.get( 'name' )
tool_dependency_version = sub_elem.get( 'version' )
if tool_dependency_type and tool_dependency_name and tool_dependency_version:
- # Get the tool_dependency so we can get it's installation directory.
+ # Get the tool_dependency so we can get its installation directory.
tool_dependency = None
for tool_dependency in repository.tool_dependencies:
if tool_dependency.type == tool_dependency_type and \
@@ -335,7 +335,7 @@
# tag set) to be processed in the order they are defined in the tool_dependencies.xml file.
actions_elem_tuples = []
# The tag sets that will go into the actions_elem_list are those that install a compiled binary if
- # the architecture and operating system match it's defined attributes. If compiled binary is not
+ # the architecture and operating system match its defined attributes. If compiled binary is not
# installed, the first <actions> tag set [following those that have the os and architecture attributes]
# that does not have os or architecture attributes will be processed. This tag set must contain the
# recipe for downloading and compiling source.
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/tool_shed/grids/repository_grids.py
--- a/lib/tool_shed/grids/repository_grids.py
+++ b/lib/tool_shed/grids/repository_grids.py
@@ -1213,7 +1213,7 @@
grids.GridColumn.__init__( self, col_name )
def get_value( self, trans, grid, repository ):
- # At the time this grid is displayed we know that the received repository will have invalid tools in it's latest changeset revision
+ # At the time this grid is displayed we know that the received repository will have invalid tools in its latest changeset revision
# that has associated metadata.
val = ''
repository_metadata = get_latest_repository_metadata_if_it_includes_invalid_tools( trans, repository )
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/tool_shed/scripts/api/export.py
--- a/lib/tool_shed/scripts/api/export.py
+++ b/lib/tool_shed/scripts/api/export.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
"""
-Export a specified repository revision and optionally all of it's defined repository dependencies from the tool shed into a compressed archive.
+Export a specified repository revision and optionally all of its defined repository dependencies from the tool shed into a compressed archive.
Here is a working example of how to use this script to export a repository from the tool shed.
./export.py --url http://testtoolshed.g2.bx.psu.edu --name chemicaltoolbox --owner bgruening --revision 4133dbf7ff4d --export_repository_dependencies True --download_dir /tmp
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/tool_shed/util/common_install_util.py
--- a/lib/tool_shed/util/common_install_util.py
+++ b/lib/tool_shed/util/common_install_util.py
@@ -278,7 +278,7 @@
if new_rd_tup not in installed_rd_tups:
installed_rd_tups.append( new_rd_tup )
else:
- # A repository dependency that is not installed will not be considered missing if it's value
+ # A repository dependency that is not installed will not be considered missing if its value
# for only_if_compiling_contained_td is True This is because this type of repository dependency
# will only be considered at the time that the specified tool dependency is being installed, and
# even then only if the compiled binary of the tool dependency could not be installed due to the
@@ -296,7 +296,7 @@
None,
'Never installed' ]
if not util.asbool( only_if_compiling_contained_td ):
- # A repository dependency that is not installed will not be considered missing if it's value for
+ # A repository dependency that is not installed will not be considered missing if its value for
# only_if_compiling_contained_td is True - see above...
if new_rd_tup not in missing_rd_tups:
missing_rd_tups.append( new_rd_tup )
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/tool_shed/util/container_util.py
--- a/lib/tool_shed/util/container_util.py
+++ b/lib/tool_shed/util/container_util.py
@@ -1755,7 +1755,7 @@
Since the object used to generate a repository dependencies container is a dictionary and not an odict() (it must be
json-serialize-able), the order in which the dictionary is processed to create the container sometimes results in
repository dependency entries in a folder that also includes the repository dependency as a sub-folder (if the
- repository dependency has it's own repository dependency). This method will remove all repository dependencies from
+ repository dependency has its own repository dependency). This method will remove all repository dependencies from
folder that are also sub-folders of folder.
"""
repository_dependencies = [ rd for rd in folder.repository_dependencies ]
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/tool_shed/util/export_util.py
--- a/lib/tool_shed/util/export_util.py
+++ b/lib/tool_shed/util/export_util.py
@@ -209,7 +209,7 @@
"""
The received encoded_repository_ids and repo_info_dicts are lists that contain associated elements at each
location in the list. This method will return the element from repo_info_dicts associated with the received
- encoded_repository_id by determining it's location in the received encoded_repository_ids list.
+ encoded_repository_id by determining its location in the received encoded_repository_ids list.
"""
for index, repository_id in enumerate( encoded_repository_ids ):
if repository_id == encoded_repository_id:
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/tool_shed/util/import_util.py
--- a/lib/tool_shed/util/import_util.py
+++ b/lib/tool_shed/util/import_util.py
@@ -107,7 +107,7 @@
return archives, error_message
def get_export_info_dict( export_info_file_path ):
- """Parse the export_info.xml file contained within the capsule and return a dictionary containing it's entries."""
+ """Parse the export_info.xml file contained within the capsule and return a dictionary containing its entries."""
export_info_tree, error_message = xml_util.parse_xml( export_info_file_path )
export_info_root = export_info_tree.getroot()
export_info_dict = {}
@@ -355,7 +355,7 @@
return return_dict
def validate_capsule( trans, **kwd ):
- """Inspect the uploaded capsule's manifest and it's contained files to ensure it is a valid repository capsule."""
+ """Inspect the uploaded capsule's manifest and its contained files to ensure it is a valid repository capsule."""
capsule_dict = {}
capsule_dict.update( kwd )
encoded_file_path = capsule_dict.get( 'encoded_file_path', '' )
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/tool_shed/util/metadata_util.py
--- a/lib/tool_shed/util/metadata_util.py
+++ b/lib/tool_shed/util/metadata_util.py
@@ -223,7 +223,7 @@
break
if not found_in_current:
# In some cases, the only difference between a dependency definition in the lists is the changeset_revision value. We'll
- # check to see if this is the case, and if the defined dependency is a repository that has metadata set only on it's tip.
+ # check to see if this is the case, and if the defined dependency is a repository that has metadata set only on its tip.
if not different_revision_defines_tip_only_repository_dependency( trans, ancestor_tup, current_repository_dependencies ):
return NOT_EQUAL_AND_NOT_SUBSET
return SUBSET
@@ -586,7 +586,7 @@
resetting_all_metadata_on_repository=False, updating_installed_repository=False,
persist=False ):
"""
- Generate metadata for a repository using it's files on disk. To generate metadata for changeset revisions older than
+ Generate metadata for a repository using its files on disk. To generate metadata for changeset revisions older than
the repository tip, the repository will have been cloned to a temporary location and updated to a specified changeset
revision to access that changeset revision's disk files, so the value of repository_files_dir will not always be
repository.repo_path( app ) (it could be an absolute path to a temporary directory containing a clone). If it is an
@@ -650,7 +650,7 @@
# Copy all sample files included in the repository to a single directory location so we can load tools that depend on them.
for sample_file in sample_file_copy_paths:
tool_util.copy_sample_file( app, sample_file, dest_path=work_dir )
- # If the list of sample files includes a tool_data_table_conf.xml.sample file, laad it's table elements into memory.
+ # If the list of sample files includes a tool_data_table_conf.xml.sample file, load its table elements into memory.
relative_path, filename = os.path.split( sample_file )
if filename == 'tool_data_table_conf.xml.sample':
new_table_elems, error_message = \
@@ -1282,7 +1282,7 @@
return repository_dependency_tup, is_valid, error_message
repo = hg.repository( hg_util.get_configured_ui(), repository.repo_path( app ) )
# The received changeset_revision may be None since defining it in the dependency definition is optional.
- # If this is the case, the default will be to set it's value to the repository dependency tip revision.
+ # If this is the case, the default will be to set its value to the repository dependency tip revision.
# This probably occurs only when handling circular dependency definitions.
tip_ctx = repo.changectx( repo.changelog.tip() )
# Make sure the repo.changlog includes at least 1 revision.
@@ -1505,7 +1505,7 @@
for saved_repository_dependency in saved_repository_dependencies:
if saved_repository_dependency not in new_repository_dependencies:
# In some cases, the only difference between a dependency definition in the lists is the changeset_revision value. We'll
- # check to see if this is the case, and if the defined dependency is a repository that has metadata set only on it's tip.
+ # check to see if this is the case, and if the defined dependency is a repository that has metadata set only on its tip.
if not different_revision_defines_tip_only_repository_dependency( trans, saved_repository_dependency, new_repository_dependencies ):
return True
return False
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/tool_shed/util/repository_dependency_util.py
--- a/lib/tool_shed/util/repository_dependency_util.py
+++ b/lib/tool_shed/util/repository_dependency_util.py
@@ -153,7 +153,7 @@
trans.install_model.ToolShedRepository.installation_status.LOADING_PROPRIETARY_DATATYPES ]:
debug_msg = "Skipping installation of revision %s of repository '%s' because it was installed " % \
( str( changeset_revision ), str( repository_db_record.name ) )
- debug_msg += "with the (possibly updated) revision %s and it's current installation status is '%s'." % \
+ debug_msg += "with the (possibly updated) revision %s and its current installation status is '%s'." % \
( str( installed_changeset_revision ), str( repository_db_record.status ) )
log.debug( debug_msg )
can_update_db_record = False
@@ -161,14 +161,14 @@
if repository_db_record.status in [ trans.install_model.ToolShedRepository.installation_status.ERROR,
trans.install_model.ToolShedRepository.installation_status.NEW,
trans.install_model.ToolShedRepository.installation_status.UNINSTALLED ]:
- # The current tool shed repository is not currently installed, so we can update it's record in the database.
+ # The current tool shed repository is not currently installed, so we can update its record in the database.
name = repository_db_record.name
installed_changeset_revision = repository_db_record.installed_changeset_revision
metadata_dict = repository_db_record.metadata
dist_to_shed = repository_db_record.dist_to_shed
can_update_db_record = True
elif repository_db_record.status in [ trans.install_model.ToolShedRepository.installation_status.DEACTIVATED ]:
- # The current tool shed repository is deactivated, so updating it's database record is not necessary - just activate it.
+ # The current tool shed repository is deactivated, so updating its database record is not necessary - just activate it.
log.debug( "Reactivating deactivated tool_shed_repository '%s'." % str( repository_db_record.name ) )
common_install_util.activate_repository( trans, repository_db_record )
# No additional updates to the database record are necessary.
@@ -802,7 +802,7 @@
filtered_current_repository_key_rd_dicts.append( key_rd_dict )
repository_dependency = key_rd_dict[ current_repository_key ]
if current_repository_key in all_repository_dependencies:
- # Add all repository dependencies for the current repository into it's entry in all_repository_dependencies.
+ # Add all repository dependencies for the current repository into its entry in all_repository_dependencies.
all_repository_dependencies_val = all_repository_dependencies[ current_repository_key ]
if repository_dependency not in all_repository_dependencies_val:
all_repository_dependencies_val.append( repository_dependency )
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/tool_shed/util/shed_util_common.py
--- a/lib/tool_shed/util/shed_util_common.py
+++ b/lib/tool_shed/util/shed_util_common.py
@@ -713,8 +713,8 @@
def get_next_prior_import_or_install_required_dict_entry( prior_required_dict, processed_tsr_ids ):
"""
- This method is used in the Tool Shed when exporting a repository and it's dependencies, and in Galaxy
- when a repository and it's dependencies are being installed. The order in which the prior_required_dict
+ This method is used in the Tool Shed when exporting a repository and its dependencies, and in Galaxy
+ when a repository and its dependencies are being installed. The order in which the prior_required_dict
is processed is critical in order to ensure that the ultimate repository import or installation order is
correctly defined. This method determines the next key / value pair from the received prior_required_dict
that should be processed.
@@ -813,7 +813,7 @@
def get_prior_import_or_install_required_dict( trans, tsr_ids, repo_info_dicts ):
"""
- This method is used in the Tool Shed when exporting a repository and it's dependencies, and in Galaxy when a repository and it's dependencies
+ This method is used in the Tool Shed when exporting a repository and its dependencies, and in Galaxy when a repository and its dependencies
are being installed. Return a dictionary whose keys are the received tsr_ids and whose values are a list of tsr_ids, each of which is contained
in the received list of tsr_ids and whose associated repository must be imported or installed prior to the repository associated with the tsr_id key.
"""
@@ -1077,9 +1077,9 @@
def get_repository_ids_requiring_prior_import_or_install( trans, tsr_ids, repository_dependencies ):
"""
- This method is used in the Tool Shed when exporting a repository and it's dependencies, and in Galaxy when a repository and it's dependencies
+ This method is used in the Tool Shed when exporting a repository and its dependencies, and in Galaxy when a repository and its dependencies
are being installed. Inspect the received repository_dependencies and determine if the encoded id of each required repository is in the received
- tsr_ids. If so, then determine whether that required repository should be imported / installed prior to it's dependent repository. Return a list
+ tsr_ids. If so, then determine whether that required repository should be imported / installed prior to its dependent repository. Return a list
of encoded repository ids, each of which is contained in the received list of tsr_ids, and whose associated repositories must be imported / installed
prior to the dependent repository associated with the received repository_dependencies.
"""
@@ -1093,7 +1093,7 @@
common_util.parse_repository_dependency_tuple( rd_tup )
# If only_if_compiling_contained_td is False, then the repository dependency is not required to be installed prior to the dependent
# repository even if prior_installation_required is True. This is because the only meaningful content of the repository dependency
- # is it's contained tool dependency, which is required in order to compile the dependent repository's tool dependency. In the scenario
+ # is its contained tool dependency, which is required in order to compile the dependent repository's tool dependency. In the scenario
# where the repository dependency is not installed prior to the dependent repository's tool dependency compilation process, the tool
# dependency compilation framework will install the repository dependency prior to compilation of the dependent repository's tool
# dependency.
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 lib/tool_shed/util/tool_dependency_util.py
--- a/lib/tool_shed/util/tool_dependency_util.py
+++ b/lib/tool_shed/util/tool_dependency_util.py
@@ -643,7 +643,7 @@
def tool_dependency_is_orphan( type, name, version, tools ):
"""
Determine if the combination of the received type, name and version is defined in the <requirement> tag for at least one tool in the
- received list of tools. If not, the tool dependency defined by the combination is considered an orphan in it's repository in the tool
+ received list of tools. If not, the tool dependency defined by the combination is considered an orphan in its repository in the tool
shed.
"""
if type == 'package':
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 scripts/cleanup_datasets/cleanup_datasets.py
--- a/scripts/cleanup_datasets/cleanup_datasets.py
+++ b/scripts/cleanup_datasets/cleanup_datasets.py
@@ -284,10 +284,10 @@
skip = []
# Handle library datasets. This is a bit tricky, so here's some clarification. We have a list of all
# LibraryDatasets that were marked deleted before our cutoff_time, but have not yet been marked purged.
- # A LibraryDataset object is marked purged when all of it's LibraryDatasetDatasetAssociations have been
+ # A LibraryDataset object is marked purged when all of its LibraryDatasetDatasetAssociations have been
# marked deleted. When a LibraryDataset has been marked purged, it can never be undeleted in the data
- # library. We have several steps to complete here. For each LibraryDataset, get it's associated Dataset
- # and add it to our accrued list of Datasets for later processing. We mark as deleted all of it's
+ # library. We have several steps to complete here. For each LibraryDataset, get its associated Dataset
+ # and add it to our accrued list of Datasets for later processing. We mark as deleted all of its
# LibraryDatasetDatasetAssociations. Then we mark the LibraryDataset as purged. We then process our
# list of Datasets.
library_dataset_ids = [ row.id for row in library_dataset_ids_query.execute() ]
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 scripts/scramble/patches/Cheetah/SetupConfig.py
--- a/scripts/scramble/patches/Cheetah/SetupConfig.py
+++ b/scripts/scramble/patches/Cheetah/SetupConfig.py
@@ -79,7 +79,7 @@
long_description = '''Cheetah is an open source template engine and code generation tool.
It can be used standalone or combined with other tools and frameworks. Web
-development is its principle use, but Cheetah is very flexible and is also being
+development is its principal use, but Cheetah is very flexible and is also being
used to generate C++ game code, Java, sql, form emails and even Python code.
Documentation
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 static/scripts/libs/IE/IE7.js
--- a/static/scripts/libs/IE/IE7.js
+++ b/static/scripts/libs/IE/IE7.js
@@ -1929,12 +1929,12 @@
element.runtimeStyle.autoLeft = element.currentStyle.right != "auto" &&
element.currentStyle.left == "auto";
//}
- // reset the element's "left" value and get it's natural position
+ // reset the element's "left" value and get its natural position
element.runtimeStyle.left = "";
element.runtimeStyle.screenLeft = getScreenLeft(element);
element.runtimeStyle.pixelLeft = element.runtimeStyle.screenLeft;
// if the element is contained by another fixed element then there is no need to
- // continually recalculate it's left position
+ // continually recalculate its left position
if (!recalc && !_isFixed(element.offsetParent)) {
// onsrcoll produces jerky movement, so we use an expression
_setExpression(element, "pixelLeft", "runtimeStyle.screenLeft+runtimeStyle.shiftLeft+document." + $viewport + ".scrollLeft");
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 static/scripts/libs/IE/IE8.js
--- a/static/scripts/libs/IE/IE8.js
+++ b/static/scripts/libs/IE/IE8.js
@@ -1929,12 +1929,12 @@
element.runtimeStyle.autoLeft = element.currentStyle.right != "auto" &&
element.currentStyle.left == "auto";
//}
- // reset the element's "left" value and get it's natural position
+ // reset the element's "left" value and get its natural position
element.runtimeStyle.left = "";
element.runtimeStyle.screenLeft = getScreenLeft(element);
element.runtimeStyle.pixelLeft = element.runtimeStyle.screenLeft;
// if the element is contained by another fixed element then there is no need to
- // continually recalculate it's left position
+ // continually recalculate its left position
if (!recalc && !_isFixed(element.offsetParent)) {
// onsrcoll produces jerky movement, so we use an expression
_setExpression(element, "pixelLeft", "runtimeStyle.screenLeft+runtimeStyle.shiftLeft+document." + $viewport + ".scrollLeft");
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 static/scripts/libs/jquery/jquery.js
--- a/static/scripts/libs/jquery/jquery.js
+++ b/static/scripts/libs/jquery/jquery.js
@@ -9171,7 +9171,7 @@
dataShow = jQuery._data( elem, "fxshow", {} );
}
- // store state if its toggle - enables .stop().toggle() to "reverse"
+ // store state if it's toggle - enables .stop().toggle() to "reverse"
if ( toggle ) {
dataShow.hidden = !hidden;
}
@@ -9273,7 +9273,7 @@
return !result || result === "auto" ? 0 : result;
},
set: function( tween ) {
- // use step hook for back compat - use cssHook if its there - use .style if its
+ // use step hook for back compat - use cssHook if it's there - use .style if it's
// available and use plain properties where available
if ( jQuery.fx.step[ tween.prop ] ) {
jQuery.fx.step[ tween.prop ]( tween );
@@ -9656,7 +9656,7 @@
parentOffset = { top: 0, left: 0 },
elem = this[ 0 ];
- // fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent
+ // fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent
if ( jQuery.css( elem, "position" ) === "fixed" ) {
// we assume that getBoundingClientRect is available when computed position is fixed
offset = elem.getBoundingClientRect();
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 static/scripts/libs/jquery/jquery.rating.js
--- a/static/scripts/libs/jquery/jquery.rating.js
+++ b/static/scripts/libs/jquery/jquery.rating.js
@@ -296,7 +296,7 @@
this.data('rating', control);
// Update display
this.rating('draw');
- // find current input and its sibblings
+ // find current input and its siblings
var current = $( control.current ? control.current.data('rating.input') : null );
var lastipt = $( control.inputs ).filter(':checked');
var deadipt = $( control.inputs ).not(current);
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 static/scripts/libs/jquery/jquery.wymeditor.js
--- a/static/scripts/libs/jquery/jquery.wymeditor.js
+++ b/static/scripts/libs/jquery/jquery.wymeditor.js
@@ -2441,7 +2441,7 @@
/**
* Compounded regular expression. Any of
* the contained patterns could match and
-* when one does, it's label is returned.
+* when one does, its label is returned.
*
* Constructor. Starts with no patterns.
* @param boolean case True for case sensitive, false
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 static/scripts/libs/jquery/select2.js
--- a/static/scripts/libs/jquery/select2.js
+++ b/static/scripts/libs/jquery/select2.js
@@ -263,7 +263,7 @@
$el.focus();
/* make sure el received focus so we do not error out when trying to manipulate the caret.
- sometimes modals or others listeners may steal it after its set */
+ sometimes modals or others listeners may steal it after it's set */
if ($el.is(":visible") && el === document.activeElement) {
/* after the focus is set move the caret to the end, necessary when we val()
@@ -2761,7 +2761,7 @@
}
}
- // since its not possible to select an element that has already been
+ // since it's not possible to select an element that has already been
// added we do not need to check if this is a new element before firing change
this.triggerChange({ added: data });
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 static/scripts/mvc/history/annotated-history-panel.js
--- a/static/scripts/mvc/history/annotated-history-panel.js
+++ b/static/scripts/mvc/history/annotated-history-panel.js
@@ -62,7 +62,7 @@
return $newRender;
},
- /** render the history's annotation as it's own field */
+ /** render the history's annotation as its own field */
renderHistoryAnnotation : function(){
var annotation = this.model.get( 'annotation' );
if( !annotation ){ return null; }
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 static/scripts/mvc/history/history-model.js
--- a/static/scripts/mvc/history/history-model.js
+++ b/static/scripts/mvc/history/history-model.js
@@ -216,7 +216,7 @@
*/
History.UPDATE_DELAY = 4000;
-/** Get data for a history then it's hdas using a sequential ajax call, return a deferred to receive both */
+/** Get data for a history then its hdas using a sequential ajax call, return a deferred to receive both */
History.getHistoryData = function getHistoryData( historyId, options ){
options = options || {};
var hdaDetailIds = options.hdaDetailIds || [];
@@ -262,7 +262,7 @@
df.notify({ status: 'history data retrieved', historyJSON: historyJSON });
});
historyXHR.fail( function( xhr, status, message ){
- // call reject on the outer deferred to allow it's fail callback to run
+ // call reject on the outer deferred to allow its fail callback to run
df.reject( xhr, 'loading the history' );
});
@@ -273,7 +273,7 @@
df.resolve( historyJSON, hdaJSON );
});
hdaXHR.fail( function( xhr, status, message ){
- // call reject on the outer deferred to allow it's fail callback to run
+ // call reject on the outer deferred to allow its fail callback to run
df.reject( xhr, 'loading the datasets', { history: historyJSON } );
});
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 static/scripts/mvc/ui.js
--- a/static/scripts/mvc/ui.js
+++ b/static/scripts/mvc/ui.js
@@ -339,7 +339,7 @@
return this;
},
- // search for a menu option by it's html
+ // search for a menu option by its html
findIndexByHtml: function( html ){
for( var i = 0; i < this.options.length; i++ ){
if( _.has( this.options[i], 'html' ) && ( this.options[i].html === html )){
@@ -349,7 +349,7 @@
return null;
},
- // search for a menu option by it's html
+ // search for a menu option by its html
findItemByHtml: function( html ){
return this.options[( this.findIndexByHtml( html ))];
},
@@ -750,7 +750,7 @@
*
* When clicked in a particular node, the onclick function will
* be called (with the element as this) and the element will
- * switch to the next mode, replacing it's html content with
+ * switch to the next mode, replacing its html content with
* that mode's html.
*
* If there is no next mode, the element will switch back to
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 static/scripts/utils/uploadbox.js
--- a/static/scripts/utils/uploadbox.js
+++ b/static/scripts/utils/uploadbox.js
@@ -80,7 +80,7 @@
// drop event
function drop(e)
{
- // check if its a file transfer
+ // check if it's a file transfer
if(!e.dataTransfer)
return;
@@ -197,7 +197,7 @@
// identify maximum file size
var maxfilesize = 1048576 * opts.maxfilesize;
- // check file size, unless its an ftp file
+ // check file size, unless it's an ftp file
if (filesize < maxfilesize || file.mode == 'ftp')
{
// get parameters
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 templates/admin/requests/select_datasets_to_transfer.mako
--- a/templates/admin/requests/select_datasets_to_transfer.mako
+++ b/templates/admin/requests/select_datasets_to_transfer.mako
@@ -101,7 +101,7 @@
%if request.samples_without_library_destinations:
<p>
- <font color="red"><b><i>Select a target data library and folder for a sample before selecting it's datasets to transfer from the external service</i></b></font>
+ <font color="red"><b><i>Select a target data library and folder for a sample before selecting its datasets to transfer from the external service</i></b></font></p>
%endif
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 templates/admin/tool_shed_repository/deactivate_or_uninstall_repository.mako
--- a/templates/admin/tool_shed_repository/deactivate_or_uninstall_repository.mako
+++ b/templates/admin/tool_shed_repository/deactivate_or_uninstall_repository.mako
@@ -49,7 +49,7 @@
</tr></table><div class="toolParamHelp" style="clear: both;">
- * The repository and all of it's contents will remain on disk and can still be used by dependent items.
+ * The repository and all of its contents will remain on disk and can still be used by dependent items.
</div>
%if repository.includes_tools_for_display_in_tool_panel:
<div class="toolParamHelp" style="clear: both;">
@@ -80,7 +80,7 @@
</tr></table><div class="toolParamHelp" style="clear: both;">
- * The repository and all of it's contents will be removed from disk and can no longer be used by dependent items.
+ * The repository and all of its contents will be removed from disk and can no longer be used by dependent items.
</div>
%if repository.includes_tools_for_display_in_tool_panel:
<div class="toolParamHelp" style="clear: both;">
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 templates/admin/tool_shed_repository/repair_repository.mako
--- a/templates/admin/tool_shed_repository/repair_repository.mako
+++ b/templates/admin/tool_shed_repository/repair_repository.mako
@@ -19,7 +19,7 @@
<div class="warningmessage"><p>
- The following repositories will be inspected and repaired in the order listed to ensure each repository and all of it's tool dependencies are
+ The following repositories will be inspected and repaired in the order listed to ensure each repository and all of its tool dependencies are
correctly installed.
</p><p>
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 templates/admin/tool_shed_repository/reselect_tool_panel_section.mako
--- a/templates/admin/tool_shed_repository/reselect_tool_panel_section.mako
+++ b/templates/admin/tool_shed_repository/reselect_tool_panel_section.mako
@@ -53,7 +53,7 @@
<%
if len( shed_tool_conf_select_field.options ) == 1:
select_help = "Your Galaxy instance is configured with 1 shed-related tool configuration file, so repositories will be "
- select_help += "installed using it's <b>tool_path</b> setting."
+ select_help += "installed using its <b>tool_path</b> setting."
else:
select_help = "Your Galaxy instance is configured with %d shed-related tool configuration files, " % len( shed_tool_conf_select_field.options )
select_help += "so select the file whose <b>tool_path</b> setting you want used for installing repositories."
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 templates/admin/tool_shed_repository/select_shed_tool_panel_config.mako
--- a/templates/admin/tool_shed_repository/select_shed_tool_panel_config.mako
+++ b/templates/admin/tool_shed_repository/select_shed_tool_panel_config.mako
@@ -102,7 +102,7 @@
<%
if len( shed_tool_conf_select_field.options ) == 1:
select_help = "Your Galaxy instance is configured with 1 shed-related tool configuration file, so repositories will be "
- select_help += "installed using it's <b>tool_path</b> setting."
+ select_help += "installed using its <b>tool_path</b> setting."
else:
select_help = "Your Galaxy instance is configured with %d shed-related tool configuration files, " % len( shed_tool_conf_select_field.options )
select_help += "so select the file whose <b>tool_path</b> setting you want used for installing repositories."
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 templates/admin/tool_shed_repository/select_tool_panel_section.mako
--- a/templates/admin/tool_shed_repository/select_tool_panel_section.mako
+++ b/templates/admin/tool_shed_repository/select_tool_panel_section.mako
@@ -102,7 +102,7 @@
<%
if len( shed_tool_conf_select_field.options ) == 1:
select_help = "Your Galaxy instance is configured with 1 shed-related tool configuration file, so repositories will be "
- select_help += "installed using it's <b>tool_path</b> setting."
+ select_help += "installed using its <b>tool_path</b> setting."
else:
select_help = "Your Galaxy instance is configured with %d shed-related tool configuration files, " % len( shed_tool_conf_select_field.options )
select_help += "so select the file whose <b>tool_path</b> setting you want used for installing repositories."
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 templates/display_common.mako
--- a/templates/display_common.mako
+++ b/templates/display_common.mako
@@ -3,7 +3,7 @@
## HACK: these should probably go in the web helper object.
##
## TODO: FIXME Cannot import model here, because grids are
-## used across webapps, and each webapp has it's own model.
+## used across webapps, and each webapp has its own model.
<%! from galaxy import model %>
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 templates/webapps/galaxy/admin/center.mako
--- a/templates/webapps/galaxy/admin/center.mako
+++ b/templates/webapps/galaxy/admin/center.mako
@@ -135,7 +135,7 @@
</li><li><strong>user</strong> - this is currently not used, but eventually any registered user will be able to create a new role
- and this will be it's type.
+ and this will be its type.
</li><li><strong>sharing</strong> - a role created automatically during a Galaxy session that enables a user to share data with
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 templates/webapps/galaxy/workflow/display.mako
--- a/templates/webapps/galaxy/workflow/display.mako
+++ b/templates/webapps/galaxy/workflow/display.mako
@@ -78,7 +78,7 @@
<%def name="render_item( workflow, steps )"><%
- # HACK: Rendering workflow steps requires that trans have a history; however, if it's user's first visit to Galaxy is here, he won't have a history
+ # HACK: Rendering workflow steps requires that trans have a history; however, if its user's first visit to Galaxy is here, he won't have a history
# and an error will occur. To prevent this error, make sure user has a history.
trans.get_history( create=True )
%>
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 templates/webapps/tool_shed/repository/browse_repository.mako
--- a/templates/webapps/tool_shed/repository/browse_repository.mako
+++ b/templates/webapps/tool_shed/repository/browse_repository.mako
@@ -57,7 +57,7 @@
Loading...
</div><div class="toolParamHelp" style="clear: both;">
- Click on a file to display it's contents below. You may delete files from the repository by clicking the check box next to each file and clicking the <b>Delete selected files</b> button.
+ Click on a file to display its contents below. You may delete files from the repository by clicking the check box next to each file and clicking the <b>Delete selected files</b> button.
</div><input id="selected_files_to_delete" name="selected_files_to_delete" type="hidden" value=""/></div>
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 test/base/twilltestcase.py
--- a/test/base/twilltestcase.py
+++ b/test/base/twilltestcase.py
@@ -2259,9 +2259,9 @@
self.visit_url( url )
if item_type == 'library':
if contents:
- check_str = "The data library (%s) and all it's contents have been made publicly accessible." % library_name
+ check_str = "The data library (%s) and all its contents have been made publicly accessible." % library_name
else:
- check_str = "The data library (%s) has been made publicly accessible, but access to it's contents has been left unchanged." % library_name
+ check_str = "The data library (%s) has been made publicly accessible, but access to its contents has been left unchanged." % library_name
elif item_type == 'folder':
check_str = "All of the contents of folder (%s) have been made publicly accessible." % folder_name
elif item_type == 'ldda':
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 test/casperjs/casperjs_runner.py
--- a/test/casperjs/casperjs_runner.py
+++ b/test/casperjs/casperjs_runner.py
@@ -156,7 +156,7 @@
# as of casperjs 1.1, we always need to use the 'test' command
command_line_list.append( 'test' )
- # make rel_script_path an absolute path (when this is not run from it's dir - i.e. run_functional_tests.sh)
+ # make rel_script_path an absolute path (when this is not run from its dir - i.e. run_functional_tests.sh)
curr_dir = os.path.dirname( __file__ )
script_path = os.path.join( curr_dir, rel_script_path )
command_line_list.append( script_path )
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 test/casperjs/history-panel-tests.js
--- a/test/casperjs/history-panel-tests.js
+++ b/test/casperjs/history-panel-tests.js
@@ -174,7 +174,7 @@
});
// ------------------------------------------------------------------- tags
-// keeping this light here - better for it's own test file
+// keeping this light here - better for its own test file
//TODO: check tooltips
spaceghost.then( function openTags(){
this.test.comment( 'tag area should open when the history panel tag icon is clicked' );
@@ -194,7 +194,7 @@
});
// ------------------------------------------------------------------- annotation
-// keeping this light here - better for it's own test file
+// keeping this light here - better for its own test file
//TODO: check tooltips
spaceghost.then( function openAnnotation(){
this.test.comment( 'annotation area should open when the history panel annotation icon is clicked' );
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 test/casperjs/spaceghost.js
--- a/test/casperjs/spaceghost.js
+++ b/test/casperjs/spaceghost.js
@@ -475,7 +475,7 @@
*/
SpaceGhost.prototype.open = function open(){
//TODO: this can be moved to start (I think...?)
- //!! override bc phantom has it's lang as 'en-US,*' and galaxy doesn't handle the '*' well (server error)
+ //!! override bc phantom has its lang as 'en-US,*' and galaxy doesn't handle the '*' well (server error)
this.page.customHeaders = { 'Accept-Language': 'en-US' };
return Casper.prototype.open.apply( this, arguments );
};
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 test/qunit/test-libs/qunit-1.14.0.js
--- a/test/qunit/test-libs/qunit-1.14.0.js
+++ b/test/qunit/test-libs/qunit-1.14.0.js
@@ -538,7 +538,7 @@
/**
* @deprecated: Created for backwards compatibility with test runner that set the hook function
* into QUnit.{hook}, instead of invoking it and passing the hook function.
- * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here.
+ * QUnit.constructor is set to the empty F() above so that we can add to its prototype here.
* Doing this allows us to tell if the following methods have been overwritten on the actual
* QUnit object.
*/
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 test/tool_shed/base/twilltestcase.py
--- a/test/tool_shed/base/twilltestcase.py
+++ b/test/tool_shed/base/twilltestcase.py
@@ -1361,7 +1361,7 @@
# in the tool shed, all contained .loc.sample files are copied to this directory and the
# ToolDataTableManager parses and loads the files in the same way that Galaxy does with a very
# important exception. When the tool shed loads a tool and parses and loads the copied ,loc.sample
- # files, the ToolDataTableManager is already instantiated, and so it's add_new_entries_from_config_file()
+ # files, the ToolDataTableManager is already instantiated, and so its add_new_entries_from_config_file()
# method is called and the tool_data_path parameter is used to over-ride the hard-coded "tool-data"
# directory that Galaxy always uses.
#
diff -r 41889121607bab478bba3a9b606a12f1a6c690b4 -r 8f940d25dc283ed462ab8df3873d235789cabe38 test/tool_shed/functional/test_0470_tool_dependency_repository_type.py
--- a/test/tool_shed/functional/test_0470_tool_dependency_repository_type.py
+++ b/test/tool_shed/functional/test_0470_tool_dependency_repository_type.py
@@ -44,9 +44,9 @@
8. Change the repository type of the package_emboss_5_0_0 repository to be tool_dependency_definition.
-9. Reset metadata on the package_emboss_5_0_0 repository. It should now have only it's tip as the installable revision.
+9. Reset metadata on the package_emboss_5_0_0 repository. It should now have only its tip as the installable revision.
-10. Reset metadata on the emboss_5 repository. It should now have only it's tip as the installable revision.
+10. Reset metadata on the emboss_5 repository. It should now have only its tip as the installable revision.
'''
@@ -245,7 +245,7 @@
def test_0050_reset_emboss_5_metadata( self ):
'''Reset metadata on emboss_5.'''
'''
- This is step 10 - Reset metadata on the emboss_5 repository. It should now have only it's tip as the installable revision.
+ This is step 10 - Reset metadata on the emboss_5 repository. It should now have only its tip as the installable revision.
'''
emboss_repository = self.test_db_util.get_repository_by_name_and_owner( emboss_repository_name, common.test_user_1_name )
self.reset_repository_metadata( emboss_repository )
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: jmchilton: Merged in dan/galaxy-central-stable-prs/stable (pull request #369)
by commits-noreply@bitbucket.org 17 Apr '14
by commits-noreply@bitbucket.org 17 Apr '14
17 Apr '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/5fd196b5d176/
Changeset: 5fd196b5d176
Branch: stable
User: jmchilton
Date: 2014-04-17 22:02:44
Summary: Merged in dan/galaxy-central-stable-prs/stable (pull request #369)
BioStar fixes
Affected #: 6 files
diff -r a0ccb7e6bfdfe5058561e709a81dee9f26e5c991 -r 5fd196b5d1760d1a8180184f8e5450e0957b37c2 lib/galaxy/config.py
--- a/lib/galaxy/config.py
+++ b/lib/galaxy/config.py
@@ -329,6 +329,8 @@
self.biostar_url = kwargs.get( 'biostar_url', None )
self.biostar_key_name = kwargs.get( 'biostar_key_name', None )
self.biostar_key = kwargs.get( 'biostar_key', None )
+ self.biostar_enable_bug_reports = string_as_bool( kwargs.get( 'biostar_enable_bug_reports', True ) )
+ self.biostar_never_authenticate = string_as_bool( kwargs.get( 'biostar_never_authenticate', False ) )
self.pretty_datetime_format = expand_pretty_datetime_format( kwargs.get( 'pretty_datetime_format', '$locale (UTC)' ) )
self.master_api_key = kwargs.get( 'master_api_key', None )
if self.master_api_key == "changethis": # default in sample config file
diff -r a0ccb7e6bfdfe5058561e709a81dee9f26e5c991 -r 5fd196b5d1760d1a8180184f8e5450e0957b37c2 lib/galaxy/util/biostar.py
--- a/lib/galaxy/util/biostar.py
+++ b/lib/galaxy/util/biostar.py
@@ -2,6 +2,7 @@
Support for integration with the Biostar application
"""
+import logging
import hmac
import urlparse
import re
@@ -10,9 +11,11 @@
from galaxy.tools.errors import ErrorReporter
from . import smart_str
+log = logging.getLogger( __name__ )
+
_punct_re = re.compile(r'[\t !"#$%&\'()*\-/<=>?(a)\[\\\]^_`{|},.]+')
-DEFAULT_GALAXY_TAG = 'galaxy'
+DEFAULT_GALAXY_TAG = ''
# Default values for new posts to Biostar
DEFAULT_PAYLOAD = {
@@ -77,7 +80,10 @@
def populate_tag_payload( payload=None, tool=None ):
if payload is None:
payload = {}
- tag_val = [ DEFAULT_GALAXY_TAG ]
+ if DEFAULT_GALAXY_TAG:
+ tag_val = [ DEFAULT_GALAXY_TAG ]
+ else:
+ tag_val = []
if tool:
tag_val.append( tag_for_tool( tool ) )
payload[ 'tag_val' ] = ','.join( tag_val )
@@ -110,7 +116,10 @@
return galaxy_hostname
-def create_cookie( trans, key_name, key, email, age=DEFAULT_BIOSTAR_COOKIE_AGE ):
+def create_cookie( trans, key_name, key, email, age=DEFAULT_BIOSTAR_COOKIE_AGE, override_never_authenticate=False ):
+ if trans.app.config.biostar_never_authenticate and not override_never_authenticate:
+ log.debug( 'A BioStar link was clicked, but never authenticate has been enabled, so we will not create the login cookie.' )
+ return
digest = hmac.new( key, email ).hexdigest()
value = "%s:%s" % (email, digest)
trans.set_cookie( value, name=key_name, path='/', age=age, version='1' )
@@ -122,7 +131,7 @@
def delete_cookie( trans, key_name ):
#Set expiration of Cookie to time in past, to cause browser to delete
if key_name in trans.request.cookies:
- create_cookie( trans, trans.app.config.biostar_key_name, '', '', age=-90 )
+ create_cookie( trans, trans.app.config.biostar_key_name, '', '', age=-90, override_never_authenticate=True )
def biostar_logged_in( trans ):
if biostar_enabled( trans.app ):
@@ -139,6 +148,7 @@
class BiostarErrorReporter( ErrorReporter ):
def _send_report( self, user, email=None, message=None, **kwd ):
assert biostar_enabled( self.app ), ValueError( "Biostar is not configured for this galaxy instance" )
+ assert self.app.config.biostar_enable_bug_reports, ValueError( "Biostar is not configured to allow bug reporting for this galaxy instance" )
assert self._can_access_dataset( user ), Exception( "You are not allowed to access this dataset." )
tool_version_select_field, tools, tool = \
self.app.toolbox.get_tool_components( self.tool_id, tool_version=None, get_loaded_tools_by_lineage=False, set_selected=True )
diff -r a0ccb7e6bfdfe5058561e709a81dee9f26e5c991 -r 5fd196b5d1760d1a8180184f8e5450e0957b37c2 static/scripts/galaxy.menu.js
--- a/static/scripts/galaxy.menu.js
+++ b/static/scripts/galaxy.menu.js
@@ -196,7 +196,7 @@
{
tab_help.add({
title : "Galaxy Q&A Site",
- content : this.options.biostar_url_redirect,
+ content : this.options.biostar_url,
target : "_blank"
});
tab_help.add({
diff -r a0ccb7e6bfdfe5058561e709a81dee9f26e5c991 -r 5fd196b5d1760d1a8180184f8e5450e0957b37c2 static/scripts/packed/galaxy.menu.js
--- a/static/scripts/packed/galaxy.menu.js
+++ b/static/scripts/packed/galaxy.menu.js
@@ -1,1 +1,1 @@
-define(["galaxy.masthead"],function(b){var a=Backbone.Model.extend({options:null,masthead:null,initialize:function(c){this.options=c.config;this.masthead=c.masthead;this.create()},create:function(){var e=new b.GalaxyMastheadTab({id:"analysis",title:"Analyze Data",content:"root/index",title_attribute:"Analysis home view"});this.masthead.append(e);var g={id:"workflow",title:"Workflow",content:"workflow",title_attribute:"Chain tools into workflows"};if(!this.options.user.valid){g.disabled=true}var d=new b.GalaxyMastheadTab(g);this.masthead.append(d);var i=new b.GalaxyMastheadTab({id:"shared",title:"Shared Data",content:"library/index",title_attribute:"Access published resources"});i.add({title:"Data Libraries",content:"library/index"});i.add({title:"Data Libraries Beta",content:"library/list",divider:true});i.add({title:"Published Histories",content:"history/list_published"});i.add({title:"Published Workflows",content:"workflow/list_published"});i.add({title:"Published Visualizations",content:"visualization/list_published"});i.add({title:"Published Pages",content:"page/list_published"});this.masthead.append(i);if(this.options.user.requests){var j=new b.GalaxyMastheadTab({id:"lab",title:"Lab"});j.add({title:"Sequencing Requests",content:"requests/index"});j.add({title:"Find Samples",content:"requests/find_samples_index"});j.add({title:"Help",content:this.options.lims_doc_url});this.masthead.append(j)}var c={id:"visualization",title:"Visualization",content:"visualization/list",title_attribute:"Visualize datasets"};if(!this.options.user.valid){c.disabled=true}var m=new b.GalaxyMastheadTab(c);if(this.options.user.valid){m.add({title:"New Track Browser",content:"visualization/trackster",target:"_frame"});m.add({title:"Saved Visualizations",content:"visualization/list",target:"_frame"})}this.masthead.append(m);if(this.options.enable_cloud_launch){var f=new b.GalaxyMastheadTab({id:"cloud",title:"Cloud",content:"cloudlaunch/index"});f.add({title:"New Cloud Cluster",content:"cloudlaunch/index"});this.masthead.append(f)}if(this.options.is_admin_user){var h=new b.GalaxyMastheadTab({id:"admin",title:"Admin",content:"admin/index",extra_class:"admin-only",title_attribute:"Administer this Galaxy"});this.masthead.append(h)}var l=new b.GalaxyMastheadTab({id:"help",title:"Help",title_attribute:"Support, contact, and community hubs"});if(this.options.biostar_url){l.add({title:"Galaxy Q&A Site",content:this.options.biostar_url_redirect,target:"_blank"});l.add({title:"Ask a question",content:"biostar/biostar_question_redirect",target:"_blank"})}l.add({title:"Support",content:this.options.support_url,target:"_blank"});l.add({title:"Search",content:this.options.search_url,target:"_blank"});l.add({title:"Mailing Lists",content:this.options.mailing_lists,target:"_blank"});l.add({title:"Videos",content:this.options.screencasts_url,target:"_blank"});l.add({title:"Wiki",content:this.options.wiki_url,target:"_blank"});l.add({title:"How to Cite Galaxy",content:this.options.citation_url,target:"_blank"});if(this.options.terms_url){l.add({title:"Terms and Conditions",content:this.options.terms_url,target:"_blank"})}this.masthead.append(l);if(!this.options.user.valid){var k=new b.GalaxyMastheadTab({id:"user",title:"User",extra_class:"loggedout-only",title_attribute:"Account registration or login"});k.add({title:"Login",content:"user/login",target:"galaxy_main"});if(this.options.allow_user_creation){k.add({title:"Register",content:"user/create",target:"galaxy_main"})}this.masthead.append(k)}else{var k=new b.GalaxyMastheadTab({id:"user",title:"User",extra_class:"loggedin-only",title_attribute:"Account preferences and saved data"});k.add({title:"Logged in as "+this.options.user.email});if(this.options.use_remote_user&&this.options.remote_user_logout_href){k.add({title:"Logout",content:this.options.remote_user_logout_href,target:"_top"})}else{k.add({title:"Preferences",content:"user?cntrller=user",target:"galaxy_main"});k.add({title:"Custom Builds",content:"user/dbkeys",target:"galaxy_main"});k.add({title:"Logout",content:"user/logout",target:"_top",divider:true})}k.add({title:"Saved Histories",content:"history/list",target:"galaxy_main"});k.add({title:"Saved Datasets",content:"dataset/list",target:"galaxy_main"});k.add({title:"Saved Pages",content:"page/list",target:"_top"});k.add({title:"API Keys",content:"user/api_keys?cntrller=user",target:"galaxy_main"});if(this.options.use_remote_user){k.add({title:"Public Name",content:"user/edit_username?cntrller=user",target:"galaxy_main"})}this.masthead.append(k)}if(this.options.active_view){this.masthead.highlight(this.options.active_view)}}});return{GalaxyMenu:a}});
\ No newline at end of file
+define(["galaxy.masthead"],function(b){var a=Backbone.Model.extend({options:null,masthead:null,initialize:function(c){this.options=c.config;this.masthead=c.masthead;this.create()},create:function(){var e=new b.GalaxyMastheadTab({id:"analysis",title:"Analyze Data",content:"root/index",title_attribute:"Analysis home view"});this.masthead.append(e);var g={id:"workflow",title:"Workflow",content:"workflow",title_attribute:"Chain tools into workflows"};if(!this.options.user.valid){g.disabled=true}var d=new b.GalaxyMastheadTab(g);this.masthead.append(d);var i=new b.GalaxyMastheadTab({id:"shared",title:"Shared Data",content:"library/index",title_attribute:"Access published resources"});i.add({title:"Data Libraries",content:"library/index"});i.add({title:"Data Libraries Beta",content:"library/list",divider:true});i.add({title:"Published Histories",content:"history/list_published"});i.add({title:"Published Workflows",content:"workflow/list_published"});i.add({title:"Published Visualizations",content:"visualization/list_published"});i.add({title:"Published Pages",content:"page/list_published"});this.masthead.append(i);if(this.options.user.requests){var j=new b.GalaxyMastheadTab({id:"lab",title:"Lab"});j.add({title:"Sequencing Requests",content:"requests/index"});j.add({title:"Find Samples",content:"requests/find_samples_index"});j.add({title:"Help",content:this.options.lims_doc_url});this.masthead.append(j)}var c={id:"visualization",title:"Visualization",content:"visualization/list",title_attribute:"Visualize datasets"};if(!this.options.user.valid){c.disabled=true}var m=new b.GalaxyMastheadTab(c);if(this.options.user.valid){m.add({title:"New Track Browser",content:"visualization/trackster",target:"_frame"});m.add({title:"Saved Visualizations",content:"visualization/list",target:"_frame"})}this.masthead.append(m);if(this.options.enable_cloud_launch){var f=new b.GalaxyMastheadTab({id:"cloud",title:"Cloud",content:"cloudlaunch/index"});f.add({title:"New Cloud Cluster",content:"cloudlaunch/index"});this.masthead.append(f)}if(this.options.is_admin_user){var h=new b.GalaxyMastheadTab({id:"admin",title:"Admin",content:"admin/index",extra_class:"admin-only",title_attribute:"Administer this Galaxy"});this.masthead.append(h)}var l=new b.GalaxyMastheadTab({id:"help",title:"Help",title_attribute:"Support, contact, and community hubs"});if(this.options.biostar_url){l.add({title:"Galaxy Q&A Site",content:this.options.biostar_url,target:"_blank"});l.add({title:"Ask a question",content:"biostar/biostar_question_redirect",target:"_blank"})}l.add({title:"Support",content:this.options.support_url,target:"_blank"});l.add({title:"Search",content:this.options.search_url,target:"_blank"});l.add({title:"Mailing Lists",content:this.options.mailing_lists,target:"_blank"});l.add({title:"Videos",content:this.options.screencasts_url,target:"_blank"});l.add({title:"Wiki",content:this.options.wiki_url,target:"_blank"});l.add({title:"How to Cite Galaxy",content:this.options.citation_url,target:"_blank"});if(this.options.terms_url){l.add({title:"Terms and Conditions",content:this.options.terms_url,target:"_blank"})}this.masthead.append(l);if(!this.options.user.valid){var k=new b.GalaxyMastheadTab({id:"user",title:"User",extra_class:"loggedout-only",title_attribute:"Account registration or login"});k.add({title:"Login",content:"user/login",target:"galaxy_main"});if(this.options.allow_user_creation){k.add({title:"Register",content:"user/create",target:"galaxy_main"})}this.masthead.append(k)}else{var k=new b.GalaxyMastheadTab({id:"user",title:"User",extra_class:"loggedin-only",title_attribute:"Account preferences and saved data"});k.add({title:"Logged in as "+this.options.user.email});if(this.options.use_remote_user&&this.options.remote_user_logout_href){k.add({title:"Logout",content:this.options.remote_user_logout_href,target:"_top"})}else{k.add({title:"Preferences",content:"user?cntrller=user",target:"galaxy_main"});k.add({title:"Custom Builds",content:"user/dbkeys",target:"galaxy_main"});k.add({title:"Logout",content:"user/logout",target:"_top",divider:true})}k.add({title:"Saved Histories",content:"history/list",target:"galaxy_main"});k.add({title:"Saved Datasets",content:"dataset/list",target:"galaxy_main"});k.add({title:"Saved Pages",content:"page/list",target:"_top"});k.add({title:"API Keys",content:"user/api_keys?cntrller=user",target:"galaxy_main"});if(this.options.use_remote_user){k.add({title:"Public Name",content:"user/edit_username?cntrller=user",target:"galaxy_main"})}this.masthead.append(k)}if(this.options.active_view){this.masthead.highlight(this.options.active_view)}}});return{GalaxyMenu:a}});
\ No newline at end of file
diff -r a0ccb7e6bfdfe5058561e709a81dee9f26e5c991 -r 5fd196b5d1760d1a8180184f8e5450e0957b37c2 templates/webapps/galaxy/dataset/errors.mako
--- a/templates/webapps/galaxy/dataset/errors.mako
+++ b/templates/webapps/galaxy/dataset/errors.mako
@@ -103,7 +103,7 @@
</div><div class="form-row"><input type="submit" name="submit_error_report" value="Report" onclick="return sendReport( this, this.form, '_self' );"/>
- %if trans.app.config.biostar_url:
+ %if trans.app.config.biostar_url and trans.app.config.biostar_enable_bug_reports:
<input type="submit" name="submit_error_report" value="Post on Biostar" onclick="return sendReport( this, this.form, '_blank', true );"/>
%endif
</div>
diff -r a0ccb7e6bfdfe5058561e709a81dee9f26e5c991 -r 5fd196b5d1760d1a8180184f8e5450e0957b37c2 templates/webapps/galaxy/galaxy.masthead.mako
--- a/templates/webapps/galaxy/galaxy.masthead.mako
+++ b/templates/webapps/galaxy/galaxy.masthead.mako
@@ -41,7 +41,6 @@
'enable_cloud_launch' : app.config.get_bool('enable_cloud_launch', False),
'lims_doc_url' : app.config.get("lims_doc_url", "http://main.g2.bx.psu.edu/u/rkchak/p/sts"),
'biostar_url' : app.config.biostar_url,
- 'biostar_url_redirect' : h.url_for( controller='biostar', action='biostar_redirect', biostar_action='show_tags', qualified=True ),
'support_url' : app.config.get("support_url", "http://wiki.galaxyproject.org/Support"),
'search_url' : app.config.get("search_url", "http://galaxyproject.org/search/usegalaxy/"),
'mailing_lists' : app.config.get("mailing_lists", "http://wiki.galaxyproject.org/MailingLists"),
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
4 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/7f19b9c1ad7f/
Changeset: 7f19b9c1ad7f
Branch: stable
User: dan
Date: 2014-04-17 18:34:33
Summary: Allow disabling biostar bug reports through config settings.
Affected #: 3 files
diff -r c05752549163e2b3b6aeddbab8019af06443c461 -r 7f19b9c1ad7f291e5969ee4a8c43fad7c7bb8100 lib/galaxy/config.py
--- a/lib/galaxy/config.py
+++ b/lib/galaxy/config.py
@@ -329,6 +329,7 @@
self.biostar_url = kwargs.get( 'biostar_url', None )
self.biostar_key_name = kwargs.get( 'biostar_key_name', None )
self.biostar_key = kwargs.get( 'biostar_key', None )
+ self.biostar_enable_bug_reports = string_as_bool( kwargs.get( 'biostar_enable_bug_reports', True ) )
self.pretty_datetime_format = expand_pretty_datetime_format( kwargs.get( 'pretty_datetime_format', '$locale (UTC)' ) )
self.master_api_key = kwargs.get( 'master_api_key', None )
if self.master_api_key == "changethis": # default in sample config file
diff -r c05752549163e2b3b6aeddbab8019af06443c461 -r 7f19b9c1ad7f291e5969ee4a8c43fad7c7bb8100 lib/galaxy/util/biostar.py
--- a/lib/galaxy/util/biostar.py
+++ b/lib/galaxy/util/biostar.py
@@ -139,6 +139,7 @@
class BiostarErrorReporter( ErrorReporter ):
def _send_report( self, user, email=None, message=None, **kwd ):
assert biostar_enabled( self.app ), ValueError( "Biostar is not configured for this galaxy instance" )
+ assert self.app.config.biostar_enable_bug_reports, ValueError( "Biostar is not configured to allow bug reporting for this galaxy instance" )
assert self._can_access_dataset( user ), Exception( "You are not allowed to access this dataset." )
tool_version_select_field, tools, tool = \
self.app.toolbox.get_tool_components( self.tool_id, tool_version=None, get_loaded_tools_by_lineage=False, set_selected=True )
diff -r c05752549163e2b3b6aeddbab8019af06443c461 -r 7f19b9c1ad7f291e5969ee4a8c43fad7c7bb8100 templates/webapps/galaxy/dataset/errors.mako
--- a/templates/webapps/galaxy/dataset/errors.mako
+++ b/templates/webapps/galaxy/dataset/errors.mako
@@ -103,7 +103,7 @@
</div><div class="form-row"><input type="submit" name="submit_error_report" value="Report" onclick="return sendReport( this, this.form, '_self' );"/>
- %if trans.app.config.biostar_url:
+ %if trans.app.config.biostar_url and trans.app.config.biostar_enable_bug_reports:
<input type="submit" name="submit_error_report" value="Post on Biostar" onclick="return sendReport( this, this.form, '_blank', true );"/>
%endif
</div>
https://bitbucket.org/galaxy/galaxy-central/commits/38f1b10711b8/
Changeset: 38f1b10711b8
Branch: stable
User: dan
Date: 2014-04-17 19:03:02
Summary: Remove 'galaxy' tag as default now that we are using a custom biostar site.
Affected #: 4 files
diff -r 7f19b9c1ad7f291e5969ee4a8c43fad7c7bb8100 -r 38f1b10711b88e9c1f6ea02bc42551fee2893a9d lib/galaxy/util/biostar.py
--- a/lib/galaxy/util/biostar.py
+++ b/lib/galaxy/util/biostar.py
@@ -12,7 +12,7 @@
_punct_re = re.compile(r'[\t !"#$%&\'()*\-/<=>?(a)\[\\\]^_`{|},.]+')
-DEFAULT_GALAXY_TAG = 'galaxy'
+DEFAULT_GALAXY_TAG = ''
# Default values for new posts to Biostar
DEFAULT_PAYLOAD = {
@@ -77,7 +77,10 @@
def populate_tag_payload( payload=None, tool=None ):
if payload is None:
payload = {}
- tag_val = [ DEFAULT_GALAXY_TAG ]
+ if DEFAULT_GALAXY_TAG:
+ tag_val = [ DEFAULT_GALAXY_TAG ]
+ else:
+ tag_val = []
if tool:
tag_val.append( tag_for_tool( tool ) )
payload[ 'tag_val' ] = ','.join( tag_val )
diff -r 7f19b9c1ad7f291e5969ee4a8c43fad7c7bb8100 -r 38f1b10711b88e9c1f6ea02bc42551fee2893a9d static/scripts/galaxy.menu.js
--- a/static/scripts/galaxy.menu.js
+++ b/static/scripts/galaxy.menu.js
@@ -196,7 +196,7 @@
{
tab_help.add({
title : "Galaxy Q&A Site",
- content : this.options.biostar_url_redirect,
+ content : this.options.biostar_url,
target : "_blank"
});
tab_help.add({
diff -r 7f19b9c1ad7f291e5969ee4a8c43fad7c7bb8100 -r 38f1b10711b88e9c1f6ea02bc42551fee2893a9d static/scripts/packed/galaxy.menu.js
--- a/static/scripts/packed/galaxy.menu.js
+++ b/static/scripts/packed/galaxy.menu.js
@@ -1,1 +1,1 @@
-define(["galaxy.masthead"],function(b){var a=Backbone.Model.extend({options:null,masthead:null,initialize:function(c){this.options=c.config;this.masthead=c.masthead;this.create()},create:function(){var e=new b.GalaxyMastheadTab({id:"analysis",title:"Analyze Data",content:"root/index",title_attribute:"Analysis home view"});this.masthead.append(e);var g={id:"workflow",title:"Workflow",content:"workflow",title_attribute:"Chain tools into workflows"};if(!this.options.user.valid){g.disabled=true}var d=new b.GalaxyMastheadTab(g);this.masthead.append(d);var i=new b.GalaxyMastheadTab({id:"shared",title:"Shared Data",content:"library/index",title_attribute:"Access published resources"});i.add({title:"Data Libraries",content:"library/index"});i.add({title:"Data Libraries Beta",content:"library/list",divider:true});i.add({title:"Published Histories",content:"history/list_published"});i.add({title:"Published Workflows",content:"workflow/list_published"});i.add({title:"Published Visualizations",content:"visualization/list_published"});i.add({title:"Published Pages",content:"page/list_published"});this.masthead.append(i);if(this.options.user.requests){var j=new b.GalaxyMastheadTab({id:"lab",title:"Lab"});j.add({title:"Sequencing Requests",content:"requests/index"});j.add({title:"Find Samples",content:"requests/find_samples_index"});j.add({title:"Help",content:this.options.lims_doc_url});this.masthead.append(j)}var c={id:"visualization",title:"Visualization",content:"visualization/list",title_attribute:"Visualize datasets"};if(!this.options.user.valid){c.disabled=true}var m=new b.GalaxyMastheadTab(c);if(this.options.user.valid){m.add({title:"New Track Browser",content:"visualization/trackster",target:"_frame"});m.add({title:"Saved Visualizations",content:"visualization/list",target:"_frame"})}this.masthead.append(m);if(this.options.enable_cloud_launch){var f=new b.GalaxyMastheadTab({id:"cloud",title:"Cloud",content:"cloudlaunch/index"});f.add({title:"New Cloud Cluster",content:"cloudlaunch/index"});this.masthead.append(f)}if(this.options.is_admin_user){var h=new b.GalaxyMastheadTab({id:"admin",title:"Admin",content:"admin/index",extra_class:"admin-only",title_attribute:"Administer this Galaxy"});this.masthead.append(h)}var l=new b.GalaxyMastheadTab({id:"help",title:"Help",title_attribute:"Support, contact, and community hubs"});if(this.options.biostar_url){l.add({title:"Galaxy Q&A Site",content:this.options.biostar_url_redirect,target:"_blank"});l.add({title:"Ask a question",content:"biostar/biostar_question_redirect",target:"_blank"})}l.add({title:"Support",content:this.options.support_url,target:"_blank"});l.add({title:"Search",content:this.options.search_url,target:"_blank"});l.add({title:"Mailing Lists",content:this.options.mailing_lists,target:"_blank"});l.add({title:"Videos",content:this.options.screencasts_url,target:"_blank"});l.add({title:"Wiki",content:this.options.wiki_url,target:"_blank"});l.add({title:"How to Cite Galaxy",content:this.options.citation_url,target:"_blank"});if(this.options.terms_url){l.add({title:"Terms and Conditions",content:this.options.terms_url,target:"_blank"})}this.masthead.append(l);if(!this.options.user.valid){var k=new b.GalaxyMastheadTab({id:"user",title:"User",extra_class:"loggedout-only",title_attribute:"Account registration or login"});k.add({title:"Login",content:"user/login",target:"galaxy_main"});if(this.options.allow_user_creation){k.add({title:"Register",content:"user/create",target:"galaxy_main"})}this.masthead.append(k)}else{var k=new b.GalaxyMastheadTab({id:"user",title:"User",extra_class:"loggedin-only",title_attribute:"Account preferences and saved data"});k.add({title:"Logged in as "+this.options.user.email});if(this.options.use_remote_user&&this.options.remote_user_logout_href){k.add({title:"Logout",content:this.options.remote_user_logout_href,target:"_top"})}else{k.add({title:"Preferences",content:"user?cntrller=user",target:"galaxy_main"});k.add({title:"Custom Builds",content:"user/dbkeys",target:"galaxy_main"});k.add({title:"Logout",content:"user/logout",target:"_top",divider:true})}k.add({title:"Saved Histories",content:"history/list",target:"galaxy_main"});k.add({title:"Saved Datasets",content:"dataset/list",target:"galaxy_main"});k.add({title:"Saved Pages",content:"page/list",target:"_top"});k.add({title:"API Keys",content:"user/api_keys?cntrller=user",target:"galaxy_main"});if(this.options.use_remote_user){k.add({title:"Public Name",content:"user/edit_username?cntrller=user",target:"galaxy_main"})}this.masthead.append(k)}if(this.options.active_view){this.masthead.highlight(this.options.active_view)}}});return{GalaxyMenu:a}});
\ No newline at end of file
+define(["galaxy.masthead"],function(b){var a=Backbone.Model.extend({options:null,masthead:null,initialize:function(c){this.options=c.config;this.masthead=c.masthead;this.create()},create:function(){var e=new b.GalaxyMastheadTab({id:"analysis",title:"Analyze Data",content:"root/index",title_attribute:"Analysis home view"});this.masthead.append(e);var g={id:"workflow",title:"Workflow",content:"workflow",title_attribute:"Chain tools into workflows"};if(!this.options.user.valid){g.disabled=true}var d=new b.GalaxyMastheadTab(g);this.masthead.append(d);var i=new b.GalaxyMastheadTab({id:"shared",title:"Shared Data",content:"library/index",title_attribute:"Access published resources"});i.add({title:"Data Libraries",content:"library/index"});i.add({title:"Data Libraries Beta",content:"library/list",divider:true});i.add({title:"Published Histories",content:"history/list_published"});i.add({title:"Published Workflows",content:"workflow/list_published"});i.add({title:"Published Visualizations",content:"visualization/list_published"});i.add({title:"Published Pages",content:"page/list_published"});this.masthead.append(i);if(this.options.user.requests){var j=new b.GalaxyMastheadTab({id:"lab",title:"Lab"});j.add({title:"Sequencing Requests",content:"requests/index"});j.add({title:"Find Samples",content:"requests/find_samples_index"});j.add({title:"Help",content:this.options.lims_doc_url});this.masthead.append(j)}var c={id:"visualization",title:"Visualization",content:"visualization/list",title_attribute:"Visualize datasets"};if(!this.options.user.valid){c.disabled=true}var m=new b.GalaxyMastheadTab(c);if(this.options.user.valid){m.add({title:"New Track Browser",content:"visualization/trackster",target:"_frame"});m.add({title:"Saved Visualizations",content:"visualization/list",target:"_frame"})}this.masthead.append(m);if(this.options.enable_cloud_launch){var f=new b.GalaxyMastheadTab({id:"cloud",title:"Cloud",content:"cloudlaunch/index"});f.add({title:"New Cloud Cluster",content:"cloudlaunch/index"});this.masthead.append(f)}if(this.options.is_admin_user){var h=new b.GalaxyMastheadTab({id:"admin",title:"Admin",content:"admin/index",extra_class:"admin-only",title_attribute:"Administer this Galaxy"});this.masthead.append(h)}var l=new b.GalaxyMastheadTab({id:"help",title:"Help",title_attribute:"Support, contact, and community hubs"});if(this.options.biostar_url){l.add({title:"Galaxy Q&A Site",content:this.options.biostar_url,target:"_blank"});l.add({title:"Ask a question",content:"biostar/biostar_question_redirect",target:"_blank"})}l.add({title:"Support",content:this.options.support_url,target:"_blank"});l.add({title:"Search",content:this.options.search_url,target:"_blank"});l.add({title:"Mailing Lists",content:this.options.mailing_lists,target:"_blank"});l.add({title:"Videos",content:this.options.screencasts_url,target:"_blank"});l.add({title:"Wiki",content:this.options.wiki_url,target:"_blank"});l.add({title:"How to Cite Galaxy",content:this.options.citation_url,target:"_blank"});if(this.options.terms_url){l.add({title:"Terms and Conditions",content:this.options.terms_url,target:"_blank"})}this.masthead.append(l);if(!this.options.user.valid){var k=new b.GalaxyMastheadTab({id:"user",title:"User",extra_class:"loggedout-only",title_attribute:"Account registration or login"});k.add({title:"Login",content:"user/login",target:"galaxy_main"});if(this.options.allow_user_creation){k.add({title:"Register",content:"user/create",target:"galaxy_main"})}this.masthead.append(k)}else{var k=new b.GalaxyMastheadTab({id:"user",title:"User",extra_class:"loggedin-only",title_attribute:"Account preferences and saved data"});k.add({title:"Logged in as "+this.options.user.email});if(this.options.use_remote_user&&this.options.remote_user_logout_href){k.add({title:"Logout",content:this.options.remote_user_logout_href,target:"_top"})}else{k.add({title:"Preferences",content:"user?cntrller=user",target:"galaxy_main"});k.add({title:"Custom Builds",content:"user/dbkeys",target:"galaxy_main"});k.add({title:"Logout",content:"user/logout",target:"_top",divider:true})}k.add({title:"Saved Histories",content:"history/list",target:"galaxy_main"});k.add({title:"Saved Datasets",content:"dataset/list",target:"galaxy_main"});k.add({title:"Saved Pages",content:"page/list",target:"_top"});k.add({title:"API Keys",content:"user/api_keys?cntrller=user",target:"galaxy_main"});if(this.options.use_remote_user){k.add({title:"Public Name",content:"user/edit_username?cntrller=user",target:"galaxy_main"})}this.masthead.append(k)}if(this.options.active_view){this.masthead.highlight(this.options.active_view)}}});return{GalaxyMenu:a}});
\ No newline at end of file
diff -r 7f19b9c1ad7f291e5969ee4a8c43fad7c7bb8100 -r 38f1b10711b88e9c1f6ea02bc42551fee2893a9d templates/webapps/galaxy/galaxy.masthead.mako
--- a/templates/webapps/galaxy/galaxy.masthead.mako
+++ b/templates/webapps/galaxy/galaxy.masthead.mako
@@ -41,7 +41,6 @@
'enable_cloud_launch' : app.config.get_bool('enable_cloud_launch', False),
'lims_doc_url' : app.config.get("lims_doc_url", "http://main.g2.bx.psu.edu/u/rkchak/p/sts"),
'biostar_url' : app.config.biostar_url,
- 'biostar_url_redirect' : h.url_for( controller='biostar', action='biostar_redirect', biostar_action='show_tags', qualified=True ),
'support_url' : app.config.get("support_url", "http://wiki.galaxyproject.org/Support"),
'search_url' : app.config.get("search_url", "http://galaxyproject.org/search/usegalaxy/"),
'mailing_lists' : app.config.get("mailing_lists", "http://wiki.galaxyproject.org/MailingLists"),
https://bitbucket.org/galaxy/galaxy-central/commits/8beca9a6885a/
Changeset: 8beca9a6885a
Branch: stable
User: dan
Date: 2014-04-17 21:38:42
Summary: Add an option to biostar integration to never authenticate.
Affected #: 2 files
diff -r 38f1b10711b88e9c1f6ea02bc42551fee2893a9d -r 8beca9a6885a165fcb6efa7bc4fa72721fcea2cc lib/galaxy/config.py
--- a/lib/galaxy/config.py
+++ b/lib/galaxy/config.py
@@ -330,6 +330,7 @@
self.biostar_key_name = kwargs.get( 'biostar_key_name', None )
self.biostar_key = kwargs.get( 'biostar_key', None )
self.biostar_enable_bug_reports = string_as_bool( kwargs.get( 'biostar_enable_bug_reports', True ) )
+ self.biostar_never_authenticate = string_as_bool( kwargs.get( 'biostar_never_authenticate', False ) )
self.pretty_datetime_format = expand_pretty_datetime_format( kwargs.get( 'pretty_datetime_format', '$locale (UTC)' ) )
self.master_api_key = kwargs.get( 'master_api_key', None )
if self.master_api_key == "changethis": # default in sample config file
diff -r 38f1b10711b88e9c1f6ea02bc42551fee2893a9d -r 8beca9a6885a165fcb6efa7bc4fa72721fcea2cc lib/galaxy/util/biostar.py
--- a/lib/galaxy/util/biostar.py
+++ b/lib/galaxy/util/biostar.py
@@ -2,6 +2,7 @@
Support for integration with the Biostar application
"""
+import logging
import hmac
import urlparse
import re
@@ -10,6 +11,8 @@
from galaxy.tools.errors import ErrorReporter
from . import smart_str
+log = logging.getLogger( __name__ )
+
_punct_re = re.compile(r'[\t !"#$%&\'()*\-/<=>?(a)\[\\\]^_`{|},.]+')
DEFAULT_GALAXY_TAG = ''
@@ -113,7 +116,10 @@
return galaxy_hostname
-def create_cookie( trans, key_name, key, email, age=DEFAULT_BIOSTAR_COOKIE_AGE ):
+def create_cookie( trans, key_name, key, email, age=DEFAULT_BIOSTAR_COOKIE_AGE, override_never_authenticate=False ):
+ if trans.app.config.biostar_never_authenticate and not override_never_authenticate:
+ log.debug( 'A BioStar link was clicked, but never authenticate has been enabled, so we will not create the login cookie.' )
+ return
digest = hmac.new( key, email ).hexdigest()
value = "%s:%s" % (email, digest)
trans.set_cookie( value, name=key_name, path='/', age=age, version='1' )
@@ -125,7 +131,7 @@
def delete_cookie( trans, key_name ):
#Set expiration of Cookie to time in past, to cause browser to delete
if key_name in trans.request.cookies:
- create_cookie( trans, trans.app.config.biostar_key_name, '', '', age=-90 )
+ create_cookie( trans, trans.app.config.biostar_key_name, '', '', age=-90, override_never_authenticate=True )
def biostar_logged_in( trans ):
if biostar_enabled( trans.app ):
https://bitbucket.org/galaxy/galaxy-central/commits/5fd196b5d176/
Changeset: 5fd196b5d176
Branch: stable
User: jmchilton
Date: 2014-04-17 22:02:44
Summary: Merged in dan/galaxy-central-stable-prs/stable (pull request #369)
BioStar fixes
Affected #: 6 files
diff -r a0ccb7e6bfdfe5058561e709a81dee9f26e5c991 -r 5fd196b5d1760d1a8180184f8e5450e0957b37c2 lib/galaxy/config.py
--- a/lib/galaxy/config.py
+++ b/lib/galaxy/config.py
@@ -329,6 +329,8 @@
self.biostar_url = kwargs.get( 'biostar_url', None )
self.biostar_key_name = kwargs.get( 'biostar_key_name', None )
self.biostar_key = kwargs.get( 'biostar_key', None )
+ self.biostar_enable_bug_reports = string_as_bool( kwargs.get( 'biostar_enable_bug_reports', True ) )
+ self.biostar_never_authenticate = string_as_bool( kwargs.get( 'biostar_never_authenticate', False ) )
self.pretty_datetime_format = expand_pretty_datetime_format( kwargs.get( 'pretty_datetime_format', '$locale (UTC)' ) )
self.master_api_key = kwargs.get( 'master_api_key', None )
if self.master_api_key == "changethis": # default in sample config file
diff -r a0ccb7e6bfdfe5058561e709a81dee9f26e5c991 -r 5fd196b5d1760d1a8180184f8e5450e0957b37c2 lib/galaxy/util/biostar.py
--- a/lib/galaxy/util/biostar.py
+++ b/lib/galaxy/util/biostar.py
@@ -2,6 +2,7 @@
Support for integration with the Biostar application
"""
+import logging
import hmac
import urlparse
import re
@@ -10,9 +11,11 @@
from galaxy.tools.errors import ErrorReporter
from . import smart_str
+log = logging.getLogger( __name__ )
+
_punct_re = re.compile(r'[\t !"#$%&\'()*\-/<=>?(a)\[\\\]^_`{|},.]+')
-DEFAULT_GALAXY_TAG = 'galaxy'
+DEFAULT_GALAXY_TAG = ''
# Default values for new posts to Biostar
DEFAULT_PAYLOAD = {
@@ -77,7 +80,10 @@
def populate_tag_payload( payload=None, tool=None ):
if payload is None:
payload = {}
- tag_val = [ DEFAULT_GALAXY_TAG ]
+ if DEFAULT_GALAXY_TAG:
+ tag_val = [ DEFAULT_GALAXY_TAG ]
+ else:
+ tag_val = []
if tool:
tag_val.append( tag_for_tool( tool ) )
payload[ 'tag_val' ] = ','.join( tag_val )
@@ -110,7 +116,10 @@
return galaxy_hostname
-def create_cookie( trans, key_name, key, email, age=DEFAULT_BIOSTAR_COOKIE_AGE ):
+def create_cookie( trans, key_name, key, email, age=DEFAULT_BIOSTAR_COOKIE_AGE, override_never_authenticate=False ):
+ if trans.app.config.biostar_never_authenticate and not override_never_authenticate:
+ log.debug( 'A BioStar link was clicked, but never authenticate has been enabled, so we will not create the login cookie.' )
+ return
digest = hmac.new( key, email ).hexdigest()
value = "%s:%s" % (email, digest)
trans.set_cookie( value, name=key_name, path='/', age=age, version='1' )
@@ -122,7 +131,7 @@
def delete_cookie( trans, key_name ):
#Set expiration of Cookie to time in past, to cause browser to delete
if key_name in trans.request.cookies:
- create_cookie( trans, trans.app.config.biostar_key_name, '', '', age=-90 )
+ create_cookie( trans, trans.app.config.biostar_key_name, '', '', age=-90, override_never_authenticate=True )
def biostar_logged_in( trans ):
if biostar_enabled( trans.app ):
@@ -139,6 +148,7 @@
class BiostarErrorReporter( ErrorReporter ):
def _send_report( self, user, email=None, message=None, **kwd ):
assert biostar_enabled( self.app ), ValueError( "Biostar is not configured for this galaxy instance" )
+ assert self.app.config.biostar_enable_bug_reports, ValueError( "Biostar is not configured to allow bug reporting for this galaxy instance" )
assert self._can_access_dataset( user ), Exception( "You are not allowed to access this dataset." )
tool_version_select_field, tools, tool = \
self.app.toolbox.get_tool_components( self.tool_id, tool_version=None, get_loaded_tools_by_lineage=False, set_selected=True )
diff -r a0ccb7e6bfdfe5058561e709a81dee9f26e5c991 -r 5fd196b5d1760d1a8180184f8e5450e0957b37c2 static/scripts/galaxy.menu.js
--- a/static/scripts/galaxy.menu.js
+++ b/static/scripts/galaxy.menu.js
@@ -196,7 +196,7 @@
{
tab_help.add({
title : "Galaxy Q&A Site",
- content : this.options.biostar_url_redirect,
+ content : this.options.biostar_url,
target : "_blank"
});
tab_help.add({
diff -r a0ccb7e6bfdfe5058561e709a81dee9f26e5c991 -r 5fd196b5d1760d1a8180184f8e5450e0957b37c2 static/scripts/packed/galaxy.menu.js
--- a/static/scripts/packed/galaxy.menu.js
+++ b/static/scripts/packed/galaxy.menu.js
@@ -1,1 +1,1 @@
-define(["galaxy.masthead"],function(b){var a=Backbone.Model.extend({options:null,masthead:null,initialize:function(c){this.options=c.config;this.masthead=c.masthead;this.create()},create:function(){var e=new b.GalaxyMastheadTab({id:"analysis",title:"Analyze Data",content:"root/index",title_attribute:"Analysis home view"});this.masthead.append(e);var g={id:"workflow",title:"Workflow",content:"workflow",title_attribute:"Chain tools into workflows"};if(!this.options.user.valid){g.disabled=true}var d=new b.GalaxyMastheadTab(g);this.masthead.append(d);var i=new b.GalaxyMastheadTab({id:"shared",title:"Shared Data",content:"library/index",title_attribute:"Access published resources"});i.add({title:"Data Libraries",content:"library/index"});i.add({title:"Data Libraries Beta",content:"library/list",divider:true});i.add({title:"Published Histories",content:"history/list_published"});i.add({title:"Published Workflows",content:"workflow/list_published"});i.add({title:"Published Visualizations",content:"visualization/list_published"});i.add({title:"Published Pages",content:"page/list_published"});this.masthead.append(i);if(this.options.user.requests){var j=new b.GalaxyMastheadTab({id:"lab",title:"Lab"});j.add({title:"Sequencing Requests",content:"requests/index"});j.add({title:"Find Samples",content:"requests/find_samples_index"});j.add({title:"Help",content:this.options.lims_doc_url});this.masthead.append(j)}var c={id:"visualization",title:"Visualization",content:"visualization/list",title_attribute:"Visualize datasets"};if(!this.options.user.valid){c.disabled=true}var m=new b.GalaxyMastheadTab(c);if(this.options.user.valid){m.add({title:"New Track Browser",content:"visualization/trackster",target:"_frame"});m.add({title:"Saved Visualizations",content:"visualization/list",target:"_frame"})}this.masthead.append(m);if(this.options.enable_cloud_launch){var f=new b.GalaxyMastheadTab({id:"cloud",title:"Cloud",content:"cloudlaunch/index"});f.add({title:"New Cloud Cluster",content:"cloudlaunch/index"});this.masthead.append(f)}if(this.options.is_admin_user){var h=new b.GalaxyMastheadTab({id:"admin",title:"Admin",content:"admin/index",extra_class:"admin-only",title_attribute:"Administer this Galaxy"});this.masthead.append(h)}var l=new b.GalaxyMastheadTab({id:"help",title:"Help",title_attribute:"Support, contact, and community hubs"});if(this.options.biostar_url){l.add({title:"Galaxy Q&A Site",content:this.options.biostar_url_redirect,target:"_blank"});l.add({title:"Ask a question",content:"biostar/biostar_question_redirect",target:"_blank"})}l.add({title:"Support",content:this.options.support_url,target:"_blank"});l.add({title:"Search",content:this.options.search_url,target:"_blank"});l.add({title:"Mailing Lists",content:this.options.mailing_lists,target:"_blank"});l.add({title:"Videos",content:this.options.screencasts_url,target:"_blank"});l.add({title:"Wiki",content:this.options.wiki_url,target:"_blank"});l.add({title:"How to Cite Galaxy",content:this.options.citation_url,target:"_blank"});if(this.options.terms_url){l.add({title:"Terms and Conditions",content:this.options.terms_url,target:"_blank"})}this.masthead.append(l);if(!this.options.user.valid){var k=new b.GalaxyMastheadTab({id:"user",title:"User",extra_class:"loggedout-only",title_attribute:"Account registration or login"});k.add({title:"Login",content:"user/login",target:"galaxy_main"});if(this.options.allow_user_creation){k.add({title:"Register",content:"user/create",target:"galaxy_main"})}this.masthead.append(k)}else{var k=new b.GalaxyMastheadTab({id:"user",title:"User",extra_class:"loggedin-only",title_attribute:"Account preferences and saved data"});k.add({title:"Logged in as "+this.options.user.email});if(this.options.use_remote_user&&this.options.remote_user_logout_href){k.add({title:"Logout",content:this.options.remote_user_logout_href,target:"_top"})}else{k.add({title:"Preferences",content:"user?cntrller=user",target:"galaxy_main"});k.add({title:"Custom Builds",content:"user/dbkeys",target:"galaxy_main"});k.add({title:"Logout",content:"user/logout",target:"_top",divider:true})}k.add({title:"Saved Histories",content:"history/list",target:"galaxy_main"});k.add({title:"Saved Datasets",content:"dataset/list",target:"galaxy_main"});k.add({title:"Saved Pages",content:"page/list",target:"_top"});k.add({title:"API Keys",content:"user/api_keys?cntrller=user",target:"galaxy_main"});if(this.options.use_remote_user){k.add({title:"Public Name",content:"user/edit_username?cntrller=user",target:"galaxy_main"})}this.masthead.append(k)}if(this.options.active_view){this.masthead.highlight(this.options.active_view)}}});return{GalaxyMenu:a}});
\ No newline at end of file
+define(["galaxy.masthead"],function(b){var a=Backbone.Model.extend({options:null,masthead:null,initialize:function(c){this.options=c.config;this.masthead=c.masthead;this.create()},create:function(){var e=new b.GalaxyMastheadTab({id:"analysis",title:"Analyze Data",content:"root/index",title_attribute:"Analysis home view"});this.masthead.append(e);var g={id:"workflow",title:"Workflow",content:"workflow",title_attribute:"Chain tools into workflows"};if(!this.options.user.valid){g.disabled=true}var d=new b.GalaxyMastheadTab(g);this.masthead.append(d);var i=new b.GalaxyMastheadTab({id:"shared",title:"Shared Data",content:"library/index",title_attribute:"Access published resources"});i.add({title:"Data Libraries",content:"library/index"});i.add({title:"Data Libraries Beta",content:"library/list",divider:true});i.add({title:"Published Histories",content:"history/list_published"});i.add({title:"Published Workflows",content:"workflow/list_published"});i.add({title:"Published Visualizations",content:"visualization/list_published"});i.add({title:"Published Pages",content:"page/list_published"});this.masthead.append(i);if(this.options.user.requests){var j=new b.GalaxyMastheadTab({id:"lab",title:"Lab"});j.add({title:"Sequencing Requests",content:"requests/index"});j.add({title:"Find Samples",content:"requests/find_samples_index"});j.add({title:"Help",content:this.options.lims_doc_url});this.masthead.append(j)}var c={id:"visualization",title:"Visualization",content:"visualization/list",title_attribute:"Visualize datasets"};if(!this.options.user.valid){c.disabled=true}var m=new b.GalaxyMastheadTab(c);if(this.options.user.valid){m.add({title:"New Track Browser",content:"visualization/trackster",target:"_frame"});m.add({title:"Saved Visualizations",content:"visualization/list",target:"_frame"})}this.masthead.append(m);if(this.options.enable_cloud_launch){var f=new b.GalaxyMastheadTab({id:"cloud",title:"Cloud",content:"cloudlaunch/index"});f.add({title:"New Cloud Cluster",content:"cloudlaunch/index"});this.masthead.append(f)}if(this.options.is_admin_user){var h=new b.GalaxyMastheadTab({id:"admin",title:"Admin",content:"admin/index",extra_class:"admin-only",title_attribute:"Administer this Galaxy"});this.masthead.append(h)}var l=new b.GalaxyMastheadTab({id:"help",title:"Help",title_attribute:"Support, contact, and community hubs"});if(this.options.biostar_url){l.add({title:"Galaxy Q&A Site",content:this.options.biostar_url,target:"_blank"});l.add({title:"Ask a question",content:"biostar/biostar_question_redirect",target:"_blank"})}l.add({title:"Support",content:this.options.support_url,target:"_blank"});l.add({title:"Search",content:this.options.search_url,target:"_blank"});l.add({title:"Mailing Lists",content:this.options.mailing_lists,target:"_blank"});l.add({title:"Videos",content:this.options.screencasts_url,target:"_blank"});l.add({title:"Wiki",content:this.options.wiki_url,target:"_blank"});l.add({title:"How to Cite Galaxy",content:this.options.citation_url,target:"_blank"});if(this.options.terms_url){l.add({title:"Terms and Conditions",content:this.options.terms_url,target:"_blank"})}this.masthead.append(l);if(!this.options.user.valid){var k=new b.GalaxyMastheadTab({id:"user",title:"User",extra_class:"loggedout-only",title_attribute:"Account registration or login"});k.add({title:"Login",content:"user/login",target:"galaxy_main"});if(this.options.allow_user_creation){k.add({title:"Register",content:"user/create",target:"galaxy_main"})}this.masthead.append(k)}else{var k=new b.GalaxyMastheadTab({id:"user",title:"User",extra_class:"loggedin-only",title_attribute:"Account preferences and saved data"});k.add({title:"Logged in as "+this.options.user.email});if(this.options.use_remote_user&&this.options.remote_user_logout_href){k.add({title:"Logout",content:this.options.remote_user_logout_href,target:"_top"})}else{k.add({title:"Preferences",content:"user?cntrller=user",target:"galaxy_main"});k.add({title:"Custom Builds",content:"user/dbkeys",target:"galaxy_main"});k.add({title:"Logout",content:"user/logout",target:"_top",divider:true})}k.add({title:"Saved Histories",content:"history/list",target:"galaxy_main"});k.add({title:"Saved Datasets",content:"dataset/list",target:"galaxy_main"});k.add({title:"Saved Pages",content:"page/list",target:"_top"});k.add({title:"API Keys",content:"user/api_keys?cntrller=user",target:"galaxy_main"});if(this.options.use_remote_user){k.add({title:"Public Name",content:"user/edit_username?cntrller=user",target:"galaxy_main"})}this.masthead.append(k)}if(this.options.active_view){this.masthead.highlight(this.options.active_view)}}});return{GalaxyMenu:a}});
\ No newline at end of file
diff -r a0ccb7e6bfdfe5058561e709a81dee9f26e5c991 -r 5fd196b5d1760d1a8180184f8e5450e0957b37c2 templates/webapps/galaxy/dataset/errors.mako
--- a/templates/webapps/galaxy/dataset/errors.mako
+++ b/templates/webapps/galaxy/dataset/errors.mako
@@ -103,7 +103,7 @@
</div><div class="form-row"><input type="submit" name="submit_error_report" value="Report" onclick="return sendReport( this, this.form, '_self' );"/>
- %if trans.app.config.biostar_url:
+ %if trans.app.config.biostar_url and trans.app.config.biostar_enable_bug_reports:
<input type="submit" name="submit_error_report" value="Post on Biostar" onclick="return sendReport( this, this.form, '_blank', true );"/>
%endif
</div>
diff -r a0ccb7e6bfdfe5058561e709a81dee9f26e5c991 -r 5fd196b5d1760d1a8180184f8e5450e0957b37c2 templates/webapps/galaxy/galaxy.masthead.mako
--- a/templates/webapps/galaxy/galaxy.masthead.mako
+++ b/templates/webapps/galaxy/galaxy.masthead.mako
@@ -41,7 +41,6 @@
'enable_cloud_launch' : app.config.get_bool('enable_cloud_launch', False),
'lims_doc_url' : app.config.get("lims_doc_url", "http://main.g2.bx.psu.edu/u/rkchak/p/sts"),
'biostar_url' : app.config.biostar_url,
- 'biostar_url_redirect' : h.url_for( controller='biostar', action='biostar_redirect', biostar_action='show_tags', qualified=True ),
'support_url' : app.config.get("support_url", "http://wiki.galaxyproject.org/Support"),
'search_url' : app.config.get("search_url", "http://galaxyproject.org/search/usegalaxy/"),
'mailing_lists' : app.config.get("mailing_lists", "http://wiki.galaxyproject.org/MailingLists"),
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: jmchilton: Fix library permissions API controller.
by commits-noreply@bitbucket.org 17 Apr '14
by commits-noreply@bitbucket.org 17 Apr '14
17 Apr '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/a0ccb7e6bfdf/
Changeset: a0ccb7e6bfdf
Branch: stable
User: jmchilton
Date: 2014-04-17 20:46:57
Summary: Fix library permissions API controller.
Affected #: 1 file
diff -r c05752549163e2b3b6aeddbab8019af06443c461 -r a0ccb7e6bfdfe5058561e709a81dee9f26e5c991 lib/galaxy/webapps/galaxy/api/permissions.py
--- a/lib/galaxy/webapps/galaxy/api/permissions.py
+++ b/lib/galaxy/webapps/galaxy/api/permissions.py
@@ -47,6 +47,6 @@
trans.app.security_agent.copy_library_permissions( trans, library, library.root_folder )
message = "Permissions updated for library '%s'." % library.name
- item = library.to_dict( view='element' )
+ item = library.to_dict( view='element', value_mapper={ 'id' : trans.security.encode_id , 'root_folder_id' : trans.security.encode_id } )
return item
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: dan: Add an option to biostar integration to never authenticate.
by commits-noreply@bitbucket.org 17 Apr '14
by commits-noreply@bitbucket.org 17 Apr '14
17 Apr '14
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/41889121607b/
Changeset: 41889121607b
User: dan
Date: 2014-04-17 21:38:42
Summary: Add an option to biostar integration to never authenticate.
Affected #: 2 files
diff -r 31eee538eb2161a378425d9190e600b42a0d32e3 -r 41889121607bab478bba3a9b606a12f1a6c690b4 lib/galaxy/config.py
--- a/lib/galaxy/config.py
+++ b/lib/galaxy/config.py
@@ -330,6 +330,7 @@
self.biostar_key_name = kwargs.get( 'biostar_key_name', None )
self.biostar_key = kwargs.get( 'biostar_key', None )
self.biostar_enable_bug_reports = string_as_bool( kwargs.get( 'biostar_enable_bug_reports', True ) )
+ self.biostar_never_authenticate = string_as_bool( kwargs.get( 'biostar_never_authenticate', False ) )
self.pretty_datetime_format = expand_pretty_datetime_format( kwargs.get( 'pretty_datetime_format', '$locale (UTC)' ) )
self.master_api_key = kwargs.get( 'master_api_key', None )
if self.master_api_key == "changethis": # default in sample config file
diff -r 31eee538eb2161a378425d9190e600b42a0d32e3 -r 41889121607bab478bba3a9b606a12f1a6c690b4 lib/galaxy/util/biostar.py
--- a/lib/galaxy/util/biostar.py
+++ b/lib/galaxy/util/biostar.py
@@ -2,6 +2,7 @@
Support for integration with the Biostar application
"""
+import logging
import hmac
import urlparse
import re
@@ -10,6 +11,8 @@
from galaxy.tools.errors import ErrorReporter
from . import smart_str
+log = logging.getLogger( __name__ )
+
_punct_re = re.compile(r'[\t !"#$%&\'()*\-/<=>?(a)\[\\\]^_`{|},.]+')
DEFAULT_GALAXY_TAG = ''
@@ -113,7 +116,10 @@
return galaxy_hostname
-def create_cookie( trans, key_name, key, email, age=DEFAULT_BIOSTAR_COOKIE_AGE ):
+def create_cookie( trans, key_name, key, email, age=DEFAULT_BIOSTAR_COOKIE_AGE, override_never_authenticate=False ):
+ if trans.app.config.biostar_never_authenticate and not override_never_authenticate:
+ log.debug( 'A BioStar link was clicked, but never authenticate has been enabled, so we will not create the login cookie.' )
+ return
digest = hmac.new( key, email ).hexdigest()
value = "%s:%s" % (email, digest)
trans.set_cookie( value, name=key_name, path='/', age=age, version='1' )
@@ -125,7 +131,7 @@
def delete_cookie( trans, key_name ):
#Set expiration of Cookie to time in past, to cause browser to delete
if key_name in trans.request.cookies:
- create_cookie( trans, trans.app.config.biostar_key_name, '', '', age=-90 )
+ create_cookie( trans, trans.app.config.biostar_key_name, '', '', age=-90, override_never_authenticate=True )
def biostar_logged_in( trans ):
if biostar_enabled( trans.app ):
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0