From bc4e3b939b1ef13cd14bb4a20c29927b007b3d0b Mon Sep 17 00:00:00 2001 From: jrburke Date: Wed, 13 Apr 2011 16:13:59 -0700 Subject: [PATCH 01/12] First pass at fitting the settings API into the form factor suggested by Bug 645802, but far from complete, and does not completely match the style in that bug, just enough to demonstrate the general form factor and using a select box for choosing an account to add. Can be tested outside of a special Fx build by going to /dev/tests/1/chrome.html#settings in your browser. --- web/dev/1/scripts/storage.js | 7 - web/dev/1/settings/index.html | 169 +++------------------- web/dev/1/settings/index.js | 247 +++----------------------------- web/dev/1/settings/style.css | 257 ++-------------------------------- web/dev/tests/1/chrome.html | 13 +- web/dev/tests/1/chrome.js | 10 +- 6 files changed, 70 insertions(+), 633 deletions(-) diff --git a/web/dev/1/scripts/storage.js b/web/dev/1/scripts/storage.js index ef1cd19..04aad3a 100644 --- a/web/dev/1/scripts/storage.js +++ b/web/dev/1/scripts/storage.js @@ -30,13 +30,6 @@ define(['dispatch'], function (dispatch) { callbacks = {}, store; - // Temporary workaround to allow separate tab of settings to still have - // access to the chrome storage. Not a good idea to do long term. - if (opener && !opener.closed && opener.require && - (store = opener.require('storage'))) { - return store; - } - store = { get: function (key, callback) { var keyCallbacks; diff --git a/web/dev/1/settings/index.html b/web/dev/1/settings/index.html index 0e25102..2b03460 100644 --- a/web/dev/1/settings/index.html +++ b/web/dev/1/settings/index.html @@ -1,7 +1,7 @@ - Mozilla F1: Configuration + Share: Configuration @@ -9,168 +9,41 @@ - - - - - - - - - - - - - - - - - - - - - - -Feedback - -
- - +
+ + +
- - - -
- -
-

My accounts

- - -

Add accounts

- -
- - - - -
- -
-
- +
+
- - -
-
- -
- We care about your privacy, seriously. -
-
-
- -
- - + - + - + diff --git a/web/dev/1/settings/index.js b/web/dev/1/settings/index.js index 2724e85..bd236b4 100644 --- a/web/dev/1/settings/index.js +++ b/web/dev/1/settings/index.js @@ -26,16 +26,20 @@ opener: false, setTimeout: false, setInterval: false, document: false */ "use strict"; +// Allow tests to plug into the page by notify them if this is a test. +if (location.hash === '#test') { + parent.postMessage(JSON.stringify({topic: 'registerForTests'}), + location.protocol + "//" + location.host); +} + define([ "require", "jquery", "blade/fn", "rdapi", "oauth", "blade/jig", - "dispatch", "storage", "accounts", "dotCompare", "blade/url", - "services", "placeholder", "jquery.colorFade", "jquery.textOverflow"], + "dispatch", "storage", "accounts", "blade/url", + "services", "placeholder", "jquery.textOverflow"], function (require, $, fn, rdapi, oauth, jig, - dispatch, storage, accounts, dotCompare, url, + dispatch, storage, accounts, url, services, placeholder) { var store = storage(), - options = url.queryToObject(location.href.split('#')[1] || '') || {}, - existingAccounts = {}, - showNew = options.show === 'new'; + existingAccounts = {}; jig.addFn({ domainType: function (account) { @@ -103,172 +107,31 @@ function (require, $, fn, rdapi, oauth, jig, .append(html) .removeClass('hidden'); } - - //Flash the new items. - if (showNew) { - $(function () { - $("li.newItem").animate({ backgroundColor: '#ffff99' }, 200) - .delay(1000).animate({ backgroundColor: '#fafafa' }, 3000); - }); - } }); } ); $(function () { - //If new items should be shown, refresh the location bar, - //so further reloads of the page do not trigger showNew - if (showNew) { - delete options.show; - location.replace(location.href.split('#')[0] + '#' + url.objectToQuery(options)); - } - - var shortenDom = $('#shortenForm'), - bitlyCheckboxDom = $('#bitlyCheckbox'), - node; - - - //Function placed inside this function to get access to DOM variables. - function getShortenData() { - var data = {}; - - // Clear any error messages from the form. - shortenDom.find('.error').addClass('hidden'); - - $.each(shortenDom[0].elements, function (i, node) { - var trimmed = $(node).val().trim(); - - if (node.getAttribute("placeholder") === trimmed) { - trimmed = ""; - } - - node.value = trimmed; - - if (node.value) { - data[node.name] = node.value; - } - }); - - // Check for error conditions. Must have both API key and login to work. - if (data.login && data.apiKey) { - return data; - } else { - if (data.login && !data.apiKey) { - $('#bitlyApiKeyMissing').removeClass('hidden'); - } else if (data.apiKey && !data.login) { - $('#bitlyLoginMissing').removeClass('hidden'); - } - } - - return null; - } - - function clearShortenData() { - shortenDom.find('[name="login"]').val(''); - shortenDom.find('[name="apiKey"]').val(''); - shortenDom.find('[name="domain"]').val(''); - } - - //Function placed inside this function to get access to DOM variables. - function setShortenData(data) { - $.each(shortenDom[0].elements, function (i, node) { - var value = data[node.getAttribute('name')]; - if (value) { - $(node).val(value); - } - }); - - placeholder(shortenDom[0]); - } - - function showShortenForm() { - bitlyCheckboxDom[0].checked = true; - shortenDom.slideDown('100'); - } - - function hideShortenForm() { - bitlyCheckboxDom[0].checked = false; - shortenDom.slideUp('100', function () { - shortenDom.css({display: 'none'}); - }); - } - - function resetShortenData() { - clearShortenData(); - store.remove('shortenPrefs'); - hideShortenForm(); - } - - // resize wrapper - $(window).bind("load resize", function () { - var h = $(window).height(); - $("#wrapper").css({ "min-height" : (h) }); - }); + $('body') + //Handle button click for services in the settings. + .delegate('#addForm', 'submit', function (evt) { + evt.preventDefault(); - store.get('shortenPrefs', function (shortenPrefs) { - if (shortenPrefs) { - shortenPrefs = JSON.parse(shortenPrefs); - setShortenData(shortenPrefs); - showShortenForm(); - } else { - hideShortenForm(); - } - }); + var node = evt.target, + domain = $('#available').val(), + selectionName; - $('body') - .delegate('#bitlyCheckbox', 'click', function (evt) { - if (bitlyCheckboxDom[0].checked) { - showShortenForm(); - } else { - resetShortenData(); + // If the default option selected which has no domain value is + // used, just return without doing anything. + if (!domain) { + return; } - }) - .delegate('#shortenForm', 'submit', function (evt) { - var data = getShortenData(); - if (data) { - // Confirm that the API key + login name is valid. - $.ajax({ - url: 'http://api.bitly.com/v3/validate', - type: 'GET', - data: { - format: 'json', - login: data.login, - x_login: data.login, - x_apiKey: data.apiKey, - apiKey: data.apiKey - }, - dataType: 'json', - success: function (json) { - if (json.status_code === 200 && json.data.valid) { - store.set('shortenPrefs', JSON.stringify(data)); - } else { - $('#bitlyNotValid').removeClass('hidden'); - store.remove('shortenPrefs'); - } - }, - error: function (xhr, textStatus, errorThrown) { - $('#bitlyNotValid').removeClass('hidden'); - store.remove('shortenPrefs'); - } - }); - } else { - resetShortenData(); - } - evt.preventDefault(); - }) - //Wire up the close button - .delegate('.close', 'click', function (evt) { - window.close(); - }) - //Handle button click for services in the settings. - .delegate('.auth', 'click', function (evt) { - var node = evt.target, - domain = node.getAttribute('data-domain'), - selectionName = services.domains[domain].type; + selectionName = services.domains[domain].type; clearStatus(); + oauth(domain, existingAccounts[domain], function (success) { if (success) { //Make sure to bring the user back to this service if @@ -300,69 +163,5 @@ function (require, $, fn, rdapi, oauth, jig, $(function () { $(".overflow").textOverflow(null, true); }); - - // tabs - // Only show settings if extension can actually handle setting of them. - // Same for advanced. - $('li[data-tab="settings"]').removeClass('hidden'); - $('li[data-tab="advanced"]').removeClass('hidden'); - - $('body') - // Set up tab switching behavior. - .delegate("ul#tabs li", 'click', function (evt) { - var target = $(this), - tabDom = $('#' + target.attr('data-tab')); - - // clear any status that was visible. - clearStatus(); - - // Show tab selected. - target.addClass("selected"); - target.siblings().removeClass("selected"); - - // Show tab contents. - if (tabDom.is(':hidden')) { - tabDom.fadeIn(200); - tabDom.siblings().fadeOut(0); - } - }); - - //Callback handler for JSONP feed response from Google. - window.onFeedLoad = function (x, data) { - var title, link, i, entry; - if (data && data.feed && data.feed.entries) { - for (i = 0; (entry = data.feed.entries[i]); i++) { - if (entry.categories && entry.categories.indexOf('Sharing') !== -1) { - link = entry.link; - title = entry.title; - break; - } - } - } - - if (link) { - $('#newsFooter .headline').removeClass('invisible'); - $('#rssLink').attr('href', link).text(title); - } - }; - - //Fetch the feed. This is low priority, so done at the bottom. - node = document.createElement("script"); - node.charset = "utf-8"; - node.async = true; - node.src = 'https://www.google.com/uds/Gfeeds?v=1.0&callback=onFeedLoad&context=' + - '&output=json&' + - 'q=http%3A%2F%2Fmozillalabs.com%2Fmessaging%2Ffeed%2F'; - $('head')[0].appendChild(node); - - // Make sure this window gets all events, particularly related to storage. - // This can go away if the settings work is done inside the share panel. - // Use a setTimeout because the opener could be reloading, for instance, - // after an account is added. - if (opener && !opener.closed && opener.require) { - setTimeout(function () { - opener.require('dispatch').trackWindow(window); - }, 1000); - } }); }); diff --git a/web/dev/1/settings/style.css b/web/dev/1/settings/style.css index ee3d62e..c297c1e 100644 --- a/web/dev/1/settings/style.css +++ b/web/dev/1/settings/style.css @@ -30,6 +30,7 @@ } body { + margin: 10px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px; @@ -38,7 +39,6 @@ body { } .hidden, -#tabs li.hidden, .hbox > *.hidden { display: none; } @@ -125,174 +125,6 @@ a:hover { .error { color: #FF0000; } -/* From the uservoice feedback button */ -#feedback { - position: fixed; - top: 40%; - left: 0; - width: 25px; - height: 98px; - padding: 0; - margin: -45px 0 0; - text-indent: -1000px; - background-image: url("https://cdn.uservoice.com/images/widgets/en/feedback_tab_white.png"); - background-position: 2px 50%; - background-color: red; - border-color: #FF0000 #FF0000 #FF0000 -moz-use-text-color; - border-style: outset outset outset none; - border-width: 1px 1px 1px medium; - z-index: 500; -} -#feedback:hover { - text-decoration: none; - background-color: #0066CC; - border-color: #0066CC #0066CC #0066CC -moz-use-text-color; -} - -strong { - font-weight: bold; -} - -#wrapper { - width: 720px; - margin: 0 auto; - overflow: hidden; - position: relative; -} - -#shortenForm label.text { - line-height: 24px; -} - -#shortenForm input { - width: 220px; - height: 24px; - border-color: #aaa; - border-style: solid; - border-width: 1px; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15) inset; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 12px; - padding: 2px 5px; -} - -#shortenForm select { - width: 220px; -} - -/* - grid -*/ - -.c1, .c2, .c3 { - display: inline-block; - float: left; - min-height: 1%; - margin: 0 10px; - position: relative; -} - -.c1 { - width: 220px; -} - -.c2 { - width: 460px; -} - -.c3 { - width: 700px; -} - -.row { - float: left; - margin: 10px 0; -} - -.row.about { - margin: 20px 0; -} - -h1 { - font-size: 18px; - font-weight: normal; - color: #00A0FF; -} - -span.micro { - font-size: 12px; - margin: 5px 0 10px 0; - display: block; - color: #666; -} - -a.micro { - margin: 0 10px; -} - -/* - header -*/ - -#header.row { - margin: 36px 0; -} - -#header.row .c3, -#header.row .c2, -#header.row .c1 { - height: 90px; - line-height: 90px; - text-align: right; -} - -#header.row .logo { - background-image: url("i/f1Logo.png"); - background-repeat: no-repeat; - background-position: 0 -9px; -} - -/* - tabs -*/ - -ul#tabs { - display: block; - margin: 10px 10px 0 10px; -} - -ul#tabs li { - display: inline-block; - padding: 7px 20px; - border-width: 1px 1px 0 1px; - border-color: #ccc; - border-style: solid; - float: left; - margin: 0 5px; - background-color: #fff; - cursor: pointer; - -moz-border-radius: 3px 3px 0 0; - -webkit-border-radius: 3px 3px 0 0; - border-radius: 3px 3px 0 0; -} - -ul#tabs li.selected { - background-color: #fafafa; - position: relative; - z-index: 2; -} - -/* - config -*/ - -#config { - border-top: 1px solid #ccc; - margin: -1px 10px 0 10px; - position: relative; - z-index: 1; - background-image: -moz-linear-gradient(top, #fafafa 0%, #fff 20px); -} .icon { width: 16px; @@ -329,90 +161,19 @@ ul#tabs li.selected { background-position: center; } -.icon.rss { - background-position: center -271px; - margin: 0; -} - -#done { - padding: 0 10px; -} - -.panel { - width: 100%; - margin: 20px 0; -} - -#config .about { - color: #444; - text-align: center; -} - -#config .username { +.username { color: #aaa; } -#config .new { - color: #ff5959; - font-style: italic; -} - -#config ul { - margin: 10px 0 20px; - border: 1px solid #ccc; - background-color: #fafafa; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; -} - -#config ul li { - width: 100%; - padding: 10px 20px; - border-bottom: 1px solid #ccc; -} - -#config ul li .accountType { - line-height: 24px; -} - -.accountType .multipleSignOut { - float: right; - margin-right: 10px; - color: #AAAAAA; -} - -#config ul li:last-child { - border-bottom: none; - -moz-border-radius: 0 0 5px 5px; - -webkit-border-radius: 0 0 5px 5px; - border-radius: 0 0 5px 5px; -} - -#settings .key { - margin-right: 10px; - padding: 0 3px 0 5px; - -moz-border-radius: 4px; - -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.75), 0 1px 0 rgba(0, 0, 0, 0.3); - background: -moz-linear-gradient(#f8f8f8, #dddee0) repeat scroll 0 0 #ecedef; - color: #434343; - font-weight: bold; - text-align: center; - text-shadow: 0 1px 1px white; - -moz-user-select: none; -} - -#newsFooter { - padding: 0 10px; - margin: 10px 0; - position: absolute; - bottom: 0; - width: 720px; +#addForm { + margin-bottom: 10px; + padding-bottom: 10px; + border-bottom: 1px solid #AAAAAA; + text-align: right; } -#newsFooter .privacy { - margin: 0 0 0 10px; - color: #444; +#manage li { + margin-bottom: 10px; } /* diff --git a/web/dev/tests/1/chrome.html b/web/dev/tests/1/chrome.html index 7179bc5..5505a89 100644 --- a/web/dev/tests/1/chrome.html +++ b/web/dev/tests/1/chrome.html @@ -4,10 +4,15 @@ Fake Chrome Container -

Fake Chrome Container

- - +

Share Panel

- + + + | + -
+ +
+ +
+ +
+ diff --git a/web/dev/tests/1/chrome.js b/web/dev/tests/1/chrome.js index f7c5624..6c9ab9f 100644 --- a/web/dev/tests/1/chrome.js +++ b/web/dev/tests/1/chrome.js @@ -50,6 +50,16 @@ define(['jquery', 'dispatch'], function ($, dispatch) { chrome = { + sharePanelButton: function () { + location = '#'; + location.reload(true); + }, + + settingsButton: function () { + location = '#settings'; + location.reload(true); + }, + saveStore: function () { localStorage.chromeTestStore = JSON.stringify(dataStore); }, @@ -117,6 +127,11 @@ define(['jquery', 'dispatch'], function ($, dispatch) { }); window.addEventListener('load', function (evt) { + + if (location.hash === '#settings') { + document.getElementById('title').innerHTML = 'Settings'; + } + testWindow = $('#testFrame')[0].contentWindow; // load the share panel From 085c51e2c112a71659a88fe1eb189914a0b93a94 Mon Sep 17 00:00:00 2001 From: jrburke Date: Wed, 20 Apr 2011 17:19:29 -0700 Subject: [PATCH 08/12] Comment describing fakeStorage.js --- web/dev/1/scripts/fakeStorage.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/web/dev/1/scripts/fakeStorage.js b/web/dev/1/scripts/fakeStorage.js index c4cb4d3..36e1b2d 100644 --- a/web/dev/1/scripts/fakeStorage.js +++ b/web/dev/1/scripts/fakeStorage.js @@ -26,6 +26,13 @@ window: false */ "use strict"; +/** + * This module sets up a localStorage storage provider, to allow dev/testing + * the UI without needing the chrome storage. It is only loaded if the + * page that includes it explicitly loads it, currently done by setting + * the URL fragment ID to #test. + */ + define(['dispatch'], function (dispatch) { var sub = dispatch.sub, From 2901af1307b978275bd7da2ded63a62c4218b0a3 Mon Sep 17 00:00:00 2001 From: jrburke Date: Thu, 21 Apr 2011 10:44:44 -0700 Subject: [PATCH 09/12] Remove code that looks at options.prefs since the chrome does not pass it any more, and add back in the status messages even though they need to be restyled, at least gives some feedback in the web-only UI case. With these changes, it now works in the latest fx-share fx build. --- web/dev/1/scripts/shareOptions.js | 6 -- web/dev/1/share/panel/index.html | 155 +++++++++++++++++++++++++++++- web/dev/1/share/panel/index.js | 5 - 3 files changed, 152 insertions(+), 14 deletions(-) diff --git a/web/dev/1/scripts/shareOptions.js b/web/dev/1/scripts/shareOptions.js index f6ec2e0..889865a 100644 --- a/web/dev/1/scripts/shareOptions.js +++ b/web/dev/1/scripts/shareOptions.js @@ -51,16 +51,10 @@ define(['blade/url'], function (url) { } } - options.prefs = options.prefs || {}; - if (!options.title) { options.title = options.url; } - if (!options.prefs.system) { - options.prefs.system = 'prod'; - } - source = options.source; //If the source is larger than ~4KB then it will exceed the GET size diff --git a/web/dev/1/share/panel/index.html b/web/dev/1/share/panel/index.html index 5c286a8..fc30d2e 100644 --- a/web/dev/1/share/panel/index.html +++ b/web/dev/1/share/panel/index.html @@ -43,16 +43,165 @@ + + + + + + + + + + + + + + + + + + + + + - + + - diff --git a/web/dev/1/share/panel/index.js b/web/dev/1/share/panel/index.js index 5483f70..7e9e4b1 100644 --- a/web/dev/1/share/panel/index.js +++ b/web/dev/1/share/panel/index.js @@ -529,11 +529,6 @@ function (require, $, object, fn, rdapi, oauth, onFirstShareState = function () { // Wait until DOM ready to start the DOM work. $(function () { - //Set the type of system as a class on the UI to show/hide things in - //dev vs. production - if (options.prefs.system) { - $(document.documentElement).addClass(options.prefs.system); - } if (options.ui === 'sidebar') { $("#panelHeader").text(''); $("#closeLink").addClass('hidden'); From b7a474a23fa2e30275ffe6e0956405082c93ce40 Mon Sep 17 00:00:00 2001 From: jrburke Date: Thu, 21 Apr 2011 11:24:33 -0700 Subject: [PATCH 10/12] Make the add tab a bit shorter, closer to the mocks. --- web/dev/1/scripts/Select.css | 2 +- web/dev/1/share/panel/style.css | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/web/dev/1/scripts/Select.css b/web/dev/1/scripts/Select.css index a36b5b1..ee24a2b 100644 --- a/web/dev/1/scripts/Select.css +++ b/web/dev/1/scripts/Select.css @@ -30,7 +30,7 @@ .Select.open ul { position: absolute; - top: -20px; + top: -30px; background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #767676), color-stop(100%, #545454)); background-image: -moz-linear-gradient(center top , #767676 0%, #545454 100%); border: 1px solid gray; diff --git a/web/dev/1/share/panel/style.css b/web/dev/1/share/panel/style.css index 997b505..03e40c7 100644 --- a/web/dev/1/share/panel/style.css +++ b/web/dev/1/share/panel/style.css @@ -261,14 +261,14 @@ h3 { .widgets-AddAccount { width: 360px; - height: 96px; + height: 56px; box-sizing: border-box; margin: 14px; text-align: center; } .widgets-AddAccount .add { - margin: 50px 70px 50px 60px; + margin: 50px 70px 0px 60px; } .widgets-AddAccount .add label { @@ -435,6 +435,10 @@ img.avatar { width: 100%; } +.widgets-AccountPanel .shareTypeSection .Select.open ul { + top: -20px; +} + .shareTypeSelectSection.fixedSize { width: 100px; } From 8cc9a1cb46feacdf77ef84ee9fb3ca576f4bee8f Mon Sep 17 00:00:00 2001 From: jrburke Date: Thu, 21 Apr 2011 11:43:10 -0700 Subject: [PATCH 11/12] forgot a background image for the tests/chrome.html test file. --- web/dev/tests/1/pref.png | Bin 0 -> 69907 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 web/dev/tests/1/pref.png diff --git a/web/dev/tests/1/pref.png b/web/dev/tests/1/pref.png new file mode 100644 index 0000000000000000000000000000000000000000..45b8c526aa2016ecbcde65192d9108ff0432de0e GIT binary patch literal 69907 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 Date: Thu, 21 Apr 2011 11:54:47 -0700 Subject: [PATCH 12/12] make sure to always show the add accounts ui instead of the old configure settings status pane. --- web/dev/1/share/panel/index.html | 10 ---------- web/dev/1/share/panel/index.js | 4 ++-- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/web/dev/1/share/panel/index.html b/web/dev/1/share/panel/index.html index fc30d2e..bbba330 100644 --- a/web/dev/1/share/panel/index.html +++ b/web/dev/1/share/panel/index.html @@ -43,16 +43,6 @@ - -