コード例 #1
0
ファイル: ClientConfig.php プロジェクト: hschletz/braintacle
    /** {@inheritdoc} */
    public function render(\Zend\View\Renderer\PhpRenderer $view)
    {
        $view->headScript()->captureStart();
        ?>

        // Hide or show all label elements following the checkbox within the same fieldset
        function toggle(element)
        {
            var node = element.parentNode.parentNode;
            while (node = node.nextSibling) {
                switch (node.nodeName) {
                    case 'LABEL':
                        node.style.display = element.checked ? 'table-row' : 'none';
                        break;
                    case 'UL':
                        node.style.display = element.checked ? 'block' : 'none';
                        break;
                    default:
                        // Invisible text node, nothing to be changed
                }
            }
        }

        // Initialize display of fieldset content
        function toggleByName(name)
        {
            var elements = document.getElementsByName(name);
            for (var i = elements.length - 1; i >= 0; i--) {
                if (elements[i].type == 'checkbox') {
                    toggle(elements[i]);
                    break;
                }
            }
        }

        <?php 
        $view->headScript()->captureEnd();
        $view->placeholder('BodyOnLoad')->append('toggleByName("Download[packageDeployment]")');
        $view->placeholder('BodyOnLoad')->append('toggleByName("Scan[allowScan]")');
        return parent::render($view);
    }
コード例 #2
0
ファイル: Build.php プロジェクト: hschletz/braintacle
    /** {@inheritdoc} */
    public function render(\Zend\View\Renderer\PhpRenderer $view)
    {
        $commandLine = $view->translate('Command line');
        $labels = array('launch' => $commandLine, 'execute' => $commandLine, 'store' => $view->translate('Target Path'));
        $labels = '    var actionParamLabels = ' . json_encode($labels) . ";\n";
        $view->headScript()->captureStart();
        print $labels;
        ?>

        /**
         * Hide or display a block element.
         */
        function display(name, display)
        {
            document.getElementsByName(name)[0].parentNode.style.display = display ? 'table-row' : 'none';
        }

        /*
         * Event handler for Platform combobox. Also called for form
         * initialization. Hides/displays notification elements which have no
         * effect on non-Windows platforms.
         */
        function changePlatform()
        {
            if (document.getElementById('form_package_build_platform').value == 'windows') {
                display('Warn', true);
                display('PostInstMessage', true);
                toggleWarn();
            } else {
                display('Warn', false);
                display('WarnMessage', false);
                display('WarnCountdown', false);
                display('WarnAllowAbort', false);
                display('WarnAllowDelay', false);
                display('PostInstMessage', false);
            }
        }

        /*
         * Event handler for Action combobox. Also called for form initialization.
         * Changes label of parameter input field according to selected action.
         */
        function changeParam()
        {
            var label = actionParamLabels[document.getElementsByName('DeployAction')[0].value];
            document.getElementsByName('ActionParam')[0].parentNode.getElementsByTagName('span')[0].innerHTML = label;
        }

        /*
         * Event handler for Warn checkbox. Also called for form initialization.
         * Hides or displays Warn* fields according to checked state.
         */
        function toggleWarn()
        {
            var checked = document.getElementById('form_package_build_warn').checked &&
                          document.getElementById('form_package_build_platform').value == 'windows';
            display('WarnMessage', checked);
            display('WarnCountdown', checked);
            display('WarnAllowAbort', checked);
            display('WarnAllowDelay', checked);
        }

        <?php 
        $view->headScript()->captureEnd();
        $view->placeholder('BodyOnLoad')->append('changePlatform()');
        $view->placeholder('BodyOnLoad')->append('changeParam()');
        $view->placeholder('BodyOnLoad')->append('toggleWarn()');
        $view->placeholder('BodyOnLoad')->append('document.getElementsByName("Name")[0].focus()');
        return parent::render($view);
    }
コード例 #3
0
ファイル: Search.php プロジェクト: hschletz/braintacle
    /**
     * Render form
     *
     * @param \Zend\View\Renderer\PhpRenderer $view
     * @return string
     */
    public function render(\Zend\View\Renderer\PhpRenderer $view)
    {
        $view->headScript()->captureStart();
        ?>

        // Filter types
        var types = <?php 
        print json_encode($this->_types);
        ?>
;

        /**
         * Event handler for Filter combobox
         *
         * Sets options for "operators" element according to selected filter.
         */
        function filterChanged()
        {
            var elements = document.getElementById('form_search').elements;
            var operators;
            switch (types[elements['filter'].value]) {
                case 'integer':
                case 'float':
                case 'date':
                    operators = <?php 
        print json_encode($this->_operatorsOrdinal);
        ?>
;
                    break;
                default:
                    operators = <?php 
        print json_encode($this->_operatorsText);
        ?>
;
            }
            var options = elements['operator'].options;
            options.length = 0;
            for (var value in operators) {
                options.add(new Option(operators[value], value));
            }
        }

        <?php 
        $view->headScript()->captureEnd();
        $onload = $view->placeholder('BodyOnLoad');
        $onload->append('filterChanged()');
        // Set operator value manually because the element creation code does
        // not know it's valid and ignores it.
        $initialOperator = $this->get('operator')->getValue();
        if ($initialOperator) {
            $onload->append(sprintf('document.getElementById("form_search").elements["operator"].value = %s', json_encode($initialOperator)));
        }
        return parent::render($view);
    }