Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Enhanced Filtering Functions (Google Adwords Style Filter-Presets, Server-Side Bulk Editing & more) #376

Open
thebarty opened this issue Mar 11, 2013 · 2 comments

Comments

@thebarty
Copy link

Hi guys,

I think the topic of "filtering table data" is a really important one for a great user-interface. This request is actually use-case linked to the Feature Request "Toggable Columns" (#145) as the user might want to set a filter on a column that is actually toggled to NOT being displayed. So it is a good idea to display the filter section as shown in the screenshots above the data-table (and not directly within the table-filters itself).

Furthermore it would be totally awesome to support bulk/mass edits for the selected items (see http://yii-booster.clevertech.biz/extended-grid.html "Bulk Actions").

The best reference for a great filtering-implementation I am aware of is the "Google Adwords" UI.
Please took at the screenshots below to see how they did it.

The enhanced-filter-module should support the following functions:

COLUMN-TYPES:

  • numbers (with compare types " = ", " > ", " < "
  • string (with compare types "contains", "does not contain", "is", "starts with", "ends with")
  • date (with compare types "after", "on", "before")
  • date-range (with date-range picker)
  • options (data-source: an array of options, compare-type: single-select & multi-select)

USER-INTERFACE

  • ability to configure&appy a filter
  • ability to save a configured filter as a preset
  • ability to select a filter from a preset-list
  • ability to trigger bulk/mass actions for the selected items

INTRODUCTION - this is how the google guys did it

Table Overview (no filter selected)
Campaign Management 0

Active Filter-Section on top of the Data-Table
Campaign Management-1

IN DETAIL - this is how the google guys did it

  1. On top of the data-table there is a BUTTON "filter" (showing presets and the "create new filter" action:
    yiibooster-filter-presets-01

  2. When the user hits "create new filter" - A YELLOW CONFIGURATION AREA opens upon the data-table giving the user the option to configure his filter:
    yiibooster-filter-presets-02

  3. When configuring the filter the user can first SELECT THE COLUMN to apply a filter to. The dropdown-list contains the tabel-data column-names.
    yiibooster-filter-presets-03

  4. AFTER selecting a column the module will LOAD THE LINKED "compare type" suitable for the column type ( see the "COLUMN TYPE" list on top of this topic)
    yiibooster-filter-presets-04

  5. The third column shows how google does the COLUMN TYPE "Options"
    yiibooster-filter-presets-05

  6. The fourth column shows how google does the compare types for a column type of "Date"
    yiibooster-filter-presets-06

  7. The third column shows how google does the COLUMN TYPE "Options"
    yiibooster-filter-presets-07

  8. Date-Picker in action for a column-type "Date"
    yiibooster-filter-presets-08

  9. When selecting "save filter" - a text-input shows up for the user to input the filter-name
    yiibooster-filter-presets-09

  10. After saving the filter, the user can now select the filter from the "filter-button"
    yiibooster-filter-presets-10

@thebarty
Copy link
Author

Hi guys,

do you see any chance in getting this implemented? What's your opinion about this?

@hijarian
Copy link
Contributor

tl;dr
I personally think that such a feature is outside of the scope of YiiBooster widget toolkit.

Full explanation:

The feature being described here is a whole complete UI for quering the tabular data. YiiBooster per se positions itself as a widget toolkit, that is, set of components for building such an UIs. It's main idea is to be a wrapper for already-built widgets.

Main problem is that Antonio stuffed into this concept of widget toolkit a complete implementation of UI for managing tabular data, in form of TbGridView, TbExtendedGridView and TbJsonGridView. He just followed the Yii's misconception, because they did the same with CGridView, which you cannot just insert to your UI, instead you need to build your logic around it.

Maybe it's best to separate the extended gridviews from main set of widgets completely.

So, I personally am sure that such an UI is just great, but it's outside of the scope of this project. Maintaining the existing functionality of gridviews is already a great burden. Even if I'll be implementing it, it'll not be anytime soon.

@amrbedair amrbedair modified the milestones: Backlog, 3.0.0 May 8, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants