GithubHelp home page GithubHelp logo

laravel-enso / tables Goto Github PK

View Code? Open in Web Editor NEW
631.0 23.0 78.0 1.06 MB

Bulma themed, VueJS powered Datatable with server-side loading and JSON template setup

Home Page: https://www.laravel-enso.com/examples/table

PHP 99.90% Blade 0.10%
datatable json-template laravel-enso serverside pagination demo laravel

tables's Introduction

Tables

Codacy Badge StyleCI License Total Downloads Latest Stable Version

Data Table package with server-side processing, unlimited exporting and VueJS components. Quickly build any complex table based on a JSON template.

This package can work independently of the Enso ecosystem.

The front end assets that utilize this api are present in the tables package.

For live examples and demos, you may visit laravel-enso.com

Watch the demo

click on the photo to view a short demo in compatible browsers

Themed screenshot

click on the photo to view an export demo in compatible browsers

Installation, Configuration & Usage

Be sure to check out the full documentation for this package available at docs.laravel-enso.com

Contributions

are welcome. Pull requests are great, but issues are good too.

License

This package is released under the MIT license.

tables's People

Contributors

abdullahiabdulkabir avatar aocneanu avatar clnt avatar gandesc avatar gitmanuela avatar heyner29 avatar jlsjonas avatar mauthi avatar raftx24 avatar stmitt avatar stylecibot avatar vmcvlad avatar y0net avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tables's Issues

Warning: Avoid mutating a prop directly (when using filters)

I get the following warning:
[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "filters"

My code:

<vue-table :path="path"
        	:i18n="__"
	        id="partneraccountentries"
	        :removable="removable"
	        :filters="extraFilters"
	        ref="paeTable">
</vue-table>

export default {
    	...
    	data: function() {
    		return {
    			...
	    		"extraFilters": {
				    "partner_account_entries": {
				        "user_id": 18,
				    },
				},
				...
	        };
    	},

How add global button

This is a help request.

Description

how add global button that delete filtered datatable value

Steps to Reproduce

Expected behavior

additional button that pass all datatable value id to controller

Actual behavior

Link to a filtered view

I have the following situation:

  • One page with customers vuetable
  • One page with invoices vuetable and a filter for customers

I would like to do the following:

  • Add a button to customers vuetable
  • By clicking on this button I would like to load the page with invoice vue table and set filter to the single customer

Maybe this is already possible and I just need a quick hint? Otherwise it would be nice if you can add this as feature request

Add customfilters to datatable

This is a feature request.

Description

if request has custom filter fields how catch them in ExampleTable.php query method.

Steps to Reproduce

Expected behavior

if filters have custom field i want to join other table and add multiple where condition to query.
where multiple condition check required.

Actual behavior

filters add column it only check equal that field

Possibility to manipulate data

At the moment it's only possible to use a raw query for VueDatatable - makes sense in combination with searching, sorting, ...

I'm looking for a possibility to manipulate the data before it is returned.
Let me explain this with a simple example (my real use cases are a little bit more difficult but with this example you should get the idea):

  • I have a customers table in my application
  • Each customer has an output name
    -- if customer_type == business then output_name = oranization
    -- if customer_type == consumer then output_name = firstname." ".lastname
  • at the moment I have both
    -- a getOutputNameAttribute() function on my model which creates the output_name like described above AND
    -- a IF(xxx) in my raw sql query which creates the output name based on the same logic on database layer
  • I would like to have the creation for output name just on php layer - therefore it would be nice if I can loop through the result data and manipulate data (or better use the model class)

Is this somehow possible at the moment or do you have an idea for future?

Customize modal message

This is a feature request.

Description

I would like to do the following:

  • I have an invoice table
  • At the end I have a button: Send Invoice to client
  • In the modal I would like to show something like: The selected invoice will be send to client (<client_email). Are you sure?
  • I have the client email as rogue column in table
  • But I don't know how to get it into modal text??

Is this possible somehow?

Feature request: Tooltip for icon columns

It would be nice if we can set a tooltip for columns with meta = icon

  • Easy solution (first step): Same tooltip for every row
  • Second step: Define another column to read the tooltip

Example:

Add date option to the template

Will work only with Carbon dates.

We will have a date option for the columns meta array that will use a default value, from config.

We will have datae: format for the columns object that will use a custom format

export excel return 414 Request-URI Too Large

This is a bug request.

Prerequisites

  • Are you running the latest version?
  • Are you reporting to the correct repository?
  • Did you check the documentation?
  • Did you perform a cursory search?

Description

When export button click nginx return 414 Request-URI Too Large

my url http://enso.test/api/barilga/exportExcel?&name=barilga+burtgel&columns[]=%7B%22label%22:%22%D0%97%D0%BE%D1%80%D0%B8%D1%83%D0%BB%D0%B0%D0%BB%D1%82%22,%22name%22:%22zoriulalts_label%22,%22data%22:%22t_barilga.zoriulalts_label%22,%22meta%22:%7B%22searchable%22:false,%22sortable%22:true,%22translation%22:false,%22boolean%22:false,%22slot%22:false,%22rogue%22:false,%22editable%22:false,%22total%22:false,%22render%22:false,%22date%22:false,%22icon%22:false,%22clickable%22:false,%22visible%22:true,%22sort%22:null,%22hidden%22:false%7D%7D&columns[]=%7B%22label%22:%22%D0%94%D2%AF%D2%AF%D1%80%D1%8D%D0%B3%22,%22name%22:%22sum_duureg_ner%22,%22data%22:%22t_barilga.sum_duureg_ner%22,%22meta%22:%7B%22searchable%22:false,%22sortable%22:true,%22translation%22:false,%22boolean%22:false,%22slot%22:false,%22rogue%22:false,%22editable%22:false,%22total%22:false,%22render%22:false,%22date%22:false,%22icon%22:false,%22clickable%22:false,%22visible%22:true,%22sort%22:null,%22hidden%22:false%7D%7D&columns[]=%7B%22label%22:%22%D0%A5%D0%BE%D1%80%D0%BE%D0%BE%D0%BB%D0%BE%D0%BB%22,%22name%22:%22horoolol_ner%22,%22data%22:%22t_barilga.horoolol_ner%22,%22meta%22:%7B%22searchable%22:false,%22sortable%22:true,%22translation%22:false,%22boolean%22:false,%22slot%22:false,%22rogue%22:false,%22editable%22:false,%22total%22:false,%22render%22:false,%22date%22:false,%22icon%22:false,%22clickable%22:false,%22visible%22:true,%22sort%22:null,%22hidden%22:false%7D%7D&columns[]=%7B%22label%22:%22%D0%A5%D0%BE%D1%82%D1%85%D0%BE%D0%BD%22,%22name%22:%22hothon_ner%22,%22data%22:%22t_barilga.hothon_ner%22,%22meta%22:%7B%22searchable%22:false,%22sortable%22:true,%22translation%22:false,%22boolean%22:false,%22slot%22:false,%22rogue%22:false,%22editable%22:false,%22total%22:false,%22render%22:false,%22date%22:false,%22icon%22:false,%22clickable%22:false,%22visible%22:true,%22sort%22:null,%22hidden%22:false%7D%7D&columns[]=%7B%22label%22:%22%D0%91%D0%B0%D0%B9%D1%80%D1%88%D0%B8%D0%BB%22,%22name%22:%22bairshil%22,%22data%22:%22bairshil%22,%22meta%22:%7B%22searchable%22:false,%22sortable%22:true,%22translation%22:false,%22boolean%22:false,%22slot%22:false,%22rogue%22:false,%22editable%22:false,%22total%22:false,%22render%22:false,%22date%22:false,%22icon%22:false,%22clickable%22:false,%22visible%22:true,%22sort%22:null,%22hidden%22:false%7D%7D&columns[]=%7B%22label%22:%22%D0%9D%D1%8D%D1%80,+%D0%B4%D1%83%D0%B3%D0%B0%D0%B0%D1%80%22,%22name%22:%22t_barilga_ner%22,%22data%22:%22t_barilga.ner%22,%22meta%22:%7B%22searchable%22:true,%22sortable%22:true,%22translation%22:false,%22boolean%22:false,%22slot%22:false,%22rogue%22:false,%22editable%22:false,%22total%22:false,%22render%22:false,%22date%22:false,%22icon%22:false,%22clickable%22:false,%22visible%22:true,%22sort%22:null,%22hidden%22:false%7D%7D&columns[]=%7B%22label%22:%22%D0%97%D0%B0%D1%85%D0%B8%D0%B0%D0%BB%D0%B0%D0%B3%D1%87%22,%22name%22:%22zahialagch_ner_label%22,%22data%22:%22zahialagch_ner_label%22,%22meta%22:%7B%22searchable%22:false,%22sortable%22:true,%22translation%22:false,%22boolean%22:false,%22slot%22:false,%22rogue%22:false,%22editable%22:false,%22total%22:false,%22render%22:false,%22date%22:false,%22icon%22:false,%22clickable%22:false,%22visible%22:true,%22sort%22:null,%22hidden%22:false%7D%7D&columns[]=%7B%22label%22:%22%D0%90%D1%88%D0%B8%D0%B3%D0%BB%D0%B0%D0%B3%D0%B4%D0%B0%D0%B0%D0%B3%D2%AF%D0%B9+%D1%82%D3%A9%D0%BB%D3%A9%D0%B2%22,%22name%22:%22ashiglagdaagui_ner%22,%22data%22:%22ashiglagdaagui_ner%22,%22meta%22:%7B%22searchable%22:false,%22sortable%22:true,%22translation%22:false,%22boolean%22:false,%22slot%22:false,%22rogue%22:false,%22editable%22:false,%22total%22:false,%22render%22:false,%22date%22:false,%22icon%22:false,%22clickable%22:false,%22visible%22:true,%22sort%22:null,%22hidden%22:false%7D%7D&columns[]=%7B%22label%22:%22%D0%90%D1%88%D0%B8%D0%B3%D0%BB%D0%B0%D0%BB%D1%82%D0%B0%D0%BD%D0%B4+%D0%BE%D1%80%D1%81%D0%BE%D0%BD%22,%22name%22:%22aorson_ognoo%22,%22data%22:%22aorson_ognoo%22,%22meta%22:%7B%22searchable%22:false,%22sortable%22:false,%22translation%22:false,%22boolean%22:false,%22slot%22:false,%22rogue%22:false,%22editable%22:false,%22total%22:false,%22render%22:false,%22date%22:true,%22icon%22:false,%22clickable%22:false,%22visible%22:true,%22sort%22:null,%22hidden%22:true%7D%7D&columns[]=%7B%22label%22:%22%D0%94%D0%B0%D0%B2%D1%85%D0%B0%D1%80%22,%22name%22:%22davhar_too%22,%22data%22:%22davhar_too%22,%22meta%22:%7B%22searchable%22:false,%22sortable%22:true,%22translation%22:false,%22boolean%22:false,%22slot%22:false,%22rogue%22:false,%22editable%22:false,%22total%22:false,%22render%22:false,%22date%22:false,%22icon%22:false,%22clickable%22:false,%22visible%22:true,%22sort%22:null,%22hidden%22:true%7D%7D&columns[]=%7B%22label%22:%22%D0%90%D1%88%D0%B8%D0%B3%D1%82%D0%B0%D0%B9+%D1%82%D0%B0%D0%BB%D0%B1%D0%B0%D0%B9%22,%22name%22:%22ashigtai_talbai%22,%22data%22:%22ashigtai_talbai%22,%22meta%22:%7B%22searchable%22:false,%22sortable%22:true,%22translation%22:false,%22boolean%22:false,%22slot%22:false,%22rogue%22:false,%22editable%22:false,%22total%22:false,%22render%22:false,%22date%22:false,%22icon%22:false,%22clickable%22:false,%22visible%22:true,%22sort%22:null,%22hidden%22:true%7D%7D&columns[]=%7B%22label%22:%22%D0%91%D2%AF%D1%81%22,%22name%22:%22bus_ner%22,%22data%22:%22t_barilga.bus_ner%22,%22meta%22:%7B%22searchable%22:false,%22sortable%22:true,%22translation%22:false,%22boolean%22:false,%22slot%22:false,%22rogue%22:false,%22editable%22:false,%22total%22:false,%22render%22:false,%22date%22:false,%22icon%22:false,%22clickable%22:false,%22visible%22:true,%22sort%22:null,%22hidden%22:true%7D%7D&columns[]=%7B%22label%22:%22%D0%90%D0%B9%D0%BC%D0%B0%D0%B3,+%D0%B4%D2%AF%D2%AF%D1%80%D1%8D%D0%B3%22,%22name%22:%22aimag_ner%22,%22data%22:%22t_barilga.aimag_ner%22,%22meta%22:%7B%22searchable%22:false,%22sortable%22:true,%22translation%22:false,%22boolean%22:false,%22slot%22:false,%22rogue%22:false,%22editable%22:false,%22total%22:false,%22render%22:false,%22date%22:false,%22icon%22:false,%22clickable%22:false,%22visible%22:true,%22sort%22:null,%22hidden%22:true%7D%7D&columns[]=%7B%22label%22:%22%D0%91%D0%B0%D0%B3,+%D1%85%D0%BE%D1%80%D0%BE%D0%BE%22,%22name%22:%22bag_horoo_ner%22,%22data%22:%22t_barilga.bag_horoo_ner%22,%22meta%22:%7B%22searchable%22:false,%22sortable%22:true,%22translation%22:false,%22boolean%22:false,%22slot%22:false,%22rogue%22:false,%22editable%22:false,%22total%22:false,%22render%22:false,%22date%22:false,%22icon%22:false,%22clickable%22:false,%22visible%22:true,%22sort%22:null,%22hidden%22:true%7D%7D&columns[]=%7B%22label%22:%22%D0%90%D1%88%D0%B8%D0%B3%D0%BB%D0%B0%D0%B3%D0%B4%D0%B0%D0%B6+%D0%B1%D0%B0%D0%B9%D0%B3%D0%B0%D0%B0%22,%22name%22:%22is_active%22,%22data%22:%22t_barilga.is_active%22,%22meta%22:%7B%22searchable%22:false,%22sortable%22:true,%22translation%22:false,%22boolean%22:true,%22slot%22:false,%22rogue%22:false,%22editable%22:false,%22total%22:false,%22render%22:false,%22date%22:false,%22icon%22:false,%22clickable%22:false,%22visible%22:true,%22sort%22:null,%22hidden%22:true%7D%7D&columns[]=%7B%22label%22:%22%D0%A2%D0%B0%D0%B9%D0%BB%D0%B1%D0%B0%D1%80%22,%22name%22:%22delgerengui%22,%22data%22:%22delgerengui%22,%22meta%22:%7B%22searchable%22:true,%22sortable%22:true,%22translation%22:false,%22boolean%22:false,%22slot%22:false,%22rogue%22:false,%22editable%22:false,%22total%22:false,%22render%22:false,%22date%22:false,%22icon%22:false,%22clickable%22:false,%22visible%22:true,%22sort%22:null,%22hidden%22:true%7D%7D&columns[]=%7B%22label%22:%22%D2%AE%D2%AF%D1%81%D0%B3%D1%8D%D1%81%D1%8D%D0%BD%22,%22name%22:%22created_at%22,%22data%22:%22created_at%22,%22meta%22:%7B%22searchable%22:false,%22sortable%22:false,%22translation%22:false,%22boolean%22:false,%22slot%22:false,%22rogue%22:false,%22editable%22:false,%22total%22:false,%22render%22:false,%22date%22:true,%22icon%22:false,%22clickable%22:false,%22visible%22:true,%22sort%22:null,%22hidden%22:true%7D%7D&columns[]=%7B%22label%22:%22%D3%A8%D3%A9%D1%80%D1%87%D0%B8%D0%BB%D1%81%D3%A9%D0%BD%22,%22name%22:%22updated_at%22,%22data%22:%22updated_at%22,%22meta%22:%7B%22searchable%22:false,%22sortable%22:false,%22translation%22:false,%22boolean%22:false,%22slot%22:false,%22rogue%22:false,%22editable%22:false,%22total%22:false,%22render%22:false,%22date%22:true,%22icon%22:false,%22clickable%22:false,%22visible%22:true,%22sort%22:null,%22hidden%22:true%7D%7D&meta=%7B%22start%22:0,%22length%22:90,%22sort%22:false,%22enum%22:false,%22date%22:true,%22total%22:false%7D&search=d&appends[]=zoriulalts_label&appends[]=aimag_ner&appends[]=sum_duureg_ner&appends[]=bus_ner&appends[]=horoolol_ner&appends[]=bag_horoo_ner&appends[]=hothon_ner&appends[]=bairshil&appends[]=ashiglagdaagui_ner&appends[]=zahialagch_ner_label&filters=%7B%22t_barilga%22:%7B%22is_active%22:null,%22is_imported%22:null,%22ashiglaagui_tuluv_id%22:[]%7D,%22t_hayag%22:%7B%22aimag_id%22:[],%22bus_id%22:null,%22sum_duureg_id%22:null,%22bag_horoo_id%22:null,%22horoolol_id%22:null,%22hothon_id%22:null,%22bairshil%22:null%7D%7D&intervals=%7B%22t_barilga%22:%7B%22aorson_ognoo%22:%7B%22min%22:null,%22max%22:null,%22dbDateFormat%22:%22Y-m-d%22%7D,%22created_at%22:%7B%22min%22:null,%22max%22:null,%22dbDateFormat%22:%22Y-m-d%22%7D,%22davhar_too%22:%7B%22min%22:null,%22max%22:null%7D%7D%7D&params=%7B%22ner%22:null,%22zahialagch%22:null,%22zoriulalts%22:[]%7D

Steps to Reproduce

Expected behavior

Actual behavior

Add fullInfoRecordLimit

For really large tables the count of filtered recored and totals for every request has a major impact in the overall table performance, user experience.

By adding the fullInfoRecordLimit to the global configuration we can set a limit, depending of the server's capabilities, that will allow the builder to skip computation of the filtered / totals when it detects that the query's records go above the safe zone. When this happends, a new info control will appear that will get the detailed info on demand, only for that request.

global button does not appear

This is a bug request.

Description

Steps to Reproduce

my barilgaTable.json

"buttons": [
    "excel",
    "create",
    "edit",
    "destroy",
    {
      "type": "global",
      "icon": "trash",
      "class": "is-danger",
      "routeSuffix": "delete",
      "event": "delete",
      "postEvent": "delete-done",
      "action": "ajax",
      "method": "PATCH",
      "label": "Устгах"
    }
  ],

class BarilgaDeleteAction extends Action
{
    public function process()
    {
        \Log::info($this->data());
    }
}

class BarilgaTableController extends Controller
{
    use Datatable, Excel, Action;

    protected $tableClass = BarilgaTable::class;
    protected $actionClass = BarilgaDeleteAction::class;
    protected $chunk = 2;

}

Route::patch('delete', 'BarilgaTableController@action')
                    ->name('delete');

composer updated

Expected behavior

log filtered id

Actual behavior

button does not appear

Money values not rendered correctly

This is a bug.

Description

I have the column defined as the following:

{
            "label": "Amount",
            "name": "amount",
            "data": "amount",
            "money": {
                "symbol": "€",
                "format": "%s %v",
                "precision": 2,
                "thousand": ".",
                "decimal": ","
            },
            "meta": [ "searchable", "sortable", "total" ]
        },

Value in database: 150.00
Output: € 15.000,00
screenshot 2018-03-30 10 57 20

Steps to Reproduce

see above

Expected behavior

Output: € 150,00

Actual behavior

Output: € 15.000,00

Error in displaying toastr

Hi,
when rendering a VueDatatable I get this error from console:
Error in render: "TypeError: _this.$toastr is undefined"

Please take note that I'm using Laravel Enso package. Thanks in advance

Improve xls export

The logic responsible with the xls export needs to be moved in the queued job.

How to install it step by step !

Hi,
Thank you so much for this nice package.
I tried to install it but I don't know how to start ! please could you show us step by step ?

  1. Download.
  2. Publish.
  3. Config.
    4.. etc

Thanks.

Datatable how add multiple selected values in 1 column

This is a bug | feature request.

Prerequisites

  • Are you running the latest version?
  • Are you reporting to the correct repository?
  • Did you check the documentation?
  • Did you perform a cursory search?

Description

i have to add column that contain multiple options.
i used group_concat. but datatable's total value changed wrong cause of group by

Steps to Reproduce

Expected behavior

If possible add a column to menus index datatable show which roles selected.

Actual behavior

multiple select action with checkboxes

feature request
Add a multiple select action with checkboxes ? And a global checkbox to check all. And a button to make request with selected rows.

For example check all button and delete all checked items or make custom operation.

Menu have multiple levels

This is a feature request.

Prerequisites

  • [ x] Are you running the latest version?
  • [ x] Are you reporting to the correct repository?
  • [ x] Did you check the documentation?
  • [ x] Did you perform a cursory search?

Description

We are loving this framework but we have some major headache as our business has a requirement that need to implement 2+ levels inside the menu. We already worked on this for 4d+ and are unable to get it right.

How can we do this, is there an update planned? How to write this code ourselves?

If we cannot get this right we cannot use this framework anymore :(

Steps to Reproduce

Always

Expected behavior

Allow the model to have n+ levels, always add a few spaces on the indentation

Actual behavior

only 2 levels

Change translation keys of records info

        fromInfo() {
            return `(${this.i18n('filtered')} ${this.i18n('from')} ${this.body.count} \
            ${this.i18n('total')} ${this.i18n('records')})`;
        },

In English it's ok: filtered from 4711 total records
But in German I'm not able to translate it with 4 words - should be gefiltert aus insgesamt 4711 Einträgen

1st solution:

  • combine filtered from and total records
    2nd solution:
  • invent something like filtered from %s total records (can be useful for other use cases - and I know this kind of translations with placeholders from other systems)

Potential PHP 7.2 related issue - syntax error in line 23

https://github.com/laravel-enso/VueDatatable/blob/4c2f3b8af7308d36512b8a6a3336e4da6212e069/src/app/Classes/Template/Builders/Buttons.php#L20-L26

[2018-01-14 00:51:39] local.ERROR: Parse error: syntax error, unexpected '=' {"userId":1,"email":"[email protected]","exception":"[object] (Symfony\Component\Debug\Exception\FatalThrowableError(code: 0): Parse error: syntax error, unexpected '=' at /var/www/clients/client1/web2/web/vendor/laravel-enso/vuedatatable/src/app/Classes/Template/Builders/Buttons.php:23)

I did not find solution yet, the php version is:
PHP 7.2.1-1+0~20180105151615.16+stretch~1.gbpd3910a (cli) (built: Jan 5 2018 15:16:17) ( NTS )

Feature request: Define pre defined column "views" for tables

It would be nice if we can store pre defined "column views" for tables.

Example:

  • I have a table for customers with > 20 columns
  • Sometimes I need address, phone, eg. of customer - sometimes I need revenue, hours tracked, ...
  • I don't want to create 2 vue-tables in my application
  • It would be easy if we can define different views:
  1. contact view: show customer number, name, address, phone, ... - hide revenue, hours tracked, ...
  2. accounting view: show customer number, name, revenue, hours tracked, ... - hide address, phone, ...

Do you know what I mean?

Localisation of ExportNotification

This is a bug.

Description

There are some localisation things missing:

  • Notification text ('Export emailed: '.$this->name.' Table')
  • Subject of mail
  • BroadcastMessage? (export notification)
  • Mail Text is OK

Steps to Reproduce

Start a report
Start php artisan queue:work

Expected behavior

Text should be translateable

Actual behavior

Text is in english only

Plus icon (responsive) not visible if "crtNo": false (bug?)

Is this a bug? If I don't use crtNo the table has a horizontal scrollbar because there is no column available for plus icon?

Is there a solution for that? I don't want to show a row number here because the second column is the customer_number and the 2 numbers would confuse users.

Load additional data for one row

Use case:
I have an invoice table - works fine
But I would like to have a possibility to display da items on this invoice after clicking e.g. an info button

Do you have thought on such an use case already?

Missing dependencies

Hi there and thank you for the component.

Just a heads-up that using this component independant of laravel/enso project needs a lot more
setup than described in the readme.
Don't know if it's in scope, but I'll try to resume here what needs to be done:

  1. In the documentation, on step 4 there is a Toastr import that is not in the assets for this package. I assume that this package should have laravel-enso/vuecomponents as a dependency, since there is where the Toastr component lives.
  2. There are a few npm dependencies missing for the missing icons if using the example provided:
  • @ fortawesome/fontawesome
  • @ fortawesome/fontawesome-free-solid
  • @ fortawesome/fontawesome-free-brands
    This icons need to be imported at some point during the app like this:
    import { faUpload } from '@fortawesome/fontawesome-free-solid/shakable.es';
    fontawesome.library.add([faUpload]);
    This has to be done for any icons that will be used in the datatables (or referenced by table json that gets loaded into the controller).
  1. @ fortawesome/vue-fontawesome needs to be installed with npm/yarn, imported in the bootstrap file and the component registered globally:
import FontAwesomeIcon from '@fortawesome/vue-fontawesome';
Vue.component('fa', FontAwesomeIcon);

Hope it helps someone.

Totel row not aligned correctly

This is a bug.

Description

If you change alignment the total row stays centered.

Steps to Reproduce

Open table
Add meta total to at least one column
Align columns to right

Expected behavior

Total row column should have the same alignment as table column

Actual behavior

Total row column has center alignment

screenshot 2018-03-29 12 58 22

Maybe we should think about alignment-settings on column layer (because for text columns left alignment makes sense - for decimal total columns right alignment is better)?

Totals on demand

Where we have to many results (eg: 3 mil) we will display the totals only when we click a dedicated button.

Feature request: Add searchable, hidden columns

At the moment it's only possible to search within displayed columns - because the sort() function in Table Class loops through columns array.

$this->columns->each(function ($column) {
            if ($column->meta->sortable && $column->meta->sort) {
                $this->query->orderBy($column->data, $column->meta->sort);
            }
        });

Sometimes it would be necessary to search other columns - let me explain this with an example:

  • In my table I have a icon column for url and e-mail (to save space I don't want to output full url, only clickable icon)
  • But it would be nice to search for url too

Possible solution:

  • add "hidden" columns to table config (or better add another config value equal to "appends") where we can define columns which are sortable but not rendered in table?
  • should be an easy solution and useful for everybody?

Reload other component if delete is finished

This is a help request.

Description

I try to do the following:

  • After a row is deleted an other component should be reloaded

My problem is:

  • neither the destroy nor the ajax event on table is send after the deletion has finished
  • Would it be possible to add an after deletion finished event?

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.