├── .github ├── PULL_REQUEST_TEMPLATE.md ├── ISSUE_TEMPLATE.md └── CONTRIBUTING.md ├── CHANGE.md ├── composer.json ├── src └── RangeInput.php ├── LICENSE.md └── README.md /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Scope 2 | This pull request includes a 3 | 4 | - [ ] Bug fix 5 | - [ ] New feature 6 | - [ ] Translation 7 | 8 | ## Changes 9 | The following changes were made 10 | 11 | - 12 | - 13 | - 14 | 15 | ## Related Issues 16 | If this is related to an existing ticket, include a link to it as well. -------------------------------------------------------------------------------- /CHANGE.md: -------------------------------------------------------------------------------- 1 | Change Log: `yii2-widget-rangeinput` 2 | ==================================== 3 | 4 | ## Version 1.0.2 5 | 6 | **Date:** 07-Sep-2018 7 | 8 | - Add github contribution and issue/PR log templates. 9 | - Update to include Bootstrap 4.x support 10 | - Reorganize source code into `src` directory 11 | 12 | ## Version 1.0.1 13 | 14 | **Date:** 22-Nov-2015 15 | 16 | - Update HTML5 input initialization 17 | 18 | ## Version 1.0.0 19 | 20 | **Date:** 08-Nov-2014 21 | 22 | - Initial release 23 | - Sub repo split from [yii2-widgets](https://github.com/kartik-v/yii2-widgets) -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "kartik-v/yii2-widget-rangeinput", 3 | "description": "An enhanced Yii 2 widget encapsulating the HTML 5 range input (sub repo split from yii2-widgets)", 4 | "keywords": [ 5 | "yii2", 6 | "extension", 7 | "widget", 8 | "form", 9 | "range", 10 | "input", 11 | "html5", 12 | "jquery", 13 | "plugin" 14 | ], 15 | "homepage": "https://github.com/kartik-v/yii2-widget-rangeinput", 16 | "type": "yii2-extension", 17 | "license": "BSD-3-Clause", 18 | "authors": [ 19 | { 20 | "name": "Kartik Visweswaran", 21 | "email": "kartikv2@gmail.com", 22 | "homepage": "http://www.krajee.com/" 23 | } 24 | ], 25 | "require": { 26 | "kartik-v/yii2-krajee-base": ">=1.9" 27 | }, 28 | "autoload": { 29 | "psr-4": { 30 | "kartik\\range\\": "src" 31 | } 32 | }, 33 | "extra": { 34 | "branch-alias": { 35 | "dev-master": "1.0.x-dev" 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/RangeInput.php: -------------------------------------------------------------------------------- 1 | 19 | * @since 1.0 20 | * @see http://twitter.github.com/typeahead.js/examples 21 | */ 22 | class RangeInput extends \kartik\base\Html5Input 23 | { 24 | /** 25 | * @var string the HTML5 input type 26 | */ 27 | public $type = 'range'; 28 | 29 | /** 30 | * @var string the orientation of the range input. If set to `vertical` will orient the range 31 | * sliders vertically - else will display the sliders horizontally. 32 | */ 33 | public $orientation; 34 | 35 | /** 36 | * @inheritdoc 37 | */ 38 | public function run() 39 | { 40 | if ($this->orientation == 'vertical') { 41 | Html::addCssClass($this->containerOptions, 'kv-range-vertical'); 42 | $this->html5Options['orient'] = 'vertical'; 43 | } 44 | return parent::run(); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 - 2018, Kartik Visweswaran 2 | Krajee.com 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without modification, 6 | are permitted provided that the following conditions are met: 7 | 8 | * Redistributions of source code must retain the above copyright notice, this 9 | list of conditions and the following disclaimer. 10 | 11 | * Redistributions in binary form must reproduce the above copyright notice, this 12 | list of conditions and the following disclaimer in the documentation and/or 13 | other materials provided with the distribution. 14 | 15 | * Neither the names of Kartik Visweswaran or Krajee nor the names of its 16 | contributors may be used to endorse or promote products derived from 17 | this software without specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 20 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 23 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 26 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Prerequisites 2 | 3 | - [ ] I have searched for similar issues in both open and closed tickets and cannot find a duplicate. 4 | - [ ] The issue still exists against the latest `master` branch of yii2-widget-rangeinput. 5 | - [ ] This is not an usage question. I confirm having read the [widget documentation and demos](http://demos.krajee.com/widget-details/rangeinput). 6 | - [ ] This is not a general programming / coding question. (Those should be directed to the [webtips Q & A forum](http://webtips.krajee.com/questions)). 7 | - [ ] This is not a source plugin (rangeinput) issue. (Those should be directed to the [plugin issues repo](https://github.com/rangeinput/rangeinput/search?q=&type=Issues)). 8 | - [ ] I have attempted to find the simplest possible steps to reproduce the issue. 9 | - [ ] I have included a failing test as a pull request (Optional). 10 | 11 | ## Steps to reproduce the issue 12 | 13 | 1. 14 | 2. 15 | 3. 16 | 17 | ## Expected behavior and actual behavior 18 | 19 | When I follow those steps, I see... 20 | 21 | I was expecting... 22 | 23 | ## Environment 24 | 25 | Browsers 26 | 27 | - [ ] Google Chrome 28 | - [ ] Mozilla Firefox 29 | - [ ] Internet Explorer 30 | - [ ] Safari 31 | 32 | Operating System 33 | 34 | - [ ] Windows 35 | - [ ] Mac OS X 36 | - [ ] Linux 37 | - [ ] Mobile 38 | 39 | Libraries 40 | 41 | - jQuery version: 42 | - yii2-widget-rangeinput version: 43 | 44 | ## Isolating the problem 45 | 46 | - [ ] This bug happens [on the widget demos page](http://demos.krajee.com/widget-details/rangeinput) 47 | - [ ] The bug happens consistently across all tested browsers 48 | - [ ] This bug happens when using yii2-widget-rangeinput without other plugins 49 | - [ ] I can reproduce this bug in [a jsbin](https://jsbin.com/) -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | Krajee Logo 4 | 5 |
6 | yii2-widget-rangeinput 7 |
8 | 10 | Donate 11 | 12 |

13 | 14 | [![Stable Version](https://poser.pugx.org/kartik-v/yii2-widget-rangeinput/v/stable)](https://packagist.org/packages/kartik-v/yii2-widget-rangeinput) 15 | [![Unstable Version](https://poser.pugx.org/kartik-v/yii2-widget-rangeinput/v/unstable)](https://packagist.org/packages/kartik-v/yii2-widget-rangeinput) 16 | [![License](https://poser.pugx.org/kartik-v/yii2-widget-rangeinput/license)](https://packagist.org/packages/kartik-v/yii2-widget-rangeinput) 17 | [![Total Downloads](https://poser.pugx.org/kartik-v/yii2-widget-rangeinput/downloads)](https://packagist.org/packages/kartik-v/yii2-widget-rangeinput) 18 | [![Monthly Downloads](https://poser.pugx.org/kartik-v/yii2-widget-rangeinput/d/monthly)](https://packagist.org/packages/kartik-v/yii2-widget-rangeinput) 19 | [![Daily Downloads](https://poser.pugx.org/kartik-v/yii2-widget-rangeinput/d/daily)](https://packagist.org/packages/kartik-v/yii2-widget-rangeinput) 20 | 21 | The RangeInput widget is a customized range slider control widget based on HTML5 range input. The widget enhances the default HTML range input with various features including the following: 22 | 23 | * Specially styled for Bootstrap 3.x and Bootstrap 4.x with customizable caption showing the output of the control. 24 | * Ability to prepend and append addons (very useful to show the min and max ranges, and the slider measurement unit). 25 | * Allow the input to be changed both via the control or the text box. 26 | * Automatically degrade to normal text input for unsupported Internet Explorer versions. 27 | 28 | > NOTE: This extension is a sub repo split of [yii2-widgets](https://github.com/kartik-v/yii2-widgets). The split has been done since 08-Nov-2014 to allow developers to install this specific widget in isolation if needed. One can also use the extension the previous way with the whole suite of [yii2-widgets](http://demos.krajee.com/widgets). 29 | 30 | ## Installation 31 | 32 | The preferred way to install this extension is through [composer](http://getcomposer.org/download/). Check the [composer.json](https://github.com/kartik-v/yii2-widget-rangeinput/blob/master/composer.json) for this extension's requirements and dependencies. Read this [web tip /wiki](http://webtips.krajee.com/setting-composer-minimum-stability-application/) on setting the `minimum-stability` settings for your application's composer.json. 33 | 34 | To install, either run 35 | 36 | ``` 37 | $ php composer.phar require kartik-v/yii2-widget-rangeinput "*" 38 | ``` 39 | 40 | or add 41 | 42 | ``` 43 | "kartik-v/yii2-widget-rangeinput": "*" 44 | ``` 45 | 46 | to the ```require``` section of your `composer.json` file. 47 | 48 | ## Release Changes 49 | 50 | Refer the [CHANGE LOG](https://github.com/kartik-v/yii2-widget-rangeinput/blob/master/CHANGE.md) for details on various releases and changes. 51 | 52 | ## Demo 53 | 54 | You can refer detailed [documentation and demos](http://demos.krajee.com/widget-details/rangeinput) on usage of the extension. 55 | 56 | ## Usage 57 | 58 | ```php 59 | use kartik\range\RangeInput; 60 | 61 | // Usage with rangeinput and model 62 | echo $form->field($model, 'rating')->widget(RangeInput::classname(), [ 63 | 'options' => ['placeholder' => 'Select range ...'], 64 | 'html5Options' => ['min'=>0, 'max'=>1, 'step'=>1], 65 | 'html5Container' => ['style' => 'width:350px'], 66 | 'addon' => ['append'=>['content'=>'star']], 67 | 68 | ]); 69 | 70 | // With model & without rangeinput 71 | echo ''; 72 | echo RangeInput::widget([ 73 | 'model' => $model, 74 | 'attribute' => 'contrast', 75 | 'html5Container' => ['style' => 'width:350px'], 76 | 'addon' => ['append'=>['content'=>'%']], 77 | ]); 78 | 79 | // Vertical orientation 80 | echo ''; 81 | echo RangeInput::widget([ 82 | 'name' => 'slider', 83 | 'value' => 70, 84 | 'orientation' => 'vertical', 85 | 'html5Container' => ['style' => 'width:350px'], 86 | ]); 87 | ``` 88 | 89 | ## License 90 | 91 | **yii2-widget-rangeinput** is released under the BSD 3-Clause License. See the bundled `LICENSE.md` for details. 92 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Contributing to yii2-widget-rangeinput 2 | ====================================== 3 | Looking to contribute something to yii2-widget-rangeinput? **Here's how you can help.** 4 | 5 | Please take a moment to review this document in order to make the contribution 6 | process easy and effective for everyone involved. 7 | 8 | Following these guidelines helps to communicate that you respect the time of 9 | the developers managing and developing this open source project. In return, 10 | they should reciprocate that respect in addressing your issue or assessing 11 | patches and features. 12 | 13 | Using the issue tracker 14 | ----------------------- 15 | When [reporting bugs][reporting-bugs] or 16 | [requesting features][requesting-features], the 17 | [issue tracker on GitHub][issue-tracker] is the recommended channel to use. 18 | 19 | The issue tracker **is not** a place for support requests. Refer the 20 | [widget documentation and demos](http://demos.krajee.com/widget-details/rangeinput) and/or refer to the 21 | [webtips Q & A forum](http://webtips.krajee.com/questions) which are the better places to get help. 22 | 23 | Reporting bugs with yii2-widget-rangeinput 24 | ------------------------------------------ 25 | We really appreciate clear bug reports that _consistently_ show an issue 26 | _within yii2-widget-rangeinput_. 27 | 28 | The ideal bug report follows these guidelines: 29 | 30 | 1. **Use the [GitHub issue search][issue-search]** — Check if the issue 31 | has already been reported. 32 | 2. **Check if the issue has been fixed** — Try to reproduce the problem 33 | using the code in the `master` branch. 34 | 3. **Isolate the problem** — Try to create an 35 | [isolated js fiddle][isolated-case] that consistently reproduces the problem 36 | in case of javascript/client level code issues. 37 | 38 | Please try to be as detailed as possible in your bug report, especially if an 39 | isolated test case cannot be made. Some useful questions to include the answer 40 | to are: 41 | 42 | - What steps can be used to reproduce the issue? 43 | - What is the bug and what is the expected outcome? 44 | - What browser(s) and Operating System have you tested with? 45 | - Does the bug happen consistently across all tested browsers? 46 | - What version of jQuery are you using? And what version of yii2-widget-rangeinput? 47 | - Are you using yii2-widget-rangeinput with other plugins? 48 | 49 | All of these questions will help others fix and identify any potential bugs. 50 | 51 | Requesting features in yii2-widget-rangeinput 52 | -------------------------------------------- 53 | Before starting work on a major feature for yii2-widget-rangeinput, **read the 54 | [documentation](http://demos.krajee.com/widget-details/rangeinput) first** or you may risk spending a considerable amount of 55 | time on something which the project developers are not interested in bringing into the project. 56 | 57 | ### Submitting a pull request 58 | 59 | We use GitHub's pull request system for submitting patches. Here are some 60 | guidelines to follow when creating the pull request for your fix. 61 | 62 | 1. Make sure to create a ticket for your pull request. This will serve as the 63 | bug ticket, and any discussion about the bug will take place there. Your pull 64 | request will be focused on the specific changes that fix the bug. 65 | 2. Make sure to reference the ticket you are fixing within your pull request. 66 | This will allow us to close off the ticket once we merge the pull request, or 67 | follow up on the ticket if there are any related blocking issues. 68 | 3. Explain why the specific change was made. Not everyone who is reviewing your 69 | pull request will be familiar with the problem it is fixing. 70 | 4. Run your tests first. If your tests aren't passing, the pull request won't 71 | be able to be merged. If you're breaking existing tests, make sure that you 72 | aren't causing any breaking changes. 73 | 5. Only include source changes. While it's not required, only including changes 74 | from the `src` directory will prevent merge conflicts from occuring. Making 75 | this happen can be as a simple as not committing changes from the `dist` 76 | directory. 77 | 78 | By following these steps, you will make it easier for your pull request to be 79 | reviewed and eventually merged. 80 | 81 | Triaging issues and pull requests 82 | --------------------------------- 83 | Anyone can help the project maintainers triage issues and review pull requests. 84 | 85 | ### Handling new issues 86 | 87 | yii2-widget-rangeinput regularly receives new issues which need to be tested and organized. 88 | 89 | When a new issue that comes in that is similar to another existing issue, it 90 | should be checked to make sure it is not a duplicate. Duplicates issues should 91 | be marked by replying to the issue with "Duplicate of #[issue number]" where 92 | `[issue number]` is the url or issue number for the existing issue. This will 93 | allow the project maintainers to quickly close off additional issues and keep 94 | the discussion focused within a single issue. 95 | 96 | If you can test issues that are reported to yii2-widget-rangeinput that contain test cases and 97 | confirm under what conditions bugs happen, that will allow others to identify 98 | what causes a bug quicker. 99 | 100 | ### Reviewing pull requests 101 | 102 | It is very common for pull requests to be opened for issues that contain a clear 103 | solution to the problem. These pull requests should be rigorously reviewed by 104 | the community before being accepted. If you are not sure about a piece of 105 | submitted code, or know of a better way to do something, do not hesitate to make 106 | a comment on the pull request. 107 | 108 | ### Reviving old tickets 109 | 110 | If you come across tickets which have not been updated for a while, you are 111 | encouraged to revive them. While this can be as simple as saying `:+1:`, it is 112 | best if you can include more information on the issue. Common bugs and feature 113 | requests are more likely to be fixed, whether it is by the community or the 114 | developers, so keeping tickets up to date is encouraged. 115 | 116 | Licensing 117 | --------- 118 | 119 | It should also be made clear that **all code contributed to yii2-widget-rangeinput** must be 120 | licensable under the [BSD-3 license][licensing]. Code that cannot be released 121 | under this license **cannot be accepted** into the project. 122 | 123 | [isolated-case]: https://jsfiddle.net/ 124 | [issue-search]: https://github.com/kartik-v/yii2-widget-rangeinput/search?q=&type=Issues 125 | [issue-tracker]: https://github.com/kartik-v/yii2-widget-rangeinput/issues 126 | [licensing]: https://github.com/kartik-v/yii2-widget-rangeinput/blob/master/LICENSE.md 127 | [reporting-bugs]: #reporting-bugs-with-yii2-widget-rangeinput 128 | [requesting-features]: #requesting-features-in-yii2-widget-rangeinput --------------------------------------------------------------------------------