diff --git a/Changelog.md b/Changelog.md index f9efb46788bd7e4cff5c8c09db175390e42d2be8..07f354cfcbf83c11d9cdd06e46472713dd974640 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 eda5e0faab842a20e29e4038e4dc65849214bd01..d6d42ecf1c613a612d667d10f336a6dae8fd7a01 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 21dd05582dcfccd48bf028eefaf54b90549a798b..af1a3c336fadfae5a12efdaec5d5adb65adc91b0 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( - "<li class='publisher_photo loading' style='position:relative;'>" + - "<img alt='Ajax-loader2' src='"+ImagePaths.get('ajax-loader2.gif')+"' />" + - "</li>" - ); - }, - - 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("<input type='hidden' value='" + id + "' name='photos[]' />"); - - // replace image placeholders - var img = currentPlaceholder.find('img'); - img.attr('src', url); - img.attr('data-id', id); - currentPlaceholder.removeClass('loading'); - currentPlaceholder.append("<div class='x'>X</div>" + - "<div class='circle'></div>"); - //// - - 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 0000000000000000000000000000000000000000..ac17956c234bac09a61d30244ce2e1eb95fbde9d --- /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( + "<li class='publisher_photo loading' style='position:relative;'>" + + "<img alt='Ajax-loader2' src='"+ImagePaths.get('ajax-loader2.gif')+"' />" + + "</li>" + ); + }, + + 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("<input type='hidden' value='" + id + "' name='photos[]' />"); + + // replace image placeholders + var img = currentPlaceholder.find('img'); + img.attr('src', url); + img.attr('data-id', id); + currentPlaceholder.removeClass('loading'); + currentPlaceholder.append("<div class='x'>X</div>" + + "<div class='circle'></div>"); + //// + + 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 59ea5328a8c581b649416a60772e9a8750156942..160059c8d753a73220df49f1f7e3f04f03ccc3e0 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 448d190f51672a4bb9d877c52aaaa5d965abfa64..517f06a6e1c4bef1adbbab7d1d8b7b58911f82d0 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 dca0f8cf2232656d087e942afa63c6b62feee0b2..6a1d72f78cc7e0b373eb8bb4aa846fee66960708 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 7fea219b9f38c33de4b0e79251e402c3038ff5c6..31279a3860b2430ed2f6583cfecd93d09e816da0 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 d45ec05d70118abed5f4f92bddad93d15e34189f..b84576c79beffaa181996865215b9d20d993910c 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