diff --git a/js/client.js b/js/client.js index 08e17e933..feffb877b 100644 --- a/js/client.js +++ b/js/client.js @@ -2385,7 +2385,7 @@ buf += '

'; buf += '
'; - buf += '

'; + buf += '

'; buf += '

'; buf += '

'; buf += '

'; @@ -2481,6 +2481,10 @@ }, setBg: function(e) { var bg = e.currentTarget.value; + if (bg === 'custom') { + app.addPopup(CustomBackgroundPopup); + return; + } Tools.prefs('bg', bg); if (!bg) bg = '#344b6c url(/fx/client-bg-charizards.jpg) no-repeat left center fixed'; $(document.body).css({ @@ -2686,4 +2690,42 @@ } }); + var CustomBackgroundPopup = this.CustomBackgroundPopup = Popup.extend({ + type: 'semimodal', + events: { + 'change input[name=bgfile]': 'setBg' + }, + initialize: function() { + var buf = ''; + buf += '

Choose a custom background

'; + buf += ''; + buf += '

'; + + buf += '

'; + this.$el.html(buf); + }, + setBg: function(e) { + $('.bgstatus').text('Changing background image.'); + var file = e.currentTarget.files[0]; + var reader = new FileReader(); + var self = this; + reader.onload = function(e) { + var bg = '#344b6c url(' + e.target.result + ') no-repeat left center fixed'; + try { + Tools.prefs('bg', bg); + } + catch (e) { + $('.bgstatus').text("Image too large, upload a background whose size is 3.5MB or less."); + return; + } + $(document.body).css({ + background: bg, + 'background-size': 'cover' + }); + self.close(); + }; + reader.readAsDataURL(file); + } + }); + }).call(this, jQuery);