コード例 #1
0
    def __call__(self):
        # Clean up
        del (CTK.cfg['tmp!market!maintenance'])

        # The cache is no longer valid
        Invalidate_Cache()

        # Close dialog
        box = CTK.Box()
        box += CTK.RawHTML(js=CTK.DruidContent__JS_to_close(box.id))
        return box.Render().toStr()
コード例 #2
0
    def __safe_call__(self):
        app_id = CTK.cfg.get_val('tmp!market!install!app!application_id')
        app_name = CTK.cfg.get_val('tmp!market!install!app!application_name')

        # URL Package
        index = Distro.Index()
        pkg = index.get_package(app_id, 'package')

        repo_url = CTK.cfg.get_val('admin!ows!repository', REPO_MAIN)
        url_download = os.path.join(repo_url, app_id, pkg['filename'])
        CTK.cfg['tmp!market!install!download'] = url_download

        # Local storage shortcut
        pkg_filename_full = url_download.split('/')[-1]
        pkg_filename = pkg_filename_full.split('_')[0]
        pkg_revision = 0

        pkg_repo_fp = os.path.join(CHEROKEE_OWS_DIR, "packages", app_id)
        if os.access(pkg_repo_fp, os.X_OK):
            for f in os.listdir(pkg_repo_fp):
                tmp = re.findall('^%s_(\d+)' % (pkg_filename), f)
                if tmp:
                    pkg_revision = max(pkg_revision, int(tmp[0]))

        if pkg_revision > 0:
            pkg_fullpath = os.path.join(
                CHEROKEE_OWS_DIR, "packages", app_id,
                '%s_%d.cpk' % (pkg_filename, pkg_revision))
            CTK.cfg['tmp!market!install!local_package'] = pkg_fullpath

            Install_Log.log("Using local repository package: %s" %
                            (pkg_fullpath))

            box = CTK.Box()
            box += CTK.RawHTML(
                js=CTK.DruidContent__JS_to_goto(box.id, URL_INSTALL_SETUP))
            return box.Render().toStr()

        # Instance a Downloader
        downloader = CTK.Downloader('package', url_download)
        downloader.bind('stopped',
                        CTK.DruidContent__JS_to_close(downloader.id))
        downloader.bind(
            'finished',
            CTK.DruidContent__JS_to_goto(downloader.id, URL_INSTALL_SETUP))
        downloader.bind(
            'error',
            CTK.DruidContent__JS_to_goto(downloader.id,
                                         URL_INSTALL_DOWNLOAD_ERROR))

        stop = CTK.Button(_('Cancel'))
        stop.bind('click', downloader.JS_to_stop())
        buttons = CTK.DruidButtonsPanel()
        buttons += stop

        Install_Log.log("Downloading %s" % (url_download))

        cont = CTK.Container()
        cont += CTK.RawHTML('<h2>%s %s</h2>' % (_("Installing"), app_name))
        cont += CTK.RawHTML(
            '<p>%s</p>' %
            (_('The application is being downloaded. Hold on tight!')))
        cont += downloader
        cont += buttons
        cont += CTK.RawHTML(js=downloader.JS_to_start())

        return cont.Render().toStr()