deltreey/Dable

View on GitHub
src/dable.js

Summary

Maintainability
A
1 hr
Test Coverage
// import './console-polyfill';
import addRow from './addRow';
import applyBaseStyles from './applyBaseStyles';
import applyBootstrapStyles from './applyBootstrapStyles';
import applyJqueryUIStyles from './applyJqueryUIStyles';
import asyncReload from './asyncReload';
import asyncRequest from './asyncRequest';
import baseSort from './baseSort';
import buildAll from './buildAll';
import buildFooter from './buildFooter';
import buildHeader from './buildHeader';
import buildPager from './buildPager';
import buildTable from './buildTable';
import checkForTable from './checkForTable';
import defaults from './defaults';
import deleteRow from './deleteRow';
import exists from './exists';
import filters from './filters';
import generateTableFromHtml from './generateTableFromHtml';
import goToPage from './goToPage';
import lastPage from './lastPage';
import {mixin} from './utils';
import removeStyles from './removeStyles';
import searchFunc from './searchFunc';
import setColumnNames from './setColumnNames';
import setDataAsColumns from './setDataAsColumns';
import setDataAsRows from './setDataAsRows';
import sortFunc from './sortFunc';
import updateDisplayedRows from './updateDisplayedRows';
import updateFooter from './updateFooter';
import updateStyle from './updateStyle';

//IE 8 Console.log fix
if (typeof console === 'undefined' || typeof console.error === 'undefined') {
  // eslint-disable-next-line
  console = {error: function() {}}; // jshint ignore:line
}

export default function Dable(tableOrId) {
  mixin(this, Dable.defaults);
  this.BuildAll(tableOrId);
}

Dable.defaults = defaults;

Dable.prototype.RowCount = function() {
  return this.rows.length;
};

Dable.prototype.VisibleRowCount = function() {
  return this.visibleRows.length;
};

Dable.prototype.NumberOfPages = function() {
  var n = this.VisibleRowCount() / this.pageSize;
  return Math.ceil(n);
};

Dable.prototype.GetPageForRow = function(row) {
  return Math.ceil(row / this.pageSize);
};

Dable.prototype.asyncRequest = asyncRequest;

Dable.prototype.asyncReload = asyncReload;

Dable.prototype.searchFunc = searchFunc;

Dable.prototype.sortFunc = sortFunc;

Dable.prototype.baseSort = baseSort;

Dable.prototype.filters = filters;

Dable.prototype.SetColumnNames = setColumnNames;

Dable.prototype.DeleteRow = deleteRow;

Dable.prototype.AddRow = addRow;

Dable.prototype.CreateObjectsFromRows = function(rows) {
  var rowObjects = [];
  for (var i = 0; i < rows.length; ++i) {
    rowObjects.push({Row: rows[i], RowNumber: i});
  }
  return rowObjects;
};

Dable.prototype.CreateRowsFromObjects = function(objects) {
  var rows = [];
  for (var i = 0; i < objects.length; ++i) {
    rows.push(objects[i].Row);
  }
  return rows;
};

Dable.prototype.SetDataAsColumns = setDataAsColumns;

Dable.prototype.SetDataAsRows = setDataAsRows;

Dable.prototype.UpdateDisplayedRows = updateDisplayedRows;

Dable.prototype.UpdateFooter = updateFooter;

Dable.prototype.UpdateStyle = updateStyle;

Dable.prototype.RemoveStyles = removeStyles;

Dable.prototype.ApplyBaseStyles = applyBaseStyles;

Dable.prototype.ApplyJqueryUIStyles = applyJqueryUIStyles;

Dable.prototype.ApplyBootstrapStyles = applyBootstrapStyles;

Dable.prototype.CheckForTable = checkForTable;

Dable.prototype.GenerateTableFromHtml = generateTableFromHtml;

Dable.prototype.Exists = exists;

Dable.prototype.BuildAll = buildAll;

Dable.prototype.BuildHeader = buildHeader;

Dable.prototype.BuildTable = buildTable;

Dable.prototype.BuildFooter = buildFooter;

Dable.prototype.BuildPager = buildPager;

Dable.prototype.GoToPage = goToPage;

Dable.prototype.FirstPage = function() {
  this.pageNumber = 0;
  this.GoToPage(this.pageNumber);
};

Dable.prototype.PreviousPage = function() {
  this.pageNumber -= 1;
  this.GoToPage(this.pageNumber);
};

Dable.prototype.NextPage = function() {
  this.pageNumber += 1;
  this.GoToPage(this.pageNumber);
};

Dable.prototype.LastPage = lastPage;