r359 - in trunk/bow-extension-chromium/src/main/webapp: . img
Author: bpoussin Date: 2013-09-24 19:27:30 +0200 (Tue, 24 Sep 2013) New Revision: 359 Url: http://chorem.org/projects/bow/repository/revisions/359 Log: update extension to work with new chrome extension api (v2) Added: trunk/bow-extension-chromium/src/main/webapp/background.js trunk/bow-extension-chromium/src/main/webapp/img/livre-128.png trunk/bow-extension-chromium/src/main/webapp/img/livre-16.png trunk/bow-extension-chromium/src/main/webapp/img/livre-48.png trunk/bow-extension-chromium/src/main/webapp/options.js trunk/bow-extension-chromium/src/main/webapp/popup.js Removed: trunk/bow-extension-chromium/src/main/webapp/img/moyen-livre.jpg trunk/bow-extension-chromium/src/main/webapp/img/ptit-livre.jpg Modified: trunk/bow-extension-chromium/src/main/webapp/manifest.json trunk/bow-extension-chromium/src/main/webapp/options.html trunk/bow-extension-chromium/src/main/webapp/popup.html Added: trunk/bow-extension-chromium/src/main/webapp/background.js =================================================================== --- trunk/bow-extension-chromium/src/main/webapp/background.js (rev 0) +++ trunk/bow-extension-chromium/src/main/webapp/background.js 2013-09-24 17:27:30 UTC (rev 359) @@ -0,0 +1,26 @@ +var tabInfos = new Array(); +var currentTabId; + +function getTabInfos() { + return tabInfos[currentTabId]; +}; + +// Called when the url of a tab changes. +function showAction(tabId, changeInfo, tab) { + // ... show the page action. + chrome.pageAction.show(tabId); + tabInfos[tabId] = { + "title" : tab.title, + "url" : tab.url + }; +}; + +// Listen for any changes to the URL of any tab. +chrome.tabs.onUpdated.addListener(showAction); + +function updateCurrentTabId(tabId, selectInfo) { + currentTabId = tabId; +}; + +// Listen for any tab selection changes. +chrome.tabs.onSelectionChanged.addListener(updateCurrentTabId); Added: trunk/bow-extension-chromium/src/main/webapp/img/livre-128.png =================================================================== (Binary files differ) Property changes on: trunk/bow-extension-chromium/src/main/webapp/img/livre-128.png ___________________________________________________________________ Added: svn:mime-type + image/png Added: trunk/bow-extension-chromium/src/main/webapp/img/livre-16.png =================================================================== (Binary files differ) Property changes on: trunk/bow-extension-chromium/src/main/webapp/img/livre-16.png ___________________________________________________________________ Added: svn:mime-type + image/png Added: trunk/bow-extension-chromium/src/main/webapp/img/livre-48.png =================================================================== (Binary files differ) Property changes on: trunk/bow-extension-chromium/src/main/webapp/img/livre-48.png ___________________________________________________________________ Added: svn:mime-type + image/png Deleted: trunk/bow-extension-chromium/src/main/webapp/img/moyen-livre.jpg =================================================================== (Binary files differ) Deleted: trunk/bow-extension-chromium/src/main/webapp/img/ptit-livre.jpg =================================================================== (Binary files differ) Modified: trunk/bow-extension-chromium/src/main/webapp/manifest.json =================================================================== --- trunk/bow-extension-chromium/src/main/webapp/manifest.json 2013-09-19 09:28:02 UTC (rev 358) +++ trunk/bow-extension-chromium/src/main/webapp/manifest.json 2013-09-24 17:27:30 UTC (rev 359) @@ -22,24 +22,29 @@ * #L% */ { - "name": "__MSG_extensionName__", - "version": "1.0", - "default_locale": "en", + "name": "__MSG_extensionName__", + "description": "__MSG_extensionDescription__", + "manifest_version": 2, + "version": "1.2", + "default_locale": "en", - "description": "__MSG_extensionDescription__", - "icons": { "16": "img/ptit-livre.jpg", - "48": "img/moyen-livre.jpg", - "128": "img/moyen-livre.jpg" }, + "icons": { + "16": "img/livre-16.png", + "48": "img/livre-48.png", + "128": "img/livre-128.png" + }, - "page_action": { - "default_title": "__MSG_actionTitle__", - "default_icon": "img/favicon.png", - "default_popup": "popup.html" - }, + "page_action": { + "default_title": "__MSG_actionTitle__", + "default_icon": "img/favicon.png", + "default_popup": "popup.html" + }, - "background_page": "background.html", - "options_page": "options.html", - "permissions": [ - "tabs", "http://*/*", "https://*/*" - ] + "background": { + "scripts": ["background.js"] + }, + "options_page": "options.html", + "permissions": [ + "tabs", "http://*/*", "https://*/*" + ] } Modified: trunk/bow-extension-chromium/src/main/webapp/options.html =================================================================== --- trunk/bow-extension-chromium/src/main/webapp/options.html 2013-09-19 09:28:02 UTC (rev 358) +++ trunk/bow-extension-chromium/src/main/webapp/options.html 2013-09-24 17:27:30 UTC (rev 359) @@ -33,122 +33,56 @@ <link rel="stylesheet" type="text/css" href="css/options.css" /> <script type="text/javascript" src="properties.js"></script> - <script type="text/javascript"> - <!-- - // Saves options to localStorage. - function save_options() { - var permanentTokenIdInput = document.getElementById("permanentTokenIdInput"); - localStorage["permanentTokenId"] = permanentTokenIdInput.value; - - var sessionTokenIdInput = document.getElementById("sessionTokenIdInput"); - localStorage["sessionTokenId"] = sessionTokenIdInput.value; - - var bowUrlInput = document.getElementById("bowUrlInput"); - localStorage["bowUrl"] = bowUrlInput.value; - - var formMessage = document.getElementById("formMessage"); - formMessage.innerHTML = chrome.i18n.getMessage("optionSavedMessage"); - } - - // Restores values from localStorage. - function restore_options() { - var permanentTokenId = localStorage["permanentTokenId"]; - var sessionTokenId = localStorage["sessionTokenId"]; - - var permanentTokenIdInputLabel = document.getElementById("permanentTokenIdInputLabel"); - permanentTokenIdInputLabel.innerHTML = chrome.i18n.getMessage("permanentTokenIdInputLabel"); - - if (permanentTokenId) { - var permanentTokenIdInput = document.getElementById("permanentTokenIdInput"); - permanentTokenIdInput.value = permanentTokenId; - } - - var sessionTokenIdInputLabel = document.getElementById("sessionTokenIdInputLabel"); - sessionTokenIdInputLabel.innerHTML = chrome.i18n.getMessage("sessionTokenIdInputLabel"); - - if (sessionTokenId) { - var sessionTokenIdInput = document.getElementById("sessionTokenIdInput"); - sessionTokenIdInput.value = sessionTokenId; - } - - var bowUrlInputLabel = document.getElementById("bowUrlInputLabel"); - bowUrlInputLabel.innerHTML = chrome.i18n.getMessage("bowUrlInputLabel"); - - var bowUrlInput = document.getElementById("bowUrlInput"); - bowUrlInput.value = getBowURl(); - - var title = document.getElementById("title"); - title.innerHTML = chrome.i18n.getMessage("optionTitle"); - - var saveOptionButton = document.getElementById("saveOptionButton"); - saveOptionButton.value = chrome.i18n.getMessage("saveOptionButton"); - - var licenseLink = document.getElementById("licenseLink"); - licenseLink.innerHTML = chrome.i18n.getMessage("licenseLink"); - - var bugReport = document.getElementById("bugReport"); - bugReport.innerHTML = chrome.i18n.getMessage("bugReport"); - - var userSupport = document.getElementById("userSupport"); - userSupport.innerHTML = chrome.i18n.getMessage("userSupport"); - - var bow_website_link = document.links["bow_website"]; - bow_website_link.href = DEFAULT_BOW_URL; - - var bow_logo_link = document.links["bow_logo"]; - bow_logo_link.href = DEFAULT_BOW_URL; - } - //--> - </script> + <script type="text/javascript" src="options.js"></script> </head> -<body onload="restore_options()"> +<body> <div id="wrap"> - <div id="page"> + <div id="page"> <div id="header"> <a class="logo" id="bow_logo" href="#">bow</a> </div> <div id="main"> <div id="content"> - <div id="formFrame"> - <h1 id="title"></h1> + <div id="formFrame"> + <h1 id="title"></h1> <div> <div class="label"> - <label for="sessionTokenIdInput" id="sessionTokenIdInputLabel"></label> - </div> + <label for="sessionTokenIdInput" id="sessionTokenIdInputLabel"></label> + </div> <div class="inputs"> - <input type="text" name="sessionTokenIdInput" id="sessionTokenIdInput" /> - </div> + <input type="text" name="sessionTokenIdInput" id="sessionTokenIdInput" /> + </div> <div class="label"> - <label for="permanentTokenIdInput" id="permanentTokenIdInputLabel"></label> - </div> + <label for="permanentTokenIdInput" id="permanentTokenIdInputLabel"></label> + </div> <div class="inputs"> - <input type="text" name="permanentTokenIdInput" id="permanentTokenIdInput" /> - </div> + <input type="text" name="permanentTokenIdInput" id="permanentTokenIdInput" /> + </div> <div class="label"> - <label for="bowUrlInput" id="bowUrlInputLabel"></label> - </div> + <label for="bowUrlInput" id="bowUrlInputLabel"></label> + </div> <div class="inputs"> - <input type="text" name="bowUrlInput" id="bowUrlInput" /> - </div> + <input type="text" name="bowUrlInput" id="bowUrlInput" /> + </div> <div class="buttons"> - <input type="button" id="saveOptionButton" onclick="save_options()" /> + <input type="button" id="saveOptionButton"/> </div> <div class="message" id="formMessage"></div> </div> </div> </div> - </div> - </div> - <div id="footer"> - <p> - <a shape="rect" id="bow_website" href="http://www.chorem.org/projects/show/bow" target="_blank">bow</a> - <a shape="rect" href="http://www.gnu.org/licenses/agpl.html" id="licenseLink"></a> - - <span title="Copyright">©2010 - 2011</span> - <a shape="rect" href="http://www.codelutin.com">Code Lutin</a> - - <a shape="rect" href="http://www.chorem.org/projects/bow/issues" id="bugReport"></a> - - <a shape="rect" href="http://list.chorem.org/cgi-bin/mailman/listinfo/bow-users" id="userSupport"></a> - </p> - </div> + </div> + </div> + <div id="footer"> + <p> + <a shape="rect" id="bow_website" href="http://www.chorem.org/projects/show/bow" target="_blank">bow</a> + <a shape="rect" href="http://www.gnu.org/licenses/agpl.html" id="licenseLink"></a> - + <span title="Copyright">©2010 - 2011</span> + <a shape="rect" href="http://www.codelutin.com">Code Lutin</a> - + <a shape="rect" href="http://www.chorem.org/projects/bow/issues" id="bugReport"></a> - + <a shape="rect" href="http://list.chorem.org/cgi-bin/mailman/listinfo/bow-users" id="userSupport"></a> + </p> + </div> </div> </body> </html> Added: trunk/bow-extension-chromium/src/main/webapp/options.js =================================================================== --- trunk/bow-extension-chromium/src/main/webapp/options.js (rev 0) +++ trunk/bow-extension-chromium/src/main/webapp/options.js 2013-09-24 17:27:30 UTC (rev 359) @@ -0,0 +1,72 @@ +// Saves options to localStorage. +function save_options() { + var permanentTokenIdInput = document.getElementById("permanentTokenIdInput"); + localStorage["permanentTokenId"] = permanentTokenIdInput.value; + + var sessionTokenIdInput = document.getElementById("sessionTokenIdInput"); + localStorage["sessionTokenId"] = sessionTokenIdInput.value; + + var bowUrlInput = document.getElementById("bowUrlInput"); + localStorage["bowUrl"] = bowUrlInput.value; + + var formMessage = document.getElementById("formMessage"); + formMessage.innerHTML = chrome.i18n.getMessage("optionSavedMessage"); +} + +// Restores values from localStorage. +function restore_options() { + var permanentTokenId = localStorage["permanentTokenId"]; + var sessionTokenId = localStorage["sessionTokenId"]; + + if (permanentTokenId) { + var permanentTokenIdInput = document.getElementById("permanentTokenIdInput"); + permanentTokenIdInput.value = permanentTokenId; + } + + if (sessionTokenId) { + var sessionTokenIdInput = document.getElementById("sessionTokenIdInput"); + sessionTokenIdInput.value = sessionTokenId; + } + + var bowUrlInput = document.getElementById("bowUrlInput"); + bowUrlInput.value = getBowURl(); +} + +function init() { + var bow_website_link = document.links["bow_website"]; + bow_website_link.href = DEFAULT_BOW_URL; + + var bow_logo_link = document.links["bow_logo"]; + bow_logo_link.href = DEFAULT_BOW_URL; + + // translate + var permanentTokenIdInputLabel = document.getElementById("permanentTokenIdInputLabel"); + permanentTokenIdInputLabel.innerHTML = chrome.i18n.getMessage("permanentTokenIdInputLabel"); + + var sessionTokenIdInputLabel = document.getElementById("sessionTokenIdInputLabel"); + sessionTokenIdInputLabel.innerHTML = chrome.i18n.getMessage("sessionTokenIdInputLabel"); + + var bowUrlInputLabel = document.getElementById("bowUrlInputLabel"); + bowUrlInputLabel.innerHTML = chrome.i18n.getMessage("bowUrlInputLabel"); + + var title = document.getElementById("title"); + title.innerHTML = chrome.i18n.getMessage("optionTitle"); + + var saveOptionButton = document.getElementById("saveOptionButton"); + saveOptionButton.value = chrome.i18n.getMessage("saveOptionButton"); + + var licenseLink = document.getElementById("licenseLink"); + licenseLink.innerHTML = chrome.i18n.getMessage("licenseLink"); + + var bugReport = document.getElementById("bugReport"); + bugReport.innerHTML = chrome.i18n.getMessage("bugReport"); + + var userSupport = document.getElementById("userSupport"); + userSupport.innerHTML = chrome.i18n.getMessage("userSupport"); +} + +document.addEventListener('DOMContentLoaded', function () { + init(); + restore_options(); + document.getElementById("saveOptionButton").addEventListener('click', save_options); +}); \ No newline at end of file Modified: trunk/bow-extension-chromium/src/main/webapp/popup.html =================================================================== --- trunk/bow-extension-chromium/src/main/webapp/popup.html 2013-09-19 09:28:02 UTC (rev 358) +++ trunk/bow-extension-chromium/src/main/webapp/popup.html 2013-09-24 17:27:30 UTC (rev 359) @@ -24,103 +24,12 @@ <html> <head> <script type="text/javascript" src="properties.js"></script> - <script> + <script type="text/javascript" src="popup.js"></script> - function bookmarkPermanent() { - var tokenId = localStorage["permanentTokenId"]; - if (tokenId != null) { - bookmark(tokenId); - } - } - - function bookmarkSession() { - var tokenId = localStorage["sessionTokenId"]; - if (tokenId != null) { - bookmark(tokenId); - } - } - - function bookmark(tokenId) { - var tabInfos = chrome.extension.getBackgroundPage().getTabInfos(); - var url = tabInfos["url"]; - - var nameInput = document.getElementById("nameInput"); - var nameValue = nameInput.value; - - var aliasInput = document.getElementById("aliasInput"); - var aliasValue = aliasInput.value; - - var tagsInput = document.getElementById("tagsInput"); - var tagsValue = tagsInput.value; - - var link = getBowURl() + "/addUrl.action?token=" + tokenId - + "&link=" + encodeURIComponent(url) - + "&name=" + encodeURIComponent(nameValue) - + "&privateAlias=" + encodeURIComponent(aliasValue) - + "&tags=" + encodeURIComponent(tagsValue); - - var xhr = new XMLHttpRequest(); - xhr.open("GET", link, true); - xhr.onreadystatechange = function() { - if (xhr.readyState == 4) { - close(); - self.close(); - } - }; - xhr.send(); - - } - - function init() { - var tabInfos = chrome.extension.getBackgroundPage().getTabInfos(); - - var title = document.getElementById("title"); - title.innerHTML = chrome.i18n.getMessage("actionTitle"); - - var nameInputLabel = document.getElementById("nameInputLabel"); - nameInputLabel.innerHTML = chrome.i18n.getMessage("nameInputLabel"); - - var nameInput = document.getElementById("nameInput"); - nameInput.value = tabInfos["title"]; - - var aliasInputLabel = document.getElementById("aliasInputLabel"); - aliasInputLabel.innerHTML = chrome.i18n.getMessage("aliasInputLabel"); - - var tagsInputLabel = document.getElementById("tagsInputLabel"); - tagsInputLabel.innerHTML = chrome.i18n.getMessage("tagsInputLabel"); - - var sessionTokenId = localStorage["sessionTokenId"]; - var sessionTokenButton = document.getElementById("sessionTokenButton"); - if (!isEmpty(sessionTokenId)) { - sessionTokenButton.value = chrome.i18n.getMessage("sessionTokenButton"); - } else { - sessionTokenButton.style.visibility = "hidden"; - } - - var permanentTokenId = localStorage["permanentTokenId"]; - var permanentTokenButton = document.getElementById("permanentTokenButton"); - if (!isEmpty(permanentTokenId)) { - permanentTokenButton.value = chrome.i18n.getMessage("permanentTokenButton"); - } else { - permanentTokenButton.style.visibility = "hidden"; - } - - if (isEmpty(permanentTokenId) && isEmpty(sessionTokenId)) { - var buttons = document.getElementById("buttons"); - buttons.innerHTML = chrome.i18n.getMessage("noTokenMessage"); - } - } - - function isEmpty(string) { - return (string == null || string == ""); - } - - </script> - <link rel="stylesheet" type="text/css" href="css/extension.css" /> </head> - <body onLoad="init()"> + <body> <h1 id="title"></h1> <div class="labels"> <label for="nameInput" id="nameInputLabel"></label> @@ -141,8 +50,8 @@ <input id="tagsInput" name="tagsInput" type="text" /> </div> <div id="buttons"> - <input id="permanentTokenButton" onclick="bookmarkPermanent();" type="button" /> - <input id="sessionTokenButton" onclick="bookmarkSession()" type="button" /> + <input id="permanentTokenButton" type="button" /> + <input id="sessionTokenButton" type="button" /> </div> </body> </html> Added: trunk/bow-extension-chromium/src/main/webapp/popup.js =================================================================== --- trunk/bow-extension-chromium/src/main/webapp/popup.js (rev 0) +++ trunk/bow-extension-chromium/src/main/webapp/popup.js 2013-09-24 17:27:30 UTC (rev 359) @@ -0,0 +1,95 @@ + +function bookmarkPermanent() { + var tokenId = localStorage["permanentTokenId"]; + if (tokenId != null) { + bookmark(tokenId); + } +} + +function bookmarkSession() { + var tokenId = localStorage["sessionTokenId"]; + if (tokenId != null) { + bookmark(tokenId); + } +} + +function bookmark(tokenId) { + var tabInfos = chrome.extension.getBackgroundPage().getTabInfos(); + var url = tabInfos["url"]; + + var nameInput = document.getElementById("nameInput"); + var nameValue = nameInput.value; + + var aliasInput = document.getElementById("aliasInput"); + var aliasValue = aliasInput.value; + + var tagsInput = document.getElementById("tagsInput"); + var tagsValue = tagsInput.value; + + var link = getBowURl() + "/addUrl.action?token=" + tokenId + + "&link=" + encodeURIComponent(url) + + "&name=" + encodeURIComponent(nameValue) + + "&privateAlias=" + encodeURIComponent(aliasValue) + + "&tags=" + encodeURIComponent(tagsValue); + + var xhr = new XMLHttpRequest(); + xhr.open("GET", link, true); + xhr.onreadystatechange = function() { + if (xhr.readyState == 4) { + close(); + self.close(); + } + }; + xhr.send(); + +} + +function init() { + var tabInfos = chrome.extension.getBackgroundPage().getTabInfos(); + + var title = document.getElementById("title"); + title.innerHTML = chrome.i18n.getMessage("actionTitle"); + + var nameInputLabel = document.getElementById("nameInputLabel"); + nameInputLabel.innerHTML = chrome.i18n.getMessage("nameInputLabel"); + + var nameInput = document.getElementById("nameInput"); + nameInput.value = tabInfos["title"]; + + var aliasInputLabel = document.getElementById("aliasInputLabel"); + aliasInputLabel.innerHTML = chrome.i18n.getMessage("aliasInputLabel"); + + var tagsInputLabel = document.getElementById("tagsInputLabel"); + tagsInputLabel.innerHTML = chrome.i18n.getMessage("tagsInputLabel"); + + var sessionTokenId = localStorage["sessionTokenId"]; + var sessionTokenButton = document.getElementById("sessionTokenButton"); + if (!isEmpty(sessionTokenId)) { + sessionTokenButton.value = chrome.i18n.getMessage("sessionTokenButton"); + } else { + sessionTokenButton.style.visibility = "hidden"; + } + + var permanentTokenId = localStorage["permanentTokenId"]; + var permanentTokenButton = document.getElementById("permanentTokenButton"); + if (!isEmpty(permanentTokenId)) { + permanentTokenButton.value = chrome.i18n.getMessage("permanentTokenButton"); + } else { + permanentTokenButton.style.visibility = "hidden"; + } + + if (isEmpty(permanentTokenId) && isEmpty(sessionTokenId)) { + var buttons = document.getElementById("buttons"); + buttons.innerHTML = chrome.i18n.getMessage("noTokenMessage"); + } +} + +function isEmpty(string) { + return (string == null || string == ""); +} + +document.addEventListener('DOMContentLoaded', function () { + init(); + document.getElementById('permanentTokenButton').addEventListener('click', bookmarkPermanent); + document.getElementById('sessionTokenButton').addEventListener('click', bookmarkSession); +}); \ No newline at end of file
participants (1)
-
bpoussin@users.chorem.org