App-MFILE-WWW

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

  command line, yet default to values in site configuration if they are not
  specified there

0.013  2014-08-14 17:01 CEST
- fighting with web technologies

0.014  2014-08-14 20:18 CEST
- add new JavaScript file js/02auth.js with authentication dialog-related
  functions
- Resource.pm: fix bug "don't die when no context at line 349"
- comp/auth.mi: eliminate useless legacy iframe; do not submit form -
  leave everything to the JavaScript code
- work on tickets

0.015  2014-08-15 11:14 CEST
- comp/: add license boilerplate; merge comp/index.html.mc into dhandler.mc
- js/02auth.js: merge beginnings of auth_check code

0.016  2014-08-15 17:47 CEST
- use jQuery 2.0 instead of 1.1.1
- jettisoned idea of having the JS code open a connection to the REST

Changes  view on Meta::CPAN

- status: changePassword works, but REST server does not allow passerbies and
  inactives to change their passwords -- need to look at that

0.057  2014-08-29 13:42 CEST
- Resource.pm: 'rest_req' now returns entire HTTP::Response object instead
  of just its 'code' property: adapt our code to handle that; AJAX calls 
  return HTTP response code _and_ message
- js/: run JSlint on all the JavaScript source files and fix all errors

0.058  2014-08-29 16:18 CEST
- css/: widen application frame by "50 pixels"
- Build.PL: require App::Dochazka version 0.164 minimum
- 002lib.js: fix MFILE.lib.rightPadSpaces (broken by JSlint-related
  changes)
- 013simpleForm2.js: fix bug "form submit broken when clicking on submit
  button"

0.059  2014-08-29 17:20 CEST
- Resource.pm->_login_dialog: improve error displayed on login failure
- 007directAction.js: constructor gives dA objects a default start method
  if one is not provided in the argument object; add 'insertEmployee' dA

Changes  view on Meta::CPAN

- test and debug MFILE.empProfile.sanitize function, now using it to ensure
  that employee objects don't have illegal properties when sending them to
  the REST server

0.061  2014-09-01 07:49 CEST
- Unicode hell

0.062  2014-09-02 17:57 CEST
- Unicode hell
- js/: split JS source files into 'mfile' and 'dochazka' trees -- 'mfile'
  is the "framework" and 'dochazka' is our "application" (preparation for
  Hackweek 11), minor cleanup
- HTML.pm, config/WWW_Config.pm: instead of having all the JS source code files
  in a single array ref, each source file now has its own site param

0.063  2014-09-02 18:42 CEST
- js/: js/mfile/004simpleMenu1.js contains "general" code, while the "real"
  simple menus are defined in js/dochazka/004simpleMenu1.js, which overwrites
  the MFILE.simpleMenu object; eliminate MFILE.listOfAllSimpleMenus array since
  this information can easily be derived from the MFILE.simpleMenu object

lib/App/MFILE/WWW.pm  view on Meta::CPAN

=head1 SYNOPSIS

    $ man mfile-www
    $ mfile-www
    $ firefox http://localhost:5001



=head1 DESCRIPTION

This distro contains a foundation/framework/toolkit for developing the "front
end" portion of web applications. 

L<App::MFILE::WWW> is a L<Plack> application that provides a HTTP
request-response handler (based on L<Web::Machine>), CSS and HTML source code
for an in-browser "screen", and JavaScript code for displaying various
"widgets" (menus, forms, etc.) in that screen and for processing user input
from within those widgets.

In addition, infrastructure is included (but need not be used) for user
authentication, session management, and communication with a backend server via

share/js/core/ajax.js  view on Meta::CPAN

// provides a function that sends AJAX requests to the App::MFILE::WWW server
// (which forwards them to the backend server) and takes action based on the
// HTTP response received.
//
// The 'ajax' function takes three arguments:
// - MFILE AJAX Object (an object)
// - success callback 
// - failure callback
//
// The success and failure callbacks can be null or undefined, in which case App::MFILE::WWW will
// just display the status text in the #result div (i.e., the line at the bottom of the frame).
// If your AJAX calls needs any other handling than this, you need to provide at least a success
// callback.
//
// In all cases except login/logout, the MFILE AJAX Object looks like this:
// {
//     "method": any HTTP method accepted by the backend server
//     "path": valid path to backend server resource
//     "body": content body to be sent to backend server (can be null)
// }
//

share/js/core/jquery-3.2.1.js  view on Meta::CPAN

/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */
!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof windo...
a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var...
null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d...

share/js/core/jquery.js  view on Meta::CPAN

/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */
!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof windo...
a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var...
null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d...

share/js/core/root.js  view on Meta::CPAN

// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
// *************************************************************************
//
// root.js
//
// entry point of application, whether for actual use or functional testing
//
// displays the application frame in the browser window or QUnit fixture,
// determines user and privlevel, initializes targets, and loads the main menu
//

"use strict";

define ([
    'jquery',
    'cf',
    'current-user',
    'html', 

share/js/core/tests/dummy.js  view on Meta::CPAN

//
"use strict";

define ([
    'QUnit'
], function (
    QUnit
) {
    return function () {

        QUnit.test('unit testing framework present', function (assert) {
            assert.ok(true, "Passed!");
        });

    };
});

share/js/mfile-www/lib.js  view on Meta::CPAN

                nick = 'ERROR';
            }
            r += 'User: ' + nick + ' (' + priv + ')';

            return r;

        },

        //  
        // function returns string that will be displayed at the very
        // bottom of the screen (directly under the frame)
        //  
        fillNoticesLine: function () {
            var r = '';
            r += 'Copyright \u00A9 SUSE LLC, 2014.  All rights reserved.  ';
            r += 'Report bugs at ';
            r += '<a href="http://sourceforge.net/p/mfile/tickets/new/">';
            r += 'http://sourceforge.net/p/mfile/tickets/new/</a>';
            return r;
        }

share/js/mfile-www/tests/dummy.js  view on Meta::CPAN

//
"use strict";

define ([
    'QUnit'
], function (
    QUnit
) {
    return function () {

        QUnit.test('unit testing framework present', function (assert) {
            assert.ok(true, "Passed!");
        });

    };
});



( run in 1.362 second using v1.01-cache-2.11-cpan-e1769b4cff6 )