Exemple #1
0
 public function fetchElement($name, $value, &$node, $control_name)
 {
     //@TODO make this an reusabe MooTools class
     KFactory::get('admin::com.ninja.helper.default')->js("\n\t\t\twindow.addEvent('domready', function(){\n\t\t\t\tvar input = \$('" . $this->id . "');\n\t\t\t\tif(input) {\n\t\t\t\t\tvar status = new Element('small', {\n\t\t\t\t\t\ttext: input.value + '%',\n\t\t\t\t\t\tstyles: {\n\t\t\t\t\t\t\tmarginLeft: '2%',\n\t\t\t\t\t\t\tpadding: '3px',\n\t\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\t\ttop: '28%'\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'class': 'value'\n\t\t\t\t\t}).inject(input, 'after'), update = function(){\n\t\t\t\t\t\tstatus.set('text', this.value + '%');\n\t\t\t\t\t};\n\n\t\t\t\t\t['change', 'keydown', 'keyup', 'click', 'focus', 'blur', 'mousewheel'].each(function(event){\n\t\t\t\t\t\tinput.addEvent(event, update);\n\t\t\t\t\t});\n\t\t\t\t\tinput.set('type', 'range').set('min', 0).set('max', 100);\n\t\t\t\t\tif(input.type != 'range') {\n\t\t\t\t\t\tinput.set('type', 'hidden');\n\t\t\t\t\t\tvar slider = new Element('div', {\n\t\t\t\t\t\t\t'class': 'slider'\n\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.grab(new Element('div', {'class': 'knob'}))\n\t\t\t\t\t\t\t.inject(input, 'after');\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t// Create the new slider instance\n\t\t\t\t\t    new Slider(slider, slider.getElement('.knob'), {\n\t\t\t\t\t        steps: 100,\n\t\t\t\t\t        range: [0, 100],\n\t\t\t\t\t        initialStep: input.value,\n\t\t\t\t\t        onChange: function(value){\n\t\t\t\t\t        \tinput.set('value', value);\n\t\t\t\t\t        \tstatus.set('text', value + '%');\n\t\t\t\t\t        }\n\t\t\t\t\t    });\n\t\t\t\t\t    status.setStyles({\n\t\t\t\t\t    \tmarginLeft: '140px',\n\t\t\t\t\t    \tpadding: 0,\n\t\t\t\t\t    \ttop: '36%'\n\t\t\t\t\t    });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t");
     return parent::fetchElement($name, $value, $node, $control_name);
 }
Exemple #2
0
 public function fetchElement($name, $value, &$node, $control_name)
 {
     //@TODO Number.implement needs to be in its own js file
     KFactory::get('admin::com.ninja.helper.default')->js("\n\t\t\twindow.addEvent('domready', function(){\n\t\t\t\tvar input = \$('" . $this->id . "');\n\t\t\t\tif(input) {\n\t\t\t\t\tNumber.implement({\n\t\t\t\t\t\tbytes: function(){\n\t\t\t\t\t\t\tvar units = ['B', 'kB', 'MB', 'GB', 'TB']\n\t\t\t\t\t\t\t\tbytes = Math.max(this, 0);\n\n\t\t\t\t\t\t\tpow = Math.floor((bytes ? Math.log(bytes) : 0) / Math.log(1024));\n\t\t\t\t\t\t\tpow = Math.min(pow, units.length - 1);\n\n\t\t\t\t\t\t\tbytes /= Math.pow(1024, pow);\n\n\t\t\t\t\t\t\treturn bytes.toFixed(2) + units[pow];\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tvar status = new Element('small', {\n\t\t\t\t\t\ttext: input.value.toInt().bytes(),\n\t\t\t\t\t\tstyles: {\n\t\t\t\t\t\t\tmarginLeft: '2%'\n\t\t\t\t\t\t}\n\t\t\t\t\t}).inject(input, 'after'), humanize = function(){\n\t\t\t\t\t\tvar value = this.value.toInt().bytes();\n\t\t\t\t\t\tif(isNaN(this.value.toInt()) || this.value.toInt() < 1) value = " . json_encode(JText::_((string) $node['onzero'])) . ";\n\t\t\t\t\t\tstatus.set('text', value);\n\t\t\t\t\t};\n\n\t\t\t\t\t['change', 'keydown', 'keyup', 'click', 'focus', 'blur', 'mousewheel'].each(function(event){\n\t\t\t\t\t\tinput.addEvent(event, humanize);\n\t\t\t\t\t});\n\t\t\t\t\tinput.setStyles({width: '22%', padding: '1%'}).set('type', 'number').set('min', 0).set('step', 1024);\n\t\t\t\t}\n\t\t\t});\n\t\t");
     return parent::fetchElement($name, $value, $node, $control_name);
 }