diff options
-rw-r--r-- | CHANGELOG.md | 2 | ||||
-rw-r--r-- | application/.htaccess | 15 | ||||
-rw-r--r-- | cache/.htaccess | 15 | ||||
-rw-r--r-- | data/.htaccess | 15 | ||||
-rw-r--r-- | docker/.htaccess | 15 | ||||
-rw-r--r-- | docker/development/Dockerfile | 2 | ||||
-rw-r--r-- | docker/development/nginx.conf | 7 | ||||
-rw-r--r-- | docker/production/Dockerfile | 2 | ||||
-rw-r--r-- | docker/production/nginx.conf | 7 | ||||
-rw-r--r-- | docker/production/stable/Dockerfile | 2 | ||||
-rw-r--r-- | docker/production/stable/nginx.conf | 7 | ||||
-rw-r--r-- | index.php | 1 | ||||
-rw-r--r-- | pagecache/.htaccess | 15 | ||||
-rw-r--r-- | tests/.htaccess | 15 | ||||
-rw-r--r-- | tmp/.htaccess | 15 | ||||
-rw-r--r-- | tpl/editlink.html | 32 | ||||
-rw-r--r-- | tpl/includes.html | 3 | ||||
-rw-r--r-- | tpl/tools.html | 6 |
18 files changed, 145 insertions, 31 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index d42d6a75..5eeb521a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md | |||
@@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). | |||
20 | - archives contain a `Shaarli` directory, itself containing sources + dependencies | 20 | - archives contain a `Shaarli` directory, itself containing sources + dependencies |
21 | - the tarball is now gzipped | 21 | - the tarball is now gzipped |
22 | - Minor code cleanup: PHPDoc, spelling, unused variables, etc. | 22 | - Minor code cleanup: PHPDoc, spelling, unused variables, etc. |
23 | - Docker: explicitly set the maximum file upload size to 10 MiB | ||
23 | 24 | ||
24 | ### Fixed | 25 | ### Fixed |
25 | - Fix the server `<self>` value in Atom/RSS feeds | 26 | - Fix the server `<self>` value in Atom/RSS feeds |
@@ -27,6 +28,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). | |||
27 | - Tools: only display parameter description when it exists | 28 | - Tools: only display parameter description when it exists |
28 | - archive.org: do not propose archival of private notes | 29 | - archive.org: do not propose archival of private notes |
29 | - Use absolute URL for hashtags in RSS and ATOM feeds | 30 | - Use absolute URL for hashtags in RSS and ATOM feeds |
31 | - Docker: specify the location of the favicon | ||
30 | 32 | ||
31 | ### Security | 33 | ### Security |
32 | - Allow whitelisting trusted IPs, else continue banning clients upon login failure | 34 | - Allow whitelisting trusted IPs, else continue banning clients upon login failure |
diff --git a/application/.htaccess b/application/.htaccess index b584d98c..f601c1ee 100644 --- a/application/.htaccess +++ b/application/.htaccess | |||
@@ -1,2 +1,13 @@ | |||
1 | Allow from none | 1 | <IfModule version_module> |
2 | Deny from all | 2 | <IfVersion >= 2.4> |
3 | Require all denied | ||
4 | </IfVersion> | ||
5 | <IfVersion < 2.4> | ||
6 | Allow from none | ||
7 | Deny from all | ||
8 | </IfVersion> | ||
9 | </IfModule> | ||
10 | |||
11 | <IfModule !version_module> | ||
12 | Require all denied | ||
13 | </IfModule> | ||
diff --git a/cache/.htaccess b/cache/.htaccess index b584d98c..f601c1ee 100644 --- a/cache/.htaccess +++ b/cache/.htaccess | |||
@@ -1,2 +1,13 @@ | |||
1 | Allow from none | 1 | <IfModule version_module> |
2 | Deny from all | 2 | <IfVersion >= 2.4> |
3 | Require all denied | ||
4 | </IfVersion> | ||
5 | <IfVersion < 2.4> | ||
6 | Allow from none | ||
7 | Deny from all | ||
8 | </IfVersion> | ||
9 | </IfModule> | ||
10 | |||
11 | <IfModule !version_module> | ||
12 | Require all denied | ||
13 | </IfModule> | ||
diff --git a/data/.htaccess b/data/.htaccess index b584d98c..f601c1ee 100644 --- a/data/.htaccess +++ b/data/.htaccess | |||
@@ -1,2 +1,13 @@ | |||
1 | Allow from none | 1 | <IfModule version_module> |
2 | Deny from all | 2 | <IfVersion >= 2.4> |
3 | Require all denied | ||
4 | </IfVersion> | ||
5 | <IfVersion < 2.4> | ||
6 | Allow from none | ||
7 | Deny from all | ||
8 | </IfVersion> | ||
9 | </IfModule> | ||
10 | |||
11 | <IfModule !version_module> | ||
12 | Require all denied | ||
13 | </IfModule> | ||
diff --git a/docker/.htaccess b/docker/.htaccess index b584d98c..f601c1ee 100644 --- a/docker/.htaccess +++ b/docker/.htaccess | |||
@@ -1,2 +1,13 @@ | |||
1 | Allow from none | 1 | <IfModule version_module> |
2 | Deny from all | 2 | <IfVersion >= 2.4> |
3 | Require all denied | ||
4 | </IfVersion> | ||
5 | <IfVersion < 2.4> | ||
6 | Allow from none | ||
7 | Deny from all | ||
8 | </IfVersion> | ||
9 | </IfModule> | ||
10 | |||
11 | <IfModule !version_module> | ||
12 | Require all denied | ||
13 | </IfModule> | ||
diff --git a/docker/development/Dockerfile b/docker/development/Dockerfile index 0c19b085..d9ef8da7 100644 --- a/docker/development/Dockerfile +++ b/docker/development/Dockerfile | |||
@@ -15,6 +15,8 @@ RUN apt-get update \ | |||
15 | nano \ | 15 | nano \ |
16 | && apt-get clean | 16 | && apt-get clean |
17 | 17 | ||
18 | RUN sed -i 's/post_max_size.*/post_max_size = 10M/' /etc/php5/fpm/php.ini | ||
19 | RUN sed -i 's/upload_max_filesize.*/upload_max_filesize = 10M/' /etc/php5/fpm/php.ini | ||
18 | COPY nginx.conf /etc/nginx/nginx.conf | 20 | COPY nginx.conf /etc/nginx/nginx.conf |
19 | COPY supervised.conf /etc/supervisor/conf.d/supervised.conf | 21 | COPY supervised.conf /etc/supervisor/conf.d/supervised.conf |
20 | 22 | ||
diff --git a/docker/development/nginx.conf b/docker/development/nginx.conf index cda09b56..ac0c6c61 100644 --- a/docker/development/nginx.conf +++ b/docker/development/nginx.conf | |||
@@ -11,6 +11,8 @@ http { | |||
11 | default_type application/octet-stream; | 11 | default_type application/octet-stream; |
12 | keepalive_timeout 20; | 12 | keepalive_timeout 20; |
13 | 13 | ||
14 | client_max_body_size 10m; | ||
15 | |||
14 | index index.html index.php; | 16 | index index.html index.php; |
15 | 17 | ||
16 | server { | 18 | server { |
@@ -49,6 +51,11 @@ http { | |||
49 | add_header Cache-Control "public, must-revalidate, proxy-revalidate"; | 51 | add_header Cache-Control "public, must-revalidate, proxy-revalidate"; |
50 | } | 52 | } |
51 | 53 | ||
54 | location = /favicon.ico { | ||
55 | # serve the Shaarli favicon from its custom location | ||
56 | alias /var/www/shaarli/images/favicon.ico; | ||
57 | } | ||
58 | |||
52 | location ~ (index)\.php$ { | 59 | location ~ (index)\.php$ { |
53 | # filter and proxy PHP requests to PHP-FPM | 60 | # filter and proxy PHP requests to PHP-FPM |
54 | fastcgi_pass unix:/var/run/php5-fpm.sock; | 61 | fastcgi_pass unix:/var/run/php5-fpm.sock; |
diff --git a/docker/production/Dockerfile b/docker/production/Dockerfile index d93ed262..d0509115 100644 --- a/docker/production/Dockerfile +++ b/docker/production/Dockerfile | |||
@@ -14,6 +14,8 @@ RUN apt-get update \ | |||
14 | supervisor \ | 14 | supervisor \ |
15 | && apt-get clean | 15 | && apt-get clean |
16 | 16 | ||
17 | RUN sed -i 's/post_max_size.*/post_max_size = 10M/' /etc/php5/fpm/php.ini | ||
18 | RUN sed -i 's/upload_max_filesize.*/upload_max_filesize = 10M/' /etc/php5/fpm/php.ini | ||
17 | COPY nginx.conf /etc/nginx/nginx.conf | 19 | COPY nginx.conf /etc/nginx/nginx.conf |
18 | COPY supervised.conf /etc/supervisor/conf.d/supervised.conf | 20 | COPY supervised.conf /etc/supervisor/conf.d/supervised.conf |
19 | 21 | ||
diff --git a/docker/production/nginx.conf b/docker/production/nginx.conf index e23c4587..5ffa02d0 100644 --- a/docker/production/nginx.conf +++ b/docker/production/nginx.conf | |||
@@ -11,6 +11,8 @@ http { | |||
11 | default_type application/octet-stream; | 11 | default_type application/octet-stream; |
12 | keepalive_timeout 20; | 12 | keepalive_timeout 20; |
13 | 13 | ||
14 | client_max_body_size 10m; | ||
15 | |||
14 | index index.html index.php; | 16 | index index.html index.php; |
15 | 17 | ||
16 | server { | 18 | server { |
@@ -41,6 +43,11 @@ http { | |||
41 | add_header Cache-Control "public, must-revalidate, proxy-revalidate"; | 43 | add_header Cache-Control "public, must-revalidate, proxy-revalidate"; |
42 | } | 44 | } |
43 | 45 | ||
46 | location = /favicon.ico { | ||
47 | # serve the Shaarli favicon from its custom location | ||
48 | alias /var/www/shaarli/images/favicon.ico; | ||
49 | } | ||
50 | |||
44 | location ~ (index)\.php$ { | 51 | location ~ (index)\.php$ { |
45 | # filter and proxy PHP requests to PHP-FPM | 52 | # filter and proxy PHP requests to PHP-FPM |
46 | fastcgi_pass unix:/var/run/php5-fpm.sock; | 53 | fastcgi_pass unix:/var/run/php5-fpm.sock; |
diff --git a/docker/production/stable/Dockerfile b/docker/production/stable/Dockerfile index a509fda6..fc9588b0 100644 --- a/docker/production/stable/Dockerfile +++ b/docker/production/stable/Dockerfile | |||
@@ -14,6 +14,8 @@ RUN apt-get update \ | |||
14 | supervisor \ | 14 | supervisor \ |
15 | && apt-get clean | 15 | && apt-get clean |
16 | 16 | ||
17 | RUN sed -i 's/post_max_size.*/post_max_size = 10M/' /etc/php5/fpm/php.ini | ||
18 | RUN sed -i 's/upload_max_filesize.*/upload_max_filesize = 10M/' /etc/php5/fpm/php.ini | ||
17 | COPY nginx.conf /etc/nginx/nginx.conf | 19 | COPY nginx.conf /etc/nginx/nginx.conf |
18 | COPY supervised.conf /etc/supervisor/conf.d/supervised.conf | 20 | COPY supervised.conf /etc/supervisor/conf.d/supervised.conf |
19 | 21 | ||
diff --git a/docker/production/stable/nginx.conf b/docker/production/stable/nginx.conf index e23c4587..5ffa02d0 100644 --- a/docker/production/stable/nginx.conf +++ b/docker/production/stable/nginx.conf | |||
@@ -11,6 +11,8 @@ http { | |||
11 | default_type application/octet-stream; | 11 | default_type application/octet-stream; |
12 | keepalive_timeout 20; | 12 | keepalive_timeout 20; |
13 | 13 | ||
14 | client_max_body_size 10m; | ||
15 | |||
14 | index index.html index.php; | 16 | index index.html index.php; |
15 | 17 | ||
16 | server { | 18 | server { |
@@ -41,6 +43,11 @@ http { | |||
41 | add_header Cache-Control "public, must-revalidate, proxy-revalidate"; | 43 | add_header Cache-Control "public, must-revalidate, proxy-revalidate"; |
42 | } | 44 | } |
43 | 45 | ||
46 | location = /favicon.ico { | ||
47 | # serve the Shaarli favicon from its custom location | ||
48 | alias /var/www/shaarli/images/favicon.ico; | ||
49 | } | ||
50 | |||
44 | location ~ (index)\.php$ { | 51 | location ~ (index)\.php$ { |
45 | # filter and proxy PHP requests to PHP-FPM | 52 | # filter and proxy PHP requests to PHP-FPM |
46 | fastcgi_pass unix:/var/run/php5-fpm.sock; | 53 | fastcgi_pass unix:/var/run/php5-fpm.sock; |
@@ -1078,6 +1078,7 @@ function renderPage($conf, $pluginManager) | |||
1078 | { | 1078 | { |
1079 | $data = array( | 1079 | $data = array( |
1080 | 'pageabsaddr' => index_url($_SERVER), | 1080 | 'pageabsaddr' => index_url($_SERVER), |
1081 | 'sslenabled' => !empty($_SERVER['HTTPS']) | ||
1081 | ); | 1082 | ); |
1082 | $pluginManager->executeHooks('render_tools', $data); | 1083 | $pluginManager->executeHooks('render_tools', $data); |
1083 | 1084 | ||
diff --git a/pagecache/.htaccess b/pagecache/.htaccess index b584d98c..f601c1ee 100644 --- a/pagecache/.htaccess +++ b/pagecache/.htaccess | |||
@@ -1,2 +1,13 @@ | |||
1 | Allow from none | 1 | <IfModule version_module> |
2 | Deny from all | 2 | <IfVersion >= 2.4> |
3 | Require all denied | ||
4 | </IfVersion> | ||
5 | <IfVersion < 2.4> | ||
6 | Allow from none | ||
7 | Deny from all | ||
8 | </IfVersion> | ||
9 | </IfModule> | ||
10 | |||
11 | <IfModule !version_module> | ||
12 | Require all denied | ||
13 | </IfModule> | ||
diff --git a/tests/.htaccess b/tests/.htaccess index b584d98c..f601c1ee 100644 --- a/tests/.htaccess +++ b/tests/.htaccess | |||
@@ -1,2 +1,13 @@ | |||
1 | Allow from none | 1 | <IfModule version_module> |
2 | Deny from all | 2 | <IfVersion >= 2.4> |
3 | Require all denied | ||
4 | </IfVersion> | ||
5 | <IfVersion < 2.4> | ||
6 | Allow from none | ||
7 | Deny from all | ||
8 | </IfVersion> | ||
9 | </IfModule> | ||
10 | |||
11 | <IfModule !version_module> | ||
12 | Require all denied | ||
13 | </IfModule> | ||
diff --git a/tmp/.htaccess b/tmp/.htaccess index b584d98c..f601c1ee 100644 --- a/tmp/.htaccess +++ b/tmp/.htaccess | |||
@@ -1,2 +1,13 @@ | |||
1 | Allow from none | 1 | <IfModule version_module> |
2 | Deny from all | 2 | <IfVersion >= 2.4> |
3 | Require all denied | ||
4 | </IfVersion> | ||
5 | <IfVersion < 2.4> | ||
6 | Allow from none | ||
7 | Deny from all | ||
8 | </IfVersion> | ||
9 | </IfModule> | ||
10 | |||
11 | <IfModule !version_module> | ||
12 | Require all denied | ||
13 | </IfModule> | ||
diff --git a/tpl/editlink.html b/tpl/editlink.html index 441b5302..9e7621db 100644 --- a/tpl/editlink.html +++ b/tpl/editlink.html | |||
@@ -8,13 +8,15 @@ | |||
8 | {elseif="$link.description==''"}onload="document.linkform.lf_description.focus();" | 8 | {elseif="$link.description==''"}onload="document.linkform.lf_description.focus();" |
9 | {else}onload="document.linkform.lf_tags.focus();"{/if} > | 9 | {else}onload="document.linkform.lf_tags.focus();"{/if} > |
10 | <div id="pageheader"> | 10 | <div id="pageheader"> |
11 | {if="$source !== 'firefoxsocialapi'"} | 11 | {if="$source !== 'firefoxsocialapi'"} |
12 | {include="page.header"} | 12 | {include="page.header"} |
13 | {/if} | 13 | {else} |
14 | <div id="editlinkform"> | 14 | <div id="shaarli_title"><a href="{$titleLink}">{$shaarlititle}</a></div> |
15 | <form method="post" name="linkform"> | 15 | {/if} |
16 | <input type="hidden" name="lf_linkdate" value="{$link.linkdate}"> | 16 | <div id="editlinkform"> |
17 | <label for="lf_url"><i>URL</i></label><br><input type="text" name="lf_url" id="lf_url" value="{$link.url}" class="lf_input"><br> | 17 | <form method="post" name="linkform"> |
18 | <input type="hidden" name="lf_linkdate" value="{$link.linkdate}"> | ||
19 | <label for="lf_url"><i>URL</i></label><br><input type="text" name="lf_url" id="lf_url" value="{$link.url}" class="lf_input"><br> | ||
18 | <label for="lf_title"><i>Title</i></label><br><input type="text" name="lf_title" id="lf_title" value="{$link.title}" class="lf_input"><br> | 20 | <label for="lf_title"><i>Title</i></label><br><input type="text" name="lf_title" id="lf_title" value="{$link.title}" class="lf_input"><br> |
19 | <label for="lf_description"><i>Description</i></label><br><textarea name="lf_description" id="lf_description" rows="4" cols="25">{$link.description}</textarea><br> | 21 | <label for="lf_description"><i>Description</i></label><br><textarea name="lf_description" id="lf_description" rows="4" cols="25">{$link.description}</textarea><br> |
20 | <label for="lf_tags"><i>Tags</i></label><br> | 22 | <label for="lf_tags"><i>Tags</i></label><br> |
@@ -25,20 +27,20 @@ | |||
25 | {$value} | 27 | {$value} |
26 | {/loop} | 28 | {/loop} |
27 | 29 | ||
28 | {if="($link_is_new && $default_private_links) || $link.private == true"} | 30 | {if="($link_is_new && $default_private_links) || $link.private == true"} |
29 | <input type="checkbox" checked="checked" name="lf_private" id="lf_private"> | 31 | <input type="checkbox" checked="checked" name="lf_private" id="lf_private"> |
30 | <label for="lf_private"><i>Private</i></label><br> | 32 | <label for="lf_private"><i>Private</i></label><br> |
31 | {else} | 33 | {else} |
32 | <input type="checkbox" name="lf_private" id="lf_private"> | 34 | <input type="checkbox" name="lf_private" id="lf_private"> |
33 | <label for="lf_private"><i>Private</i></label><br> | 35 | <label for="lf_private"><i>Private</i></label><br> |
34 | {/if} | 36 | {/if} |
35 | <input type="submit" value="Save" name="save_edit" class="bigbutton"> | 37 | <input type="submit" value="Save" name="save_edit" class="bigbutton"> |
36 | <input type="submit" value="Cancel" name="cancel_edit" class="bigbutton"> | 38 | <input type="submit" value="Cancel" name="cancel_edit" class="bigbutton"> |
37 | {if="!$link_is_new"}<input type="submit" value="Delete" name="delete_link" class="bigbutton delete" onClick="return confirmDeleteLink();">{/if} | 39 | {if="!$link_is_new"}<input type="submit" value="Delete" name="delete_link" class="bigbutton delete" onClick="return confirmDeleteLink();">{/if} |
38 | <input type="hidden" name="token" value="{$token}"> | 40 | <input type="hidden" name="token" value="{$token}"> |
39 | {if="$http_referer"}<input type="hidden" name="returnurl" value="{$http_referer}">{/if} | 41 | {if="$http_referer"}<input type="hidden" name="returnurl" value="{$http_referer}">{/if} |
40 | </form> | 42 | </form> |
41 | </div> | 43 | </div> |
42 | </div> | 44 | </div> |
43 | {if="$source !== 'firefoxsocialapi'"} | 45 | {if="$source !== 'firefoxsocialapi'"} |
44 | {include="page.footer"} | 46 | {include="page.footer"} |
diff --git a/tpl/includes.html b/tpl/includes.html index f94ce1be..7b2997ce 100644 --- a/tpl/includes.html +++ b/tpl/includes.html | |||
@@ -2,6 +2,7 @@ | |||
2 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | 2 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
3 | <meta name="format-detection" content="telephone=no" /> | 3 | <meta name="format-detection" content="telephone=no" /> |
4 | <meta name="viewport" content="width=device-width,initial-scale=1.0" /> | 4 | <meta name="viewport" content="width=device-width,initial-scale=1.0" /> |
5 | <meta name="referrer" content="same-origin"> | ||
5 | <link rel="alternate" type="application/rss+xml" href="{$feedurl}?do=rss{$searchcrits}#" title="RSS Feed" /> | 6 | <link rel="alternate" type="application/rss+xml" href="{$feedurl}?do=rss{$searchcrits}#" title="RSS Feed" /> |
6 | <link rel="alternate" type="application/atom+xml" href="{$feedurl}?do=atom{$searchcrits}#" title="ATOM Feed" /> | 7 | <link rel="alternate" type="application/atom+xml" href="{$feedurl}?do=atom{$searchcrits}#" title="ATOM Feed" /> |
7 | <link href="images/favicon.ico#" rel="shortcut icon" type="image/x-icon" /> | 8 | <link href="images/favicon.ico#" rel="shortcut icon" type="image/x-icon" /> |
@@ -11,4 +12,4 @@ | |||
11 | {loop="$plugins_includes.css_files"} | 12 | {loop="$plugins_includes.css_files"} |
12 | <link type="text/css" rel="stylesheet" href="{$value}#"/> | 13 | <link type="text/css" rel="stylesheet" href="{$value}#"/> |
13 | {/loop} | 14 | {/loop} |
14 | <link rel="search" type="application/opensearchdescription+xml" href="?do=opensearch#" title="Shaarli search - {$shaarlititle|htmlspecialchars}"/> \ No newline at end of file | 15 | <link rel="search" type="application/opensearchdescription+xml" href="?do=opensearch#" title="Shaarli search - {$shaarlititle|htmlspecialchars}"/> |
diff --git a/tpl/tools.html b/tpl/tools.html index 8e285f44..e06d239d 100644 --- a/tpl/tools.html +++ b/tpl/tools.html | |||
@@ -50,12 +50,15 @@ | |||
50 | Then click "✚Add Note" button anytime to start composing a private Note (text post) to your Shaarli. | 50 | Then click "✚Add Note" button anytime to start composing a private Note (text post) to your Shaarli. |
51 | </span> | 51 | </span> |
52 | </a><br><br> | 52 | </a><br><br> |
53 | |||
54 | {if="$sslenabled"} | ||
53 | <a class="smallbutton" onclick="activateFirefoxSocial(this)"> | 55 | <a class="smallbutton" onclick="activateFirefoxSocial(this)"> |
54 | <b>✚Add to Firefox social</b> | 56 | <b>✚Add to Firefox social</b> |
55 | </a> | 57 | </a> |
56 | <a href="#"> | 58 | <a href="#"> |
57 | <span>⇐ Click on this button to add Shaarli to the "Share this page" button in Firefox.</span> | 59 | <span>⇐ Click on this button to add Shaarli to the "Share this page" button in Firefox.</span> |
58 | </a><br><br> | 60 | </a><br><br> |
61 | {/if} | ||
59 | 62 | ||
60 | {loop="$tools_plugin"} | 63 | {loop="$tools_plugin"} |
61 | {$value} | 64 | {$value} |
@@ -64,6 +67,7 @@ | |||
64 | <div class="clear"></div> | 67 | <div class="clear"></div> |
65 | 68 | ||
66 | <script> | 69 | <script> |
70 | {if="$sslenabled"} | ||
67 | function activateFirefoxSocial(node) { | 71 | function activateFirefoxSocial(node) { |
68 | var loc = location.href; | 72 | var loc = location.href; |
69 | var baseURL = loc.substring(0, loc.lastIndexOf("/")); | 73 | var baseURL = loc.substring(0, loc.lastIndexOf("/")); |
@@ -87,7 +91,7 @@ | |||
87 | var activate = new CustomEvent("ActivateSocialFeature"); | 91 | var activate = new CustomEvent("ActivateSocialFeature"); |
88 | node.dispatchEvent(activate); | 92 | node.dispatchEvent(activate); |
89 | } | 93 | } |
90 | 94 | {/if} | |
91 | function alertBookmarklet() { | 95 | function alertBookmarklet() { |
92 | alert('Drag this link to your bookmarks toolbar, or right-click it and choose Bookmark This Link...'); | 96 | alert('Drag this link to your bookmarks toolbar, or right-click it and choose Bookmark This Link...'); |
93 | return false; | 97 | return false; |