All Downloads are FREE. Search and download functionalities are using the official Maven repository.

client.js.otp.core.IndexApi.js Maven / Gradle / Ivy

There is a newer version: 2.5.0
Show newest version
/* This program is free software: you can redistribute it and/or
   modify it under the teMap.jsrms of the GNU Lesser General Public License
   as published by the Free Software Foundation, either version 3 of
   the License, or (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see .
*/

otp.namespace("otp.core");

otp.core.IndexApi = otp.Class({

    webapp          : null,

    feeds           : null,
    routes          : null,

    initialize : function(webapp) {
        this.webapp = webapp;
    },

    loadFeeds : function(callbackTarget, callback) {
        var this_ = this;
        if(this.feeds) {
            if(callback) callback.call(callbackTarget);
            return;
        }

        var url = otp.config.hostname + '/' + otp.config.restService + '/index/feeds';
        $.ajax(url, {
            success: function(data) {
                this_.feeds = data;
                if(callback) callback.call(callbackTarget);
            }
        });
    },

    loadRoutes : function(callbackTarget, callback) {
        var this_ = this;
        if(this.routes) {
            if(callback) callback.call(callbackTarget);
            return;
        }

        var url = otp.config.hostname + '/' + otp.config.restService + '/index/routes';
        $.ajax(url, {
            success: function(data) {
                if(_.isEmpty(data)) {
                    console.log("Error: routes call returned no route data. OTP Message: "+data.message);
                    return;
                }
                var sortedRoutes = data;
                sortedRoutes.sort(function(a,b) {
                    a = a.shortName || a.longName;
                    b = b.shortName || b.longName;
                    if(otp.util.Text.isNumber(a) && otp.util.Text.isNumber(b)) {
                        if(parseFloat(a) < parseFloat(b)) return -1;
                        if(parseFloat(a) > parseFloat(b)) return 1;
                        return 0;
                    }
                    if(a < b) return -1;
                    if(a > b) return 1;
                    return 0;
                });

                var routes = { };
                for(var i=0; i




© 2015 - 2024 Weber Informatics LLC | Privacy Policy