GithubHelp home page GithubHelp logo

gravitykit / gravityview Goto Github PK

View Code? Open in Web Editor NEW
245.0 30.0 62.0 99.69 MB

The best and easiest way to display Gravity Forms entries on your website.

Home Page: https://www.gravitykit.com/products/gravityview/

CSS 0.47% PHP 89.19% JavaScript 6.59% HTML 0.21% Shell 0.03% SCSS 3.52%
crm database gravity gravity-forms gravity-forms-addon no-code wordpress wordpress-plugin

gravityview's Introduction

GravityView (Floaty loves you!)

CircleCI

GravityView is a commercial plugin available from https://www.gravitykit.com. The plugin is hosted here on a public GitHub repository to better facilitate community contributions from developers and users. If you have a suggestion, a bug report, or a patch for an issue, feel free to submit it here.

If you are using the plugin on a live site, please purchase a valid license from the website. We cannot provide support to anyone that does not hold a valid license key.


Installation Instructions

To install the plugin, download the latest release to your WordPress plugins folder and then activate it.

For Developers

If you wish to make changes to the plugin, you need to install the necessary dependencies and compile assets. First, a couple of prerequisites:

  1. Make sure that you have the full plugin source code by either cloning this repo or downloading the source code (not the versioned release) from the Releases section.

  2. Install Composer

  3. Install Node.js

    • We recommend a Node.js version manager for Linux/macOS or Windows
    • Run npm install -g grunt-cli if this the first time you've installed Node.js or switched to a new version

Next, install dependencies:

  1. Run composer public-install to install Composer dependencies, including development dependencies, or composer public-install-no-dev if you don't need the development dependencies

    • If you have access to private GravityKit repositories, you can run composer install or composer install --no-dev instead
  2. Run npm install to install Node.js dependencies

To compile/minify UI assets, run grunt or use the following commands separately:

  1. grunt sass & grunt postcss to compile and minify CSS files

  2. grunt uglify to minify JavaScript files

  3. grunt imagemin to minify images

You do not have to run the commands if submitting a pull request as the minification process is handled by our CI/CD pipeline.

Unit Tests

We offer preconfigured Docker containers and a custom Bash script to facilitate running unit tests using multiple PHP versions in a predictable environment. Visit our Tooling repo for information regarding how to configure and run tests.

If you wish to run tests using your local environment, use the following instructions:

  1. Clone the WordPress Develop and Gravity Forms repositories

  2. In the cloned repository folder, copy wp-tests-config-sample.php to wp-tests-config.php, and edit wp-tests-config.php to define the following constants:

    define('DB_NAME', getenv('DB_NAME'));
    define('DB_USER', getenv('DB_USER'));
    define('DB_PASSWORD', getenv('DB_PASSWORD'));
    define('DB_HOST', getenv('DB_HOST'));
  3. Run PHPUnit using the following command (ensure to replace placeholders with your actual system values):

    DB_NAME=db_name \
    DB_USER=db_user \
    DB_PASSWORD=db_password \
    DB_HOST=db_host \
    GF_PLUGIN_DIR=/path/to/gravityforms \
    WP_TESTS_DIR=/path/to/wordpress-develop/tests/phpunit \
    vendor/bin/phpunit --no-coverage

    Alternatively, you can copy phpunit.xml.dist to phpunit.xml, and edit phpunit.xml to set the environment variables there:

    <php>
        <const name="DOING_GRAVITYVIEW_TESTS" value="1" />
        <env name="DB_NAME" value="db_name"/>
        <env name="DB_USER" value="db_user"/>
        <env name="DB_PASSWORD" value="db_password"/>
        <env name="DB_HOST" value="db_host"/>
        <env name="GF_PLUGIN_DIR" value="/path/to/gravityforms"/>
        <env name="WP_TESTS_DIR" value="/path/to/wordpress-develop/tests/phpunit"/>
    </php>

Acknowledgements

We are thankful to the following open source software that help enhance our plugin:

gravityview's People

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

gravityview's Issues

GF merge tag fields available for the Fields' labels

GF resources:

examples from GF:

Implementation:
Add a jQuery Autocomplete dropdown list inline with the custom label input field where the possible merge tags are listed.
During the frontend execution, replace the tag by the value (if information is available) using the Gravity Forms common functions.

Cost: $ 200 / duration: 1 day

┆Issue is synchronized with this Asana task

DataTables Integration

Integrate DataTables with GravityForms

Add server-side search using the Gravity Forms API to live-update results. Only for the Table view, of course.

The DataTables script and every extension should have filterable configurations via wp_localize_script.

Notes

Extensions

Specs

  • It should be separate code; created as a GV Extension
  • A new DataTables View type. It would be a Table view without the search / page links / pagination widgets - they're provided by DataTables.
    • Hide default widgets
    • Provide styling options (class text field with display as default? see classes)
  • There would be settings metabox available for the DataTables Extensions
  • The GravityView settings will be used to set DataTables settings
    • "Entries to show per page" setting will be used to set pageLength
    • Sort by field for order

Questions:

  • I don't know that DataTables View would even have a single entry view. Their examples don't show one. Thoughts?
  • Does it require a new View type?

┆Issue is synchronized with this Asana task

Check for empty active areas

Blank widget areas throw PHP notices.

Notice: Undefined index: single-list-footer in /Users/zackkatz/Sites/wordpress/wp-content/plugins/gravityview/templates/list-single.php on line 26

Warning: Invalid argument supplied for foreach() in /Users/zackkatz/Sites/wordpress/wp-content/plugins/gravityview/templates/list-single.php on line 26

┆Issue is synchronized with this Asana task

Use view picker instead of `<select>`

I think it'd be nicer to pick visual layouts instead of the dropdown...or maybe use the dropdown and have it swap out a theme screenshot image. Thoughts?

1c4fdbfc-50b3-11e3-8a58-c7b3998a2822

┆Issue is synchronized with this Asana task

Add a generic "go to entry" field

At the View editor, add the generic go to entry field in the available fields list. This field must have the "Link to single entry" option checked by default.

┆Issue is synchronized with this Asana task

Fix minor widget checkboxes visuals

  • The padding is really big vertically. Maybe add row borders or use .alt row classes?
    screenshot 2014-03-05 13 35 27
  • Convert label <td>s to <th scope="row">
  • Move col <th>s into <thead>

┆Issue is synchronized with this Asana task

Social Profile Integration

Add fields for entries to enter their Social Profiles when creating the entry. (This might just be a separate Gravity Forms add-on)

Supports the following networks:

  • Twitter
  • Facebook
  • Google+
  • LinkedIn
  • Pinterest

Also contains validation for the profiles.

%202014-04-15%2000.23.48.png/fx5BDc9YT4eHLpusUAqQfpiZ2xsNBuMccYLtD1Dtdfc

Related #50

┆Issue is synchronized with this Asana task

Add "Contact" functionality to entries

Allow users to contact entries by embedding a contact form.

Maybe have it be a GravityView form field type called "Contact Form" - then have a drop-down selector where users can select a Gravity Form to embed.

┆Issue is synchronized with this Asana task

Featured Entries

Extension features

  • Allow admins to feature entries by using the entry star built in to Gravity Forms
  • Have featured entries shown above all other non-featured entries
    • But also have a filter to enable featured entries to be shown inline with CSS class
  • Add class to featured entry container using gv_class() filter
  • Use a preset class name (something like gv-featured-entry) and add a filter to allow for changing the CSS class name
  • Enqueue CSS file on front-end with highlight CSS

┆Issue is synchronized with this Asana task

Premium Map View

Backend

Global Settings

These settings should be set in the GravityView Settings page:

  • Google Maps API key
  • Map language

Metabox in GravityView "Edit View" Screen

  • Have a AJAX-populated drop-down field that allows the admin to select an Address Field from the selected form. This address field will be used as the source for Geolocation.
  • Have a picker for an icon to be used as pins on the map. There should be a point-and-click selection of Google Maps icons. Also, allow uploading some custom icons.
  • Set the map settings, including the map type initial map zoom

Frontend

  • Build a template for the directory view to show entries over a map (pins). Entries must have GPS coordinates (Latitude/Longitude). On mouse click over a pin, show a div below the map showing the entry details. included in bid
  • Have a side-by-side design (see Trulia Map view or Yelp search)
    • Maps based on Google Maps API V3.
    • Map on one side, Entries on the other in vertical scroller
    • When hovering over single entry, map pin highlights
    • When hovering over map pin, entry highlights
    • When clicking, show summary
  • On entry page, show map. See here for example
  • When the view is loaded, the Google API should be used to Geolocate the entries based on the selected address field. This should happen in PHP, (NOT JS) so that the address lat/long can be stored as entry meta.
    • The geolocation data for each entry should be cleared when the entry is updated

Other

  • I'm contacting the developer of the Gravity Forms Geo Fields plugin to see if they're open to having that integrated with the GV plugin. They have done lots of the work.

┆Issue is synchronized with this Asana task

Star Ratings & Entry Reviews

Enable ratings for entries in star rating format and also Upvote/Downvote format

Features

Ideas:

  • Include a few star style options? Just use Dashicons or allow for selecting styles?
  • Use wp_star_rating() to generate the rating
  • Maybe use Comment Popularity plugin for comment voting
  • Using the WordPress comments, maybe we could fake having an impossibly high Post ID as the base, like PHP_INT_MAX / 2, then for GF Entry ID 40, the fake post ID would be PHP_INT_MAX / 2 + 40

Todos:

  • How to save the ratings (GF meta?)
  • How to save the comments, attach to ratings
  • Define the options for the feature
  • Get a quote

┆Issue is synchronized with this Asana task

Remove `outline` for tabs

Just a stupid little issue I have - I know it's not as good for accessibility, but I really don't like active outlines.
screenshot 2014-03-05 12 49 09

┆Issue is synchronized with this Asana task

Create default templates

  • Business Table view (Business Data)
  • Business Listing view
  • Person Listing view (Profiles)
  • Person Table view
  • Job Board Listing view
  • Resume Board Listing view
  • Staff Profiles
  • Website Showcase
  • Event Listings

┆Issue is synchronized with this Asana task

Best way to manage List view templates

I've started playing around with the list view, and it's good, but not great. It's hard to configure.

How do we currently create a nice link to the entry in the footer?
edit_view__kws_development__wordpress

I propose having the GF merge tag fields available for the labels. This would make the functionality powerful. Please let me know what this would take.

screenshot 2014-03-28 14 09 01

screenshot 2014-03-28 14 09 14

┆Issue is synchronized with this Asana task

Add logging using GFLogging

Hi Luis,
I'd like to add logging to the plugin, especially helpful for debugging things like entry and field visibility. Thoughts?

┆Issue is synchronized with this Asana task

Multi-part fields should have pieces available

  • Name fields should have Name (Full), First name, Last name
  • Advanced name fields should have Name (Full), Prefix, First, Middle, Last, Suffix
  • Checkboxes should have each option available separately and also the combined (imploded?) field value.
  • et cetera

┆Issue is synchronized with this Asana task

Business Hours field

Create a new Gravity Forms field type

Allow user to enter hours for a business, per day.

Specs

  • There should be a new Gravity Forms field created using the gform_add_field_buttons hook (see Gravity Forms documentation)
  • Make sure the data is rendered properly in the View Entry screen in Gravity Forms
    • Use gform_save_field_value to store the value (see docs)
    • Use gform_get_input_value (see docs) to retrieve and display the value in the admin (see bottom screenshot)
    • Store data in a logical format that is easy to parse
  • Each method should be commented in phpDoc format with summary, description (if necessary), @param and @returns tags
  • The plugin should have it's own text domain (gravityview-business-hours) and all strings should be properly configured for WordPress internationalization (see here)
  • The code should be written in the WordPress PHP Coding Standards

Functionality

  • Each row will have three drop-down fields: Day of the Week, Start, End Time
  • Time increments of 30 minutes
  • Have options for closing after midnight (see screenshot)
  • Once a start time is selected, the end time in the same row should prevent earlier times from being selected (if 8:30am start time is selected, the first end time possible will be 9pm - see screenshot)
  • There can be more than one start/end time per day (a business may be open from 8am - 1pm and 3pm - 10pm on the same day)
  • After adding hours for a day, the Day <select> should move to the next day (Add hours for Tuesday, the dropdown selects Wednesday)
  • The days of the week should be localized using the date_i18n() function
  • The "Add Hours" button and "Remove" links should be formatted using Gravity Forms' + and - icon font buttons
  • The value should be "Closed" for any day where there are no hours added

You can download Gravity Forms here. A Gravity Forms license key and plugin file will be provided on request.


screen shot 2014-12-09 at 2 06 59 pm

screen shot 2014-12-09 at 2 03 01 pm

screen shot 2014-12-09 at 2 02 45 pm

screen shot 2014-12-09 at 2 02 31 pm

screen shot 2014-12-09 at 2 02 20 pm

┆Issue is synchronized with this Asana task

Entry Category Widget

Allow Select/radio/checkbox fields (and/or WP Post categories?) to be used as categories for category navigation.

screenshot 2014-03-31 18 11 11

┆Issue is synchronized with this Asana task

Entry Category & Tag Handling

"Real" directories use categories and sub-categories for organizing. They often charge for inclusion on a per-category basis, where different prices include submission to different numbers of categories.

This requires creation of a GV taxonomy structure.

Obviously, this needs to be discussed!

┆Issue is synchronized with this Asana task

When a View has been customized, warn before switching forms

Add a confirm() JS dialog before switching to another form using the "Select the Form" field. That way, someone who has been modifying the configuration won't be surprised when changing forms removes all previous settings.

Either that, or save the previous state for the selected form so that when they switch back, their form settings are there.

┆Issue is synchronized with this Asana task

jQuery UI conflicts

I was liking the previous look & feel - it didn't feel like jQuery UI; it felt like WordPress.

Unfortunately, the new jQuery UI implementation has plugin conflicts with plugins that use bad enqueuing of styles. See screenshots.

screenshot 2014-03-28 14 01 25
screenshot 2014-03-28 14 01 18

┆Issue is synchronized with this Asana task

Improved Paid Submission Handling

Dynamically create a metabox that will add payment fields to the dynamically created form.

  1. Start Fresh
  2. Select type of form
  3. Show another metabox with "Are submissions to this form free?"
    • If yes, show basic pricing options
    • If no, continue

┆Issue is synchronized with this Asana task

Add TableTools integration

Many users have asked for the ability to export data from the front-end as a CSV. Yes, surprisingly many users.

TableTools does that.

When DataTables Integration #29 is complete, this is a great additional functionality.

Integrations

  • TableTools - with checkboxes to choose which buttons to show
  • Scroller - setting for height
  • FixedHeader and FixedColumns - checkbox for each to enable

┆Issue is synchronized with this Asana task

Settings Page Todos

  • Create settings page
    • Invite email
    • EDD license key (same as invite code?)
  • Integrate EDD License page
  • Integrate Prefinery friend share & feedback code
    • Use settings email: $tester_hash = sha1("[email protected]");
    • <iframe id='prefinery_iframe_inline' allowTransparency='true' width='100%' height='400' scrolling='no' frameborder='0' src="https://kws.prefinery.com/betas/4444/friend_invitations/new?display=inline&tester_hash=<?php echo $tester_hash; ?>"></iframe>

┆Issue is synchronized with this Asana task

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.