open-index/open-npm huggingface dataset:
npm package: @papermerge/commander
Description: [![Unittests](https://github.com/papermerge/document-commander/actions/workflows/unittests.yml/badge.svg)](https://github.com/papermerge/document-commander/actions/workflows/unittests.yml)
Author: Eugen Ciur
Latest version: 0.5.0

[![Unittests](https://github.com/papermerge/document-commander/actions/workflows/unittests.yml/badge.svg)](https://github.com/papermerge/document-commander/actions/workflows/unittests.yml)

# Document Commander

NodeJs package for (reusable) client side files browsing i.e. javascript code for navigating documents and folders.
Provides look and feel of typical modern desktop file manager e.g. [Gnome's Files App](https://wiki.gnome.org/Apps/Files).
Document Commander is part by [Papermerge Core](https://github.com/papermerge/papermerge-core).


![Commander](./img/commander.svg)


## Requirements

The core requirements for this project are NodeJs, npm (node package manager) and webpack:

* [nodejs](https://nodejs.org/en/) >= 10.24
* [npm](https://docs.npmjs.com/about-npm) >= 7.8
* [webpack](https://webpack.js.org/) >= 5.30.0

## Installation

Install all nodejs dependent packages:

    $ npm i  # looks in package.json and installs dependencies


## Playground

In `site/` folder there is a `flask` based project used as playground.
In order to setup and run playground, use following commands:

    $ cd site
    $ virtualenv .venv -p /usr/bin/python3.7
    $ source .venv/bin/activate
    $ pip install -r requirements.txt
    $ cd ..
    $ make run


## Document Commander API


At vary basic, you can instanciate Document Commander and open root folder as follows::

    let DC = DocummentCommander, commander;

    commander = new DC.CommanderView({
        'el': '#commander'
    });
    commander.open();

Where ``#commander`` is some DOM div element. Notice when `commander.open`
method is without arguments Commander will open root folder i.e. will issue
request `GET /core/folder/` from the server side. The `core` part of the url request
is so called `urlconf` prefix. If no further configuration is provided, default `urlconf` prefix is used - which is `/core`.

You can change default `urlconf` prefix as follows::

    let DC = DocummentCommander, commander;

    DC.urlconf.prefix = "/app";
    commander = new DC.CommanderView({
        'el': '#commander'
    });
    commander.open();

In this case DocumentCommander will issue `GET /app/folder` http request to
fetch root folder data.

In order to open at specific folder, provide that folder as named parameter to `open` method::

    let DC = DocummentCommander,
        commander,
        folder;

    commander = new DC.CommanderView({
        'el': '#commander'
    });
    folder = new DC.Folder({id: 3});
    commander.open({folder});

In this case Document Commander will fetch folder nodes from `GET /core/folder/3/` location.
npm package: @papermerge/dialogs
Description: Uploader dialog for papermerge frontend
Author: Eugen Ciur
Latest version: 0.2.0

# Dialogs Js

Dialogs JS is the npm package for displaying various modals (rename, new folder, permissions).
Dialogs JS relies on [Bootstrap](https://getbootstrap.com/) for modals templating.

The sole responsablity of any dialog/modal is to collect user input
( +validations ) and notify interested parties (via events) about submited
data i.e. pass collected data via `trigger` method.

Note that dialog do not know where and how to send collected data as such a
task is outside of their scope.

## Installation

Install all nodejs dependent packages:

    $ npm i  # looks in package.json and installs dependencies
npm package: @papermerge/dual-commander
Description: Document browser featuring dual panes.
Author: Eugen Ciur
Latest version: 0.5.0

# Dual Commander

Document browser featuring dual panes.


## Requirements

The core requirements for this project are NodeJs, npm (node package manager) and webpack:

* [nodejs](https://nodejs.org/en/) >= 10.24
* [npm](https://docs.npmjs.com/about-npm) >= 7.8
* [webpack](https://webpack.js.org/) >= 5.30.0

## Installation

Install all nodejs dependent packages:

    $ npm i  # looks in package.json and installs dependencies


## Playground

In `playground/` folder there is a [flask](https://flask.palletsprojects.com/en/2.0.x/) based application used as playground.
In order to setup and run playground, use following commands:

    $ cd playground
    $ virtualenv .venv -p /usr/bin/python3.7
    $ source .venv/bin/activate
    $ pip install -r requirements.txt
    $ cd ..
    $ make run

Playground flask app provides couple of extra features to simulate more
realistic scenarios - like slower server responses.

To slow down all server side responses with two seconds, start playground using
following command:

    $ cd playground
    $ python index.py --delay 2  # delays all server side responses with 2 seconds

To slow down server side responses with one second AND disable browser's assets cache
(browsers try to very hard to cache static assets) use command:

    $ cd playground
    $ python index.py --delay 1 --no-cache


Start playground on port 5002:

    $ cd playground
    $ python index.py --port 5002

For all options:

    $ cd playground
    $ python index.py --help
npm package: @papermerge/symposium
Description: [![Unittests](https://github.com/papermerge/symposium/actions/workflows/unittests.yml/badge.svg)](https://github.com/papermerge/symposium/actions/workflows/unittests.yml)
Author: Eugen Ciur
Latest version: 0.6.0

[![Unittests](https://github.com/papermerge/symposium/actions/workflows/unittests.yml/badge.svg)](https://github.com/papermerge/symposium/actions/workflows/unittests.yml)

# SymposiumJS

Symposium is a javascript framework used across all frontend components of
[Papermerge](www.papermerge.com) project.

It is heavily inspired by [BackboneJS](https://backbonejs.org/).
Symposium is entirely written using ES6 compliant javascript.

It has light dependency on [jQuery](https://jquery.com) and
[nunjucks](https://mozilla.github.io/nunjucks/). "Light" dependency means that
the dependencies are kept minimal so that they can be removed/replaced easily.
From jQuery only event related methods are used - ``$(selector).on`` and
``$(selector).off``.


## Installation

Install all nodejs dependent packages:

    $ npm i  # looks in package.json and installs dependencies


## Run Tests

Test suite uses [mocha](https://mochajs.org/) as testing frameworks and [karma](https://karma-runner.github.io/latest/index.html) test runner.

To run test suite use following command:

    $ make test
npm package: @papermerge/uploader
Description: Uploader dialog for papermerge frontend
Author: Eugen Ciur
Latest version: 0.5.0

[![Unittests](https://github.com/papermerge/uploader-js/actions/workflows/unittests.yml/badge.svg)](https://github.com/papermerge/uploader-js/actions/workflows/unittests.yml)


# Uploader Js

UploaderJs takes care of uploading files (and displaying the dialog). It is part of papermerge front end.

## Installation

Install all nodejs dependent packages:

    $ npm i  # looks in package.json and installs dependencies
npm package: @papermerge/viewer
Description: NodeJs package for (reusable) client side document viewer.
Author: Eugen Ciur
Latest version: 0.5.0

# Document Viewer

NodeJs package for (reusable) client side document viewer.


## Requirements

The core requirements for this project are NodeJs, npm (node package manager) and webpack:

* [nodejs](https://nodejs.org/en/) >= 10.24
* [npm](https://docs.npmjs.com/about-npm) >= 7.8
* [webpack](https://webpack.js.org/) >= 5.30.0

## Installation

Install all nodejs dependent packages:

    $ npm i  # looks in package.json and installs dependencies


## Playground

In `site/` folder there is a [flask](https://flask.palletsprojects.com/en/2.0.x/) based application used as playground.
In order to setup and run playground, use following commands:

    $ cd site
    $ virtualenv .venv -p /usr/bin/python3.7
    $ source .venv/bin/activate
    $ pip install -r requirements.txt
    $ cd ..
    $ make run

Playground flask app provides couple of extra features to simulate more
realistic scenarios - like slower server responses.

To slow down all server side responses with two seconds, start playground using
following command:

    $ cd site
    $ python index.py --delay 2  # delays all server side responses with 2 seconds

To slow down server side responses with one second AND disable browser's assets cache
(browsers try to very hard to cache static assets) use command:

    $ cd site
    $ python index.py --delay 1 --no-cache


Start playground on port 5002:

    $ cd site
    $ python index.py --port 5002

For all options:

    $ cd site
    $ python index.py --help