FWS-V2

 view release on metacpan or  search on metacpan

lib/FWS/V2/Admin.pm  view on Meta::CPAN

    #
    # run go file checks
    #
    $errorReturn = '';
    $systemInfo .= '<b>Script compatibility Check:</b><br/>';
    $errorReturn .= $self->_checkScript();
    if ( !$errorReturn ) { $systemInfo .= '<ul><li>All script compatability checks passed.</li></ul>' }
    else { $systemInfo .= $errorReturn  }


    #
    # Database Checks
    #
    $systemInfo .= '<b>Database Table And Index Check:</b><br/>';
    $errorReturn = $self->updateDatabase();
    if ( !$errorReturn ) { $systemInfo .= '<ul><li>All tables and indexes are correct.</li></ul>' }    
    else {$systemInfo .= $errorReturn . '<br/>' }

    if ( $adminInstalled )  {
        $systemInfo .= "<input style=\"width:300px;\" type=\"button\" onclick=\"location.href='" . $self->{scriptName} . "?s=site';\" value=\"View Site\"/>";
    }
            
    return $systemInfo;
}


=head2 aceTextArea

Create an ace editor UI componate.

=cut

sub aceTextArea {
    my ( $self, %paramHash ) = @_;

    my $statusContainer = 'scriptChangedStatus';

    if ( $paramHash{statusContainer} ) { $statusContainer = $paramHash{statusContainer} }
    
    #
    # load the JS for for ace... but only ONCE!
    #    
    if ( !$self->{FWSAceJSLoaded} ) {
        $self->addToFoot(    
            "<script src=\"" . $self->{fileFWSPath}."/ace-1.1.01/ace.js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n" .
            "<script src=\"" . $self->{fileFWSPath}."/ace-1.1.01/theme-" . $self->{aceTheme} . ".js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n" .
            "<script src=\"" . $self->{fileFWSPath}."/ace-1.1.01/mode-javascript.js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n" .
            "<script src=\"" . $self->{fileFWSPath}."/ace-1.1.01/mode-html.js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n" .
            "<script src=\"" . $self->{fileFWSPath}."/ace-1.1.01/mode-perl.js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n" .
            "<script src=\"" . $self->{fileFWSPath}."/ace-1.1.01/mode-css.js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n"
        );
        $self->{FWSAceJSLoaded}++;
    }


    #
    # set the modes if we have them
    #
    my $modeScript;
    if ( $paramHash{mode} eq 'html' ) {
        $modeScript = "var HTMLScriptMode = require(\"ace/mode/html\").Mode;" . $paramHash{name} . ".getSession().setMode(new HTMLScriptMode());";
    }
    if ( $paramHash{mode} eq 'javascript' ) {
        $modeScript = "var JSScriptMode = require(\"ace/mode/javascript\").Mode;" . $paramHash{name} .".getSession().setMode(new JSScriptMode());";
    }
    if ( $paramHash{mode} eq 'perl' ) {
        $modeScript = "var HTMLScriptMode = require(\"ace/mode/perl\").Mode;" . $paramHash{name} . ".getSession().setMode(new HTMLScriptMode());";
    }
    if ( $paramHash{mode} eq 'css' ) {
        $modeScript = "var CSSScriptMode = require(\"ace/mode/css\").Mode;" . $paramHash{name} . ".getSession().setMode(new CSSScriptMode());";
    }

    $self->addToFoot( "<script type=\"text/javascript\">" .
                    "\$(document).ready(function() {" .
                    "window." . $paramHash{name} . " = ace.edit(\"" . $paramHash{name} . "\");" .
                    $paramHash{name} . ".setTheme(\"ace/theme/" . $self->{aceTheme} . "\");" .
                    $paramHash{name} . ".getSession().setUseWrapMode(true);" .
                    $paramHash{name} . ".setShowPrintMargin(false);" . $modeScript .
                    $paramHash{name} . ".getSession().on('change', function () {document.getElementById('" . $statusContainer . "').innerHTML='[Not Saved]';});" .
                    "});" .
                    "</script>\n");

    #
    # clean up thing that need to be escaped for ace
    #
    $paramHash{value} =~ s/&/&amp;/sg;
    $paramHash{value} =~ s/\</&lt;/sg;

    #
    # create the line that will actually be rendered to the screen
    #
    return "<pre style=\"position: absolute; padding: 0; right: 0; bottom: 0; left: 0;display:none;\" id=\"" . $paramHash{name} . "\" class=\"FWSScriptEditContainer ui-widget ui-state-default ui-corner-bottom\">" . $paramHash{value} . "</pre>";
}


=head2 onOffLight

Return an on off lightbulb.

=cut 

sub onOffLight {
    my ( $self, $status, $guid, $style ) = @_;
    return $self->activeToggleIcon( guid => $guid, style => $style, active => $status );
}


=head2 editBox

Return a edit box for the passed element hash;

=cut

sub editBox {    
    my ( $self, %editHash ) = @_;

    my $editHTML;
    #my $ajaxID = '#editModeAJAX_' . $self->formValue( 'FWS_elementId' );
    my $ajaxID = '#editModeAJAX_' . $editHash{guid};

    #
    # default always show to off if its not passed
    #
    $editHash{alwaysShow} ||= 0;

    #
    # default color
    #
    $editHash{editBoxColor} ||= '#008000;';



( run in 1.780 second using v1.01-cache-2.11-cpan-39bf76dae61 )