• Stars
    star
    120
  • Rank 295,983 (Top 6 %)
  • Language
    HTML
  • Created almost 12 years ago
  • Updated almost 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Tabs Outliner Addon for Firefox

The Tabs Outliner Addon for Firefox

This addon aims to implement for Firefox the feature provided by the TabsOutliner plugin in Chromium, but in an Opensource License.

Here is a screenshot of what it looks like at the time of the last major change in this repository:

Tabs Outliner Screenshot

N.B.: as the author of Chrome's Tabs Outliner plugin, Vladyslav Volovyk, asked me to remove any content containing his crafted materials, the repository is now entirely free of materials under restrictive copyright. The picture above containing the previous version of the code using one of his images, the image shown is now striked out to avoid any conflict.

For the time being it is only a work in progress. That plugin is aimed to be compatible with Firefox 18+, and uses the jetpack/addon API.

TODO

  • [x] refresh the tree on every window and tabs events (new, close, ready, refresh, tab movement...), (in v0.4)
  • [#] select, open/close, destroy support from the tabs outliner panel, (will be v0.5)
  • [ ] drag and drop support for the tabs in the tree, (should be v0.6)
  • [ ] create new level of tree when opening tabs from a tab and support groups of windows, (should be v0.7)
  • [ ] session state saving support, (might be v0.8)
  • [ ] sidebar integration, (may be v0.9)
  • [ ] better UI style, (may be v0.10)
  • [ ] no bugs, no glitches (v1.0)

If you want a taboutliner for firefox, don't hesitate to help me implement that plugin and send patches!

How it works

As of version v0.4, the algorithm of the addon is far from being good. At each event, it (re)builds a two level tree of all opened windows and tabs, and (re)generates the DOM tree in the tabsoutliner tab. Though, it is not time and space efficient, the result is still (astonishly) fast.

For v0.7, the algorithmic model might have to be rewritten to support a n-level tree representing the tabs opened while browsing, and also the creation of groups of windows.

How to test it and hack

To test:

	$ npm install jpm --global
	$ cd FFTabsOutline (where package.json resides)
	$ jpm run

Code tree

.
|-- README.md ............  this file
|-- data .................  data resources included with the addon
|   |-- images ...........  images included
|   |   `-- favicon.ico ..  a logo I have drawn and rendered using gimp, 
|   |                           beautiful, isn't it ? :-)
|   |-- panel.html .......  the tabs outliner panel base DOM
|   |-- screen.css .......  the tabs outliner panel's style
|   `-- tree .............  the 'tree' JS module used to render the window/tabs tree
|-- doc ..................  documentation folder: to be written ;-)
|   `-- main.md
|-- lib ..................  directory containing all the JS code
|   |-- main.js ..........  entry point for the javascript module
|   |-- tools.js .........  simple utils for object introspection, useful to dig through the APIs
|   `-- tree.js ..........  implementation of a N-Tree in javascript
|-- package.json .........  package specification
`-- test .................  tests: to be written
    `-- test-main.js .....  bunch of tests for the tree.js file, that is failing

License

All the code of the addon is (c)2013, Bernard Guyzmo Pratz, under the AGPLv3 http://www.gnu.org/licenses/agpl-3.0.html

The tree script is jquery-treeview under the MIT and GPL licences. It will be certainly be replaced for v0.6 to have a more updated tree plugin, with enhanced drag'n drop support.

Tabs Outliner Addon for Firefox
Copyright (C)2013, Bernard `Guyzmo` Pratz <tabsoutliner at m0g dot net>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

More Repositories

1

git-repo

Git-Repo: CLI utility to manage git services from your workspace
Python
840
star
2

vim-etherpad

Plugin to enable collaborative edition on etherpad with the best editor
Vim Script
100
star
3

notossh

irssi plugin that sends notifications to growl or libnotify over a ssh tunnel
Python
47
star
4

notmuch-abook

Addressbook manager and vim script compatible with notmuch
Python
38
star
5

event-source-library

Python Event Source Library
Python
35
star
6

facturation_latex

Facturation autoentrepreneur easy en LaTeX
TeX
26
star
7

Arduino-Tools

Tools for working with arduino without launching the IDE
Python
17
star
8

buildstrap

buildstrap: when buildout+pip=♥
Python
16
star
9

avr_nrf_ancs_library

Library to handle ANCS notifications with an AVR and Nordic's nrf8001
C++
16
star
10

clait

Command Line Accounting & Invoicing Tool
Python
13
star
11

irssi-over-ssh-notifications

[DEPRECATED] Notossh irssi over ssh notifications legacy repository (please use notossh repository from now on)
Python
10
star
12

pyparts

CLI Tool for browsing components
Python
9
star
13

LoL-shield-dynamic-banner

Based on Jimmie P Rodgers' font lib, I rewrote the banner example so one can send a text through the serial port
C
8
star
14

hypertrack_v3

Ruby
5
star
15

vim-yaposting

Yet Another Posting Script reborn – Helper that gives a few formatting features for mail/news posting.
Python
5
star
16

kitt

Kivy Touch Tool
Python
4
star
17

polluxnzcity

Pollux'NZ City project's repository
C
4
star
18

FlyingDoor

Simple arduino based controller to open a door
Java
3
star
19

LeLoopOneLineLedDisplay

One line red led display
Java
2
star
20

SoChat

Stack Overflow Chat exposed as an IRC server
Python
2
star
21

yace

Yet Another Collaborative Editor
JavaScript
2
star
22

LeLoopRFID

RFID Controller code
C++
2
star
23

pystackoverflow

Python library and command line utility to access resources from stackoverflow website. It's an example on how we can automagically manage the openid authentication for a client tool.
Python
2
star
24

i.got.nothing.to.blog

Source code of the weblog where
HTML
2
star
25

pybitbucket

Python
2
star
26

PolluxNZcity_PoC

Proof of Concept of the Pollux'NZ City software that gets along a demonstrator built in 2010
JavaScript
2
star
27

gitlab-notion

Gitlab to notion sync
JavaScript
2
star
28

le-loop-blog

Le blog du Loop
Python
1
star
29

LeLoopBigLedDisplay

code for a big 63*64 LED display
Arduino
1
star
30

py-eas-client

Automatically exported from code.google.com/p/py-eas-client
Python
1
star