--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/adapters/application.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,16 @@
+import DS from 'ember-data';
+
+export default DS.FixtureAdapter.extend({
+ host: 'http://127.0.0.1',
+ namespace: 'api',
+ queryFixtures: function(records, query, type) {
+ return records.filter(function(record) {
+ for(var key in query) {
+ if (!query.hasOwnProperty(key)) { continue; }
+ var value = query[key];
+ if (record[key] !== value) { return false; }
+ }
+ return true;
+ });
+ }
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/components/visu-carto.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,134 @@
+import Ember from 'ember';
+
+export default Ember.Component.extend({
+ // storage: Ember.inject.service(),
+ didInsertElement: function(){
+ var _this = this;
+
+ var continentsDataProvider;
+
+ var franceDataProvider = {
+ mapVar: AmCharts.maps.france2016Low,
+ getAreasFromMap:true,
+
+ areas: this.initArea(AmCharts.maps.france2016Low)
+ };
+
+ var worldDataProvider = {
+ map: "worldLow",
+ getAreasFromMap: true,
+ images: [{
+ id: "backButton",
+ label: "Back to continents map",
+ rollOverColor: "#CC0000",
+ labelRollOverColor: "#CC0000",
+ useTargetsZoomValues: true,
+ left: 30,
+ bottom: 30,
+ labelFontSize: 15,
+ selectable: true
+ }],
+ areas: this.initArea(AmCharts.maps.worldLow, franceDataProvider)
+ };
+
+
+ var continentsDataProvider = {
+ map: "continentsLow",
+
+ areas: [{
+ id: "africa",
+ linkToObject: worldDataProvider,
+ color: "#7CACAE",
+ passZoomValuesToTarget: true
+ }, {
+ id: "asia",
+ linkToObject: worldDataProvider,
+ color: "#E0EEEF",
+ passZoomValuesToTarget: true
+ }, {
+ id: "australia",
+ linkToObject: worldDataProvider,
+ color: "#E0EEEF",
+ passZoomValuesToTarget: true
+ }, {
+ id: "europe",
+ linkToObject: worldDataProvider,
+ color: "#2D7073",
+ passZoomValuesToTarget: true
+ }, {
+ id: "north_america",
+ linkToObject: worldDataProvider,
+ color: "#B0D1D3",
+ passZoomValuesToTarget: true
+ }, {
+ id: "south_america",
+ linkToObject: worldDataProvider,
+ color: "#E0EEEF",
+ passZoomValuesToTarget: true
+ }]
+
+ };
+
+
+ var map = AmCharts.makeChart("mapdiv", {
+ type: "map",
+
+
+ areasSettings: {
+ autoZoom: true,
+ rollOverOutlineColor: "#000000",
+ selectedOutlineColor: "#CC0000",
+ selectedColor: "green",
+ color: "#E0EEEF"
+ },
+
+ dataProvider: continentsDataProvider,
+
+ listeners: [{event:"clickMapObject", method:handleMapObjectClick}]
+
+ });
+
+ function handleGoHome() {
+ map.dataProvider = continentsDataProvider;
+ map.validateNow();
+ }
+ function handleMapObjectClick (event) {
+ console.log("bbox: ", event.mapObject.displayObject.node.getBBox());
+ // console.log("event", event);
+ // console.log("originalTarget", event.event.originalTarget);
+ // console.log("getTotalLength", event.event.originalTarget.getTotalLength());
+ // console.log("getBBox", event.event.originalTarget.getBBox());
+ // console.log("event", event.event.originalTarget.attributes[1].d);
+ if (event.mapObject.id == "backButton") {
+ handleGoHome();
+ }
+ _this.sendAction('action', event.mapObject.title);
+ }
+
+ // monitor when home icon was clicked and also go to continents map
+ map.addListener("homeButtonClicked", handleGoHome);
+ },
+ initArea: function(area, dataProvider){
+ var _this = this;
+
+ var areaList = [];
+ var count = {};
+ area.svg.g.path.map(function(elt, index){
+ var length = _this.get("sounds").filterBy("spatial", elt.title).toArray().length;
+ if (length > 0)
+ count[elt.id]= length;
+ });
+ area.svg.g.path.map(function(elt, index){
+
+ areaList.push({
+ id: elt.id,
+ linkToObject: (elt.id === "FR" ? dataProvider : ""),
+ color: ((typeof(count[elt.id]) === "undefined") ? "#E0EEEF" : "#2D7073"),
+ autoZoom: (elt.id === "FR" ? true : false),
+ selectable: true,
+ passZoomValuesToTarget: false
+ });
+ });
+ return areaList;
+ }
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/components/visu-chrono.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,45 @@
+import Ember from 'ember';
+
+export default Ember.Component.extend({
+ didInsertElement: function(){
+ var _this = this;
+
+ if (this.get('container').lookup('controller:application').date !== null){
+ this.highlightQuery(this.get('container').lookup('controller:application').date);
+ }
+
+ var isMouseDown = false,
+ isHighlighted;
+ $("#our_table li").mousedown(function () {
+ isMouseDown = true;
+ $(this).toggleClass("highlighted");
+ isHighlighted = $(this).hasClass("highlighted");
+ _this.sendUpdate();
+ return false; // prevent text selection
+ }).mouseover(function () {
+ if (isMouseDown) {
+ $(this).toggleClass("highlighted", isHighlighted);
+ _this.sendUpdate();
+ }
+ }).bind("selectstart", function () {
+ return false;
+ })
+
+ $(document).mouseup(function () {
+ isMouseDown = false;
+ });
+ },
+ sendUpdate: function(){
+ var dateQuery = [];
+ $('.highlighted').map(function(index, elt) {
+ dateQuery.push(parseInt($(elt).parent().attr('id')) + parseInt($(elt).html()));
+ });
+ this.sendAction('action', dateQuery);
+ },
+ highlightQuery: function(list){
+ list.map(function(elt, index){
+ var year = Math.floor(parseInt(elt)/10)*10;
+ $("#"+year+" ."+(parseInt(elt)-year)).toggleClass("highlighted", true);
+ });
+ }
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/components/visu-langues.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,197 @@
+import Ember from 'ember';
+
+export default Ember.Component.extend({
+ didInsertElement: function(){
+ var _this = this;
+
+ var margin = {top: 20, right: 0, bottom: 0, left: 0},
+ width = 560,
+ height = 600 - margin.top - margin.bottom,
+ formatNumber = d3.format(",d"),
+ transitioning;
+
+ var x = d3.scale.linear()
+ .domain([0, width])
+ .range([0, width]);
+
+ var y = d3.scale.linear()
+ .domain([0, height])
+ .range([0, height]);
+
+ var treemap = d3.layout.treemap()
+ .children(function(d, depth) { return depth ? null : d._children; })
+ .sort(function(a, b) { return a.value - b.value; })
+ .ratio(height / width * 0.5 * (1 + Math.sqrt(5)))
+ .round(false);
+
+ var svg = d3.select("#chart_div").append("svg")
+ .attr("width", width + margin.left + margin.right)
+ .attr("height", height + margin.bottom + margin.top)
+ .style("margin-left", -margin.left + "px")
+ .style("margin.right", -margin.right + "px")
+ .append("g")
+ .attr("transform", "translate(" + margin.left + "," + margin.top + ")")
+ .style("shape-rendering", "crispEdges");
+
+ var grandparent = svg.append("g")
+ .attr("class", "grandparent");
+
+ grandparent.append("rect")
+ .attr("y", -margin.top)
+ .attr("width", width)
+ .attr("height", margin.top);
+
+ grandparent.append("text")
+ .attr("x", 6)
+ .attr("y", 6 - margin.top)
+ .attr("dy", ".75em");
+
+ d3.json("langues.json", function(root) {
+ initialize(root);
+ accumulate(root);
+ layout(root);
+ display(root);
+
+ function initialize(root) {
+ root.x = root.y = 0;
+ root.dx = width;
+ root.dy = height;
+ root.depth = 0;
+ }
+
+ // Aggregate the values for internal nodes. This is normally done by the
+ // treemap layout, but not here because of our custom implementation.
+ // We also take a snapshot of the original children (_children) to avoid
+ // the children being overwritten when when layout is computed.
+ function accumulate(d) {
+ return (d._children = d.children)
+ ? d.value = d.children.reduce(function(p, v) { return p + accumulate(v); }, 0)
+ : d.value;
+ }
+
+ // Compute the treemap layout recursively such that each group of siblings
+ // uses the same size (1×1) rather than the dimensions of the parent cell.
+ // This optimizes the layout for the current zoom state. Note that a wrapper
+ // object is created for the parent node for each group of siblings so that
+ // the parent’s dimensions are not discarded as we recurse. Since each group
+ // of sibling was laid out in 1×1, we must rescale to fit using absolute
+ // coordinates. This lets us use a viewport to zoom.
+ function layout(d) {
+ if (d._children) {
+ treemap.nodes({_children: d._children});
+ d._children.forEach(function(c) {
+ c.x = d.x + c.x * d.dx;
+ c.y = d.y + c.y * d.dy;
+ c.dx *= d.dx;
+ c.dy *= d.dy;
+ c.parent = d;
+ layout(c);
+ });
+ }
+ }
+
+ function display(d) {
+ grandparent
+ .datum(d.parent)
+ .on("click", transition)
+ .select("text")
+ .text(name(d));
+
+ var g1 = svg.insert("g", ".grandparent")
+ .datum(d)
+ .attr("class", "depth");
+
+ var g = g1.selectAll("g")
+ .data(d._children)
+ .enter().append("g");
+
+ g.classed("bla", true).on("click", selectHandler)
+
+ g.filter(function(d) { return d._children; })
+ .classed("children", true)
+ .on("click", transition);
+
+ // g.selectAll(".child")
+ // .data(function(d) { return d._children || [d]; })
+ // .enter().append("rect")
+ // .attr("class", "child")
+ // .call(rect);
+
+ g.append("rect")
+ .attr("class", "parent")
+ // .attr("fill", (d.color || "#bbb"))
+ .call(rect)
+ .append("title")
+ .text(function(d) { return formatNumber(d.value); });
+
+ g.append("text")
+ .attr("dy", ".75em")
+ .text(function(d) { return d.name; })
+ .call(text);
+
+ function transition(d) {
+ if (transitioning || !d) return;
+ selectHandler(d);
+ transitioning = true;
+
+ var g2 = display(d),
+ t1 = g1.transition().duration(750),
+ t2 = g2.transition().duration(750);
+
+ // Update the domain only after entering new elements.
+ x.domain([d.x, d.x + d.dx]);
+ y.domain([d.y, d.y + d.dy]);
+
+ // Enable anti-aliasing during the transition.
+ svg.style("shape-rendering", null);
+
+ // Draw child nodes on top of parent nodes.
+ svg.selectAll(".depth").sort(function(a, b) { return a.depth - b.depth; });
+
+ // Fade-in entering text.
+ g2.selectAll("text").style("fill-opacity", 0);
+
+ // Transition to the new view.
+ t1.selectAll("text").call(text).style("fill-opacity", 0);
+ t2.selectAll("text").call(text).style("fill-opacity", 1);
+ t1.selectAll("rect").call(rect);
+ t2.selectAll("rect").call(rect);
+
+ // Remove the old node when the transition is finished.
+ t1.remove().each("end", function() {
+ svg.style("shape-rendering", "crispEdges");
+ transitioning = false;
+ });
+ }
+
+ function selectHandler (d){
+ if (d.name === "Global"){
+ return _this.sendAction('action', null);
+ }
+ _this.sendAction('action', d.name);
+ }
+
+ return g;
+ }
+
+ function text(text) {
+ text.attr("x", function(d) { return x(d.x) + 6; })
+ .attr("y", function(d) { return y(d.y) + 6; });
+ }
+
+ function rect(rect) {
+ rect.attr("x", function(d) { return x(d.x); })
+ .attr("y", function(d) { return y(d.y); })
+ .attr("width", function(d) { return x(d.x + d.dx) - x(d.x); })
+ .attr("height", function(d) { return y(d.y + d.dy) - y(d.y); })
+ .attr("fill", function(d) { return (d.color || "#bbb")});
+ }
+
+ function name(d) {
+ return d.parent
+ ? name(d.parent) + "." + d.name
+ : d.name;
+ }
+ });
+ }
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/controllers/application.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,76 @@
+import Ember from 'ember';
+
+export default Ember.Controller.extend({
+ queryParams: ['location', 'langue', 'discours', 'date', 'thematique'],
+ location: null,
+ langue: null,
+ discours: null,
+ date: [],
+ thematique: null,
+ isShowingModal: false,
+ currentDetails: null,
+ currentItem: {title: "example", master: 'http://www.noiseaddicts.com/samples_1w72b820/3921.mp3'},
+ filteredSounds: Ember.computed('location', 'langue', 'discours', 'date', 'thematique', 'model', function() {
+ var location = this.get('location');
+ var langue = this.get('langue');
+ var discours = this.get('discours');
+ var date = this.get('date');
+ var thematique = this.get('thematique');
+
+ var sounds = this.get('model');
+
+ if (location) {
+ sounds = sounds.filterBy('spatial', location);
+ }
+ if (langue) {
+ sounds = sounds.filterBy('language', langue);
+ }
+ if (discours) {
+ sounds = sounds.filterBy('type', discours);
+ }
+ if (date.length > 0) {
+ var temp = sounds;
+ sounds.map(function(elt, index){
+ if (date.indexOf(elt.get('created')) === -1){
+ temp = temp.without(elt);
+ }
+ });
+ sounds = temp;
+ }
+ if (thematique) {
+ sounds = sounds.filterBy('thematique', thematique);
+ }
+ return sounds;
+ }),
+ actions: {
+ deleteTag: function(query, item){
+ var queryParams = {};
+ if (query === 'date'){
+ var array = this.get('date');
+ if(array.indexOf(item) !== -1) {
+ array.splice(array.indexOf(item), 1);
+ }
+ }
+ queryParams[query] = array || null;
+ this.transitionToRoute({queryParams: queryParams});
+ },
+ play: function(item){
+ this.set("currentItem", item);
+ $("#audio-player").load();
+ $(".result-item").toggleClass("playing", false);
+ $("#"+item.id).toggleClass("playing", true);
+ },
+ details: function(item){
+ if ($("#"+item.id).hasClass("details")){
+ $("#"+item.id).toggleClass("details", false);
+ } else{
+ $(".result-item").toggleClass("details", false);
+ $("#"+item.id).toggleClass("details", true);
+ }
+ },
+ toggleModal: function(item){
+ this.set("isShowingModal", !this.isShowingModal);
+ this.set("currentDetails", item);
+ }
+ }
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/controllers/tabs/carto.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,9 @@
+import Ember from 'ember';
+
+export default Ember.Controller.extend({
+ actions: {
+ updateUrl: function(selection){
+ this.transitionToRoute({queryParams: {location: selection}});
+ }
+ }
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/controllers/tabs/chrono.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,9 @@
+import Ember from 'ember';
+
+export default Ember.Controller.extend({
+ actions: {
+ updateUrl: function(selection){
+ this.transitionToRoute({queryParams: {date: selection}});
+ }
+ }
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/controllers/tabs/langues.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,9 @@
+import Ember from 'ember';
+
+export default Ember.Controller.extend({
+ actions: {
+ updateUrl: function(selection){
+ this.transitionToRoute({queryParams: {langue: selection}});
+ }
+ }
+});
--- a/cms/app-client/app/controllers/visus/visu-carto.js Fri Jan 15 17:16:49 2016 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-import Ember from 'ember';
-import config from '../../config/environment';
-
-export default Ember.Controller.extend({
- logoUrl: config.APP.baseStatic + "assets/images/logo.png"
-});
--- a/cms/app-client/app/index.html Fri Jan 15 17:16:49 2016 +0100
+++ b/cms/app-client/app/index.html Mon Jan 18 10:01:39 2016 +0100
@@ -21,19 +21,28 @@
<h1>Corpus de la parole</h1>
<div class="menu">
<ul class="menu_main">
- <li> <a href="#"> CORPUS </a> </li>
- <li> <a href="#"> LANGUES </a> </li>
- <li> <a href="#"> PROJET </a> </li>
- <li> <a href="#"> RECHERCHE </a> </li>
+ <li class="sub-menu"> <a href="#/langues"> Langues </a> </li>
+ <li class="sub-menu"> <a href="#/cartographie"> Cartographie </a> </li>
+ <li class="sub-menu"> <a href="#/thematiques"> Thématiques </a> </li>
+ <li class="sub-menu"> <a href="#/discours"> Discours </a> </li>
+ <li class="sub-menu"> <a href="#/chronologie"> Chronologie </a> </li>
</ul>
</div>
</div>
{{content-for 'body'}}
- <div id="corpus-app"></div>
+ <div id="corpus-app" class="corpus-app"></div>
+ <script type="text/javascript" src="https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1.1','packages':['treemap']}]}"></script>
<script src="assets/vendor.js"></script>
<script src="assets/app-client.js"></script>
+ <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
+ <script>
+ $(".menu_main .sub-menu").click(function(item, bla){
+ $(".menu_main .sub-menu").toggleClass("active", false);
+ $(item.currentTarget).toggleClass("active", true);
+ })
+ </script>
{{content-for 'body-footer'}}
</body>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/models/sound.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,349 @@
+import DS from 'ember-data';
+
+var Sound = DS.Model.extend({
+ title: DS.attr('string'),
+ description: DS.attr('string'),
+ interviewer: DS.attr('string'),
+ type: DS.attr('string'),
+ spatial: DS.attr('string'),
+ language: DS.attr('string'),
+ created: DS.attr('integer'),
+ master: DS.attr('url')
+});
+
+Sound.reopenClass({
+ FIXTURES: [
+ {
+ "id": 0,
+ "title": "culpa exercitation",
+ "description": "Deserunt exercitation laborum veniam ex anim officia non cillum ut. Mollit quis minim officia quis incididunt exercitation eu ad.",
+ "interviewer": "Ferguson King",
+ "type": "Reunion",
+ "spatial": "Germany",
+ "language": "Français",
+ "created": 1977,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3"
+ },
+ {
+ "id": 1,
+ "title": "excepteur ex",
+ "description": "Veniam irure deserunt esse veniam enim voluptate esse et consequat fugiat. Fugiat ullamco officia enim nulla.",
+ "interviewer": "Holly Sims",
+ "type": "Discours",
+ "spatial": "France",
+ "language": "Alsacien",
+ "created": 2001,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3"
+ },
+ {
+ "id": 2,
+ "title": "fugiat fugiat",
+ "description": "Enim aute incididunt voluptate sit labore anim in irure id duis ut. Occaecat magna sit mollit commodo enim reprehenderit nulla magna.",
+ "interviewer": "Claudia Cunningham",
+ "type": "Entretien",
+ "spatial": "France",
+ "language": "Corse",
+ "created": 2004,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3"
+ },
+ {
+ "id": 3,
+ "title": "officia fugiat",
+ "description": "Irure elit aute eu consequat est sunt cillum. Quis nisi consectetur cillum cupidatat id consectetur.",
+ "interviewer": "Hazel Foster",
+ "type": "Dialogue",
+ "spatial": "France",
+ "language": "Alsacien",
+ "created": 2001,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/138.mp3"
+ },
+ {
+ "id": 4,
+ "title": "nulla elit",
+ "description": "Anim ex consequat aliqua magna in aliquip ipsum voluptate est deserunt voluptate. Incididunt sit voluptate esse cillum qui ex irure cillum nulla cillum excepteur.",
+ "interviewer": "Colon Dotson",
+ "type": "Conversation",
+ "spatial": "Germany",
+ "language": "Breton",
+ "created": 1990,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3"
+ },
+ {
+ "id": 5,
+ "title": "sunt laboris",
+ "description": "Ex quis aliqua aliquip incididunt dolore excepteur est incididunt occaecat aute anim. Veniam laborum tempor cupidatat aliquip nostrud anim ut dolor sint et aliquip.",
+ "interviewer": "Alisha Flores",
+ "type": "Discussion",
+ "spatial": "France",
+ "language": "Corse",
+ "created": 1972,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3"
+ },
+ {
+ "id": 6,
+ "title": "fugiat laboris",
+ "description": "Do tempor amet duis occaecat. Est laboris ea voluptate ut adipisicing laboris exercitation eiusmod est irure ad laborum.",
+ "interviewer": "Hart Mccoy",
+ "type": "Conversation",
+ "spatial": "Germany",
+ "language": "Alsacien",
+ "created": 1987,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/138.mp3"
+ },
+ {
+ "id": 7,
+ "title": "elit sit",
+ "description": "Lorem magna adipisicing sit non excepteur aliqua tempor enim elit cupidatat voluptate laborum. Aliqua mollit consequat pariatur tempor.",
+ "interviewer": "Cecelia Gregory",
+ "type": "Bavardage",
+ "spatial": "Germany",
+ "language": "Breton",
+ "created": 1961,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/138.mp3"
+ },
+ {
+ "id": 8,
+ "title": "sit aliquip",
+ "description": "Ad sint anim elit eiusmod duis incididunt ipsum cupidatat culpa id proident amet. Ad in do aliquip irure est proident Lorem qui est veniam.",
+ "interviewer": "Cain Sweeney",
+ "type": "Dialogue",
+ "spatial": "Germany",
+ "language": "Corse",
+ "created": 1973,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/142.mp3"
+ },
+ {
+ "id": 9,
+ "title": "culpa ut",
+ "description": "Irure nostrud consequat aliqua sit est id aute dolor elit quis. Exercitation consequat commodo amet nostrud laboris minim aute ipsum eiusmod sunt nisi.",
+ "interviewer": "Clay Whitney",
+ "type": "Discussion",
+ "spatial": "Spain",
+ "language": "Alsacien",
+ "created": 2008,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3"
+ },
+ {
+ "id": 10,
+ "title": "culpa non",
+ "description": "Qui et dolor cupidatat eiusmod. Cillum irure mollit est nostrud dolor non exercitation ipsum sint.",
+ "interviewer": "Isabelle Valencia",
+ "type": "Conversation",
+ "spatial": "Spain",
+ "language": "Français",
+ "created": 1975,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3"
+ },
+ {
+ "id": 11,
+ "title": "sit occaecat",
+ "description": "Exercitation elit magna cillum pariatur fugiat minim fugiat. Occaecat minim sunt ex aute velit aliquip laboris aliquip dolore.",
+ "interviewer": "Sherri Morin",
+ "type": "Discussion",
+ "spatial": "France",
+ "language": "Français",
+ "created": 2008,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3"
+ },
+ {
+ "id": 12,
+ "title": "ea dolor",
+ "description": "Ea ullamco cupidatat esse et eu est sint irure ex non. Pariatur consectetur et quis et cupidatat ea mollit cillum enim.",
+ "interviewer": "Golden Bird",
+ "type": "Conversation",
+ "spatial": "France",
+ "language": "Breton",
+ "created": 1960,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/138.mp3"
+ },
+ {
+ "id": 13,
+ "title": "laboris adipisicing",
+ "description": "Non ex culpa ullamco occaecat quis ut reprehenderit non in cupidatat reprehenderit laboris reprehenderit. Laboris irure Lorem aliquip consequat consequat consequat cillum elit incididunt ad anim Lorem sint excepteur.",
+ "interviewer": "Bianca Faulkner",
+ "type": "Conversation",
+ "spatial": "Spain",
+ "language": "Breton",
+ "created": 1997,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3"
+ },
+ {
+ "id": 14,
+ "title": "sit veniam",
+ "description": "Cillum velit laborum irure velit consequat ipsum minim. Non in elit est Lorem excepteur mollit consectetur id.",
+ "interviewer": "Kidd Monroe",
+ "type": "Negociation",
+ "spatial": "Spain",
+ "language": "Alsacien",
+ "created": 2007,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3"
+ },
+ {
+ "id": 15,
+ "title": "excepteur exercitation",
+ "description": "Et officia laboris pariatur culpa. Ullamco nisi eu non in.",
+ "interviewer": "Debora Palmer",
+ "type": "Conversation",
+ "spatial": "France",
+ "language": "Alsacien",
+ "created": 1969,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3"
+ },
+ {
+ "id": 16,
+ "title": "consectetur officia",
+ "description": "Est tempor aliquip sit occaecat. Ullamco do anim labore consequat sunt enim ea.",
+ "interviewer": "Shaffer Workman",
+ "type": "Dialogue",
+ "spatial": "France",
+ "language": "Breton",
+ "created": 1998,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3"
+ },
+ {
+ "id": 17,
+ "title": "fugiat eiusmod",
+ "description": "Quis sit mollit velit quis veniam ipsum commodo voluptate laborum pariatur dolor eiusmod nisi. Reprehenderit aliquip quis aliqua mollit culpa.",
+ "interviewer": "Shepherd Floyd",
+ "type": "Discussion",
+ "spatial": "Spain",
+ "language": "Corse",
+ "created": 1991,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3"
+ },
+ {
+ "id": 18,
+ "title": "magna minim",
+ "description": "Amet enim in labore aliquip ipsum fugiat est ex quis. Voluptate adipisicing laboris nisi eu excepteur quis voluptate sit laborum ullamco proident aliquip duis aliquip.",
+ "interviewer": "Tamra Nixon",
+ "type": "Discussion",
+ "spatial": "France",
+ "language": "Français",
+ "created": 2009,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3"
+ },
+ {
+ "id": 19,
+ "title": "occaecat aliquip",
+ "description": "Reprehenderit cillum id duis et quis nulla tempor tempor eu ipsum magna mollit laborum. Ullamco reprehenderit incididunt nostrud irure tempor adipisicing.",
+ "interviewer": "Bette Becker",
+ "type": "Discours",
+ "spatial": "France",
+ "language": "Français",
+ "created": 1975,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3"
+ },
+ {
+ "id": 20,
+ "title": "minim minim",
+ "description": "Incididunt sit consequat laborum mollit nisi et ullamco aute ad nisi nostrud. Lorem quis id culpa culpa eu minim fugiat quis incididunt ex in sit adipisicing.",
+ "interviewer": "Marsh Gillespie",
+ "type": "Discussion",
+ "spatial": "Spain",
+ "language": "Français",
+ "created": 1964,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/142.mp3"
+ },
+ {
+ "id": 21,
+ "title": "commodo pariatur",
+ "description": "Duis elit consequat sint ipsum aliqua adipisicing ex consequat eiusmod qui ad laboris fugiat ipsum. Eiusmod eiusmod elit culpa veniam.",
+ "interviewer": "Guthrie Norman",
+ "type": "Argumentation",
+ "spatial": "France",
+ "language": "Corse",
+ "created": 1987,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/138.mp3"
+ },
+ {
+ "id": 22,
+ "title": "dolore voluptate",
+ "description": "Ullamco cupidatat tempor incididunt dolor enim proident aliqua dolor dolor nulla occaecat quis excepteur. Consectetur ea ut commodo sunt excepteur ad ut ex consectetur.",
+ "interviewer": "Rosalie Rogers",
+ "type": "Discussion",
+ "spatial": "Germany",
+ "language": "Français",
+ "created": 1997,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3"
+ },
+ {
+ "id": 23,
+ "title": "ipsum veniam",
+ "description": "Duis enim cupidatat laboris duis ut sint. Nisi eiusmod ea dolore cillum et labore dolor pariatur labore cupidatat reprehenderit irure.",
+ "interviewer": "Bridget Espinoza",
+ "type": "Conversation",
+ "spatial": "Spain",
+ "language": "Alsacien",
+ "created": 1973,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3"
+ },
+ {
+ "id": 24,
+ "title": "fugiat et",
+ "description": "Velit elit non consequat incididunt consectetur occaecat sint magna aliquip. In dolore sunt sit nulla veniam culpa laboris sunt incididunt voluptate ipsum.",
+ "interviewer": "Cox Bernard",
+ "type": "Entretien",
+ "spatial": "Germany",
+ "language": "Alsacien",
+ "created": 1988,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3"
+ },
+ {
+ "id": 25,
+ "title": "cillum adipisicing",
+ "description": "Aliqua ullamco quis aliqua minim irure sunt excepteur in nostrud. Consectetur aute commodo proident ea aliquip officia et dolore veniam sint.",
+ "interviewer": "Wendi Leon",
+ "type": "Negociation",
+ "spatial": "France",
+ "language": "Français",
+ "created": 1992,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3924.mp3"
+ },
+ {
+ "id": 26,
+ "title": "magna consequat",
+ "description": "Velit duis id consectetur ad anim fugiat in pariatur aliqua esse aliquip sit dolore aliqua. Laborum incididunt enim ea occaecat officia pariatur veniam deserunt.",
+ "interviewer": "Celeste Price",
+ "type": "Discussion",
+ "spatial": "France",
+ "language": "Alsacien",
+ "created": 1973,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/138.mp3"
+ },
+ {
+ "id": 27,
+ "title": "proident non",
+ "description": "Ullamco amet sit qui reprehenderit eu aliquip magna culpa. Aliqua fugiat commodo est non minim irure aliquip proident ipsum laborum nulla qui quis irure.",
+ "interviewer": "Patty Heath",
+ "type": "Reunion",
+ "spatial": "France",
+ "language": "Breton",
+ "created": 1973,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/142.mp3"
+ },
+ {
+ "id": 28,
+ "title": "ad tempor",
+ "description": "Adipisicing quis consectetur veniam adipisicing exercitation in pariatur amet exercitation cillum irure. Magna ipsum do eu labore consectetur minim quis ipsum ipsum mollit quis consequat.",
+ "interviewer": "Angelica Black",
+ "type": "Bavardage",
+ "spatial": "Spain",
+ "language": "Français",
+ "created": 1992,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3"
+ },
+ {
+ "id": 29,
+ "title": "fugiat eiusmod",
+ "description": "Anim sint in do anim irure non cupidatat veniam cillum pariatur adipisicing laboris labore ea. Mollit irure aute laboris incididunt aliqua.",
+ "interviewer": "Rosalinda Kramer",
+ "type": "Dialogue",
+ "spatial": "Germany",
+ "language": "Alsacien",
+ "created": 1972,
+ "master": "http://www.noiseaddicts.com/samples_1w72b820/3921.mp3"
+ }
+ ]
+});
+
+export default Sound;
--- a/cms/app-client/app/router.js Fri Jan 15 17:16:49 2016 +0100
+++ b/cms/app-client/app/router.js Mon Jan 18 10:01:39 2016 +0100
@@ -6,11 +6,16 @@
});
Router.map(function() {
- this.route('visus/visu-langues', { path: '/langues' });
- this.route('visus/visu-carto', { path: '/cartographie' });
- this.route('visus/visu-thematiques', { path: '/thematiques' });
- this.route('visus/visu-discours', { path: '/discours' });
- this.route('visus/visu-chrono', { path: '/chronologie' });
+ this.route('tabs/langues', { path: '/langues' });
+ this.route('tabs/carto', { path: '/cartographie' });
+ this.route('tabs/thematiques', { path: '/thematiques' });
+ this.route('tabs/discours', { path: '/discours' });
+ this.route('tabs/chrono', { path: '/chronologie' });
+});
+
+Router.reopen({
+ onUrlChange: function() {
+ }.observes('currentPath')
});
export default Router;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/routes/application.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,34 @@
+import Ember from 'ember';
+
+export default Ember.Route.extend({
+ serializeQueryParam: function(value, urlKey, defaultValueType) {
+ if (urlKey === 'date') {
+ return value;
+ }
+ return '' + value;
+ },
+ deserializeQueryParam: function(value, urlKey, defaultValueType) {
+ if (urlKey === 'date') {
+ var arr = [];
+ for (var i = 0; i < value.length; i++) {
+ arr.push(parseInt(value[i]));
+ }
+ return arr;
+ }
+
+ return value;
+ },
+ model() {
+ return this.store.findAll('sound');
+ },
+ actions: {
+ willTransition: function(transition) {
+ var _this = this;
+ var queryParams = {};
+ this.controller.get('queryParams').map(function(elt, index){
+ queryParams[elt] = _this.controller.get(elt);
+ });
+ this.transitionTo({ queryParams: queryParams });
+ }
+ }
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/routes/tabs/carto.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,12 @@
+import Ember from 'ember';
+
+export default Ember.Route.extend({
+ renderTemplate() {
+ this.render({ outlet: 'carto' });
+ },
+ actions: {
+ queryParamsDidChange: function() {
+ console.log("carto params");
+ },
+ }
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/routes/tabs/chrono.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,10 @@
+import Ember from 'ember';
+
+export default Ember.Route.extend({
+ actions: {
+ queryParamsDidChange: function() {
+ console.log("chrono params");
+ // console.log("visu-chrono ?", this.controller.get('visu-chrono'));
+ },
+ }
+});
--- a/cms/app-client/app/styles/app.scss Fri Jan 15 17:16:49 2016 +0100
+++ b/cms/app-client/app/styles/app.scss Mon Jan 18 10:01:39 2016 +0100
@@ -1,11 +1,23 @@
#corpus-app {
border: 1px solid;
- width: 940px;
- height: 900px;
+ width: 1108px;
+ height: 600px;
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 10px;
+
+ @import 'tabs/chrono';
+ @import 'tabs/carto';
+ @import 'tabs/langues';
+ @import 'tabs/discours';
+ @import 'tabs/thematiques';
+}
+
+.mapdiv{
+ width: 470px;
+ background-color: #FFFFFF;
+ height: 500px;
}
.corpus-app {
@@ -13,39 +25,30 @@
@import 'container';
@import 'player';
@import 'results';
+ @import 'modal';
&-container{
display: block;
width: 50%;
- height: 900px;
+ height: 600px;
float: left;
border-top: none;
border-right: 1px solid grey;
}
&-wrapper{
- height: 900px;
+ height: 600px;
display : flex;
flex-flow: column;
border: none;
- }
- &-player,
- &-results {
padding: 0 10px;
- margin-bottom: 10px;
- background-color: #eeeeee;
}
&-player{
flex: 0 1 auto;
float: left;
border-left: none;
border-top: none;
- }
- &-results {
- flex: 1 1 auto;
- float: left;
- overflow: auto;
- border-left: none;
- border-top: none;
+ margin-bottom: 10px;
+ background-color: #eeeeee;
}
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/styles/modal.scss Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,30 @@
+.overlay {
+ background-color: gray;
+ height: 100vh;
+ left: 0;
+ opacity: 0.77;
+ position: fixed;
+ right: 0;
+ top: 0;
+ z-index: 50;
+}
+
+.dialog {
+ background: #fff none repeat scroll 0 0;
+ border: 4px solid #ccc;
+ border-radius: 10px;
+ box-shadow: 0 0 10px #222;
+ height: 300px;
+ left: 50%;
+ margin-left: -250px;
+ margin-top: -150px;
+ padding: 10px;
+ position: fixed;
+ top: 50%;
+ width: 500px;
+ z-index: 50;
+}
+
+.dialog h1{
+ margin-top: 0;
+}
--- a/cms/app-client/app/styles/player.scss Fri Jan 15 17:16:49 2016 +0100
+++ b/cms/app-client/app/styles/player.scss Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,4 @@
+#audio-player{
+ display: block;
+ margin: 10px auto;
+}
--- a/cms/app-client/app/styles/results.scss Fri Jan 15 17:16:49 2016 +0100
+++ b/cms/app-client/app/styles/results.scss Mon Jan 18 10:01:39 2016 +0100
@@ -1,1 +1,83 @@
+.result-header,
+.result-list{
+ background-color: #eeeeee;
+}
+.result-header{
+ flex: 0 1 auto;
+ float: left;
+ border-left: none;
+ border-top: none;
+}
+
+.result-header .filters{
+ display: inline-block;
+ border-radius: 5px;
+ padding: 1px 5px;
+ color: #fff;
+}
+.result-header .filters.location{
+ background-color: #3985AB;
+}
+.result-header .filters.langue{
+ background-color: #B94A43;
+}
+.result-header .filters.discours{
+ background-color: #468842;
+}
+.result-header .filters.date{
+ background-color: #E50086;
+}
+.result-header .filters.thematique{
+ background-color: #F89406;
+}
+.result-header .fa{
+ display: inline-block;
+ margin-left: 5px;
+ position: relative;
+ top: 1px;
+ cursor: pointer;
+}
+
+.result-list{
+ flex: 1 1 auto;
+ float: left;
+ overflow: auto;
+ border: none;
+ padding: 10px;
+ margin-bottom: 10px;
+ background: #eeeeee;
+}
+
+.result-item {
+ margin-bottom: 1px;
+ height: 64px;
+ cursor: pointer;
+ padding: 5px;
+ overflow: hidden;
+ background-color: #fff;
+ border-bottom: 1px solid #eee;
+ color: #777;
+ transition: all 0.4s ease 0s;
+}
+.result-item:hover {
+ // box-shadow: -1px -1px 5px 0px rgba(0,0,0,0.75);
+}
+.result-item.details {
+ box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
+ margin: 1rem 0rem;
+ z-index: 200;
+ height: inherit;
+}
+
+.result-item .description{
+ margin-top: 10px;
+}
+
+.result-item.playing .fa {
+ // background: url('images/playing.gif') no-repeat;
+}
+
+.result-item button{
+ margin-top: 5px;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/styles/tabs/carto.scss Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,4 @@
+#mapdiv{
+ width: 100%;
+ height: 500px;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/styles/tabs/chrono.scss Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,19 @@
+#our_table ul {
+ margin: 0;
+}
+
+#our_table li {
+ width:40px;
+ height:40px;
+ text-align:center;
+ vertical-align:middle;
+ background-color:#B0D1D3;
+ display: inline-block;
+ margin: 1px -1px;
+ line-height: 30px;
+ cursor: pointer;
+}
+
+#our_table li.highlighted {
+ background-color:#2D7073;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/styles/tabs/discours.scss Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,9 @@
+.left{
+ float: left;
+ margin-left: 50px;
+}
+
+.right{
+ float: right;
+ margin-right: 50px;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/styles/tabs/langues.scss Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,45 @@
+#chart_div {
+ width: 560px;
+ height: 540px;
+ background: #ddd;
+}
+
+text {
+ pointer-events: none;
+}
+
+.grandparent text {
+ font-weight: bold;
+}
+
+rect {
+ /*fill: none;*/
+ stroke: #fff;
+}
+
+rect.parent,
+.grandparent rect {
+ stroke-width: 2px;
+}
+
+.grandparent rect {
+ fill: green;
+}
+
+.grandparent:hover rect {
+ fill: lightgreen;
+}
+
+.children rect.parent,
+.grandparent rect {
+ cursor: pointer;
+}
+
+.children rect.parent {
+ /*fill: #bbb;*/
+ fill-opacity: .5;
+}
+
+.children:hover rect.child {
+ /*fill: #bbb;*/
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/styles/tabs/thematiques.scss Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,47 @@
+input[type="text"] {
+ display: block;
+ margin: auto;
+ width: 250px;
+ font-family: sans-serif;
+ font-size: 18px;
+ appearance: none;
+ box-shadow: none;
+ border-radius: none;
+}
+input[type="text"]:focus {
+ outline: none;
+}
+
+.search-box{
+ display: block;
+ height: 100px;
+ width: 400px;
+ margin: 50px auto auto;
+}
+
+.search-box input[type="text"] {
+ padding: 10px;
+ border: none;
+ border-bottom: solid 2px #c9c9c9;
+ transition: border 0.3s;
+ outline: 30px solid #efefef;
+}
+.search-box input[type="text"]:focus,
+.search-box input[type="text"].focus {
+ border-bottom: solid 2px #969696;
+}
+
+.tag-cloud{
+ margin: 15px;
+ text-align: justify;
+}
+
+.not-popular{
+ font-size: 1em;
+}
+.popular{
+ font-size: 1.3em;
+}
+.very-popular{
+ font-size: 1.6em;
+}
--- a/cms/app-client/app/templates/application.hbs Fri Jan 15 17:16:49 2016 +0100
+++ b/cms/app-client/app/templates/application.hbs Mon Jan 18 10:01:39 2016 +0100
@@ -1,29 +1,12 @@
+<div id="info-modal"></div>
<div class="corpus-app-container">
- <ul class="corpus-app-em-tab-list">
- {{#link-to 'visus/visu-langues' tagName="li" class='corpus-app-em-tab'}}
- {{link-to 'Langues' 'visus/visu-langues'}}
- {{/link-to}}
- {{#link-to 'visus/visu-carto' tagName="li" class='corpus-app-em-tab'}}
- {{link-to 'Cartographie' 'visus/visu-carto'}}
- {{/link-to}}
- {{#link-to 'visus/visu-thematiques' tagName="li" class='corpus-app-em-tab'}}
- {{link-to 'Thématiques' 'visus/visu-thematiques'}}
- {{/link-to}}
- {{#link-to 'visus/visu-discours' tagName="li" class='corpus-app-em-tab'}}
- {{link-to 'Discours' 'visus/visu-discours'}}
- {{/link-to}}
- {{#link-to 'visus/visu-chrono' tagName="li" class='corpus-app-em-tab'}}
- {{link-to 'Chronologie' 'visus/visu-chrono'}}
- {{/link-to}}
- </ul>
{{outlet}}
+ <div class="carto">{{outlet "carto"}}</div>
</div>
<div class="corpus-app-wrapper">
<div class="corpus-app-player">
{{partial "player"}}
</div>
- <div class="corpus-app-results">
- {{partial "results"}}
- </div>
+ {{partial "results"}}
</div>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/templates/components/visu-carto.hbs Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,1 @@
+<div id="mapdiv"></div>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/templates/components/visu-chrono.hbs Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,74 @@
+<div cellpadding="0" cellspacing="0" id="our_table">
+ <ul id="1960"> 1960 -
+ <li class="0">0</li>
+ <li class="1">1</li>
+ <li class="2">2</li>
+ <li class="3">3</li>
+ <li class="4">4</li>
+ <li class="5">5</li>
+ <li class="6">6</li>
+ <li class="7">7</li>
+ <li class="8">8</li>
+ <li class="9">9</li>
+ </ul>
+ <ul id="1970"> 1970 -
+ <li class="0">0</li>
+ <li class="1">1</li>
+ <li class="2">2</li>
+ <li class="3">3</li>
+ <li class="4">4</li>
+ <li class="5">5</li>
+ <li class="6">6</li>
+ <li class="7">7</li>
+ <li class="8">8</li>
+ <li class="9">9</li>
+ </ul>
+ <ul id="1980"> 1980 -
+ <li class="0">0</li>
+ <li class="1">1</li>
+ <li class="2">2</li>
+ <li class="3">3</li>
+ <li class="4">4</li>
+ <li class="5">5</li>
+ <li class="6">6</li>
+ <li class="7">7</li>
+ <li class="8">8</li>
+ <li class="9">9</li>
+ </ul>
+ <ul id="1990"> 1990 -
+ <li class="0">0</li>
+ <li class="1">1</li>
+ <li class="2">2</li>
+ <li class="3">3</li>
+ <li class="4">4</li>
+ <li class="5">5</li>
+ <li class="6">6</li>
+ <li class="7">7</li>
+ <li class="8">8</li>
+ <li class="9">9</li>
+ </ul>
+ <ul id="2000"> 2000 -
+ <li class="0">0</li>
+ <li class="1">1</li>
+ <li class="2">2</li>
+ <li class="3">3</li>
+ <li class="4">4</li>
+ <li class="5">5</li>
+ <li class="6">6</li>
+ <li class="7">7</li>
+ <li class="8">8</li>
+ <li class="9">9</li>
+ </ul>
+ <ul id="2010"> 2010 -
+ <li class="0">0</li>
+ <li class="1">1</li>
+ <li class="2">2</li>
+ <li class="3">3</li>
+ <li class="4">4</li>
+ <li class="5">5</li>
+ <li class="6">6</li>
+ <li class="7">7</li>
+ <li class="8">8</li>
+ <li class="9">9</li>
+ </ul>
+</div>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/templates/components/visu-langues.hbs Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,1 @@
+<div id="chart_div"></div>
--- a/cms/app-client/app/templates/player.hbs Fri Jan 15 17:16:49 2016 +0100
+++ b/cms/app-client/app/templates/player.hbs Mon Jan 18 10:01:39 2016 +0100
@@ -1,4 +1,26 @@
-<h2>This is the player</h2>
<div class="corpus-app-content">
- PLAYER
+ <audio id="audio-player" controls>
+ <source src="{{ currentItem.master }}" type="audio/ogg">
+ <source src="{{ currentItem.master }}" type="audio/mpeg">
+ <source src="{{ currentItem.master }}" type="audio/wav">
+ Your browser does not support the audio element.
+ </audio>
+ <p>
+ Title: {{ currentItem.title }}
+ </p>
+ <p>
+ Description: {{ currentItem.description }}
+ </p>
</div>
+
+<div id="container">
+ <div id="audio_player">
+ <span class="btn btn_play" id="action_play" title="">Play</span>
+ <div class="background"></div>
+ <div class="progress">
+ <div class="slice">
+ <div class="pie"></div>
+ </div>
+ </div>
+ </div>
+</div>
--- a/cms/app-client/app/templates/results.hbs Fri Jan 15 17:16:49 2016 +0100
+++ b/cms/app-client/app/templates/results.hbs Mon Jan 18 10:01:39 2016 +0100
@@ -1,4 +1,50 @@
-<h2>This is the results</h2>
-<div class="corpus-app-content">
- RESULTS
+<div class="result-header">
+ <h2>This is the results</h2>
+ <p>
+ Filtres:
+ {{#if location}}
+ <span class="filters location">{{location}}<span class="fa fa-times" {{action 'deleteTag' 'location'}}></span></span>
+ {{/if}}
+ {{#if langue}}
+ <span class="filters langue">{{langue}}<span class="fa fa-times" {{action 'deleteTag' 'langue'}}></span></span>
+ {{/if}}
+ {{#if discours}}
+ <span class="filters discours">{{discours}}<span class="fa fa-times" {{action 'deleteTag' 'discours'}}></span></span>
+ {{/if}}
+ {{#if date}}
+ {{#each date as |item| }}
+ <span class="filters date">{{item}}<span class="fa fa-times" {{action 'deleteTag' 'date' item }}></span></span>
+ {{/each}}
+ {{/if}}
+ {{#if thematique}}
+ <span class="filters thematique">{{thematique}}<span class="fa fa-times" {{action 'deleteTag' 'thematique'}}></span></span>
+ {{/if}}
+ </p>
</div>
+<div class='result-list'>
+ {{#each filteredSounds as |item| }}
+ <div id="{{item.id}}" {{action "details" item}} class='result-item'>
+ <span class="fa fa-play-circle fa-lg fa-fw pull-right" {{action 'play' item}}></span>
+ <strong>{{ item.title }}</strong> - {{item.interviewer}}
+ <div class="description">
+ {{item.description}}
+ </div>
+ <button class="pull-right" {{action 'toggleModal' item}}>Details</button>
+ </div>
+ {{/each}}
+ {{#if isShowingModal}}
+ {{#ember-wormhole to='info-modal'}}
+ <div class="overlay" {{action 'toggleModal'}}></div>
+ <div class="dialog">
+ <h1>{{currentDetails.title}}</h1>
+ <p><b>Description: </b>{{currentDetails.description}}</p>
+ <p><b>Interviewer: </b>{{currentDetails.interviewer}}</p>
+ <p><b>Type de Discours: </b>{{currentDetails.type}}</p>
+ <p><b>Localisation: </b>{{currentDetails.spatial}}</p>
+ <p><b>Langue: </b>{{currentDetails.language}}</p>
+ <p><b>Date de Creation: </b>{{currentDetails.created}}</p>
+ <button class="pull-right" {{action 'toggleModal'}}>Close</button>
+ </div>
+ {{/ember-wormhole}}
+ {{/if}}
+</div>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/templates/tabs/carto.hbs Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,1 @@
+{{visu-carto action="updateUrl" sounds=model}}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/templates/tabs/chrono.hbs Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,2 @@
+<h2>Selectionnez une date:</h2>
+{{visu-chrono action="updateUrl" query=model}}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/templates/tabs/discours.hbs Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,28 @@
+<div class='left'>
+ <p>Dialogue</p>
+ <p>Conversation</p>
+ <p>Entretien</p>
+ <p>Discussion</p>
+ <p>Bavardage</p>
+ <p>Argumentation</p>
+ <p>Négociation</p>
+ <p>Réunion</p>
+ <p>Discours</p>
+ <p>Lecture à haute voix</p>
+ <p>Récitation</p>
+ <p>Récit personnel</p>
+ <p>Séminaire</p>
+</div>
+<div class='right'>
+ <p>Colloque</p>
+ <p>Conte</p>
+ <p>Fable</p>
+ <p>Narration</p>
+ <p>Chanson</p>
+ <p>Enquête par téléphone</p>
+ <p>Questionnaire</p>
+ <p>Enquête</p>
+ <p>Enquêtes linguistiques</p>
+ <p>Enquêtes de terrain</p>
+ <p>Musique instrumentale</p>
+</div>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/templates/tabs/langues.hbs Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,1 @@
+{{visu-langues action="updateUrl" query=model}}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/templates/tabs/thematiques.hbs Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,60 @@
+<div class="search-box">
+ <input type="text" placeholder="Entrez un mot clé">
+</div>
+
+<div class="tag-cloud">
+ <span class="popular">ipsum</span>
+ <span class="not-popular">dolor</span>
+ <span class="not-popular">sit</span>
+ <span class="popular">amet</span>
+ <span class="popular">consectetur</span>
+ <span class="not-popular">adipiscing</span>
+ <span class="very-popular">elit</span>
+ <span class="not-popular">Curabitur</span>
+ <span class="popular">non</span>
+ <span class="not-popular">ipsum</span>
+ <span class="very-popular">dolor</span>
+ <span class="not-popular">sit</span>
+ <span class="popular">amet</span>
+ <span class="popular">consectetur</span>
+ <span class="not-popular">adipiscing</span>
+ <span class="not-popular">elit</span>
+ <span class="popular">Curabitur</span>
+ <span class="not-popular">non</span>
+ <span class="popular">ipsum</span>
+ <span class="popular">dolor</span>
+ <span class="not-popular">sit</span>
+ <span class="not-popular">amet</span>
+ <span class="not-popular">consectetur</span>
+ <span class="not-popular">adipiscing</span>
+ <span class="very-popular">elit</span>
+ <span class="popular">Curabitur</span>
+ <span class="very-popular">non</span>
+ <span class="popular">ipsum</span>
+ <span class="not-popular">dolor</span>
+ <span class="not-popular">sit</span>
+ <span class="popular">amet</span>
+ <span class="popular">consectetur</span>
+ <span class="not-popular">adipiscing</span>
+ <span class="very-popular">elit</span>
+ <span class="not-popular">Curabitur</span>
+ <span class="popular">non</span>
+ <span class="not-popular">ipsum</span>
+ <span class="very-popular">dolor</span>
+ <span class="not-popular">sit</span>
+ <span class="popular">amet</span>
+ <span class="popular">consectetur</span>
+ <span class="not-popular">adipiscing</span>
+ <span class="not-popular">elit</span>
+ <span class="popular">Curabitur</span>
+ <span class="not-popular">non</span>
+ <span class="popular">ipsum</span>
+ <span class="popular">dolor</span>
+ <span class="not-popular">sit</span>
+ <span class="not-popular">amet</span>
+ <span class="not-popular">consectetur</span>
+ <span class="not-popular">adipiscing</span>
+ <span class="very-popular">elit</span>
+ <span class="popular">Curabitur</span>
+ <span class="very-popular">non</span>
+</div>
--- a/cms/app-client/app/templates/visus/visu-carto.hbs Fri Jan 15 17:16:49 2016 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-<h2>Recherche par cartographie</h2>
-<p>With a Logo !</p>
-<img src={{logoUrl}} alt="Logo">
--- a/cms/app-client/app/templates/visus/visu-chrono.hbs Fri Jan 15 17:16:49 2016 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-<h2>Recherche par chronologie</h2>
--- a/cms/app-client/app/templates/visus/visu-discours.hbs Fri Jan 15 17:16:49 2016 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-<h2>Recherche par discours</h2>
--- a/cms/app-client/app/templates/visus/visu-langues.hbs Fri Jan 15 17:16:49 2016 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-<h2>Recherche par langues</h2>
--- a/cms/app-client/app/templates/visus/visu-thematiques.hbs Fri Jan 15 17:16:49 2016 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-<h2>Recherche par thematiques</h2>
--- a/cms/app-client/bower.json Fri Jan 15 17:16:49 2016 +0100
+++ b/cms/app-client/bower.json Mon Jan 18 10:01:39 2016 +0100
@@ -12,6 +12,8 @@
"jquery": "^1.11.3",
"loader.js": "ember-cli/loader.js#3.2.1",
"qunit": "~1.18.0",
- "bootstrap-sass": "~3.3.5"
+ "bootstrap-sass": "~3.3.5",
+ "ammap3": "~3.18.6",
+ "font-awesome": "~4.4.0"
}
}
--- a/cms/app-client/config/environment.js Fri Jan 15 17:16:49 2016 +0100
+++ b/cms/app-client/config/environment.js Mon Jan 18 10:01:39 2016 +0100
@@ -5,8 +5,12 @@
rootElement: '#corpus-app',
modulePrefix: 'app-client',
environment: environment,
- baseURL: '/corpus',
- locationType: 'auto',
+ baseURL: '/corpus/',
+ // locationType: '',
+ // contentSecurityPolicy: {
+ // 'default-src': "'none'",
+ // 'style-src': "'self' 'http://localhost:4200'"
+ // },
APP: {
baseStatic: '',
// Here you can pass flags/options to your application instance
--- a/cms/app-client/ember-cli-build.js Fri Jan 15 17:16:49 2016 +0100
+++ b/cms/app-client/ember-cli-build.js Mon Jan 18 10:01:39 2016 +0100
@@ -26,6 +26,10 @@
// modules that you would like to import into your application
// please specify an object with the list of modules as keys
// along with the exports of each module as its value.
+ app.import('bower_components/ammap3/ammap/ammap.js');
+ app.import('bower_components/ammap3/ammap/maps/js/worldLow.js');
+ app.import('bower_components/ammap3/ammap/maps/js/continentsLow.js');
+ app.import('bower_components/ammap3/ammap/maps/js/france2016Low.js');
return app.toTree();
};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/npm-debug.log Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,45 @@
+0 info it worked if it ends with ok
+1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'start' ]
+2 info using npm@3.5.2
+3 info using node@v5.2.0
+4 verbose run-script [ 'prestart', 'start', 'poststart' ]
+5 info lifecycle app-client@0.0.0~prestart: app-client@0.0.0
+6 silly lifecycle app-client@0.0.0~prestart: no script for prestart, continuing
+7 info lifecycle app-client@0.0.0~start: app-client@0.0.0
+8 verbose lifecycle app-client@0.0.0~start: unsafe-perm in lifecycle true
+9 verbose lifecycle app-client@0.0.0~start: PATH: /usr/local/lib/node_modules/npm/bin/node-gyp-bin:/Users/nowmad/workspace/IRI/corpus_parole/cms/app-client/node_modules/.bin:/Library/PostgreSQL/9.5/bin/:/usr/local/apache-ant/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/nowmad/Library/Android/sdk/tools:/Users/nowmad/Library/Android/sdk/platform-tools
+10 verbose lifecycle app-client@0.0.0~start: CWD: /Users/nowmad/workspace/IRI/corpus_parole/cms/app-client
+11 silly lifecycle app-client@0.0.0~start: Args: [ '-c', 'ember serve --environment=development' ]
+12 silly lifecycle app-client@0.0.0~start: Returned: code: 1 signal: null
+13 info lifecycle app-client@0.0.0~start: Failed to exec start script
+14 verbose stack Error: app-client@0.0.0 start: `ember serve --environment=development`
+14 verbose stack Exit status 1
+14 verbose stack at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:232:16)
+14 verbose stack at emitTwo (events.js:88:13)
+14 verbose stack at EventEmitter.emit (events.js:173:7)
+14 verbose stack at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:24:14)
+14 verbose stack at emitTwo (events.js:88:13)
+14 verbose stack at ChildProcess.emit (events.js:173:7)
+14 verbose stack at maybeClose (internal/child_process.js:819:16)
+14 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:212:5)
+15 verbose pkgid app-client@0.0.0
+16 verbose cwd /Users/nowmad/workspace/IRI/corpus_parole/cms/app-client
+17 error Darwin 15.2.0
+18 error argv "/usr/local/bin/node" "/usr/local/bin/npm" "start"
+19 error node v5.2.0
+20 error npm v3.5.2
+21 error code ELIFECYCLE
+22 error app-client@0.0.0 start: `ember serve --environment=development`
+22 error Exit status 1
+23 error Failed at the app-client@0.0.0 start script 'ember serve --environment=development'.
+23 error Make sure you have the latest version of node.js and npm installed.
+23 error If you do, this is most likely a problem with the app-client package,
+23 error not with npm itself.
+23 error Tell the author that this fails on your system:
+23 error ember serve --environment=development
+23 error You can get information on how to open an issue for this project with:
+23 error npm bugs app-client
+23 error Or if that isn't available, you can get their info via:
+23 error npm owner ls app-client
+23 error There is likely additional logging output above.
+24 verbose exit [ 1, true ]
--- a/cms/app-client/package.json Fri Jan 15 17:16:49 2016 +0100
+++ b/cms/app-client/package.json Mon Jan 18 10:01:39 2016 +0100
@@ -24,7 +24,9 @@
"ember-cli-app-version": "0.5.0",
"ember-cli-babel": "^5.1.3",
"ember-cli-content-security-policy": "0.4.0",
+ "ember-cli-d3": "1.1.2",
"ember-cli-dependency-checker": "^1.0.1",
+ "ember-cli-font-awesome": "1.3.0",
"ember-cli-htmlbars": "0.7.9",
"ember-cli-htmlbars-inline-precompile": "^0.2.0",
"ember-cli-ic-ajax": "0.2.1",
@@ -36,6 +38,7 @@
"ember-cli-uglify": "^1.2.0",
"ember-data": "1.13.8",
"ember-disable-proxy-controllers": "^1.0.0",
- "ember-export-application-global": "^1.0.3"
+ "ember-export-application-global": "^1.0.3",
+ "ember-wormhole": "0.3.4"
}
}
Binary file cms/app-client/public/assets/images/play-button.png has changed
Binary file cms/app-client/public/assets/images/playing.gif has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/public/langues.json Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,195 @@
+{
+ "name": "Global",
+ "children": [
+ {
+ "id": "id de langue (code Lexvo de la langues)",
+ "name": "Français",
+ "value": 859,
+ "color": "lightblue"
+ },
+ {
+ "name": "Alsacien",
+ "value": 851
+ },
+ {
+ "name": "Breton",
+ "value": 403
+ },
+ {
+ "name": "Occitan",
+ "value": 344
+ },
+ {
+ "name": "Judéo-espagnol",
+ "value": 77
+ },
+ {
+ "name": "Undetermined",
+ "value": 45
+ },
+ {
+ "name": "Langues régionales",
+ "value": 175,
+ "children": [
+ {
+ "name": "Langues d'oïl",
+ "value": 75
+ },
+ {
+ "name": "Francoprovençal",
+ "value": 60
+ },
+ {
+ "name": "Corse",
+ "value": 40
+ }
+ ]
+ },
+ {
+ "name": "Langues non territoriales",
+ "value": 48,
+ "children": [
+ {
+ "name": "Langue des signes française (LSF)",
+ "value": 40
+ },
+ {
+ "name": "Berbère",
+ "value": 8
+ }
+ ]
+ },
+ {
+ "name": "Les Creoles",
+ "value": 47,
+ "children": [
+ {
+ "name": "Creole de la Réunion",
+ "value": 32
+ },
+ {
+ "name": "Creole de la Guadeloupe",
+ "value": 15
+ }
+ ]
+ },
+ {
+ "name": "Guyane",
+ "value": 59,
+ "children": [
+ {
+ "name": "Ndyuka-Trio Pidgin (njt)",
+ "value": 31
+ },
+ {
+ "name": "Palikúr (plu)",
+ "value": 6
+ },
+ {
+ "name": "Guianese Creole French (gcr)",
+ "value": 4
+ },
+ {
+ "name": "Eastern Maroon Creole (djk)",
+ "value": 16
+ },
+ {
+ "name": "Sranan Tongo (srn)",
+ "value": 2
+ }
+ ]
+ },
+ {
+ "name": "Mayotte",
+ "value": 20,
+ "children": [
+ {
+ "name": "Maore Comorian (swb)",
+ "value": 2
+ },
+ {
+ "name": "Mauritian Sign Language (lsy)",
+ "value": 18
+ }
+ ]
+ },
+ {
+ "name": "Polynésie française",
+ "value": 13,
+ "children": [
+ {
+ "name": "West Uvean (uve)",
+ "value": 13
+ }
+ ]
+ },
+ {
+ "name": "Wallis et Futuna",
+ "value": 43,
+ "children": [
+ {
+ "name": "LanEast Futuna (fud)",
+ "value": 23
+ },
+ {
+ "name": "Wallisian (wls)",
+ "value": 20
+ }
+ ]
+ },
+ {
+ "name": "Nouvelle-Calédonie",
+ "value": 68,
+ "children": [
+ {
+ "name": "Wallisian (wls)",
+ "value": 15
+ },
+ {
+ "name": "Xârâcùù (ane)",
+ "value": 12
+ },
+ {
+ "name": "Cemuhî (cam)",
+ "value": 9
+ },
+ {
+ "name": "Xaragure (axx)",
+ "value": 9
+ },
+ {
+ "name": "Iaai (iai)",
+ "value": 8
+ },
+ {
+ "name": "Nêlêmwa-Nixumwak (nee)",
+ "value": 4
+ },
+ {
+ "name": "Dehu (dhv)",
+ "value": 2
+ },
+ {
+ "name": "Nengone (nen)",
+ "value": 2
+ },
+ {
+ "name": "Ajië (aji)",
+ "value": 1
+ },
+ {
+ "name": "Numee (kdk)",
+ "value": 1
+ },
+ {
+ "name": "Yuaga (nua)",
+ "value": 1
+ },
+ {
+ "name": "Bwatoo (bwa)",
+ "value": 4
+ }
+ ]
+ }
+ ]
+}
--- a/cms/app-client/public/styles.css Fri Jan 15 17:16:49 2016 +0100
+++ b/cms/app-client/public/styles.css Mon Jan 18 10:01:39 2016 +0100
@@ -3,9 +3,9 @@
}
.header {
/*background-color: green;*/
- width: 940px;
+ width: 1108px;
height: 90px;
- display: block;
+ display: table;
margin-left: auto;
margin-right: auto;
margin-bottom: 1px;
@@ -37,8 +37,8 @@
position:relative;
left:50%;
padding: 0;
- display: inline-block;
- width: 100%;
+ display: table;
+ width: auto;
float: none;
margin: 0 auto 0 auto;
}
@@ -64,3 +64,8 @@
font-weight: 900;
background-color: bisque;
}
+
+.sub-menu{
+ margin-right: 10px;
+ cursor: pointer;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/tests/integration/components/visu-carto-test.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,26 @@
+import { moduleForComponent, test } from 'ember-qunit';
+import hbs from 'htmlbars-inline-precompile';
+
+moduleForComponent('visu-carto', 'Integration | Component | visu carto', {
+ integration: true
+});
+
+test('it renders', function(assert) {
+ assert.expect(2);
+
+ // Set any properties with this.set('myProperty', 'value');
+ // Handle any actions with this.on('myAction', function(val) { ... });
+
+ this.render(hbs`{{visu-carto}}`);
+
+ assert.equal(this.$().text().trim(), '');
+
+ // Template block usage:
+ this.render(hbs`
+ {{#visu-carto}}
+ template block text
+ {{/visu-carto}}
+ `);
+
+ assert.equal(this.$().text().trim(), 'template block text');
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/tests/integration/components/visu-chrono-test.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,26 @@
+import { moduleForComponent, test } from 'ember-qunit';
+import hbs from 'htmlbars-inline-precompile';
+
+moduleForComponent('visu-chrono', 'Integration | Component | visu chrono', {
+ integration: true
+});
+
+test('it renders', function(assert) {
+ assert.expect(2);
+
+ // Set any properties with this.set('myProperty', 'value');
+ // Handle any actions with this.on('myAction', function(val) { ... });
+
+ this.render(hbs`{{visu-chrono}}`);
+
+ assert.equal(this.$().text().trim(), '');
+
+ // Template block usage:
+ this.render(hbs`
+ {{#visu-chrono}}
+ template block text
+ {{/visu-chrono}}
+ `);
+
+ assert.equal(this.$().text().trim(), 'template block text');
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/tests/integration/components/visu-langues-test.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,26 @@
+import { moduleForComponent, test } from 'ember-qunit';
+import hbs from 'htmlbars-inline-precompile';
+
+moduleForComponent('visu-langues', 'Integration | Component | visu langues', {
+ integration: true
+});
+
+test('it renders', function(assert) {
+ assert.expect(2);
+
+ // Set any properties with this.set('myProperty', 'value');
+ // Handle any actions with this.on('myAction', function(val) { ... });
+
+ this.render(hbs`{{visu-langues}}`);
+
+ assert.equal(this.$().text().trim(), '');
+
+ // Template block usage:
+ this.render(hbs`
+ {{#visu-langues}}
+ template block text
+ {{/visu-langues}}
+ `);
+
+ assert.equal(this.$().text().trim(), 'template block text');
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/tests/unit/adapters/application-test.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,12 @@
+import { moduleFor, test } from 'ember-qunit';
+
+moduleFor('adapter:application', 'Unit | Adapter | application', {
+ // Specify the other units that are required for this test.
+ // needs: ['serializer:foo']
+});
+
+// Replace this with your real tests.
+test('it exists', function(assert) {
+ var adapter = this.subject();
+ assert.ok(adapter);
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/tests/unit/controllers/results-test.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,12 @@
+import { moduleFor, test } from 'ember-qunit';
+
+moduleFor('controller:results', {
+ // Specify the other units that are required for this test.
+ // needs: ['controller:foo']
+});
+
+// Replace this with your real tests.
+test('it exists', function(assert) {
+ var controller = this.subject();
+ assert.ok(controller);
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/tests/unit/models/sound-test.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,12 @@
+import { moduleForModel, test } from 'ember-qunit';
+
+moduleForModel('sound', 'Unit | Model | sound', {
+ // Specify the other units that are required for this test.
+ needs: []
+});
+
+test('it exists', function(assert) {
+ var model = this.subject();
+ // var store = this.store();
+ assert.ok(!!model);
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/tests/unit/routes/application-test.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,11 @@
+import { moduleFor, test } from 'ember-qunit';
+
+moduleFor('route:application', 'Unit | Route | application', {
+ // Specify the other units that are required for this test.
+ // needs: ['controller:foo']
+});
+
+test('it exists', function(assert) {
+ var route = this.subject();
+ assert.ok(route);
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/tests/unit/routes/results-test.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,11 @@
+import { moduleFor, test } from 'ember-qunit';
+
+moduleFor('route:results', 'Unit | Route | results', {
+ // Specify the other units that are required for this test.
+ // needs: ['controller:foo']
+});
+
+test('it exists', function(assert) {
+ var route = this.subject();
+ assert.ok(route);
+});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/tests/unit/routes/sound-test.js Mon Jan 18 10:01:39 2016 +0100
@@ -0,0 +1,11 @@
+import { moduleFor, test } from 'ember-qunit';
+
+moduleFor('route:sound', 'Unit | Route | sound', {
+ // Specify the other units that are required for this test.
+ // needs: ['controller:foo']
+});
+
+test('it exists', function(assert) {
+ var route = this.subject();
+ assert.ok(route);
+});
--- a/cms/corpus_module/corpus.module Fri Jan 15 17:16:49 2016 +0100
+++ b/cms/corpus_module/corpus.module Mon Jan 18 10:01:39 2016 +0100
@@ -38,12 +38,13 @@
'#tag' => 'meta', // The #tag is the html tag - <link />
'#attributes' => array( // Set up an array of attributes inside the tag
'name' => 'app-client/config/environment',
- 'content' => '%7B%22rootElement%22%3A%22%23corpus-app%22%2C%22modulePrefix%22%3A%22app-client%22%2C%22environment%22%3A%22production%22%2C%22baseURL%22%3A%22/corpus%22%2C%22locationType%22%3A%22auto%22%2C%22APP%22%3A%7B%22baseStatic%22%3A%22/'.drupal_get_path('module', 'corpus').'/app-client/%22%2C%22name%22%3A%22app-client%22%2C%22version%22%3A%220.0.0+%22%7D%2C%22contentSecurityPolicyHeader%22%3A%22Content-Security-Policy-Report-Only%22%2C%22contentSecurityPolicy%22%3A%7B%22default-src%22%3A%22%27none%27%22%2C%22script-src%22%3A%22%27self%27%22%2C%22font-src%22%3A%22%27self%27%22%2C%22connect-src%22%3A%22%27self%27%22%2C%22img-src%22%3A%22%27self%27%22%2C%22style-src%22%3A%22%27self%27%22%2C%22media-src%22%3A%22%27self%27%22%7D%2C%22exportApplicationGlobal%22%3Afalse%7D'
+ 'content' => '%7B%22rootElement%22%3A%22%23corpus-app%22%2C%22modulePrefix%22%3A%22app-client%22%2C%22environment%22%3A%22production%22%2C%22baseURL%22%3A%22/corpus%22%2C%22APP%22%3A%7B%22baseStatic%22%3A%22%22%2C%22name%22%3A%22app-client%22%2C%22version%22%3A%220.0.0+%22%7D%2C%22contentSecurityPolicyHeader%22%3A%22Content-Security-Policy-Report-Only%22%2C%22contentSecurityPolicy%22%3A%7B%22default-src%22%3A%22%27none%27%22%2C%22script-src%22%3A%22%27self%27%20%27unsafe-eval%27%22%2C%22font-src%22%3A%22%27self%27%22%2C%22connect-src%22%3A%22%27self%27%22%2C%22img-src%22%3A%22%27self%27%22%2C%22style-src%22%3A%22%27self%27%22%2C%22media-src%22%3A%22%27self%27%22%7D%2C%22exportApplicationGlobal%22%3Atrue%7D'
),
);
drupal_add_html_head($element, 'ember_init');
+ drupal_add_js("https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1.1','packages':['treemap']}]}");
drupal_add_js("{$path}/assets/vendor.js");
drupal_add_css("{$path}/assets/vendor.css");
drupal_add_css("{$path}/assets/{$app}.css");
@@ -51,5 +52,5 @@
drupal_add_js("{$path}/assets/{$app}.js", array('type' => 'file', 'scope' => 'footer'));
// drupal_add_js("{$path}/dist/assets/{$app}.js");
- return "<div id='corpus-app'></div>";
+ return "<div id='corpus-app' class='corpus-app'></div>";
}