1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/ade75ceb5427/ Changeset: ade75ceb5427 User: guerler Date: 2015-02-07 03:03:33+00:00 Summary: ToolForm: More style adjustments Affected #: 8 files
diff -r 527b11f07d8107298c87293eb04469f2743e229e -r ade75ceb5427c588756ab888c3944cf4d25ada73 client/galaxy/scripts/mvc/tools/tools-select-content.js --- a/client/galaxy/scripts/mvc/tools/tools-select-content.js +++ b/client/galaxy/scripts/mvc/tools/tools-select-content.js @@ -48,7 +48,11 @@
// add single dataset selector if (this.mode == 'single') { - radio_buttons.push({icon: 'fa-file-o', label: '', value: 'single', tooltip: 'Single dataset' }); + radio_buttons.push({ + icon : 'fa-file-o', + value : 'single', + tooltip : 'Single dataset' + }); this.select_single = new Ui.Select.View({ optional : options.optional, error_text : hda_error, @@ -64,7 +68,11 @@
// add multiple dataset selector if (this.mode == 'single' || this.mode == 'multiple') { - radio_buttons.push({icon: 'fa-files-o', label: '', value: 'multiple', tooltip: 'Multiple datasets' }); + radio_buttons.push({ + icon : 'fa-files-o', + value : 'multiple', + tooltip : 'Multiple datasets' + }); this.select_multiple = new Ui.Select.View({ multiple : true, error_text : hda_error, @@ -80,7 +88,11 @@
// add collection selector if (this.mode == 'single' || this.mode == 'collection') { - radio_buttons.push({icon: 'fa-folder-o', label: '', value: 'collection', tooltip: 'Dataset collection' }); + radio_buttons.push({ + icon : 'fa-folder-o', + value : 'collection', + tooltip : 'Dataset collection' + }); this.select_collection = new Ui.Select.View({ error_text : hdca_error, optional : options.optional, @@ -108,13 +120,17 @@ // add batch mode information this.$batch = $(ToolTemplate.batchMode());
- // calculate button width (should be placed into css once its supported) - var button_width = (_.size(this.list) - 1) * 60 + 'px'; - - // add elements to dom - if (_.size(this.list) > 1) { + // number of radio buttons + var n_buttons = _.size(this.list); + + // add button to dom + var button_width = 0; + if (n_buttons > 1) { this.$el.append(this.button_type.$el); + button_width = Math.max(0, _.size(this.list) * 35) + 'px'; } + + // append field elements for (var i in this.list) { this.$el.append(this.list[i].field.$el.css({ 'margin-left': button_width
diff -r 527b11f07d8107298c87293eb04469f2743e229e -r ade75ceb5427c588756ab888c3944cf4d25ada73 client/galaxy/scripts/mvc/ui/ui-options.js --- a/client/galaxy/scripts/mvc/ui/ui-options.js +++ b/client/galaxy/scripts/mvc/ui/ui-options.js @@ -286,12 +286,19 @@ /** Template for a single option */ _templateOption: function(pair) { + var cls = 'fa ' + pair.icon; + if (!pair.label) { + cls += ' no-padding'; + } var tmpl = '<label class="btn btn-default">'; if (pair.icon) { - tmpl += '<i class="fa ' + pair.icon + '"/>'; + tmpl += '<i class="' + cls + '"/>'; } - tmpl += '<input type="radio" name="' + this.options.id + '" value="' + pair.value + '">' + pair.label + - '</label>'; + tmpl += '<input type="radio" name="' + this.options.id + '" value="' + pair.value + '">'; + if (pair.label) { + tmpl += pair.label; + } + tmpl += '</label>'; return tmpl; },
diff -r 527b11f07d8107298c87293eb04469f2743e229e -r ade75ceb5427c588756ab888c3944cf4d25ada73 static/scripts/mvc/tools/tools-select-content.js --- a/static/scripts/mvc/tools/tools-select-content.js +++ b/static/scripts/mvc/tools/tools-select-content.js @@ -48,7 +48,11 @@
// add single dataset selector if (this.mode == 'single') { - radio_buttons.push({icon: 'fa-file-o', label: '', value: 'single', tooltip: 'Single dataset' }); + radio_buttons.push({ + icon : 'fa-file-o', + value : 'single', + tooltip : 'Single dataset' + }); this.select_single = new Ui.Select.View({ optional : options.optional, error_text : hda_error, @@ -64,7 +68,11 @@
// add multiple dataset selector if (this.mode == 'single' || this.mode == 'multiple') { - radio_buttons.push({icon: 'fa-files-o', label: '', value: 'multiple', tooltip: 'Multiple datasets' }); + radio_buttons.push({ + icon : 'fa-files-o', + value : 'multiple', + tooltip : 'Multiple datasets' + }); this.select_multiple = new Ui.Select.View({ multiple : true, error_text : hda_error, @@ -80,7 +88,11 @@
// add collection selector if (this.mode == 'single' || this.mode == 'collection') { - radio_buttons.push({icon: 'fa-folder-o', label: '', value: 'collection', tooltip: 'Dataset collection' }); + radio_buttons.push({ + icon : 'fa-folder-o', + value : 'collection', + tooltip : 'Dataset collection' + }); this.select_collection = new Ui.Select.View({ error_text : hdca_error, optional : options.optional, @@ -108,13 +120,17 @@ // add batch mode information this.$batch = $(ToolTemplate.batchMode());
- // calculate button width (should be placed into css once its supported) - var button_width = (_.size(this.list) - 1) * 60 + 'px'; - - // add elements to dom - if (_.size(this.list) > 1) { + // number of radio buttons + var n_buttons = _.size(this.list); + + // add button to dom + var button_width = 0; + if (n_buttons > 1) { this.$el.append(this.button_type.$el); + button_width = Math.max(0, _.size(this.list) * 35) + 'px'; } + + // append field elements for (var i in this.list) { this.$el.append(this.list[i].field.$el.css({ 'margin-left': button_width
diff -r 527b11f07d8107298c87293eb04469f2743e229e -r ade75ceb5427c588756ab888c3944cf4d25ada73 static/scripts/mvc/ui/ui-options.js --- a/static/scripts/mvc/ui/ui-options.js +++ b/static/scripts/mvc/ui/ui-options.js @@ -286,12 +286,19 @@ /** Template for a single option */ _templateOption: function(pair) { + var cls = 'fa ' + pair.icon; + if (!pair.label) { + cls += ' no-padding'; + } var tmpl = '<label class="btn btn-default">'; if (pair.icon) { - tmpl += '<i class="fa ' + pair.icon + '"/>'; + tmpl += '<i class="' + cls + '"/>'; } - tmpl += '<input type="radio" name="' + this.options.id + '" value="' + pair.value + '">' + pair.label + - '</label>'; + tmpl += '<input type="radio" name="' + this.options.id + '" value="' + pair.value + '">'; + if (pair.label) { + tmpl += pair.label; + } + tmpl += '</label>'; return tmpl; },
diff -r 527b11f07d8107298c87293eb04469f2743e229e -r ade75ceb5427c588756ab888c3944cf4d25ada73 static/scripts/packed/mvc/tools/tools-select-content.js --- a/static/scripts/packed/mvc/tools/tools-select-content.js +++ b/static/scripts/packed/mvc/tools/tools-select-content.js @@ -1,1 +1,1 @@ -define(["utils/utils","mvc/ui/ui-misc","mvc/ui/ui-tabs","mvc/tools/tools-template"],function(c,e,b,a){var d=Backbone.View.extend({initialize:function(f,o){this.app=f;this.options=o;var n=this;this.setElement('<div class="ui-select-content"/>');this.list={};var l=[];if(o.type=="data_collection"){this.mode="collection"}else{if(o.multiple){this.mode="multiple"}else{this.mode="single"}}this.current=this.mode;this.list={};var j=c.textify(o.extensions);var h="No dataset available.";if(j){h="No "+j+" dataset available."}var k="No dataset list available.";if(j){k="No "+j+" dataset collection available."}if(this.mode=="single"){l.push({icon:"fa-file-o",label:"",value:"single",tooltip:"Single dataset"});this.select_single=new e.Select.View({optional:o.optional,error_text:h,onchange:function(){n.trigger("change")}});this.list.single={field:this.select_single,type:"hda"}}if(this.mode=="single"||this.mode=="multiple"){l.push({icon:"fa-files-o",label:"",value:"multiple",tooltip:"Multiple datasets"});this.select_multiple=new e.Select.View({multiple:true,error_text:h,onchange:function(){n.trigger("change")}});this.list.multiple={field:this.select_multiple,type:"hda"}}if(this.mode=="single"||this.mode=="collection"){l.push({icon:"fa-folder-o",label:"",value:"collection",tooltip:"Dataset collection"});this.select_collection=new e.Select.View({error_text:k,optional:o.optional,onchange:function(){n.trigger("change")}});this.list.collection={field:this.select_collection,type:"hdca"}}this.button_type=new e.RadioButton.View({value:this.current,data:l,onchange:function(i){n.current=i;n.refresh();n.trigger("change")}});this.$batch=$(a.batchMode());var m=(_.size(this.list)-1)*60+"px";if(_.size(this.list)>1){this.$el.append(this.button_type.$el)}for(var g in this.list){this.$el.append(this.list[g].field.$el.css({"margin-left":m}))}this.$el.append(this.$batch.css({"margin-left":m}));this.update(o.data);if(this.options.value!==undefined){this.value(this.options.value)}this.refresh();this.on("change",function(){if(o.onchange){o.onchange(n.value())}})},wait:function(){for(var f in this.list){this.list[f].field.wait()}},unwait:function(){for(var f in this.list){this.list[f].field.unwait()}},update:function(g){var l=[];for(var j in g.hda){var k=g.hda[j];l.push({label:k.hid+": "+k.name,value:k.id})}var f=[];for(var j in g.hdca){var h=g.hdca[j];f.push({label:h.hid+": "+h.name,value:h.id})}this.select_single&&this.select_single.update(l);this.select_multiple&&this.select_multiple.update(l);this.select_collection&&this.select_collection.update(f);this.app.content.add(g)},value:function(h){if(h!==undefined){if(h&&h.values){try{var l=[];for(var g in h.values){l.push(h.values[g].id)}if(h&&h.values.length>0&&h.values[0].src=="hcda"){this.current="collection";this.select_collection.value(l[0])}else{if(this.mode=="multiple"){this.current="multiple";this.select_multiple.value(l)}else{this.current="single";this.select_single.value(l[0])}}}catch(k){console.debug("tools-select-content::value() - Skipped.")}}else{this.select_single&&this.select_single.value("__null__");this.select_multiple&&this.select_multiple.value("__null__");this.select_collection&&this.select_collection.value("__null__")}this.refresh()}var j=this._select().value();if(!(j instanceof Array)){j=[j]}var f={batch:this.mode=="single"&&this.current!="single",values:[]};for(var g in j){f.values.push({id:j[g],src:this.list[this.current].type})}return f},validate:function(){return this._select().validate()},refresh:function(){this.button_type.value(this.current);for(var g in this.list){var f=this.list[g].field.$el;if(this.current==g){f.show()}else{f.hide()}}if(this.mode=="single"&&this.current!="single"){this.$batch.show()}else{this.$batch.hide()}},_select:function(){return this.list[this.current].field}});return{View:d}}); \ No newline at end of file +define(["utils/utils","mvc/ui/ui-misc","mvc/ui/ui-tabs","mvc/tools/tools-template"],function(c,e,b,a){var d=Backbone.View.extend({initialize:function(g,p){this.app=g;this.options=p;var o=this;this.setElement('<div class="ui-select-content"/>');this.list={};var m=[];if(p.type=="data_collection"){this.mode="collection"}else{if(p.multiple){this.mode="multiple"}else{this.mode="single"}}this.current=this.mode;this.list={};var k=c.textify(p.extensions);var j="No dataset available.";if(k){j="No "+k+" dataset available."}var l="No dataset list available.";if(k){l="No "+k+" dataset collection available."}if(this.mode=="single"){m.push({icon:"fa-file-o",value:"single",tooltip:"Single dataset"});this.select_single=new e.Select.View({optional:p.optional,error_text:j,onchange:function(){o.trigger("change")}});this.list.single={field:this.select_single,type:"hda"}}if(this.mode=="single"||this.mode=="multiple"){m.push({icon:"fa-files-o",value:"multiple",tooltip:"Multiple datasets"});this.select_multiple=new e.Select.View({multiple:true,error_text:j,onchange:function(){o.trigger("change")}});this.list.multiple={field:this.select_multiple,type:"hda"}}if(this.mode=="single"||this.mode=="collection"){m.push({icon:"fa-folder-o",value:"collection",tooltip:"Dataset collection"});this.select_collection=new e.Select.View({error_text:l,optional:p.optional,onchange:function(){o.trigger("change")}});this.list.collection={field:this.select_collection,type:"hdca"}}this.button_type=new e.RadioButton.View({value:this.current,data:m,onchange:function(i){o.current=i;o.refresh();o.trigger("change")}});this.$batch=$(a.batchMode());var f=_.size(this.list);var n=0;if(f>1){this.$el.append(this.button_type.$el);n=Math.max(0,_.size(this.list)*35)+"px"}for(var h in this.list){this.$el.append(this.list[h].field.$el.css({"margin-left":n}))}this.$el.append(this.$batch.css({"margin-left":n}));this.update(p.data);if(this.options.value!==undefined){this.value(this.options.value)}this.refresh();this.on("change",function(){if(p.onchange){p.onchange(o.value())}})},wait:function(){for(var f in this.list){this.list[f].field.wait()}},unwait:function(){for(var f in this.list){this.list[f].field.unwait()}},update:function(g){var l=[];for(var j in g.hda){var k=g.hda[j];l.push({label:k.hid+": "+k.name,value:k.id})}var f=[];for(var j in g.hdca){var h=g.hdca[j];f.push({label:h.hid+": "+h.name,value:h.id})}this.select_single&&this.select_single.update(l);this.select_multiple&&this.select_multiple.update(l);this.select_collection&&this.select_collection.update(f);this.app.content.add(g)},value:function(h){if(h!==undefined){if(h&&h.values){try{var l=[];for(var g in h.values){l.push(h.values[g].id)}if(h&&h.values.length>0&&h.values[0].src=="hcda"){this.current="collection";this.select_collection.value(l[0])}else{if(this.mode=="multiple"){this.current="multiple";this.select_multiple.value(l)}else{this.current="single";this.select_single.value(l[0])}}}catch(k){console.debug("tools-select-content::value() - Skipped.")}}else{this.select_single&&this.select_single.value("__null__");this.select_multiple&&this.select_multiple.value("__null__");this.select_collection&&this.select_collection.value("__null__")}this.refresh()}var j=this._select().value();if(!(j instanceof Array)){j=[j]}var f={batch:this.mode=="single"&&this.current!="single",values:[]};for(var g in j){f.values.push({id:j[g],src:this.list[this.current].type})}return f},validate:function(){return this._select().validate()},refresh:function(){this.button_type.value(this.current);for(var g in this.list){var f=this.list[g].field.$el;if(this.current==g){f.show()}else{f.hide()}}if(this.mode=="single"&&this.current!="single"){this.$batch.show()}else{this.$batch.hide()}},_select:function(){return this.list[this.current].field}});return{View:d}}); \ No newline at end of file
diff -r 527b11f07d8107298c87293eb04469f2743e229e -r ade75ceb5427c588756ab888c3944cf4d25ada73 static/scripts/packed/mvc/ui/ui-options.js --- a/static/scripts/packed/mvc/ui/ui-options.js +++ b/static/scripts/packed/mvc/ui/ui-options.js @@ -1,1 +1,1 @@ -define(["utils/utils"],function(b){var a=Backbone.View.extend({initialize:function(g){this.optionsDefault={visible:true,data:[],id:b.uuid(),error_text:"No data available.",wait_text:"Please wait..."};this.options=b.merge(g,this.optionsDefault);this.setElement('<div class="ui-options"/>');this.$message=$("<div/>");this.$options=$(this._template(g));this.$el.append(this.$message);this.$el.append(this.$options);if(!this.options.visible){this.$el.hide()}this.update(this.options.data);if(this.options.value!==undefined){this.value(this.options.value)}var f=this;this.on("change",function(){f._change()})},update:function(g){var j=this._getValue();this.$options.empty();if(this._templateOptions){this.$options.append(this._templateOptions(g))}else{for(var h in g){var i=$(this._templateOption(g[h]));i.addClass("ui-option");i.tooltip({title:g[h].tooltip,placement:"bottom"});this.$options.append(i)}}var f=this;this.$el.find("input").on("change",function(){f.value(f._getValue());f._change()});this._refresh();this.value(j)},value:function(g){if(g!==undefined){if(!(g instanceof Array)){g=[g]}this.$el.find("input").prop("checked",false);for(var f in g){this.$el.find('input[value="'+g[f]+'"]').first().prop("checked",true)}}return this._getValue()},exists:function(g){if(g!==undefined){if(!(g instanceof Array)){g=[g]}for(var f in g){if(this.$el.find('input[value="'+g[f]+'"]').length>0){return true}}}return false},first:function(){var f=this.$el.find("input");if(f.length>0){return f.val()}else{return undefined}},validate:function(){return b.validate(this.value())},wait:function(){if(this._size()==0){this._messageShow(this.options.wait_text,"info");this.$options.hide()}},unwait:function(){this._messageHide();this._refresh()},_change:function(){if(this.options.onchange){this.options.onchange(this._getValue())}},_refresh:function(){if(this._size()==0){this._messageShow(this.options.error_text,"danger");this.$options.hide()}else{this._messageHide();this.$options.css("display","inline-block")}},_getValue:function(){var g=this.$el.find(":checked");if(g.length==0){return"__null__"}if(this.options.multiple){var f=[];g.each(function(){f.push($(this).val())});return f}else{return g.val()}},_size:function(){return this.$el.find(".ui-option").length},_messageShow:function(g,f){this.$message.show();this.$message.removeClass();this.$message.addClass("ui-message alert alert-"+f);this.$message.html(g)},_messageHide:function(){this.$message.hide()},_template:function(){return'<div class="ui-options-input"/>'}});var d={};d.View=a.extend({initialize:function(f){a.prototype.initialize.call(this,f)},_templateOption:function(f){return'<div><input type="radio" name="'+this.options.id+'" value="'+f.value+'"/>'+f.label+"<br></div>"}});var c={};c.View=a.extend({initialize:function(f){f.multiple=true;a.prototype.initialize.call(this,f)},_templateOption:function(f){return'<div><input type="checkbox" name="'+this.options.id+'" value="'+f.value+'"/>'+f.label+"<br></div>"}});var e={};e.View=a.extend({initialize:function(f){a.prototype.initialize.call(this,f)},value:function(f){if(f!==undefined){this.$el.find("input").prop("checked",false);this.$el.find("label").removeClass("active");this.$el.find('[value="'+f+'"]').prop("checked",true).closest("label").addClass("active")}return this._getValue()},_templateOption:function(g){var f='<label class="btn btn-default">';if(g.icon){f+='<i class="fa '+g.icon+'"/>'}f+='<input type="radio" name="'+this.options.id+'" value="'+g.value+'">'+g.label+"</label>";return f},_template:function(){return'<div class="btn-group ui-radiobutton" data-toggle="buttons"/>'}});return{Base:a,Radio:d,RadioButton:e,Checkbox:c}}); \ No newline at end of file +define(["utils/utils"],function(b){var a=Backbone.View.extend({initialize:function(g){this.optionsDefault={visible:true,data:[],id:b.uuid(),error_text:"No data available.",wait_text:"Please wait..."};this.options=b.merge(g,this.optionsDefault);this.setElement('<div class="ui-options"/>');this.$message=$("<div/>");this.$options=$(this._template(g));this.$el.append(this.$message);this.$el.append(this.$options);if(!this.options.visible){this.$el.hide()}this.update(this.options.data);if(this.options.value!==undefined){this.value(this.options.value)}var f=this;this.on("change",function(){f._change()})},update:function(g){var j=this._getValue();this.$options.empty();if(this._templateOptions){this.$options.append(this._templateOptions(g))}else{for(var h in g){var i=$(this._templateOption(g[h]));i.addClass("ui-option");i.tooltip({title:g[h].tooltip,placement:"bottom"});this.$options.append(i)}}var f=this;this.$el.find("input").on("change",function(){f.value(f._getValue());f._change()});this._refresh();this.value(j)},value:function(g){if(g!==undefined){if(!(g instanceof Array)){g=[g]}this.$el.find("input").prop("checked",false);for(var f in g){this.$el.find('input[value="'+g[f]+'"]').first().prop("checked",true)}}return this._getValue()},exists:function(g){if(g!==undefined){if(!(g instanceof Array)){g=[g]}for(var f in g){if(this.$el.find('input[value="'+g[f]+'"]').length>0){return true}}}return false},first:function(){var f=this.$el.find("input");if(f.length>0){return f.val()}else{return undefined}},validate:function(){return b.validate(this.value())},wait:function(){if(this._size()==0){this._messageShow(this.options.wait_text,"info");this.$options.hide()}},unwait:function(){this._messageHide();this._refresh()},_change:function(){if(this.options.onchange){this.options.onchange(this._getValue())}},_refresh:function(){if(this._size()==0){this._messageShow(this.options.error_text,"danger");this.$options.hide()}else{this._messageHide();this.$options.css("display","inline-block")}},_getValue:function(){var g=this.$el.find(":checked");if(g.length==0){return"__null__"}if(this.options.multiple){var f=[];g.each(function(){f.push($(this).val())});return f}else{return g.val()}},_size:function(){return this.$el.find(".ui-option").length},_messageShow:function(g,f){this.$message.show();this.$message.removeClass();this.$message.addClass("ui-message alert alert-"+f);this.$message.html(g)},_messageHide:function(){this.$message.hide()},_template:function(){return'<div class="ui-options-input"/>'}});var d={};d.View=a.extend({initialize:function(f){a.prototype.initialize.call(this,f)},_templateOption:function(f){return'<div><input type="radio" name="'+this.options.id+'" value="'+f.value+'"/>'+f.label+"<br></div>"}});var c={};c.View=a.extend({initialize:function(f){f.multiple=true;a.prototype.initialize.call(this,f)},_templateOption:function(f){return'<div><input type="checkbox" name="'+this.options.id+'" value="'+f.value+'"/>'+f.label+"<br></div>"}});var e={};e.View=a.extend({initialize:function(f){a.prototype.initialize.call(this,f)},value:function(f){if(f!==undefined){this.$el.find("input").prop("checked",false);this.$el.find("label").removeClass("active");this.$el.find('[value="'+f+'"]').prop("checked",true).closest("label").addClass("active")}return this._getValue()},_templateOption:function(h){var f="fa "+h.icon;if(!h.label){f+=" no-padding"}var g='<label class="btn btn-default">';if(h.icon){g+='<i class="'+f+'"/>'}g+='<input type="radio" name="'+this.options.id+'" value="'+h.value+'">';if(h.label){g+=h.label}g+="</label>";return g},_template:function(){return'<div class="btn-group ui-radiobutton" data-toggle="buttons"/>'}});return{Base:a,Radio:d,RadioButton:e,Checkbox:c}}); \ No newline at end of file
diff -r 527b11f07d8107298c87293eb04469f2743e229e -r ade75ceb5427c588756ab888c3944cf4d25ada73 static/style/blue/base.css --- a/static/style/blue/base.css +++ b/static/style/blue/base.css @@ -1396,6 +1396,7 @@ .upload-header .select2-choice{max-height:20px;line-height:18px;background:transparent;text-align:center;font-weight:normal}.upload-header .select2-choice .select2-arrow b{background-position:0 -3px} .upload-top{height:5%;text-align:center}.upload-top .upload-info{margin-top:0px;font-weight:normal;text-align:center} .no-highlight,.ui-button-icon,.ui-portlet,.ui-portlet-repeat,.ui-portlet-limited,.ui-portlet-section,.ui-portlet-narrow{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none;} +.no-padding{padding:0px !important} .ui-margin-top{padding-top:5px !important} .ui-margin-bottom{margin-bottom:5px !important} .ui-error{-moz-border-radius:3px;border-radius:3px;background:#f9c7c5;padding:5px}
diff -r 527b11f07d8107298c87293eb04469f2743e229e -r ade75ceb5427c588756ab888c3944cf4d25ada73 static/style/src/less/ui.less --- a/static/style/src/less/ui.less +++ b/static/style/src/less/ui.less @@ -6,6 +6,11 @@ -ms-user-select: none; /* IE10+ */ }
+// remove padding +.no-padding { + padding: 0px !important; +} + // default margins @ui-margin-vertical: 5px; @ui-margin-horizontal: 5px;
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.