From dfb60ee966e92543ff45ca7600739982f54d928c Mon Sep 17 00:00:00 2001 From: Waseem Daher Date: Fri, 9 Aug 2013 22:42:53 -0400 Subject: [PATCH] File uploads using Dropbox. (imported from commit c552133fc7025eca526fbfef24fd544260d7111b) --- static/js/feature_flags.js | 1 + static/js/ui.js | 22 ++++++++++++++++++++++ templates/zerver/base.html | 1 + templates/zerver/compose.html | 3 +++ tools/jslint/check-all.js | 2 +- 5 files changed, 28 insertions(+), 1 deletion(-) diff --git a/static/js/feature_flags.js b/static/js/feature_flags.js index c8510272bd..7a7e54ce7f 100644 --- a/static/js/feature_flags.js +++ b/static/js/feature_flags.js @@ -7,6 +7,7 @@ exports.mark_read_at_bottom = page_params.staging; exports.summarize_read_while_narrowed = page_params.staging; exports.twenty_four_hour_time = _.contains([], page_params.email); +exports.dropbox_integration = page_params.staging || _.contains(['dropbox.com'], page_params.domain); return exports; }()); diff --git a/static/js/ui.js b/static/js/ui.js index 8d1b42dad1..a22ba7320f 100644 --- a/static/js/ui.js +++ b/static/js/ui.js @@ -1096,6 +1096,10 @@ $(function () { if (window.XMLHttpRequest && (new XMLHttpRequest()).upload) { $("#compose #attach_files").removeClass("notdisplayed"); } + if (feature_flags.dropbox_integration && Dropbox.isBrowserSupported()) { + $("#compose #attach_dropbox_files").removeClass("notdisplayed"); + } + // Event bindings for "Compose" pane @@ -1107,6 +1111,24 @@ $(function () { $("#compose #file_input").trigger("click"); } ); + $("#compose").on("click", "#attach_dropbox_files", function (e) { + e.preventDefault(); + var options = { + // Required. Called when a user selects an item in the Chooser. + success: function (files) { + var textbox = $("#new_message_content"); + var links = _.map(files, function (file) { return '[' + file.name + '](' + file.link +')'; }) + .join(' ') + ' '; + textbox.val(textbox.val() + links); + + }, + // Optional. A value of false (default) limits selection to a single file, while + // true enables multiple file selection. + multiselect: true + }; + Dropbox.choose(options); + }); + $("#subscriptions_table").on("mouseover", ".subscription_header", function (e) { $(this).addClass("active"); }); diff --git a/templates/zerver/base.html b/templates/zerver/base.html index 5c9bcadf27..f9e76960c3 100644 --- a/templates/zerver/base.html +++ b/templates/zerver/base.html @@ -18,6 +18,7 @@ + {# mixpanel #}