diff --git a/Changelog.md b/Changelog.md
index fb8ee019e..3b80a43e1 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -42,6 +42,7 @@ With the port to Bootstrap 3, app/views/terms/default.haml has a new structure.
* Use upstream CSS mappings for Entypo [#6158](https://github.com/diaspora/diaspora/pull/6158)
* Replace some mobile icons with Entypo [#6218](https://github.com/diaspora/diaspora/pull/6218)
* Refactor publisher backbone view [#6228](https://github.com/diaspora/diaspora/pull/6228)
+* Replace MBP.autogrow with autosize on mobile [#6261](https://github.com/diaspora/diaspora/pull/6261)
## Bug fixes
* Destroy Participation when removing interactions with a post [#5852](https://github.com/diaspora/diaspora/pull/5852)
@@ -56,6 +57,7 @@ With the port to Bootstrap 3, app/views/terms/default.haml has a new structure.
* Display poll & location on mobile [#6238](https://github.com/diaspora/diaspora/pull/6238)
* Update counts on contacts page dynamically [#6240](https://github.com/diaspora/diaspora/pull/6240)
* Add support for relay based public post federation [#6207](https://github.com/diaspora/diaspora/pull/6207)
+* Bigger mobile publisher [#6261](https://github.com/diaspora/diaspora/pull/6261)
# 0.5.3.0
diff --git a/app/assets/javascripts/mobile/mobile.js b/app/assets/javascripts/mobile/mobile.js
index 3c17a14bf..10e33aab4 100644
--- a/app/assets/javascripts/mobile/mobile.js
+++ b/app/assets/javascripts/mobile/mobile.js
@@ -6,7 +6,7 @@
*/
//= require jquery.charcount
//= require js-routes
-//= require mbp-helper
+//= require autosize
//= require jquery.autoSuggest.custom
//= require fileuploader-custom
//= require rails-timeago
@@ -18,7 +18,8 @@
//= require mobile/mobile_file_uploader
//= require mobile/profile_aspects
//= require mobile/tag_following
-//= require mobile/mobile_comments.js
+//= require mobile/publisher
+//= require mobile/mobile_comments
$(document).ready(function(){
@@ -125,42 +126,5 @@ $(document).ready(function(){
}
}
});
-
- $(".service_icon").bind("tap click", function() {
- var service = $(this).toggleClass("dim"),
- selectedServices = $("#new_status_message .service_icon:not(.dim)"),
- provider = service.attr("id"),
- hiddenField = $("#new_status_message input[name='services[]'][value='" + provider + "']"),
- publisherMaxChars = 40000,
- serviceMaxChars;
-
-
- $("#new_status_message .counter").remove();
-
- $.each(selectedServices, function() {
- serviceMaxChars = parseInt($(this).attr("maxchar"));
- if(publisherMaxChars > serviceMaxChars) {
- publisherMaxChars = serviceMaxChars;
- }
- });
-
- $('#status_message_text').charCount({allowed: publisherMaxChars, warning: publisherMaxChars/10 });
-
- if(hiddenField.length > 0) { hiddenField.remove(); }
- else {
- $("#new_status_message").append(
- $("", {
- name: "services[]",
- type: "hidden",
- value: provider
- })
- );
- }
- });
-
- $("#submit_new_message").bind("tap click", function(evt){
- evt.preventDefault();
- $("#new_status_message").submit();
- });
});
// @license-end
diff --git a/app/assets/javascripts/mobile/mobile_comments.js b/app/assets/javascripts/mobile/mobile_comments.js
index 2dedaf9d5..e2c1f6673 100644
--- a/app/assets/javascripts/mobile/mobile_comments.js
+++ b/app/assets/javascripts/mobile/mobile_comments.js
@@ -112,7 +112,7 @@ $(document).ready(function() {
var bottomBar = link.closest(".bottom_bar").first();
bottomBar.append(data);
var textArea = bottomBar.find("textarea.comment_box").first()[0];
- MBP.autogrow(textArea);
+ autosize(textArea);
}
$(".stream").on("submit", ".new_comment", function(evt) {
diff --git a/app/assets/javascripts/mobile/publisher.js b/app/assets/javascripts/mobile/publisher.js
new file mode 100644
index 000000000..4f6f609ba
--- /dev/null
+++ b/app/assets/javascripts/mobile/publisher.js
@@ -0,0 +1,43 @@
+$(document).ready(function(){
+ // no publisher available
+ if($("#new_status_message").length === 0) { return; }
+
+ $(".service_icon").bind("tap click", function() {
+ var service = $(this).toggleClass("dim"),
+ selectedServices = $("#new_status_message .service_icon:not(.dim)"),
+ provider = service.attr("id"),
+ hiddenField = $("#new_status_message input[name='services[]'][value='" + provider + "']"),
+ publisherMaxChars = 40000,
+ serviceMaxChars;
+
+
+ $("#new_status_message .counter").remove();
+
+ $.each(selectedServices, function() {
+ serviceMaxChars = parseInt($(this).attr("maxchar"));
+ if(publisherMaxChars > serviceMaxChars) {
+ publisherMaxChars = serviceMaxChars;
+ }
+ });
+
+ $("#status_message_text").charCount({allowed: publisherMaxChars, warning: publisherMaxChars/10 });
+
+ if(hiddenField.length > 0) { hiddenField.remove(); }
+ else {
+ $("#new_status_message").append(
+ $("", {
+ name: "services[]",
+ type: "hidden",
+ value: provider
+ })
+ );
+ }
+ });
+
+ $("#submit_new_message").bind("tap click", function(evt){
+ evt.preventDefault();
+ $("#new_status_message").submit();
+ });
+
+ autosize($("#status_message_text"));
+});
diff --git a/vendor/assets/javascripts/mbp-helper.js b/vendor/assets/javascripts/mbp-helper.js
deleted file mode 100644
index 026baea4f..000000000
--- a/vendor/assets/javascripts/mbp-helper.js
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * MBP - Mobile boilerplate helper functions
- */
-(function(document){
-
-window.MBP = window.MBP || {};
-
-// Fix for iPhone viewport scale bug
-// http://www.blog.highub.com/mobile-2/a-fix-for-iphone-viewport-scale-bug/
-
-MBP.viewportmeta = document.querySelector && document.querySelector('meta[name="viewport"]');
-MBP.ua = navigator.userAgent;
-
-MBP.scaleFix = function () {
- if (MBP.viewportmeta && /iPhone|iPad/.test(MBP.ua) && !/Opera Mini/.test(MBP.ua)) {
- MBP.viewportmeta.content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0";
- document.addEventListener("gesturestart", MBP.gestureStart, false);
- }
-};
-MBP.gestureStart = function () {
- MBP.viewportmeta.content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6";
-};
-
-
-// Hide URL Bar for iOS and Android by Scott Jehl
-// https://gist.github.com/1183357
-
-MBP.hideUrlBar = function () {
- var win = window,
- doc = win.document;
-
- // If there's a hash, or addEventListener is undefined, stop here
- if( !location.hash || !win.addEventListener ){
-
- //scroll to 1
- window.scrollTo( 0, 1 );
- var scrollTop = 1,
-
- //reset to 0 on bodyready, if needed
- bodycheck = setInterval(function(){
- if( doc.body ){
- clearInterval( bodycheck );
- scrollTop = "scrollTop" in doc.body ? doc.body.scrollTop : 1;
- win.scrollTo( 0, scrollTop === 1 ? 0 : 1 );
- }
- }, 15 );
-
- win.addEventListener( "load", function(){
- setTimeout(function(){
- //reset to hide addr bar at onload
- win.scrollTo( 0, scrollTop === 1 ? 0 : 1 );
- }, 0);
- }, false );
- }
-};
-
-
-// Fast Buttons - read wiki below before using
-// https://github.com/shichuan/mobile-html5-boilerplate/wiki/JavaScript-Helper
-
-MBP.fastButton = function (element, handler) {
- this.element = element;
- this.handler = handler;
- if (element.addEventListener) {
- element.addEventListener('touchstart', this, false);
- element.addEventListener('click', this, false);
- }
-};
-
-MBP.fastButton.prototype.handleEvent = function(event) {
- switch (event.type) {
- case 'touchstart': this.onTouchStart(event); break;
- case 'touchmove': this.onTouchMove(event); break;
- case 'touchend': this.onClick(event); break;
- case 'click': this.onClick(event); break;
- }
-};
-
-MBP.fastButton.prototype.onTouchStart = function(event) {
- event.stopPropagation();
- this.element.addEventListener('touchend', this, false);
- document.body.addEventListener('touchmove', this, false);
- this.startX = event.touches[0].clientX;
- this.startY = event.touches[0].clientY;
- this.element.style.backgroundColor = "rgba(0,0,0,.7)";
-};
-
-MBP.fastButton.prototype.onTouchMove = function(event) {
- if(Math.abs(event.touches[0].clientX - this.startX) > 10 ||
- Math.abs(event.touches[0].clientY - this.startY) > 10 ) {
- this.reset();
- }
-};
-
-MBP.fastButton.prototype.onClick = function(event) {
- event.stopPropagation();
- this.reset();
- this.handler(event);
- if(event.type == 'touchend') {
- MBP.preventGhostClick(this.startX, this.startY);
- }
- this.element.style.backgroundColor = "";
-};
-
-MBP.fastButton.prototype.reset = function() {
- this.element.removeEventListener('touchend', this, false);
- document.body.removeEventListener('touchmove', this, false);
- this.element.style.backgroundColor = "";
-};
-
-MBP.preventGhostClick = function (x, y) {
- MBP.coords.push(x, y);
- window.setTimeout(function (){
- MBP.coords.splice(0, 2);
- }, 2500);
-};
-
-MBP.ghostClickHandler = function (event) {
- for(var i = 0, len = MBP.coords.length; i < len; i += 2) {
- var x = MBP.coords[i];
- var y = MBP.coords[i + 1];
- if(Math.abs(event.clientX - x) < 25 && Math.abs(event.clientY - y) < 25) {
- event.stopPropagation();
- event.preventDefault();
- }
- }
-};
-
-if (document.addEventListener) {
- document.addEventListener('click', MBP.ghostClickHandler, true);
-}
-
-MBP.coords = [];
-
-
-// iOS Startup Image
-// https://github.com/shichuan/mobile-html5-boilerplate/issues#issue/2
-
-MBP.splash = function () {
- var filename = navigator.platform === 'iPad' ? 'h/' : 'l/';
- document.write('' );
-};
-
-
-// Autogrow
-// http://googlecode.blogspot.com/2009/07/gmail-for-mobile-html5-series.html
-
-MBP.autogrow = function (element, lh) {
-
- function handler(e){
- var newHeight = this.scrollHeight,
- currentHeight = this.clientHeight;
- if (newHeight > currentHeight) {
- this.style.height = newHeight + 3 * textLineHeight + "px";
- }
- }
-
- var setLineHeight = (lh) ? lh : 12,
- textLineHeight = element.currentStyle ? element.currentStyle.lineHeight :
- getComputedStyle(element, null).lineHeight;
-
- textLineHeight = (textLineHeight.indexOf("px") == -1) ? setLineHeight :
- parseInt(textLineHeight, 10);
-
- element.style.overflow = "hidden";
- element.addEventListener ? element.addEventListener('keyup', handler, false) :
- element.attachEvent('onkeyup', handler);
-};
-
-})(document);
-