From a3041e786fe9e09110218e83e996fe688f8376ea Mon Sep 17 00:00:00 2001
From: Paul Menzel <paulepanter@users.sourceforge.net>
Date: Sun, 19 Feb 2012 16:05:33 +0100
Subject: [PATCH] openid-jquery.js: Update URL of Wordpress favicon
The URL for the favicon for Wordpress in the OpenID login page [1] is not valid anymore and gives the following access denied error.
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>C2BF55AE9F76A487</RequestId><HostId>FFmvol84V82UR34uxP1N7pDNGSLWS0QDtLBsP5JKj0GcU//C3jm3TftcIcGzFBbh</HostId></Error>
Looking at the Wordpress site I found a different URL for the favicon [2].
The other URLs only use non-secured HTTP access and therefore I only took the http version, although I do not know about the downsides.
[1] https://ddgw.s3.amazonaws.com/wordpress.org.ico
[2] http://s2.wp.com/i/favicon.ico
* Add unminified jquery js and css files to source.
* Update to jquery 1.6.2, and jquery-ui 1.8.14.
The full files are included in the source but not the binary.
I'm not minifying the files as part of build because I don't want ikiwiki
to build depend on a javascript minifier. (Let alone need one at runtime).
Nor do I want to deal with any breakage caused by the minifier. These
files were taken from the debian packages.
The jquery-tmpl full file was taken from revision
66bb852217c49ae8c9a8f2522150354ae80463de of its git repository, which
matches the minified file I already had. I did not want to deal with possible
breakage in newer versions; this thing claims to need an ancient version of
jquery (1.4.2), and is perhaps only working by luck with the newer versions
as it is.
removed most of the css, going for standard plain ikiwiki look
Removed support for image previews, file size limits, delete buttons,
maximum number of files, file size display. Ikiwiki handles all that.
Turned on autoupload.
I think it is clearer to not have such a button appear pre-selected
when entering the signin page, because that may suggest to the user
they don't need to click on it, and yet they do.
- fix url to flickr profile
- remove blogger; google property and uses their openid system;
wants to sign user up for a blogger blog
- remove technorati, which dropped openid provider support
- AOL seems to call it a username, not a screenname
Upstream ships a collection of icons, but the licences of them are very
unclear, since most seem to be taken from the various openid provider
websites. That can't be included in ikiwiki. So, instead hotlink to
favicons of sites, and for large display, include the site name.
Removed vidoop.com, which is gone.
If an url is passed to init as the second parameter, add a "Local Login"
provider, which just links to do=signin.
* openid: Incorporated a fancy openid-selector signin form.
(http://code.google.com/p/openid-selector/)
* openid: Use "openid_identifier" as the form field, as required
by OpenID Authentication v2.0 spec.
I noticed the onload hook running twice sometimes when using chromium.
Change from using arguments.callee.done to a onload_done variable fixed it.
I guess that the callee differed in chromium.
Probably the cause of the problem is that chrome supports both
window.onload and document.addEventListener.
If the server has a clock running a bit ahead of the web browsing client,
relativedate could cause somewhat confusing displays like "3 seconds from now"
for just posted things.
As a hack, avoid displaying times in the future if they're less than a
small slip forward. I chose 30 minutes because both client and server could
be wrong in different directions, while it's still close enough that "just
now" is not horribly wrong.
This adds support for gecko and newer versions of opera
to call onload once the DOM is ready, rather than waiting for
all images in the page to load. Makes relativedate behave
somewhat better.
Dealing with this means jumping into the browser
incompatability waters that I prefer to avoid.
Full solutions for most of the major browsers are listed here:
http://dean.edwards.name/weblog/2006/06/again/
However, no *license* is listed there, so I can't use that code. Also, the more
involved code appears to have various issues (such as the inline IE code not
working via https). So I only added the simple call to a hook needed
for gecko/opera.
It seems that the only standards-compliant way to do this is using the
`defer` attribute to a `script` tag, using an external script that will be
loaded once the DOM is ready, and can call onload. However, that has
browser compatability issues of its own, since not all browsers honor
`defer`.
Perhaps I should really just be using one of the javascript frameworks, that
include code to solve this for the major browsers. But something about them
still puts me off, and this issue is minor enough that I'm willing to live
with incomplete support for now.
* Add an underlay for javascript, and add ikiwiki.js containing some utility
code.
* toggle: Stop embedding the full toggle code on each page using it, and
move it to toggle.js in the javascript underlay.