public function createAction()
 {
     $headScript = new PhpRenderer();
     $headScript->headScript()->appendFile('/js/form/create.form.js');
     $headScript->headScript()->appendFile('/js/form/line.text.js');
     $headScript->headScript()->appendFile('/js/form/add.form.js');
     $headScript->headScript()->appendFile('/js/form/json.form.js');
     $form = '';
     return ['form' => $form];
 }
Example #2
0
    public function renderPost(Renderer $renderer)
    {
        $coreformsjs = $renderer->basepath('/Core/js/core.forms.js');
        $javaScript = <<<JS
        \$(document).ready(function() {

            console.log('attached yk.forms.done to ', \$('form'));

             \$('form').on('yk.forms.done', function(event, data) {
                //if (typeof data != 'undefined' && typeof data['data'] != 'undefined') {}
                if (typeof data != 'undefined' && typeof data['data'] != 'undefined') {
                    if (typeof data['data']['jobvalid'] != 'undefined' && data['data']['jobvalid'] === true) {
                        \$('#job_incomplete').hide();
                        \$('#finalize_jobentry').show();
                    }
                    else {
                        \$('#job_incomplete').show();
                        \$('#finalize_jobentry').hide();
                    }
                }
                \$('#job_errormessages').empty();

                if (typeof data['data']['errorMessage'] != 'undefined') {
                    \$('#job_errormessages').append(data['data']['errorMessage']);
                }
                console.debug('job-form-inline', event, data);
             });

        });
JS;
        $renderer->headScript()->appendScript($javaScript);
        return parent::renderPost($renderer);
    }
Example #3
0
 public function render(PhpRenderer $view, MediaRepresentation $media, array $options = [])
 {
     $IIIFData = $media->mediaData();
     $view->headScript()->appendFile($view->assetUrl('js/openseadragon/openseadragon.min.js', 'Omeka'));
     $prefixUrl = $view->assetUrl('js/openseadragon/images/', 'Omeka');
     $image = '<div class="openseadragon" id="iiif-' . $media->id() . '"></div>
         <script type="text/javascript">
             var viewer = OpenSeadragon({
                 id: "iiif-' . $media->id() . '",
                 prefixUrl: "' . $prefixUrl . '",
                 tileSources: [
                     ' . json_encode($IIIFData) . '
                 ]
             });
         </script>';
     return $image;
 }
Example #4
0
 public function testViewHelperPersist()
 {
     $view = new PhpRenderer();
     $view->setHelperPluginManager($this->serviceManager->get('ViewHelperManager'));
     $view->dojo()->activate();
     $headLink = $view->headLink();
     $this->assertEquals('js/dojo_rel/dojo/resources/dojo.css', $headLink[0]->href);
     $this->assertEquals('screen', $headLink[0]->media);
     $this->assertEquals('stylesheet', $headLink[0]->rel);
     $this->assertEquals('text/css', $headLink[0]->type);
     $this->assertEquals('js/dojo_rel/dijit/themes/claro/claro.css', $headLink[1]->href);
     $this->assertEquals('screen', $headLink[1]->media);
     $this->assertEquals('stylesheet', $headLink[1]->rel);
     $this->assertEquals('text/css', $headLink[1]->type);
     $headScript = $view->headScript();
     $this->assertEquals('async: true, baseUrl: "js/dojo_rel/dojo"', $headScript[0]->attributes['data-dojo-config']);
     $this->assertEquals('js/dojo_rel/dojo/dojo.js', $headScript[0]->attributes['src']);
     $this->assertEquals('text/javascript', $headScript[0]->type);
     $this->assertEquals("require(['dojo/parser', 'dojo/domReady!'], function(parser) {parser.parse();})", $headScript[1]->source);
     $this->assertEquals('text/javascript', $headScript[1]->type);
     $this->assertEquals('claro', $view->dojo()->getTheme());
 }
Example #5
0
    /** {@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);
    }
Example #6
0
    /** {@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);
    }
Example #7
0
    /** {@inheritdoc} */
    public function render(\Zend\View\Renderer\PhpRenderer $view)
    {
        $view->headScript()->captureStart();
        ?>

        /**
         * Show/hide elements according to selected "Where" radio button
         */
        function selectElements()
        {
            var buttons = document.getElementsByName('Where');
            var newGroup;
            for (var i = 0; i < buttons.length; i++) {
                if (buttons[i].value == 'new') {
                    newGroup = buttons[i].checked;
                    break;
                }
            }
            if (newGroup) {
                display('NewGroup', true);
                display('Description', true);
                display('ExistingGroup', false);
            } else {
                display('NewGroup', false);
                display('Description', false);
                display('ExistingGroup', true);
            }
            var errors = document.getElementsByClassName('error');
            for (i = 0; i < errors.length; i++) {
                errors[i].style.display = newGroup ? 'block' : 'none';
            }
        }

        /**
         * Hide or show a form element
         *
         * name (string): element name
         * show (bool): true to show, false to hide
         */
        function display(name, show)
        {
            document.getElementsByName(name)[0].parentNode.style.display = show ? 'table-row' : 'none';
        }

        <?php 
        $view->headScript()->captureEnd();
        $view->placeholder('BodyOnLoad')->append('selectElements()');
        return parent::render($view);
    }
Example #8
0
    /**
     * 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);
    }
Example #9
0
    public function renderPost(Renderer $renderer)
    {
        $coreformsjs = $renderer->basepath('/Core/js/core.forms.js');
        $javaScript = <<<JS
        \$(document).ready(function() {

            console.log('attached yk.forms.done to ', \$('form'));

             \$('form').on('yk.forms.done', function(event, data) {
                //if (typeof data != 'undefined' && typeof data['data'] != 'undefined') {}
                if (typeof data != 'undefined' && typeof data['data'] != 'undefined') {
                    if (typeof data['data']['jobvalid'] != 'undefined' && data['data']['jobvalid'] === true) {
                        \$('#job_incomplete').hide();
                        \$('.wizard-container .finish').removeClass('disabled');
                    }
                    else {
                        \$('#job_incomplete').show();
                        \$('.wizard-container .finish').addClass('disabled');
                    }
                }
                \$('#job_errormessages').empty();

                if (typeof data['data']['errorMessage'] != 'undefined') {
                    \$('#job_errormessages').append(data['data']['errorMessage']);
                }
                console.debug('job-form-inline', event, data);
             });
             \$('.wizard-container').on('wizard:tabShow.jobcontainer', function(e, \$tab, \$nav, index) {
                var \$link = \$tab.find('a');
                var href = \$link.attr('href');
                var \$target = \$(href);
                var \$iframe = \$target.find('iframe');

                \$iframe.each(function() { this.contentDocument.location.reload(true); });

                var \$productList = \$target.find('#product-list-wrapper');
                if (\$productList.length) {
                    \$productList.html('').load('/' + lang + '/jobs/channel-list?id=' + \$('#general-nameForm-job').val());
                }
             });

             \$('.wizard-container .finish a').click(function (e) {
                if (\$(e.currentTarget).parent().hasClass('disabled')) {
                    e.preventDefault();
                    return false;
                }
             });

        });
JS;
        $renderer->headScript()->appendScript($javaScript);
        return parent::renderPost($renderer);
    }