Git Product home page Git Product logo

tiefaces's Introduction

Maven Travis Coverage Status License: MIT

Tiefaces Web Sheet

Tiefaces Web Sheet is a JSF UI component (built upon Primefaces) which can render excel templates as Web form. It also use special mark-up in the template to support data input/output.

This is an overview page, please visit TieFaces.org for more information.

Features

Render excel templates as web forms

  • Support multiple sheets
  • Keep Excel formats and styles
  • Keep Excel formulas
  • Support charts and images Render excel as web form

Dynamic Web Form Solution

  • Use expression language to define data.
  • Use special command in the cell comment to define features.
  • Two way binding between data and cell object.
  • Support multiple input/output widget. i.e. calendar, dropdown, inputNumber, inputArea etc.
  • Support nested data collections. i.e. a company include multiple departments while each department include multiple employees.
  • Support add/delete functions for data collections.

Dynamic web solution

Getting Started


TieFaces can be download manually or via maven.

Latest Downloads
Version Binary Source Java Doc
1.0.12 tiefaces-1.0.12.jar tiefaces-1.0.12-sources.jar tiefaces-1.0.12-javadoc.jar

You can also visit download page in tiefaces.org.

Maven
<dependency>  
    <groupId>org.tiefaces</groupId>  
    <artifactId>tiefaces</artifactId>  
    <version>1.0.12</version>  
</dependency>  

Usage


Namespaces

Use namespace below to add TieFaces components to your pages.

xmlns:tie="http://tiefaces.org/tiefaces"

Demo


Please refer to the demo page of tiefaces.org in order to see the full usage of the components.

License


Code released under the MIT License.

tiefaces's People

Contributors

chiarazambe-smeup avatar tiefaces avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

tiefaces's Issues

Update Libraries

Hey nice work on this component. Just so you are inline with PrimeFaces and PF Extensions you should update the following libraries due to Security Vulnerabilities found.

POI -> 3.17 (inline with PF 6.2 version)
Commons Lang -> 3.6 (you are using the ancient 2.x branch)
Google GSON -> 2.8.2 latest version

Hide tab if only has one form

Hide tab title if there's only one form exist.
So more like web form instead of excel sheet.

Add attribute: HideSingleSheetTabTitle
(default is true). If set to false, then always display tab title.

validation errors from context

Hi Jason. We need to send data modified in the online websheet to a server. The server will answer telling us the errors for each field that it doesn't like. So we want tiefaces to show the errors got from server. I soon will do a PR that contains code that extends tiefaces to permit this.

translate labels in modal of remove line

image

Hi Jason!

I would like to translate the all labels in remove line modal, but currently it is only possible to pass the contents the label of the modal body as a parameter to the component.

Error: Component has already been found in the view

When I call the following piece of code that I use because I need to refresh a page that contains a Tiefaces component:

import javax.faces.context.FacesContext;

final FacesContext fc = FacesContext.getCurrentInstance();
return fc.getApplication().getStateManager().getViewState(fc);

I had this exception:

Component ID comptest:i46:websheet_i54:websheettab:j_idt615 has already been found in the view

It seems that the error is caused by tag "binding" inside p:tabView in websheet.xhtml. Infact if I remove the tag the error goes away. I read that tag "binding" can cause that kind of error. Jason @tiefaces what do you think? Is it possible to refactor the code to not use that tag?

possibility to define locale params outside template

Hi Jason!

Actually locale params about date and numbers have to be specified in widgets for inputs. Moreover it's used default locale for outputs. It can be very useful to specify locale formats when setting WebSheetBean, so they can be dynamically injected by the client of the library.

Downloaded file is not updated

Hi Jason! First of all I want to congratulate you for this library! It's a very good job!

I here open an issue about this problem:

  • go to showcase - data input sample
  • modify a cell (ex: C8 from 20% to 40%)
  • download the file -> it is correct
  • modify the same cell (ex: C8 from 40% to 50%)
  • download the file -> it is not updated, C8 still contains 40%
    I'll soon propose you a PR with a patch.

Fixed width style

Current web sheet always use fixed width style in order to show more close to actual excel. But loose the ability to resize according to window's. Need add choice to disable the fixed width style.

Implement validate command.

After migration to new configuration, the validation doesn't work. Implement the syntax like:
$validate{ rule=" $value >= 100" error="...."}
where $value present the current input value
error is for error message

Add $save{ ... } tag command.

Some cells are formula cells, but user may also want them to save into db.
Use $save{ entity.attr } to define save attributes.

attr Rendered problem

The attribute defined on <tie:websheet rendered="false" ~ >

Does not work properly if we recover the value from managed beans. e.g:

erro_tie_sheet

Form Header render issue

If there's null cell exist in row of header, then the color of cells rendered as gray instead of white.

Bug on edit or upload Excel file

Hi, I would like to congratulate you for developing the component, it is very useful.

But i got the following error when:

  1. Download the file clicking in "export result to excel" in url: http://showcase-tiefaces.rhcloud.com/showcase/sheet/WebSheetDataInput.xhtml

  2. Upload the file downloaded on url: http://showcase-tiefaces.rhcloud.com/showcase/sheet/WebSheetUpload.xhtml

  3. The component renderize the sheet with 1 more line

So, i suppose if I re-download this new uploaded file, and resend it. the component will renderize 2 more lines, got it?

Despite this, I really liked the component

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.