def execute(self, item, context):
            if isPage:
                from porcupine.core.session import SessionManager
                from porcupine.filters.output import JSMerge

                script_name = context.request.serverVariables["SCRIPT_NAME"]
                cookies_required = SessionManager._sm.requires_cookies
                no_cookies_url = '%s/{%s}%s%s' % (
                    script_name,
                    context.session.sessionid,
                    context.request.serverVariables['PATH_INFO'],
                    context.request.get_query_string())

                # get revision of quix core files
                quix_core_reg = (
                    pubdirs.dirs['__quix'].get_registration('core.js'))
                quix_core_files = (
                    quix_core_reg.get_filter_by_type(JSMerge)[1]['files'].
                    split(','))
                core_revision = JSMerge.get_revision(quix_core_files)

                vars = (bgcolor, title, script_name, script_name,
                        core_revision, str(cookies_required).lower(),
                        no_cookies_url)
                context.response.content_type = 'text/html'
                context.response.write(('''
<!DOCTYPE html>
<html style="background-color:%s">
    <head>
        <title>%s</title>
        <script type="text/javascript" defer="defer"
            src="%s/__quix/lib/extensions.js">
        </script>
        <script type="text/javascript" defer="defer"
            src="%s/__quix/core.js?r=%d">
        </script>
        <script type="text/javascript">
            (function() {
                document.cookiesEnabled = false;
                document.cookiesRequired = %s;
                var session_id = (
                    new RegExp("/\(?:{|%%7b)(.*?)\(?:}|%%7d)", "i"))
                    .exec(document.location.href);
                if (session_id)
                    session_id = session_id[1];
                if (typeof document.cookie == "string" &&
                        document.cookie.length != 0)
                    document.cookiesEnabled = true;
                if (!session_id && !document.cookiesEnabled)
                    document.location.href = '%s';
                })();
        </script>
    </head>
    <body onload="QuiX.__init__('quix')">
        <textarea id="quix" style="display:none">''' % vars).strip())

            WebMethodDescriptor.execute(self, item, context)

            if isPage:
                context.response.write('</textarea></body></html>')
Example #2
0
def get_revision(pubdir, path):
    """
    Returns the most recent modification
    time of the files listed in a JSMerge post-processing
    filter of a certain registration.

    @param str pubdir: The name of the public directory
    @param str path: The registration's path

    @rtype int
    """
    from porcupine.config import pubdirs
    from porcupine.filters.output import JSMerge

    registration = (pubdirs.dirs[pubdir].get_registration(path))
    s_files = registration.get_filter_by_type(JSMerge)[1]['files']
    if ',' in s_files:
        files = ([f.strip() for f in s_files.split(',')])
    else:
        files = get_rto_by_name(s_files)()

    return JSMerge.get_revision(files)
Example #3
0
def get_revision(pubdir, path):
    """
    Returns the most recent modification
    time of the files listed in a JSMerge post-processing
    filter of a certain registration.

    @param str pubdir: The name of the public directory
    @param str path: The registration's path

    @rtype int
    """
    from porcupine.config import pubdirs
    from porcupine.filters.output import JSMerge

    registration = (pubdirs.dirs[pubdir].get_registration(path))
    s_files = registration.get_filter_by_type(JSMerge)[1]['files']
    if ',' in s_files:
        files = ([f.strip() for f in s_files.split(',')])
    else:
        files = get_rto_by_name(s_files)()

    return JSMerge.get_revision(files)