Skip to content

Commit

Permalink
Include option to save in "Other Bookmarks" child folders
Browse files Browse the repository at this point in the history
  • Loading branch information
erdavila committed Sep 9, 2015
1 parent fb3b756 commit 3778a2c
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 8 deletions.
23 changes: 21 additions & 2 deletions extension/background.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,29 @@
function bookmarkAll(folderTitle, windowsAsFolders) {
var OTHER_BOOKMARKS_ID = '2';
function getParentFolderOptions(cb) {
chrome.bookmarks.get(OTHER_BOOKMARKS_ID, function(folders) {
var otherBookmarksFolder = folders[0];
var results = [{id: otherBookmarksFolder.id, title: otherBookmarksFolder.title}];
chrome.bookmarks.getChildren(OTHER_BOOKMARKS_ID, function(children) {
for(var i = 0; i < children.length; i++) {
var child = children[i];
if(!child.url) {
results.push({id: child.id, title: otherBookmarksFolder.title + ' / ' + child.title});
}
}
cb(results);
});
});
}


function bookmarkAll(folderTitle, parentFolderId, windowsAsFolders) {
console.log("Creating new bookmarks in " + folderTitle);
// Create folder
chrome.bookmarks.create(
{
title: folderTitle,
url: null
url: null,
parentId: parentFolderId
},
function(folder){
if (folder == null) {
Expand Down
11 changes: 7 additions & 4 deletions extension/popup.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,14 @@
</style>
</head>
<body>
<h1 style="text-align:center;">Bookmark All</h1>
<form>
<label>Folder Name</label>
<input id="folderName"><br/>
<label style="white-space: nowrap;"><input type="checkbox" id="windowsAsFolders">Create a folder for each window</label>
<button type="submit">Bookmark</button>
<label>Folder Name: <input id="folderName"></label><br>
<label style="white-space: nowrap;">Inside: <select id="parentFolder"></select></label><br>
<label style="white-space: nowrap;"><input type="checkbox" id="windowsAsFolders">Create a folder for each window</label><br>
<p style="text-align:center;">
<button type="submit">Bookmark</button>
</p>
</form>
<script src="jquery-1.10.2.min.js"></script>
<script src="script.js"></script>
Expand Down
26 changes: 24 additions & 2 deletions extension/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,47 @@ function toShortISODateString(d) {
+ pad(d.getMinutes()) + ':'
+ pad(d.getSeconds());
}

$(document).ready(function(){
var folderTitle = toShortISODateString(new Date());
// Set default value to current date
$('#folderName').val(folderTitle);
console.log("Set placeholder to " + folderTitle);

var parentFolder = $('#parentFolder');
chrome.extension.getBackgroundPage().getParentFolderOptions(
function(parentOptions) {
var previousParentFolderId = localStorage['parentFolderId'];
for(var i = 0; i < parentOptions.length; i++) {
var parentOption = parentOptions[i];
var option = $('<option>');
option.attr('value', parentOption.id);
option.text(parentOption.title);
if(parentOption.id == previousParentFolderId) {
option.prop('selected', true);
}
option.appendTo(parentFolder);
}
}
);

// Remember last option for checkbox
$('#windowsAsFolders').prop('checked', localStorage['windowsAsFolders'] == 'true');

// Handle button click
$('form').submit(function(){
// This seems the stupidest way to get the value
var folderName = $('#folderName').val();
var parentFolderId = parentFolder.val();
var windowsAsFolders = $('#windowsAsFolders').is(':checked');
window.close();
// Create bookmarks from background page
// I couldn't get it to work from here
// and there seemed to be a race condition with window.close()
chrome.extension.getBackgroundPage().bookmarkAll(folderName, windowsAsFolders);
// Save option for checkbox
chrome.extension.getBackgroundPage().bookmarkAll(folderName, parentFolderId, windowsAsFolders);
// Save options
localStorage['windowsAsFolders'] = $('#windowsAsFolders').prop('checked') ? 'true' : 'false';
localStorage['parentFolderId'] = parentFolderId;
return false;
});
});

0 comments on commit 3778a2c

Please sign in to comment.