CallBackery

 view release on metacpan or  search on metacpan

README.md  view on Meta::CPAN

CallBackery
===========

![Unit Tests](https://github.com/oetiker/callbackery/workflows/Unit%20Tests/badge.svg?branch=master)
[![Coverage Status](https://coveralls.io/repos/oetiker/callbackery/badge.svg?branch=master&service=github)](https://coveralls.io/github/oetiker/callbackery?branch=master)

CallBackery is a perl library for writing CRUD style single page web
applications with a desktopish look and feel.  For many applications, all
you have todo is write a few lines of perl code and all the rest is taken
care of by CallBackery.

To get you started, have a look at the CallBackery sample application. It is contained
in the Mojolicious::Command::Author::generate::automake_app package.

Quickstart
----------

Follow the instructions in <https://github.com/oposs/mojolicious-automake>

lib/CallBackery/qooxdoo/callbackery/source/class/callbackery/Application.js  view on Meta::CPAN

                qx.log.appender.Native;
                // support additional cross-browser console. Press F7 to toggle visibility
                qx.log.appender.Console;
            }
            var rpc = callbackery.data.Server.getInstance();
            var root = this.getRoot();
            root.set({
                blockerColor   : '#fff',
                blockerOpacity : 0.7
            });
            var desktopContainer = new qx.ui.container.Composite(new qx.ui.layout.VBox(0));
            root.add(desktopContainer,{top: 0, left: 0, right: 0, bottom: 0});

            /* give the History object a more relaxed attitude towards encoding stuff */
            qx.Class.patch(qx.bom.History,callbackery.data.MHistoryRelaxedEncoding);
            qx.bom.History.getInstance().addListener('changeState', this.__changeLanguage, this);
            this.__changeLanguage();

            rpc.callAsyncSmart(function(baseCfg){
                var cfg = callbackery.data.Config.getInstance();
                cfg.setBaseConfig(baseCfg);
                if (baseCfg.TRANSLATIONS){

lib/CallBackery/qooxdoo/callbackery/source/class/callbackery/Application.js  view on Meta::CPAN

                        colors: baseCfg.COLORS
                    });
                    var colorTheme = qx.theme.manager.Color.getInstance().getTheme();
                    qx.Theme.patch(colorTheme,callbackery.theme.CustomColor);
                    // reset/set theme to get the changes visible in to ui
                    qx.theme.manager.Color.getInstance().resetTheme();
                    qx.theme.manager.Color.getInstance().setTheme(colorTheme);
                }
                rpc.callAsyncSmart(function(userCfg){
                    cfg.setUserConfig(userCfg);
                    desktopContainer.add(callbackery.ui.Desktop.getInstance(),{flex: 1});
                }, 'getUserConfig',{urlConfig: cfg.getUrlConfig()});
            }, 'getBaseConfig');

        },

        registerPlugin: function(type, func) {
            return callbackery.ui.Plugins.getInstance().register(type, func);
        },

        __changeLanguage: function() {

lib/CallBackery/qooxdoo/callbackery/source/class/callbackery/ui/Desktop.js  view on Meta::CPAN

/* ************************************************************************
   Copyright: 2011 OETIKER+PARTNER AG
   License:   GPLv3 or later
   Authors:   Tobi Oetiker <tobi@oetiker.ch>
   Utf8Check: äöü
************************************************************************ */
/**
 * Build the desktop. This is a singleton. So that the desktop
 * object and with it the treeView and the searchView are universaly accessible
 */
qx.Class.define("callbackery.ui.Desktop", {
    extend : qx.ui.container.Composite,
    type : 'singleton',

    construct : function() {
        this.base(arguments,new qx.ui.layout.VBox());
        this.set({
            padding: [5,10,0,10],

lib/CallBackery/qooxdoo/callbackery/source/class/callbackery/ui/Footer.js  view on Meta::CPAN

/* ************************************************************************
   Copyright: 2011 OETIKER+PARTNER AG
   License:   GPLv3 or later
   Authors:   Tobi Oetiker <tobi@oetiker.ch>
   Utf8Check: äöü
************************************************************************ */
/**
 * Build the desktop. This is a singleton. So that the desktop
 * object and with it the treeView and the searchView are universaly accessible
 */
qx.Class.define("callbackery.ui.Footer", {
    extend : qx.ui.container.Composite,
    type : 'singleton',

    construct : function() {
        this.base(arguments,new qx.ui.layout.HBox().set({
            alignX: 'right'
        }));

lib/CallBackery/qooxdoo/callbackery/source/class/callbackery/ui/Header.js  view on Meta::CPAN

/* ************************************************************************
   Copyright: 2011 OETIKER+PARTNER AG
   License:   GPLv3 or later
   Authors:   Tobi Oetiker <tobi@oetiker.ch>
   Utf8Check: äöü
************************************************************************ */
/**
 * Build the desktop. This is a singleton. So that the desktop
 * object and with it the treeView and the searchView are universaly accessible
 */
qx.Class.define("callbackery.ui.Header", {
    extend : qx.ui.container.Composite,
    type : 'singleton',

    construct : function() {
        this.base(arguments, new qx.ui.layout.HBox());
        var cfg = callbackery.data.Config.getInstance().getBaseConfig();
        if (cfg.title){

lib/CallBackery/qooxdoo/callbackery/source/class/callbackery/ui/TabView.js  view on Meta::CPAN

/* ************************************************************************
   Copyright: 2011 OETIKER+PARTNER AG
   License:   GPLv3 or later
   Authors:   Tobi Oetiker <tobi@oetiker.ch>
   Utf8Check: äöü
************************************************************************ */
/**
 * Build the desktop. This is a singleton
 */
qx.Class.define("callbackery.ui.TabView", {
    extend : qx.ui.tabview.TabView,
    type : 'singleton',

    construct : function() {
        this.base(arguments);
        var cfg = callbackery.data.Config.getInstance();
        var baseCfg = cfg.getBaseConfig();
        var userCfg = cfg.getUserConfig();



( run in 0.401 second using v1.01-cache-2.11-cpan-299005ec8e3 )