diff --git a/Changelog.md b/Changelog.md
index f9efb4678..07f354cfc 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -116,6 +116,7 @@ diaspora.yml file**. The existing settings from 0.4.x and before will not work a
* Replace %{third_party_tools} by the appropriate hyperlink in tags FAQ [#5509](https://github.com/diaspora/diaspora/pull/5509)
* Repair downloading the profile image from Facebook [#5493](https://github.com/diaspora/diaspora/pull/5493)
* Fix localization of post and comment timestamps on mobile [#5482](https://github.com/diaspora/diaspora/issues/5482)
+* Fix mobile JS loading to quieten errors. Fixes also service buttons on mobile bookmarklet.
## Features
* Don't pull jQuery from a CDN by default [#5105](https://github.com/diaspora/diaspora/pull/5105)
diff --git a/app/assets/javascripts/jasmine-load-all.js b/app/assets/javascripts/jasmine-load-all.js
index eda5e0faa..d6d42ecf1 100644
--- a/app/assets/javascripts/jasmine-load-all.js
+++ b/app/assets/javascripts/jasmine-load-all.js
@@ -4,7 +4,7 @@
//= require main
//= require home
//= require inbox
-//= require mobile
+//= require mobile/mobile
//= require profile
//= require contact-list
//= require sinon
diff --git a/app/assets/javascripts/mobile.js b/app/assets/javascripts/mobile/mobile.js
similarity index 74%
rename from app/assets/javascripts/mobile.js
rename to app/assets/javascripts/mobile/mobile.js
index 21dd05582..af1a3c336 100644
--- a/app/assets/javascripts/mobile.js
+++ b/app/assets/javascripts/mobile/mobile.js
@@ -15,6 +15,7 @@
//= require diaspora
//= require helpers/i18n
//= require widgets/timeago
+//= require mobile/mobile_file_uploader
$(document).ready(function(){
@@ -302,86 +303,5 @@ $(document).ready(function(){
});
-function createUploader(){
-
- var aspectIds = gon.preloads.aspect_ids;
-
- var uploader = new qq.FileUploaderBasic({
- element: document.getElementById('file-upload-publisher'),
- params: {'photo' : {'pending' : 'true', 'aspect_ids' : aspectIds},},
- allowedExtensions: ['jpg', 'jpeg', 'png', 'gif', 'tiff'],
- action: "/photos",
- debug: true,
- button: document.getElementById('file-upload-publisher'),
- sizeLimit: 4194304,
-
- onProgress: function(id, fileName, loaded, total){
- var progress = Math.round(loaded / total * 100 );
- $('#fileInfo-publisher').text(fileName + ' ' + progress + '%');
- },
-
- messages: {
- typeError: Diaspora.I18n.t("photo_uploader.invalid_ext"),
- sizeError: Diaspora.I18n.t("photo_uploader.new_photo.size_error"),
- emptyError: Diaspora.I18n.t("photo_uploader.new_photo.empty")
- },
-
- onSubmit: function(id, fileName){
- $('#file-upload-publisher').addClass("loading");
- $('#publisher_textarea_wrapper').addClass("with_attachments");
- $('#photodropzone').append(
- "
" +
- "
" +
- ""
- );
- },
-
- onComplete: function(id, fileName, responseJSON) {
- $('#fileInfo-publisher').text(Diaspora.I18n.t("photo_uploader.completed", {'file': fileName}));
- var id = responseJSON.data.photo.id,
- url = responseJSON.data.photo.unprocessed_image.url,
- currentPlaceholder = $('li.loading').first();
-
- $('#publisher_textarea_wrapper').addClass("with_attachments");
- $('#new_status_message').append("");
-
- // replace image placeholders
- var img = currentPlaceholder.find('img');
- img.attr('src', url);
- img.attr('data-id', id);
- currentPlaceholder.removeClass('loading');
- currentPlaceholder.append("X
" +
- "");
- ////
-
- var publisher = $('#publisher'),
- textarea = publisher.find('textarea');
-
- publisher.find("input[type='submit']").removeAttr('disabled');
-
- $('.x').bind('click', function(){
- var photo = $(this).closest('.publisher_photo');
- photo.addClass("dim");
- $.ajax({url: "/photos/" + photo.children('img').attr('data-id'),
- dataType: 'json',
- type: 'DELETE',
- success: function() {
- photo.fadeOut(400, function(){
- photo.remove();
- if ( $('.publisher_photo').length == 0){
- $('#publisher_textarea_wrapper').removeClass("with_attachments");
- }
- });
- }
- });
- });
- },
-
- onAllComplete: function(completed_files){
- }
-
- });
-}
-createUploader();
// @license-end
diff --git a/app/assets/javascripts/mobile/mobile_file_uploader.js b/app/assets/javascripts/mobile/mobile_file_uploader.js
new file mode 100644
index 000000000..ac17956c2
--- /dev/null
+++ b/app/assets/javascripts/mobile/mobile_file_uploader.js
@@ -0,0 +1,85 @@
+// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
+//= require js_image_paths
+
+function createUploader(){
+
+ var aspectIds = gon.preloads.aspect_ids;
+
+ var uploader = new qq.FileUploaderBasic({
+ element: document.getElementById('file-upload-publisher'),
+ params: {'photo' : {'pending' : 'true', 'aspect_ids' : aspectIds},},
+ allowedExtensions: ['jpg', 'jpeg', 'png', 'gif', 'tiff'],
+ action: "/photos",
+ debug: true,
+ button: document.getElementById('file-upload-publisher'),
+ sizeLimit: 4194304,
+
+ onProgress: function(id, fileName, loaded, total){
+ var progress = Math.round(loaded / total * 100 );
+ $('#fileInfo-publisher').text(fileName + ' ' + progress + '%');
+ },
+
+ messages: {
+ typeError: Diaspora.I18n.t("photo_uploader.invalid_ext"),
+ sizeError: Diaspora.I18n.t("photo_uploader.new_photo.size_error"),
+ emptyError: Diaspora.I18n.t("photo_uploader.new_photo.empty")
+ },
+
+ onSubmit: function(id, fileName){
+ $('#file-upload-publisher').addClass("loading");
+ $('#publisher_textarea_wrapper').addClass("with_attachments");
+ $('#photodropzone').append(
+ "" +
+ "
" +
+ ""
+ );
+ },
+
+ onComplete: function(id, fileName, responseJSON) {
+ $('#fileInfo-publisher').text(Diaspora.I18n.t("photo_uploader.completed", {'file': fileName}));
+ var id = responseJSON.data.photo.id,
+ url = responseJSON.data.photo.unprocessed_image.url,
+ currentPlaceholder = $('li.loading').first();
+
+ $('#publisher_textarea_wrapper').addClass("with_attachments");
+ $('#new_status_message').append("");
+
+ // replace image placeholders
+ var img = currentPlaceholder.find('img');
+ img.attr('src', url);
+ img.attr('data-id', id);
+ currentPlaceholder.removeClass('loading');
+ currentPlaceholder.append("X
" +
+ "");
+ ////
+
+ var publisher = $('#publisher'),
+ textarea = publisher.find('textarea');
+
+ publisher.find("input[type='submit']").removeAttr('disabled');
+
+ $('.x').bind('click', function(){
+ var photo = $(this).closest('.publisher_photo');
+ photo.addClass("dim");
+ $.ajax({url: "/photos/" + photo.children('img').attr('data-id'),
+ dataType: 'json',
+ type: 'DELETE',
+ success: function() {
+ photo.fadeOut(400, function(){
+ photo.remove();
+ if ( $('.publisher_photo').length == 0){
+ $('#publisher_textarea_wrapper').removeClass("with_attachments");
+ }
+ });
+ }
+ });
+ });
+ },
+
+ onAllComplete: function(completed_files){
+ }
+
+ });
+}
+createUploader();
+// @license-end
diff --git a/app/views/conversations/new.mobile.haml b/app/views/conversations/new.mobile.haml
index 59ea5328a..160059c8d 100644
--- a/app/views/conversations/new.mobile.haml
+++ b/app/views/conversations/new.mobile.haml
@@ -3,7 +3,6 @@
-# the COPYRIGHT file.
= javascript_include_tag :jquery
-= javascript_include_tag :mobile
:javascript
$(document).ready(function () {
diff --git a/app/views/layouts/application.mobile.haml b/app/views/layouts/application.mobile.haml
index 448d190f5..517f06a6e 100644
--- a/app/views/layouts/application.mobile.haml
+++ b/app/views/layouts/application.mobile.haml
@@ -119,6 +119,6 @@
/ javascripts at the bottom
= jquery_include_tag
- = javascript_include_tag :mobile
+ = javascript_include_tag "mobile/mobile"
= load_javascript_locales
= include_chartbeat
diff --git a/app/views/publisher/_publisher.mobile.haml b/app/views/publisher/_publisher.mobile.haml
index dca0f8cf2..6a1d72f78 100644
--- a/app/views/publisher/_publisher.mobile.haml
+++ b/app/views/publisher/_publisher.mobile.haml
@@ -2,12 +2,6 @@
-# licensed under the Affero General Public License version 3 or later. See
-# the COPYRIGHT file.
-- content_for :head do
- = jquery_include_tag
- = javascript_include_tag :main
- = load_javascript_locales
- = include_gon
-
= form_for StatusMessage.new, {:data => {:ajax => false}} do |status|
= status.hidden_field :provider_display_name, :value => 'mobile'
= status.text_area :text, :placeholder => t('shared.publisher.whats_on_your_mind'), :rows => 4, :autofocus => "autofocus"
@@ -39,4 +33,4 @@
#publisher_mobile
= submit_tag t('shared.publisher.share'), :class => 'btn primary', :id => "submit_new_message"
- #publisher_photo_upload
\ No newline at end of file
+ #publisher_photo_upload
diff --git a/app/views/status_messages/bookmarklet.mobile.haml b/app/views/status_messages/bookmarklet.mobile.haml
index 7fea219b9..31279a386 100644
--- a/app/views/status_messages/bookmarklet.mobile.haml
+++ b/app/views/status_messages/bookmarklet.mobile.haml
@@ -21,4 +21,4 @@
});
- content_for(:head) do
- = javascript_include_tag :jquery, :mobile
+ = javascript_include_tag :jquery
diff --git a/config/application.rb b/config/application.rb
index d45ec05d7..b84576c79 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -61,7 +61,7 @@ module Diaspora
mailchimp.js
main.js
jsxc.js
- mobile.js
+ mobile/mobile.js
profile.js
people.js
profile.js