This repository has been migrated to https://github.com/mozilla/fxa/tree/master/packages/123done
Please file issues and open pull requests against https://github.com/mozilla/fxa
DEPRECATED - Migrated to https://github.com/mozilla/fxa
This repository has been migrated to https://github.com/mozilla/fxa/tree/master/packages/123done
Please file issues and open pull requests against https://github.com/mozilla/fxa
When you log in with persona, your tasks should be sync'd to the server and across devices.
Part of this demo shows how you don't need a heavy handed sign up flow, how you can build a site that's instantly usable and upgrades when a users chooses to sign in.
This makes things a little complicated, as your todolist can be:
Currently there's placeholder text to the left of the signin box, we should represent this state with icons instead, maybe with tooltips upon hovering over the symbol.
As a test I ran the following files through: http://www.smushit.com/ysmush.it/
image - result size - savings - % savings
http://123done.org/img/persona-login.png 3.62 KB 944 bytes 20.29%
http://123done.org/img/sync_saved.png 395 bytes 2.71 KB 87.52%
http://123done.org/img/sync_alert.png 382 bytes 2.67 KB 87.75%
http://123done.org/img/sync_progress.png 416 bytes 2.68 KB 86.85%
http://123done.org/img/background.png 47.51 KB 4.25 KB 8.20%
As you can see that does help, although if issue #45 is applied the effect is probably gone.
because this newfangled API requires we do a little work before displaying the user's logged in state, we should probably give a smoother visual progression during load.
specifically, notice that as you load 123done.org there's a delay before signed-in state is displayed in the upper right.
What do you think skinny? loading spinners?
QA will test that we display a proper "unsupported" message via this site. We should make the site render reasonably and spawn the dialog properly.
I just linked to the source of 123done showing how to verify an assertion in node, and then thought: "hey, why aren't we using browserid-verify?"
It sends Cache-control headers with: public, max-age: 0 for static files, so there is no caching.
Allow the user to upload a new photo and change their name.
NOTE: for ephemeral deployments, the server should check that the server is up before rendering.
I hate this bug because we will have to make the server more complex to support this. alternately, we could deploy multiple versions of 123done rather than having a single retargetable version. hmmm.
Suggestion is to combine the following files in one file to reduce the number of requests:
http://123done.org/modernizr.min.js
http://123done.org/js/jquery.min.js
http://123done.org/js/123done.js
This launches IE8 into quirks mode. Blank line must go away.
@skinny97214 has already committed new css for the site, this issue is open as a tracker that can get closed down once she's happy with the initial look of the site - then we can open more specific issues for UX interactions or little changes in the future.
dev.123done.org tries to load include.js from https://dev.diresworb.org/
This should be https://login.dev.anosrep.org instead.
To make it clear to people that see these demos that the dialog can be branded a bit, we should have an RP logo on this site.
Maybe this public domain one?
in dialog. This is a core feature we want tested, so for the purposes of 123done, let's include links
Found in http://123done.dev.lcip.org/ver.txt (commit 7e65386)
7e65386 use deployed server config
There is an for "new item" and an [Add] button which are briefly in the DOM and then look like they get set to display: none;
and disappearing. Kind of a scary flicker when the page loads.
No flicker.
I don't actually have steps to reproduce but I loaded train0730.123done.org in win7/ie9 and got a js exception:
SCRIPT5007: Unable to get value of the property 'request': object is null or undefined
123done.js, line 14 character 3
https://github.com/mozilla/123done/blob/master/static/js/123done.js#L14
Seems include.js didn't load and so navigator.id is undefined and ... barf.
I didn't know "Get started" was Sign up.
As above; right now, neither the "Add" nor "Sign in..." buttons appear to be links.
I found that the TOS and PP links for 123done.org scroll horizontally on a B2G device. I tried a few of the Persona sites that I know and couldn't repro anywhere else, but just wanted to file this in case it is a bigger issue that affects more than this one site.
This doesn't look like an issue on desktop since the links open in new browser tabs.
It appears that new code was pushed to 123done.org that picked up all changes to https://github.com/mozilla/123done since last August.
The master branch of 123done breaks on IE8, but worked before Friday. I git-bisected and this commit 6ceb3dd where script loading is deferred is the problem (and consistent with the error that IE8 was showing, where it was confused about what '$' was). Was something different about the update on Friday.
I'll put in a pull request shortly to revert the above commit. You can see the code running with master minus that commit at http://j123done.personatest.org/.
IE8/IE9 have a bug where cookies with the same name on a TLD and subdomain of that TLD collide. We should alter cookies based on hostname to handle this.
Found in http://123done.dev.lcip.org/ver.txt (commit 7e65386)
7e65386 use deployed server config
My eyes are sad.
Looks like we have a few 404s/errors:
ERROR | PAGE |
---|---|
GET /css/bootstrap.css 404 (Not Found) | about.html:11 |
GET /modernizr.min.js 404 (Not Found) | about.html:14 |
GET /css/bootstrap-responsive.css 404 (Not Found) | about.html:12 |
GET /js/jquery.min.js 404 (Not Found) | about.html:53 |
Uncaught ReferenceError: $ is not defined | state.js:18 |
Uncaught ReferenceError: $ is not defined | 123done.js:8 |
Less sadness in my ocular area.
Per http://package-json-validator.com/
I think at a minimum we should add author
(Mozilla), and homepage
, bugs
, licenses
, and repository
.
{
"valid": false,
"errors": [
"Missing required field: author"
],
"warnings": [
"Missing recommended field: keywords",
"Missing recommended field: homepage",
"Missing recommended field: bugs",
"Missing recommended field: licenses",
"Missing recommended field: repository"
],
"recommendations": [
"Missing optional field: contributors",
"Missing optional field: files",
"Missing optional field: main",
"Missing optional field: bin",
"Missing optional field: man",
"Missing optional field: directories",
"Missing optional field: config",
"Missing optional field: bundledDependencies",
"Missing optional field: engineStrict",
"Missing optional field: os",
"Missing optional field: cpu",
"Missing optional field: preferGlobal",
"Missing optional field: publishConfig"
]
}
this is a supported browser, QA will be testing IE8.
to reproduce, sign in, delete your cookies, and visit the site. you'll notice the sign in button flashes.
in onready if onlogin was called, we need to not display the button, but wait for assertion verification to complete.
feedback that the account was sucessfully created
the site should scale gracefully to look and work great on tablet and mobile
Found in http://123done.dev.lcip.org/ver.txt (commit 7e65386)
7e65386 use deployed server config
Secure Connection Failed
An error occurred during a connection to oauth-ui.dev.lcip.org.
Peer's Certificate has been revoked.
(Error code: sec_error_revoked_certificate)
- The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
- Please contact the website owners to inform them of this problem. Alternatively, use the command found in the help menu to report this broken site.
Figure 1: FF Beta/29
Cannot connect to the real oauth-ui.dev.lcip.org
Something is currently interfering with your secure connection to oauth-ui.dev.lcip.org.
Try to reload this page in a few minutes or after switching to a new network. If you have recently connected to a new Wi-Fi network, finish logging in before reloading.
If you were to visit oauth-ui.dev.lcip.org right now, you might share private information with an attacker. To protect your privacy, Chrome will not load the page until it can establish a secure connection to the real oauth-ui.dev.lcip.org.
Figure 2: Google Chrome 34
It should, like, work.
Currently theory is that this is due to a revoked SSL cert.
If the point is that you can use many different email accounts to login to the same account, then I would have expected the same list of issues in the 123done. Not so...
The list should be based on the userid and not the email used to login - right?
So this behaviour must be wrong...
originally opened by @pdehaan in mozilla/persona#3772, moved here instead.
Steps to reproduce:
Actual results:
The "Sign in with Persona" button is disabled and cannot be clicked. In order to actually sign in, you have to hunt around for the previously opened (but now obscured) dialog window and close it, or complete the sign-in process.
Expected results:
Instead of disabling the Sign in button, it may be nicer if we change the behavior so that clicking the Sign in button a second time just brings the previous dialog back into focus (or just relaunch the Sign In button with the same window/target name so the previous window gets recreated and the user has to start over).
Suggestion combine the following files if possible in a sprite:
http://123done.org/img/persona-login.png
http://123done.org/img/sync_saved.png
http://123done.org/img/sync_alert.png
http://123done.org/img/sync_progress.png
To reduce the number of requests.
The color error should be an easy fix (color is defined as "#;" with no value), but I can't find anywhere in the codebase where we're setting -moz-opacity explicitly. Not sure if that one is a separate bug, or just there for backwards compat.
[12:07:28.434] Error in parsing value for 'color'. Declaration dropped. @ http://www.123done.org/css/styles.css:73
[12:07:28.457] Unknown property '-moz-opacity'. Declaration dropped. @ http://www.123done.org/
Looks like node version needs a boost on the awsbox. On git push
:
remote: npm http 200 https://registry.npmjs.org/client-sessions/-/client-sessions-0.3.1.tgz
remote:
remote: npm ERR! Unsupported
remote: npm ERR! Not compatible with your version of node/npm: [email protected]
remote: npm ERR! Required: {"node":">= 0.8.0"}
remote: npm ERR! Actual: {"npm":"1.1.21","node":"0.6.17"}
better signed in/logout affordance
The 'Fork me on Github' appears on top of the 'Sign in with Persona' link when visiting 123done.org from the B2G desktop client. This is preventing an automated UI test from attempting to sign in. Could we make it so this is not present on narrow displays? On a B2G device the content is not so large and therefore is not an issue, so it's possible this could/should be fixed elsewhere. Please advise.
Real websites have real sessions. This demo should too.
Found in http://123done.dev.lcip.org/ver.txt (commit 416dc64)
416dc64 show logged in email
http://123done.dev.lcip.org/img/landing.jpg (2183px-by-x1657px) is massive and takes a long time to load. Oh, and is like 500kb.
Oddly, I'm seeing a HTTP status code of 206, which is "partial-content" (see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.7)
Optimize images much?
Linkify the word "Persona" in the footer text.
Just reporting this "for the record". I was checking an issue for 'requires cookies' screen in dialog and disabled cookies and loaded 123done.org. The sign in button stays as a spinner forever.
This is obviously not a huge deal, since if the sign in were shown, clicking it would just say "you must enable cookies".
BOOM!
$ grunt lint
Running "eslint:target" (eslint) task
oauth.js
2:4 error 'crypto' is read only no-undef
4:4 error Unnecessary semicolon no-extra-semi
retarget.js
10:1 error 'crypto' is read only no-undef
server.js
13:15 error Expected error to be handled handle-callback-err
64:45 error Trailing comma no-comma-dangle
99:23 error Use path.join() or path.resolve() instead of + to create paths no-path-concat
static/js/123done.js
33:4 error 'loggedInEmail' is not defined no-undef
65:20 error 'loggedInEmail' is not defined no-undef
78:10 error 'loggedInEmail' is not defined no-undef
80:19 error 'loggedInEmail' is not defined no-undef
81:25 error 'loggedInEmail' is not defined no-undef
82:10 error 'State' is not defined no-undef
84:10 error 'alert' is not defined no-undef
85:10 error 'loggedInEmail' is not defined no-undef
87:19 error 'loggedInEmail' is not defined no-undef
88:25 error 'loggedInEmail' is not defined no-undef
93:8 error 'loggedInEmail' is not defined no-undef
94:17 error 'loggedInEmail' is not defined no-undef
95:23 error 'loggedInEmail' is not defined no-undef
99:8 error 'State' is not defined no-undef
114:19 error 'loggedInEmail' is not defined no-undef
115:25 error 'loggedInEmail' is not defined no-undef
119:8 error 'State' is not defined no-undef
84:10 error Unexpected alert no-alert
20:30 warning xhr is defined but never used no-unused-vars
124:31 warning ev is defined but never used no-unused-vars
static/js/state.js
46:4 error 'State' is not defined no-undef
64:6 error 'State' is not defined no-undef
102:8 error 'loggedInEmail' is not defined no-undef
142:8 error 'loggedInEmail' is not defined no-undef
158:9 error 'loggedInEmail' is not defined no-undef
187:6 error 'State' is not defined no-undef
17:0 error Move the invocation into the parens that contain the function wrap-iife
65:5 error Unnecessary semicolon no-extra-semi
79:3 error Unnecessary semicolon no-extra-semi
130:3 error Unnecessary semicolon no-extra-semi
153:3 error Unnecessary semicolon no-extra-semi
107:40 warning e is defined but never used no-unused-vars
170:40 warning e is defined but never used no-unused-vars
โ 39 problems
Warning: Task "eslint:target" failed. Use --force to continue.
Aborted due to warnings.
My .eslintrc file looks like:
{
"env": {
"amd": true,
"browser": true,
"node": true
},
"globals": {
"$": false,
"jQuery": false
},
"rules": {
"no-alert": 2,
"no-array-constructor": 2,
"no-bitwise": 1,
"no-caller": 2,
"no-catch-shadow": 2,
"no-comma-dangle": 2,
"no-console": 0,
"no-control-regex": 2,
"no-debugger": 2,
"no-delete-var": 2,
"no-div-regex": 2,
"no-dupe-keys": 2,
"no-else-return": 0,
"no-empty": 2,
"no-empty-class": 2,
"no-empty-label": 2,
"no-eq-null": 2,
"no-eval": 2,
"no-ex-assign": 2,
"no-fallthrough": 2,
"no-floating-decimal": 2,
"no-func-assign": 2,
"no-global-strict": 0,
"no-implied-eval": 2,
"no-iterator": 2,
"no-label-var": 2,
"no-loop-func": 2,
"no-mixed-requires": [0, false],
"no-multi-str": 2,
"no-native-reassign": 2,
"no-new": 2,
"no-new-func": 2,
"no-new-object": 2,
"no-new-wrappers": 2,
"no-obj-calls": 2,
"no-octal": 2,
"no-octal-escape": 2,
"no-plusplus": 0,
"no-proto": 2,
"no-redeclare": 2,
"no-regex-spaces": 2,
"no-return-assign": 2,
"no-script-url": 2,
"no-self-compare": 2,
"no-shadow": 2,
"no-sync": 0,
"no-ternary": 0,
"no-undef": 2,
"no-undef-init": 2,
"no-underscore-dangle": 0,
"no-unreachable": 2,
"no-unused-expressions": 1,
"no-unused-vars": 1,
"no-use-before-define": 0,
"no-with": 2,
"no-wrap-func": 2,
"no-yoda": 0,
"block-scoped-var": 0,
"brace-style": 0,
"camelcase": 0,
"complexity": [0, 11],
"consistent-return": 0,
"consistent-this": [0, "that"],
"curly": 0,
"dot-notation": 0,
"eqeqeq": 2,
"guard-for-in": 0,
"max-depth": [0, 4],
"max-len": [0, 80, 4],
"max-params": [0, 3],
"max-statements": [0, 10],
"new-cap": 2,
"new-parens": 2,
"one-var": 0,
"quote-props": 0,
"quotes": [0, "single"],
"radix": 0,
"semi": 0,
"strict": 0,
"unnecessary-strict": 0,
"use-isnan": 2,
"valid-jsdoc": 0,
"wrap-iife": 2,
"wrap-regex": 0
}
}
And my grunt eslint task is this miracle of life:
module.exports = function (grunt) {
"use strict";
grunt.loadNpmTasks("grunt-eslint");
grunt.config("eslint", {
options: {
config: '.eslintrc'
},
target: [
'*.js',
'static/js/*.js',
'tasks/*.js'
]
});
};
Fewer errors.
THis one seems to be a red herring:
'crypto' is read only no-undef
AFAICT, it is due to my .eslintrc file defining both "browser" and "node" to true
. Not sure if the browser has some strange built-in crypto
variable i'm not aware of that would trigger that warning.
If anybody is interested, I can try and un-jank my 123done environment and submit a PR for Grunt tasks on the 123done repo (against the oauth branch specifically).
Maybe next to the logout button.
After logging out the user's email address is still in the html (although the element is not visible).
It is in #loggedin > span.
Should update the code on this example site to not use loggedInEmail.
Trying to run this, I had to change the dependency in package.json for client-sessions to be 0.0.8 instead of 0.0.6. before i could get it to work on os x mountain lion.
I don't really understand why, but figured I'd dump this in here.
Hi @lloyd. Filing so stephend's team and others can track.
Anyways, while using the elastic IP (54.225.199.66) works, the dns resolution for (*?)123done at iwantmyname.net still returns the old IP (23.21.171.226). I'm assuming that needs updating to point at the elastic IP (either by A or CNAME).
Workaround for very short term, add to /etc/hosts:
54.225.199.66 123done.org beta.123done.org dev.123done.org
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.