GithubHelp home page GithubHelp logo

ng's Introduction

qgrid

Angularjs data grid

examples

https://qgrid.github.io/ng/

installation

core concepts

  • easy to start:
	<q-grid rows="data">
		<q-grid:columns generation="deep">
		</q-grid:columns>
	</grid>
  • virtualization everywhere: rows and columns should be virtualizable
  • considered styles: user should be able to make any css customization in easy format
  • fully customizable: header, cells, rows, footer etc. should be templatable
  • clear javascript: no html templates in javascript

development

  • $ npm install prerequisites
  • $ npm run start start the webpack development server on http:\\localhost:3030\demo
  • $ npm run build:prod create a js bundle with webpack
  • $ npm run lint run code quality tests
  • $ npm run test run tests
  • $ npm run test:debug watch and debug tests

release

  • $ npm run release create release version with tag. You should be authorized as qgrid user to publish it to npm
  • $ npm run publish publish the code to github pages

dependency diagram

We are trying to encapsulate any ui framework(angular in our case) dependencies to the separate module. We believe that it will give us a chance to migrate q-grid to other environments without big efforts(in plans angular2, react and vuejs)

dependecy diagram

licence

Code licensed under MIT license.

references

themes

virtualization

expressions

markdown

test

build

grid

ng's People

Contributors

dmitriy-kostianetskiy avatar etokareva avatar klumba12 avatar munkk avatar qgrid avatar titovmx avatar vkorolev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ng's Issues

The demo pages

  • Investigate other grids demo pages
  • Make small mockup
  • Choose ui framework (e.g. angular material) if we need it
  • Understand how we're going to show demo and code to the demo
  • Publish demo pages to gp(github pages)

Choose the future templating strategy

<q-grid rows='data'>
	<q-grid:head>
   		<q-grid:td key="name.last">
   			<span style="background: #f00;">{{$column.title}}</span>
   		</q-grid:td>
   		<q-grid:td key="birthday">
   			<span style="background: #f00;">{{$column.title}}</span>
   		</q-grid:td>
   	</q-grid:head>
   	<q-grid:body>
   		<q-grid:td key="name.last">
   			<b>{{$cell.value()}}</b>
   		</q-grid:td>
   		<q-grid:td key="birthday">
   			{{$cell.value() | date:'yyyy/mm/dd'}}
   		</q-grid:td>
   	</q-grid:body>
</q-grid>

vs

<q-grid rows='data'>
	<q-grid:column key="name.last">
		<q-grid:head-template>
			<span style="background: #f00;">{{$column.title}}</span>
		</q-grid:head-template> 
		<q-grid:cell-template>
			<b>{{$cell.value()}}</b>
		</q-grid:cell-template>
	</q-grid:column>
	<q-grid:column key="bithday">
   		<q-grid:head-template>
   			<span style="background: #f00;">{{$column.title}}</span>
   		</q-grid:head-template> 
   		<q-grid:cell-template>
   			{{$cell.value() | date:'yyyy/mm/dd'}}
   		</q-grid:cell-template>
   </q-grid:column>   		
</q-grid>

Component names in templates

what we're going to use in templates for defined rows and columns, waiting your comments bellow
My variants

<q-grid:(tr|td)>
<q-grid:(row|column)

q-grid column filter error

This might not be an issue with q-grid itself, but after I enter column filter text and then scroll the column value list , the following error is thrown on each scroll event.

qgrid.js:25454 Uncaught TypeError: items[i] is not a function
at qgrid.js:25454
at qgrid.js:25902
at Object.update (qgrid.js:25530)
at qgrid.js:25755
at Object.apply (qgrid.js:25602)
at Array. (qgrid.js:25753)
at Event.emit (qgrid.js:25500)
at HTMLDivElement.onScroll (qgrid.js:25824)
at HTMLDivElement.dispatch (jquery.js:4435)
at HTMLDivElement.elemData.handle (jquery.js:4121)

<q-grid:model />

<q-grid rows="$ctrl.rows"
              columns="$ctrl.columns"
              selection-mode="cell"
              selection-changed="$ctrl.select($event)">

   <q-grid:head sticky="false"></q-grid:head>
   <q-grid:foot sticky="false"></q-grid:foot>
  
   <q-grid:columns>
        <q-grid:column key="gender" /> 
        <q-grid:column....
   </q-gird:columns>

</q-grid

##vs

<q-grid>

   <q-grid:model for="data" rows="$ctrl.rows" columns="$ctrl.columns"></q-grid:model>
   <q-grid:model for="selection" mode="cell" changed="$ctrl.select($event)"></q-grid:model>
   <q-grid:model for="head" sticky="false"></q-grid:model>
   <q-grid:model for="foot" sticky="false"></q-grid:model>

   <q-grid:columns>
        <q-grid:column key="gender" /> 
        <q-grid:column....
   </q-gird:columns>

</q-grid

Attribute naming convension

pinned="left" vs pin="left"
isVisible, isDefault vs visible, 'default' (reserved)
moveable, filterable, resizable vs canMove, canFilter, canResize

Compound keys

Are we going to support format like that:

    {
      "name": {
	"first": "Diedre",
	"last": "Clinton"
      },
      "gender": "female",
      "birthday": "1959-11-06",
      "contact": {
	"address": {
	  "street": "2 Fraser Ave",
	  "zip": "81223",
	  "city": "Cotopaxi",
	  "state":"CO"
	},
	"email": ["[email protected]",
		  "[email protected]",
		  "[email protected]"],
	"region": "719",
	"phone": ["719-7055896"]
      },
      "likes": ["swimming"],
      "memberSince":"2009-03-14"
    } 

Are we going to support compound keys?
e.g.

$scope.columns = [{
 key: 'name.first', //  compound path
 title: 'First Name'
}
];

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.