PHPackages                             getdkan/recline - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. getdkan/recline

ActiveDrupal-module

getdkan/recline
===============

recline.js module for DKAN/Drupal

338[1 PRs](https://github.com/GetDKAN/recline/pulls)PHP

Since Mar 10Pushed 6y ago41 watchersCompare

[ Source](https://github.com/GetDKAN/recline)[ Packagist](https://packagist.org/packages/getdkan/recline)[ RSS](/packages/getdkan-recline/feed)WikiDiscussions 7.x-2.x Synced 2mo ago

READMEChangelog (5)DependenciesVersions (2)Used By (0)

About this module
=================

[](#about-this-module)

This module provides a file field which accepts csv file uploads and visualizes their contents using Recline.js

INSTALLATION
------------

[](#installation)

- Download the Recline.js library from (zip file) and install in 'sites/all/libraries/'.
- Enable recline module.

Supported Backends and File Types
---------------------------------

[](#supported-backends-and-file-types)

This creates grid, graph, and map data previews for CSV and XLS files based off of the following mechanisms.

It first checks to see if the DKAN Datastore module is installed, and if a datastore has been created for the file. If the datastore is available it uses that to visualize the data. This is extremely scalable since it only queries the first 50 rows of the table in the database. It has been tested with files up to 500 GB and a million+ rows.

If the datastore is not available it checks if the file is a CSV. If it is a CSV it tries to load the file into memory. If it takes longer than a second to load the file it instructs the user that the file is too large to preview. This keeps the page from freezing for larger files.

If the file is a XLS it uses the DataProxy services to preview the file since there is currently not a CSV backend for Recline. DataProxy parses the file and returns it as a data object which is previewed.

Contributing
------------

[](#contributing)

We are accepting issues in the dkan issue thread only -&gt;  -&gt; Please label your issue as **"component: recline"** after submitting so we can identify problems and feature requests faster.

If you can, please cross reference commits in this repo to the corresponding issue in the dkan issue thread. You can do that easily adding this text:

```
NuCivic/dkan#issue_id

```

to any commit message or comment replacing **issue\_id** with the corresponding issue id.

Recline.js library workflow
---------------------------

[](#reclinejs-library-workflow)

There are clear indications on how/what to reference in the makefile itself:

```
# This should be pointing to the HEAD of the "dkan_integration" branch at the time of
# each release. The commit should have all the branches for PR's that we send against
# the okfn repo and the builded version matching the code(use ./make cat to build).
libraries[recline][download][revision] = "aa5eeac080099584792e70dff839f0e85ae7380a"

```

### Setup to work on recline.js

[](#setup-to-work-on-reclinejs)

- Clone recline.js repo locally
- Add okfn as a remote
- Fetch all tags and branches

```
git clone git@github.com:NuCivic/recline.js.git
cd recline.js
git remote add okfn git@github.com:okfn/recline.git
git fetch --all

```

### Build a PR against okfn

[](#build-a-pr-against-okfn)

All the fixes we provided should be PR's against the okfn repository. Setup for work based on the latest `okfn/master`:

```
git checkout -b "branch_name_after_fix"
git reset --hard okfn/master

```

when you are done build without minifying and push the branch to `NuCivic/recline.js`:

```
./make cat
git add .
git commit -m "Describe your commit"
git push origin branch_name_after_fix

```

Create a PR against `okfn/recline:master`

### Update dkan\_integration branch to include your fix

[](#update-dkan_integration-branch-to-include-your-fix)

```
git checkout dkan_integration
git merge origin branch_name_after_fix

```

### Create a QA site using this repo

[](#create-a-qa-site-using-this-repo)

- Create a branch for this repo
- Update the `recline.make` to reference the last commit on `NuCivic/recline.js:dkan_integration`
- Commit the changes, push and build a QA Site

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community28

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/2f0d92fbf723138c5371b7bea3cfd623ceffd135864015c965e4379c8bfda37b?d=identicon)[dafeder](/maintainers/dafeder)

![](https://www.gravatar.com/avatar/be88bcbccb292750a3d5e1cace823de415dbdd05682f685ebc24beb6b8c06e84?d=identicon)[fmizzell](/maintainers/fmizzell)

![](https://www.gravatar.com/avatar/51a4c0ebad087ab9cbfdc6675d7d8ed57fc988259e8b2d62b6b0387c37a48eb7?d=identicon)[acouch](/maintainers/acouch)

---

Top Contributors

[![acouch](https://avatars.githubusercontent.com/u/512243?v=4)](https://github.com/acouch "acouch (60 commits)")[![topicus](https://avatars.githubusercontent.com/u/381224?v=4)](https://github.com/topicus "topicus (53 commits)")[![dafeder](https://avatars.githubusercontent.com/u/309671?v=4)](https://github.com/dafeder "dafeder (40 commits)")[![teosibileau](https://avatars.githubusercontent.com/u/428070?v=4)](https://github.com/teosibileau "teosibileau (19 commits)")[![janette](https://avatars.githubusercontent.com/u/314172?v=4)](https://github.com/janette "janette (9 commits)")[![dharizza](https://avatars.githubusercontent.com/u/2200763?v=4)](https://github.com/dharizza "dharizza (6 commits)")[![jacintocapote](https://avatars.githubusercontent.com/u/838381?v=4)](https://github.com/jacintocapote "jacintocapote (5 commits)")[![dkinzer](https://avatars.githubusercontent.com/u/444215?v=4)](https://github.com/dkinzer "dkinzer (5 commits)")[![MSolv](https://avatars.githubusercontent.com/u/145338678?v=4)](https://github.com/MSolv "MSolv (4 commits)")[![fmizzell](https://avatars.githubusercontent.com/u/5494584?v=4)](https://github.com/fmizzell "fmizzell (3 commits)")[![managume](https://avatars.githubusercontent.com/u/4390275?v=4)](https://github.com/managume "managume (1 commits)")[![starsinmypockets](https://avatars.githubusercontent.com/u/949175?v=4)](https://github.com/starsinmypockets "starsinmypockets (1 commits)")[![federicca](https://avatars.githubusercontent.com/u/1379537?v=4)](https://github.com/federicca "federicca (1 commits)")[![sheldonrampton](https://avatars.githubusercontent.com/u/2838758?v=4)](https://github.com/sheldonrampton "sheldonrampton (1 commits)")[![rhabbachi](https://avatars.githubusercontent.com/u/1914306?v=4)](https://github.com/rhabbachi "rhabbachi (1 commits)")

### Embed Badge

![Health badge](/badges/getdkan-recline/health.svg)

```
[![Health](https://phpackages.com/badges/getdkan-recline/health.svg)](https://phpackages.com/packages/getdkan-recline)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
