App.ApplicationRoute = Ember.Route.extend({
model: function() {
// add intro screens
this.store.push('intro', {
id: 1,
detail: 'This App is designed to assist ICT projects chose a licence for their foss Project.',
next : 2, // id next intro screen if it exists
animation : 1, // css animation
character : "img/geek/GeekGirl_Sitting.png"// url of character illustration
});
this.store.push('intro', {
id: 2,
detail: 'At anytime, for more information click on the highlighted words.',
next : 3, // id next intro screen if it exists
animation : 2, // css animation
character : "img/geek/GeekGirl_Shrug.png"// url of character illustration
});
this.store.push('intro', {
id: 3,
detail: "When you use this App you are using it subject to the",
detail2: "in the App and this",
next : 4, // id question
animation : 3, // css animation
alert: 2,
alert2: 1,
character : "img/geek/GeekGirl_ThumbsUp.png"// url of character illustration
});
this.store.push('intro', {
id: 4,
detail: 'When you have made your decision you will be directed to a licence from our top 10 list which seems most suitable based on your choices. You can also see a summary of your choices and of the licence.',
next : 5, // id question
animation : 1, // css animation
character : "img/geek/GeekGirl_Sitting.png"// url of character illustration
});
this.store.push('intro', {
id: 5,
detail: '<p>You can also see your progress and the legal info at any time by clicking the drop down menu in the top right.</p><p>Lets get started!</p>'.htmlSafe(),
nextQ : 1, // id question
animation : 2, // css animation
character : "img/geek/GeekGirl_ThumbsUp.png"// url of character illustration
});
//add info to store
this.store.push('info', {
id: 1,
title: 'Disclaimer',
detail: 'The views expressed in this App are purely those of the authors and may not, in any circumstances, be interpreted as stating an official position of their companies or the European Commission nor provide a substitute for legal advice.The European Commission and the members of the PROSE Consortium do not guarantee the accuracy of the information included in this App, nor do they accept any responsibility or liability for any use thereof and all liability is disclaimed to the fullest extent permitted at law.'
});
this.store.push('info', {
id: 2,
title: 'Licences',
detail: '<p>This application is licensed under: <ul><li>Apache License, Version 2.0</li><li>Creative Commons 4.0 Attribution</li></ul>'
});
//adding animations to store
//animations use animate.css
this.store.push('animation', {
id: 1,
animation: "animated bounceIn"
});
this.store.push('animation', {
id: 2,
animation: "animated slideInLeft"
});
this.store.push('animation', {
id: 3,
animation: "animated slideInRight"
});
// Adding Questions to store
this.store.push('question', {
id: 1,
detail: "Did you create software?",
nextQYes: 2,
nextQNo: 3,
animation: 1,
character: "img/geek/GeekGirl_Confused.png"
});
this.store.push('question', {
id: 2,
detail: "Do you hold copyright?",
stopNo: 1,
stopYes: 2,
animation: 2,
character: "img/geek/GeekGirl_ThumbsUp.png"
});
this.store.push('question', {
id: 3,
detail: "Have you obtained rights to code?",
nextQYes:4,
stopNo: 1,
animation: 3,
character: "img/geek/GeekGirl_Sitting.png"
});
this.store.push('question', {
id: 4,
detail: "Do you want to share source?",
stopNo: 3,
stopYes: 4,
animation: 1,
character: "img/geek/GeekGirl_Confused.png"
});
this.store.push('question', {
id: 5,
detail: "Should the original code be distributed on the same licence by third parties who re-distribute?",
stopNo: 6,
nextQYes:6,
animation: 2,
character: "img/geek/GeekGirl_ThumbsUp.png"
});
this.store.push('question', {
id: 6,
detail: "Should modifications also be on the same licence?",
nextQNo: 9,
stopYes: 8,
animation: 3,
character: "img/geek/GeekGirl_Shrug.png"
});
this.store.push('question', {
id: 7,
detail: "May the code be proprieterised?",
nextQNo: 8,
animation: 1,
character: "img/geek/GeekGirl_ThumbsUp.png"
});
this.store.push('question', {
id: 8,
detail: "Do you require attribution?",
animation: 2,
character: "img/geek/GeekGirl_Sitting.png"
});
this.store.push('question', {
id: 9,
detail: "<p>Apache type licence would require original code to be underthe same licence when re-distributed by a third party.</p><p>Is this what you would like?</p>".htmlSafe(),
animation: 3,
character: "img/geek/GeekGirl_Confused.png",
stopYes: 9,
stopNo: 10
});
this.store.push('question', {
id: 10,
detail: "Do you want a jurisdiction (country) clause to apply to the licence".htmlSafe(),
animation: 1,
character: "img/geek/GeekGirl_Sitting.png",
nextQYes: 11,
nextQNo: 12
});
this.store.push('question', {
id: 11,
detail: "Do you want the licence to state the code may be moved to future/more up to date versions of the same licence?".htmlSafe(),
animation: 2,
character: "img/geek/GeekGirl_Sitting.png",
selectYes: [5],
selectNo: [6,7]
});
this.store.push('question', {
id: 12,
detail: "Is the software a library?".htmlSafe(),
animation: 3,
character: "img/geek/GeekGirl_Sitting.png",
nextQYes: 13,
nextQNo: 14
});
this.store.push('question', {
id: 13,
detail: "New Question will distinguish between lgplv2/lgplv3?".htmlSafe(),
animation: 1,
character: "img/geek/GeekGirl_Sitting.png",
selectYes: [3],
selectNo: [4]
});
this.store.push('question', {
id: 14,
detail: "New Question will distinguish between gplv2/gplv3?".htmlSafe(),
animation: 2,
character: "img/geek/GeekGirl_Sitting.png",
selectYes: [1],
selectNo: [2]
});
this.store.push('question', {
id: 15,
detail: "Do you want all modifications by third parties to be accompanied by a notice with their attribution and copyright, making clear there is a new author?".htmlSafe(),
animation: 2,
character: "img/geek/GeekGirl_Sitting.png",
selectYes: [10],
selectNo: [8]
});
//adding stops to store
this.store.push('stop', {
id: 1,
detail: "May not grant a licence!",
animation: 3,
character: "img/geek/GeekGirl_Confused.png",
startOver: true
});
this.store.push('stop', {
id: 2,
detail: "You may licence copyright",
nextQ: 4 ,
animation: 1,
character: "img/geek/GeekGirl_Jumping.png"
});
this.store.push('stop', {
id: 3,
detail: "Not suitable for FOSS final proprietary licence",
animation: 2,
character: "img/geek/GeekGirl_Shrug.png",
startOver: true
});
this.store.push('stop', {
id: 4,
detail: "FOSS licence is appropriate",
nextQ: 5,
animation: 3,
character: "img/geek/GeekGirl_Jumping.png"
});
this.store.push('stop', {
id: 5,
detail: "Copyleft = viral effect",
nextQ: 6,
animation: 1,
character: "img/geek/GeekGirl_ThumbsUp.png"
});
this.store.push('stop', {
id: 6,
detail: "This is a permissive licence type. To choose which licences work best for you, there are a number of options to identify an appropriate licence variant.",
animation: 2,
character: "img/geek/GeekGirl_ThumbsUp.png",
nextQ: 15
});
this.store.push('stop', {
id: 7,
detail: "Strong Copyleft",
animation: 3,
character: "img/geek/GeekGirl_ThumbsUp.png"
});
this.store.push('stop', {
id: 8,
detail: "This is a copyleft licence type. To choose which licences work best for you, there are a number of options to identify an appropriate licence variant.",
animation: 1,
character: "img/geek/GeekGirl_Shrug.png",
nextQ: 10
});
this.store.push('stop', {
id: 9,
detail: "This is a weak copyleft licence type. To choose which licences work best for you, there are a number of options to identify the best licence variant.",
animation: 1,
character: "img/geek/GeekGirl_Shrug.png",
nextQ: 15
});
this.store.push('stop', {
id: 10,
detail: "We would like to help you clarify your decision. Please Read the information re the licence choices for re-distribution of your code and modifications to it and follow the chooser again.",
animation: 1,
character: "img/geek/GeekGirl_Shrug.png",
nextQ: 5
});
// add licence types to store
this.store.push('licenceType', {
id: 1,
type: "Permissive"
});
this.store.push('licenceType', {
id: 2,
type: "Weak copyleft"
});
this.store.push('licenceType', {
id: 3,
type: "Strong copyleft"
});
// add obligations to store
this.store.push('proceduralObligation', {
id: 1,
procedural: 'Redistribution of source code must retain copyright notice:�� "Copyright [ ]. All rights reserved."'
});
this.store.push('proceduralObligation', {
id: 2,
procedural: 'Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.'
});
this.store.push('proceduralObligation', {
id: 3,
procedural: 'Neither the name of [ ] nor the names of [ ] contributors may be used to endorse or promote products derived from this software without specific prior written permission of [ ]. <strong>Note this makes this licence incompatible with GPL, and is not found in newer versions of the BSD.</strong>'.htmlSafe()
});
this.store.push('proceduralObligation', {
id: 4,
procedural: 'Redistribution of source code must retain copyright notice:�� "Copyright [yyyy] [name of copyright owner]"'.htmlSafe()
});
this.store.push('proceduralObligation', {
id: 5,
procedural: 'May reproduce and distribute copies of the Work or Derivative Works in any medium with or without modifications, in source or object form, provided you:<ul><li>give any recipient of the work or derivative works a copy of the license; and</li>cause modified files to carry prominent notices stating you changed the files; and<li></li><li>must retain in the source form of any derivative works all copyright, patent, trademark and attribution notices form the Source form of the work, excluding any that do not pertain to the derivative works; and</li><li>if the work includes a NOTICE text file it must be distributed as well.</li></ul>'.htmlSafe()
});
this.store.push('proceduralObligation', {
id: 6,
procedural: 'You may add your own copyright statement to modifications and provide additional or different license terms provided the license complies with conditions set for in this license.'.htmlSafe()
});
this.store.push('proceduralObligation', {
id: 7,
procedural: 'Copyright (c) <year> <copyright holders>'.htmlSafe()
});
this.store.push('proceduralObligation', {
id: 8,
procedural: 'The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.'.htmlSafe()
});
this.store.push('proceduralObligation', {
id: 9,
procedural: 'Any Covered Software that You distribute or otherwise make available in Executable form must also be made available in Source Code form and that Source Code form must be distributed only under the terms of this License. You must include a copy of this License with every copy of the Source Code form of the Covered Software You distribute or otherwise make available. You must inform recipients of any such Covered Software in Executable form as to how they can obtain such Covered Software in Source Code form in a reasonable manner on or through a medium customarily used for software exchange.'.htmlSafe()
});
this.store.push('proceduralObligation', {
id: 10,
procedural: 'You must include a notice in each of Your Modifications that identifies You as the Contributor of the Modification. You may not remove or alter any copyright, patent or trademark notices contained within the Covered Software, or any notices of licensing or any descriptive text giving attribution to any Contributor or the Initial Developer.'.htmlSafe()
});
this.store.push('proceduralObligation', {
id: 11,
procedural: 'Contributors may not remove or alter any copyright notices contained within the Program.'.htmlSafe()
});
this.store.push('proceduralObligation', {
id: 12,
procedural: 'Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.'.htmlSafe()
});
this.store.push('proceduralObligation', {
id: 13,
procedural: 'You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients��� rights in the Source Code Form.'.htmlSafe()
});
this.store.push('proceduralObligation', {
id: 14,
procedural: 'Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program).'.htmlSafe()
});
this.store.push('proceduralObligation', {
id: 15,
procedural: "You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.".htmlSafe()
});
// add liabilityObligation
this.store.push('liabilityObligation', {
id: 1,
liability: 'Software is provided "as is" and standard disclaimer of warranties is included.'.htmlSafe()
});
this.store.push('liabilityObligation', {
id: 2,
liability: 'Direct and indirect loss is excluded.'.htmlSafe()
});
// add intellectualObligation
this.store.push('intellectualObligation', {
id: 1,
intellectual: 'There are no restrictions on the use of the intellectual property.'
});
this.store.push('intellectualObligation', {
id: 2,
intellectual: 'A perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license is granted to reproduce, prepare Derivative Works of,�� publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.'
});
this.store.push('intellectualObligation', {
id: 3,
intellectual: 'Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.'
});
this.store.push('intellectualObligation', {
id: 4,
intellectual: 'A world-wide, royalty-free, non-exclusive license under intellectual property rights (other than patent or trademark) is granted to use, reproduce, modify, display, perform, sublicense and distribute the Original Software (or portions thereof), with or without Modifications, and/or as part of a Larger Work.'
});
this.store.push('intellectualObligation', {
id: 5,
intellectual: 'Each Contributor grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form. .'
});
this.store.push('intellectualObligation', {
id: 6,
intellectual: 'You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1.'
});
// add distributionObligation
this.store.push('distributionObligation', {
id: 1,
distribution: 'Open right to distribute on your own terms.'
});
this.store.push('distributionObligation', {
id: 2,
distribution: 'You may distribute the Executable form of the Covered Software under the terms of this License or under the terms of a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable form does not attempt to limit or alter the recipients rights in the Source Code form from the rights set forth in this License. If You distribute the Covered Software in Executable form under a different license, You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or Contributor.'
});
this.store.push('distributionObligation', {
id: 3,
distribution: 'You may create a Larger Work by combining Covered Software with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Software.'
});
this.store.push('distributionObligation', {
id: 4,
distribution: 'A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:<ul><li>it complies with the terms and conditions of this Agreement; and</li><li>its license agreement���states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.</li></ul>'.htmlSafe()
});
this.store.push('distributionObligation', {
id: 5,
distribution: 'All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License.'
});
this.store.push('distributionObligation', {
id: 6,
distribution: 'You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s).'
});
this.store.push('distributionObligation', {
id: 7,
distribution: 'Sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.'
});
this.store.push('distributionObligation', {
id: 8,
distribution: "As an exception to the Sections above, you may also combine or link a 'work that uses the Library' with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications."
});
this.store.push('distributionObligation', {
id: 9,
distribution: "Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License."
});
this.store.push('distributionObligation', {
id: 10,
distribution: 'These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.'
});
this.store.push('distributionObligation', {
id: 11,
distribution: "Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein."
});
//add licences to store
this.store.push('licence', {
id: 1,
name: "GNU General Public License (GPL) 2.0",
type: 3,
url: "http://opensource.org/licenses/GPL-2.0",
proceduralObligation: [15],
liabilityObligation: [1, 2],
intellectualObligation: [6],
distributionObligation: [10, 11]
});
this.store.push('licence', {
id: 2,
name: "GNU General Public License (GPL) 3.0",
type: 3,
url: "http://opensource.org/licenses/GPL-3.0",
proceduralObligation: [15],
liabilityObligation: [1, 2],
intellectualObligation: [6],
distributionObligation: [10, 11]
});
this.store.push('licence', {
id: 3,
name: "GNU Lesser General Public License (LGPL) 2.1",
type: 2,
url: "http://opensource.org/licenses/LGPL-2.1",
proceduralObligation: [14],
liabilityObligation: [1, 2],
intellectualObligation: [6],
distributionObligation: [7, 8, 9]
});
this.store.push('licence', {
id: 4,
name: "GNU Lesser General Public License (LGPL) 3.0",
type: 2,
url: "http://opensource.org/licenses/LGPL-3.0",
//proceduralObligation: [14],
liabilityObligation: [1, 2],
intellectualObligation: [6],
distributionObligation: [7, 8, 9]
});
this.store.push('licence', {
id: 5,
name: "Mozilla Public License (MPL) 2.0",
type: 2,
url: "http://opensource.org/licenses/MPL-2.0",
proceduralObligation: [13],
liabilityObligation: [1, 2],
intellectualObligation: [4],
distributionObligation: [5, 6]
});
this.store.push('licence', {
id: 6,
name: "European Public License (EPL)",
type: 2,
url: "http://opensource.org/licenses/EPL-1.0",
proceduralObligation: [11, 12],
liabilityObligation: [1, 2],
intellectualObligation: [5],
distributionObligation: [4]
});
this.store.push('licence', {
id: 7,
name: "Common Development and Distribution License (CDDL)",
type: 2,
url: "http://opensource.org/licenses/cddl1.txt",
proceduralObligation: [9, 10],
liabilityObligation: [1, 2],
intellectualObligation: [4],
distributionObligation: [2, 3]
});
this.store.push('licence', {
id: 8,
name: "MIT License",
type: 1,
url: "http://opensource.org/licenses/MIT",
proceduralObligation: [7, 8],
liabilityObligation: [1, 2],
intellectualObligation: [3],
distributionObligation: [1]
});
this.store.push('licence', {
id: 9,
name: "Apache License 2.0",
type: 1,
url: "http://opensource.org/licenses/Apache-2.0",
proceduralObligation: [4, 5, 6],
liabilityObligation: [1, 2],
intellectualObligation: [2],
distributionObligation: [1]
});
this.store.push('licence', {
id: 10,
name: "New BSD License",
type: 1,
url: "http://opensource.org/licenses/BSD-3-Clause",
proceduralObligation: [1, 2, 3],
liabilityObligation: [1, 2],
intellectualObligation: [1]
});
// push faq and questions into store
this.store.push('faq', {
id: 1,
faqQuestion: "What is a Permissive Licence?",
faqAnswer: "A permissive licence allows you to freely licence the code you have received and does not require modifications or additions to the code to be under the same licence. It will have some minimum requirements which generally include as a minimum, a disclaimer of liability, an attribution provision and a copyright notice."
});
this.store.push('faq', {
id: 2,
faqQuestion: "What is Copyleft?",
faqAnswer: "Copyleft is a term which is a play on the legal term copyright. It means that where code is distributed under a copyleft licence any modifications and additions to the code will generally be required to be licensed under the same licence terms as the original code. The licence terms stick not only to the original code by to the modifications and additions to it"
});
this.store.push('faq', {
id: 3,
faqQuestion: "What does sharing the Source Code mean?",
faqAnswer: "This generally means that a third party who is not the creator of code receives the Source Code from the creator or a distributor of the code under an approved Free or Open Source licence which gives them the right to use the code. This will allow the human readable object code to be shared and to be used in ways that comply with the Free Software Foundations's 4 conditions or the Open Source Initiative's 10. Generally this will allow the recipient to study, to modify and distribute the code."
});
this.store.push('faq', {
id: 4,
faqQuestion: "What does it mean to hold Copyright?",
faqAnswer: "This means that you have the right to the code as its owner and you will be this if you are the creator or someone who has received the rights to the code under an assignment or wide licence. If you have these rights you are able to decide how the code will be shared with third parties and what the terms of an applicable licence will be. "
});
this.store.push('faq', {
id: 5,
faqQuestion: "How do I get rights to someone's Copyright?",
faqAnswer: "You have no right to someone else's copyright work including software which is subject to the owner's copyright unless they grant you a licence. Your right to use someone else's copyrighted work will depend on the terms of the licence."
});
this.store.push('faq', {
id: 6,
faqQuestion: "What is a FOSS Licence?",
faqAnswer: "A licence that is approved by he Free Software Foundation or the Open Source Initiative as complying with its conditions. "
});
this.store.push('faq', {
id: 7,
faqQuestion: "What does Jurisdiction mean?",
faqAnswer: "This is the country whose law governs a contract and may also be where any enforcement of rights occurs."
});
this.store.push('faq', {
id: 8,
faqQuestion: "What are the differences between GPLv2 and GPLv3?",
faqAnswer: ""
});
}
});