├── .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 |
13 |
14 | [](https://packagist.org/packages/kartik-v/yii2-widget-rangeinput)
15 | [](https://packagist.org/packages/kartik-v/yii2-widget-rangeinput)
16 | [](https://packagist.org/packages/kartik-v/yii2-widget-rangeinput)
17 | [](https://packagist.org/packages/kartik-v/yii2-widget-rangeinput)
18 | [](https://packagist.org/packages/kartik-v/yii2-widget-rangeinput)
19 | [](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
--------------------------------------------------------------------------------