//-- copyright // OpenProject is a project management system. // Copyright (C) 2012-2014 the OpenProject Foundation (OPF) // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License version 3. // // OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: // Copyright (C) 2006-2013 Jean-Philippe Lang // Copyright (C) 2010-2013 the ChiliProject Team // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // 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, write to the Free Software // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. // // See doc/COPYRIGHT.rdoc for more details. //++ // ╭───────────────────────────────────────────────────────────────╮ // │ _____ _ _ _ │ // │ |_ _(_)_ __ ___ ___| (_)_ __ ___ ___ │ // │ | | | | '_ ` _ \ / _ \ | | '_ \ / _ \/ __| │ // │ | | | | | | | | | __/ | | | | | __/\__ \ │ // │ |_| |_|_| |_| |_|\___|_|_|_| |_|\___||___/ │ // ├───────────────────────────────────────────────────────────────┤ // │ Javascript library that fetches and plots timelines for the │ // │ OpenProject timelines module. │ // ╰───────────────────────────────────────────────────────────────╯ // stricter than default /*jshint undef:true, eqeqeq:true, forin:true, immed:true, latedef:true, trailing: true */ // looser than default /*jshint eqnull:true */ // environment and other global vars /*jshint browser:true, devel:true*/ /*global jQuery:false, Timeline:true*/ if (typeof Timeline === "undefined") { Timeline = {}; } // ╭───────────────────────────────────────────────────────────────────╮ // │ Data Store │ // ├───────────────────────────────────────────────────────────────────┤ // │ Model Prototypes: │ // │ Timeline.ProjectAssociation │ // │ Timeline.Reporting │ // │ Timeline.ProjectType │ // │ Timeline.Color │ // │ Timeline.Status │ // │ Timeline.PlanningElementType │ // │ Timeline.User │ // ╰───────────────────────────────────────────────────────────────────╯ jQuery.extend(Timeline, { // ╭───────────────────────────────────────────────────────────────────╮ // │ Timeline.Reporting │ // ╰───────────────────────────────────────────────────────────────────╯ Reporting: { identifier: 'reportings', all: function(timeline) { // collect all reportings. var r = timeline.reportings; var result = []; for (var key in r) { if (r.hasOwnProperty(key)) { result.push(r[key]); } } return result; }, getProject: function() { return (this.project !== undefined) ? this.project : null; }, getProjectId: function () { return this.project.id; }, getReportingToProject : function () { return (this.reporting_to_project !== undefined) ? this.reporting_to_project : null; }, getReportingToProjectId : function () { return this.reporting_to_project.id; }, getStatus: function() { return (this.reported_project_status !== undefined) ? this.reported_project_status : null; } } });