Merge branch 'develop' into staging
This commit is contained in:
commit
9915e3d372
293 changed files with 951 additions and 926 deletions
11
.editorconfig
Normal file
11
.editorconfig
Normal file
|
@ -0,0 +1,11 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
|
||||
[*.{haml,html,js,scss,rake,rb,yml}]
|
||||
charset = utf-8
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
trim_trailing_whitespace = true
|
2
Gemfile
2
Gemfile
|
@ -16,7 +16,7 @@ gem 'therubyracer', platforms: :ruby
|
|||
# Use jquery as the JavaScript library
|
||||
gem 'jquery-rails'
|
||||
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
|
||||
gem 'turbolinks', '~> 2.5'
|
||||
gem 'turbolinks', '~> 5.0'
|
||||
# bundle exec rake doc:rails generates the API under doc/api.
|
||||
gem 'sdoc', '~> 0.4.0', group: :doc
|
||||
|
||||
|
|
23
Gemfile.lock
23
Gemfile.lock
|
@ -95,7 +95,7 @@ GEM
|
|||
bootstrap-wysihtml5-rails (0.3.3.8)
|
||||
railties (>= 3.0)
|
||||
browser (2.3.0)
|
||||
builder (3.2.2)
|
||||
builder (3.2.3)
|
||||
byebug (9.0.6)
|
||||
capybara (2.11.0)
|
||||
addressable
|
||||
|
@ -120,8 +120,8 @@ GEM
|
|||
coffee-script (2.4.1)
|
||||
coffee-script-source
|
||||
execjs
|
||||
coffee-script-source (1.11.1)
|
||||
concurrent-ruby (1.0.2)
|
||||
coffee-script-source (1.12.2)
|
||||
concurrent-ruby (1.0.5)
|
||||
connection_pool (2.2.1)
|
||||
crack (0.4.3)
|
||||
safe_yaml (~> 1.0.0)
|
||||
|
@ -331,7 +331,7 @@ GEM
|
|||
domain_name (~> 0.5)
|
||||
http_parser.rb (0.6.0)
|
||||
httpclient (2.8.3)
|
||||
i18n (0.7.0)
|
||||
i18n (0.8.1)
|
||||
inflecto (0.0.2)
|
||||
ipaddress (0.8.3)
|
||||
jquery-rails (4.2.1)
|
||||
|
@ -452,9 +452,9 @@ GEM
|
|||
actionpack (~> 5.x)
|
||||
actionview (~> 5.x)
|
||||
activesupport (~> 5.x)
|
||||
rails-dom-testing (2.0.1)
|
||||
rails-dom-testing (2.0.2)
|
||||
activesupport (>= 4.2.0, < 6.0)
|
||||
nokogiri (~> 1.6.0)
|
||||
nokogiri (~> 1.6)
|
||||
rails-html-sanitizer (1.0.3)
|
||||
loofah (~> 2.0)
|
||||
railties (5.0.0.1)
|
||||
|
@ -585,13 +585,14 @@ GEM
|
|||
libv8 (~> 3.16.14.0)
|
||||
ref
|
||||
thor (0.19.4)
|
||||
thread_safe (0.3.5)
|
||||
thread_safe (0.3.6)
|
||||
tilt (2.0.5)
|
||||
timecop (0.8.1)
|
||||
trollop (2.1.2)
|
||||
turbolinks (2.5.3)
|
||||
coffee-rails
|
||||
tzinfo (1.2.2)
|
||||
turbolinks (5.0.1)
|
||||
turbolinks-source (~> 5)
|
||||
turbolinks-source (5.0.0)
|
||||
tzinfo (1.2.3)
|
||||
thread_safe (~> 0.1)
|
||||
uglifier (3.0.4)
|
||||
execjs (>= 0.3.0, < 3)
|
||||
|
@ -707,7 +708,7 @@ DEPENDENCIES
|
|||
sqlite3
|
||||
therubyracer
|
||||
timecop
|
||||
turbolinks (~> 2.5)
|
||||
turbolinks (~> 5.0)
|
||||
uglifier (>= 1.3.0)
|
||||
unicode_utils
|
||||
unicorn
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 176 KiB |
Binary file not shown.
Before Width: | Height: | Size: 35 KiB |
Binary file not shown.
Before Width: | Height: | Size: 24 KiB |
Binary file not shown.
Before Width: | Height: | Size: 10 KiB |
Binary file not shown.
Before Width: | Height: | Size: 1.2 KiB |
|
@ -1,5 +1,4 @@
|
|||
$(document).on('page:load', init_action_btn_rules);
|
||||
$(document).ready(init_action_btn_rules);
|
||||
$(document).on('turbolinks:load', init_action_btn_rules);
|
||||
|
||||
function init_action_btn_rules() {
|
||||
$('.btn-send').click(function () {
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
function address_type_init() {
|
||||
display = 'label';
|
||||
display = 'label';
|
||||
|
||||
var bloodhound = new Bloodhound({
|
||||
datumTokenizer: Bloodhound.tokenizers.obj.whitespace(display),
|
||||
queryTokenizer: Bloodhound.tokenizers.whitespace,
|
||||
var bloodhound = new Bloodhound({
|
||||
datumTokenizer: Bloodhound.tokenizers.obj.whitespace(display),
|
||||
queryTokenizer: Bloodhound.tokenizers.whitespace,
|
||||
|
||||
remote: {
|
||||
url: '/ban/search?request=%QUERY',
|
||||
wildcard: '%QUERY'
|
||||
}
|
||||
});
|
||||
bloodhound.initialize();
|
||||
remote: {
|
||||
url: '/ban/search?request=%QUERY',
|
||||
wildcard: '%QUERY'
|
||||
}
|
||||
});
|
||||
bloodhound.initialize();
|
||||
|
||||
$("input[type='address']").typeahead({
|
||||
minLength: 1
|
||||
}, {
|
||||
display: display,
|
||||
source: bloodhound,
|
||||
limit: 5
|
||||
});
|
||||
$("input[type='address']").typeahead({
|
||||
minLength: 1
|
||||
}, {
|
||||
display: display,
|
||||
source: bloodhound,
|
||||
limit: 5
|
||||
});
|
||||
}
|
|
@ -1,47 +1,46 @@
|
|||
$(document).on('page:load', init_admin);
|
||||
$(document).ready(init_admin);
|
||||
$(document).on('turbolinks:load', init_admin);
|
||||
|
||||
function init_admin(){
|
||||
destroy_action();
|
||||
on_change_type_de_champ_select();
|
||||
destroy_action();
|
||||
on_change_type_de_champ_select();
|
||||
}
|
||||
|
||||
function destroy_action(){
|
||||
$(".delete").on('click', function(){
|
||||
$(this).hide();
|
||||
$(this).closest('td').find(".confirm").show();
|
||||
});
|
||||
$(".delete").on('click', function(){
|
||||
$(this).hide();
|
||||
$(this).closest('td').find(".confirm").show();
|
||||
});
|
||||
|
||||
$(".cancel").on('click', function(){
|
||||
$(this).closest('td').find(".delete").show();
|
||||
$(this).closest('td').find(".confirm").hide();
|
||||
});
|
||||
$(".cancel").on('click', function(){
|
||||
$(this).closest('td').find(".delete").show();
|
||||
$(this).closest('td').find(".confirm").hide();
|
||||
});
|
||||
|
||||
$("#liste_gestionnaire #libelle").on('click', function(){
|
||||
setTimeout(destroy_action, 500);
|
||||
});
|
||||
$("#liste_gestionnaire #libelle").on('click', function(){
|
||||
setTimeout(destroy_action, 500);
|
||||
});
|
||||
}
|
||||
|
||||
function on_change_type_de_champ_select (){
|
||||
$("select.form-control.type_champ").on('change', function(e){
|
||||
$("select.form-control.type_champ").on('change', function(e){
|
||||
|
||||
parent = $(this).parent().parent();
|
||||
parent = $(this).parent().parent();
|
||||
|
||||
parent.removeClass('header_section');
|
||||
parent.children(".drop_down_list").removeClass('show_inline');
|
||||
$('.mandatory', parent).show();
|
||||
parent.removeClass('header_section');
|
||||
parent.children(".drop_down_list").removeClass('show_inline');
|
||||
$('.mandatory', parent).show();
|
||||
|
||||
switch(this.value){
|
||||
case 'header_section':
|
||||
parent.addClass('header_section');
|
||||
break;
|
||||
case 'drop_down_list':
|
||||
case 'multiple_drop_down_list':
|
||||
parent.children(".drop_down_list").addClass('show_inline');
|
||||
break;
|
||||
case 'explication':
|
||||
$('.mandatory', parent).hide();
|
||||
break;
|
||||
}
|
||||
});
|
||||
switch(this.value){
|
||||
case 'header_section':
|
||||
parent.addClass('header_section');
|
||||
break;
|
||||
case 'drop_down_list':
|
||||
case 'multiple_drop_down_list':
|
||||
parent.children(".drop_down_list").addClass('show_inline');
|
||||
break;
|
||||
case 'explication':
|
||||
$('.mandatory', parent).hide();
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,98 +1,97 @@
|
|||
$(document).on('page:load', init_path_modal);
|
||||
$(document).ready(init_path_modal);
|
||||
$(document).on('turbolinks:load', init_path_modal);
|
||||
|
||||
function init_path_modal() {
|
||||
path_modal_action();
|
||||
path_validation_action();
|
||||
path_type_init();
|
||||
path_validation($("input[id='procedure_path']"));
|
||||
path_modal_action();
|
||||
path_validation_action();
|
||||
path_type_init();
|
||||
path_validation($("input[id='procedure_path']"));
|
||||
}
|
||||
|
||||
function path_modal_action() {
|
||||
$('#publishModal').on('show.bs.modal', function (event) {
|
||||
$("#publishModal .modal-body .table .tr_content").hide();
|
||||
$('#publishModal').on('show.bs.modal', function (event) {
|
||||
$("#publishModal .modal-body .table .tr_content").hide();
|
||||
|
||||
var button = $(event.relatedTarget) // Button that triggered the modal
|
||||
var modal_title = button.data('modal_title'); // Extract info from data-* attributes
|
||||
var modal_index = button.data('modal_index'); // Extract info from data-* attributes
|
||||
var button = $(event.relatedTarget) // Button that triggered the modal
|
||||
var modal_title = button.data('modal_title'); // Extract info from data-* attributes
|
||||
var modal_index = button.data('modal_index'); // Extract info from data-* attributes
|
||||
|
||||
var modal = $(this)
|
||||
modal.find('#publishModal_title').html(modal_title);
|
||||
$("#publishModal .modal-body .table #"+modal_index).show();
|
||||
})
|
||||
var modal = $(this)
|
||||
modal.find('#publishModal_title').html(modal_title);
|
||||
$("#publishModal .modal-body .table #"+modal_index).show();
|
||||
})
|
||||
}
|
||||
|
||||
function path_validation_action() {
|
||||
$("input[id='procedure_path']").keyup(function (key) {
|
||||
if (key.keyCode != 13)
|
||||
path_validation(this);
|
||||
});
|
||||
$("input[id='procedure_path']").keyup(function (key) {
|
||||
if (key.keyCode != 13)
|
||||
path_validation(this);
|
||||
});
|
||||
}
|
||||
|
||||
function togglePathMessage(valid, mine) {
|
||||
$('#path_messages .message').hide();
|
||||
$('#path_messages .message').hide();
|
||||
|
||||
if (valid === true && mine === true) {
|
||||
$('#path_is_mine').show();
|
||||
} else if (valid === true && mine === false) {
|
||||
$('#path_is_not_mine').show();
|
||||
} else if (valid === false && mine === null) {
|
||||
$('#path_is_invalid').show();
|
||||
}
|
||||
if (valid === true && mine === true) {
|
||||
$('#path_is_mine').show();
|
||||
} else if (valid === true && mine === false) {
|
||||
$('#path_is_not_mine').show();
|
||||
} else if (valid === false && mine === null) {
|
||||
$('#path_is_invalid').show();
|
||||
}
|
||||
|
||||
if ((valid && mine === null) || mine === true)
|
||||
$('#publishModal #publish').removeAttr('disabled')
|
||||
else
|
||||
$('#publishModal #publish').attr('disabled', 'disabled')
|
||||
if ((valid && mine === null) || mine === true)
|
||||
$('#publishModal #publish').removeAttr('disabled')
|
||||
else
|
||||
$('#publishModal #publish').attr('disabled', 'disabled')
|
||||
}
|
||||
|
||||
function path_validation(el) {
|
||||
var valid = validatePath($(el).val());
|
||||
toggleErrorClass(el, valid);
|
||||
togglePathMessage(valid, null);
|
||||
var valid = validatePath($(el).val());
|
||||
toggleErrorClass(el, valid);
|
||||
togglePathMessage(valid, null);
|
||||
}
|
||||
|
||||
function validatePath(path) {
|
||||
var re = /^[a-z0-9_]{3,30}$/;
|
||||
return re.test(path);
|
||||
var re = /^[a-z0-9_]{3,30}$/;
|
||||
return re.test(path);
|
||||
}
|
||||
|
||||
function path_type_init() {
|
||||
display = 'label';
|
||||
display = 'label';
|
||||
|
||||
var bloodhound = new Bloodhound({
|
||||
datumTokenizer: Bloodhound.tokenizers.obj.whitespace(display),
|
||||
queryTokenizer: Bloodhound.tokenizers.whitespace,
|
||||
var bloodhound = new Bloodhound({
|
||||
datumTokenizer: Bloodhound.tokenizers.obj.whitespace(display),
|
||||
queryTokenizer: Bloodhound.tokenizers.whitespace,
|
||||
|
||||
remote: {
|
||||
url: '/admin/procedures/path_list?request=%QUERY',
|
||||
wildcard: '%QUERY'
|
||||
}
|
||||
});
|
||||
bloodhound.initialize();
|
||||
remote: {
|
||||
url: '/admin/procedures/path_list?request=%QUERY',
|
||||
wildcard: '%QUERY'
|
||||
}
|
||||
});
|
||||
bloodhound.initialize();
|
||||
|
||||
$("#procedure_path").typeahead({
|
||||
minLength: 1
|
||||
}, {
|
||||
display: display,
|
||||
source: bloodhound,
|
||||
templates: {
|
||||
empty: 'Ce lien est disponible !',
|
||||
suggestion: Handlebars.compile("<div class='path_mine_{{mine}}'>{{label}}</div>")
|
||||
},
|
||||
limit: 5
|
||||
});
|
||||
$("#procedure_path").typeahead({
|
||||
minLength: 1
|
||||
}, {
|
||||
display: display,
|
||||
source: bloodhound,
|
||||
templates: {
|
||||
empty: 'Ce lien est disponible !',
|
||||
suggestion: Handlebars.compile("<div class='path_mine_{{mine}}'>{{label}}</div>")
|
||||
},
|
||||
limit: 5
|
||||
});
|
||||
|
||||
$('#procedure_path').bind('typeahead:select', function(ev, suggestion) {
|
||||
togglePathMessage(true, suggestion['mine']);
|
||||
});
|
||||
$('#procedure_path').bind('typeahead:select', function(ev, suggestion) {
|
||||
togglePathMessage(true, suggestion['mine']);
|
||||
});
|
||||
}
|
||||
|
||||
function transfer_errors_message(show) {
|
||||
if(show){
|
||||
$("#not_found_admin").slideDown(100)
|
||||
}
|
||||
else {
|
||||
$("#not_found_admin").slideUp(100)
|
||||
}
|
||||
if(show){
|
||||
$("#not_found_admin").slideDown(100)
|
||||
}
|
||||
else {
|
||||
$("#not_found_admin").slideUp(100)
|
||||
}
|
||||
}
|
|
@ -33,26 +33,24 @@
|
|||
//= require typeahead.bundle
|
||||
//= require select2
|
||||
|
||||
$(document).on('page:load', application_init);
|
||||
$(document).ready(application_init);
|
||||
$(document).on('turbolinks:load', application_init);
|
||||
|
||||
|
||||
function application_init(){
|
||||
tooltip_init();
|
||||
scroll_to();
|
||||
tooltip_init();
|
||||
scroll_to();
|
||||
}
|
||||
|
||||
function tooltip_init() {
|
||||
$('.action_button[data-toggle="tooltip"]').tooltip({delay: { "show": 100, "hide": 100 }});
|
||||
$('[data-toggle="tooltip"]').tooltip({delay: { "show": 800, "hide": 100 }});
|
||||
$('.action_button[data-toggle="tooltip"]').tooltip({delay: { "show": 100, "hide": 100 }});
|
||||
$('[data-toggle="tooltip"]').tooltip({delay: { "show": 800, "hide": 100 }});
|
||||
}
|
||||
|
||||
function scroll_to() {
|
||||
$('.js-scrollTo').on('click', function () { // Au clic sur un élément
|
||||
var page = $(this).attr('cible'); // Page cible
|
||||
var speed = 600; // Durée de l'animation (en ms)
|
||||
$('html, body').animate({scrollTop: $(page).offset().top - 200}, speed); // Go
|
||||
return false;
|
||||
});
|
||||
$('.js-scrollTo').on('click', function () { // Au clic sur un élément
|
||||
var page = $(this).attr('cible'); // Page cible
|
||||
var speed = 600; // Durée de l'animation (en ms)
|
||||
$('html, body').animate({scrollTop: $(page).offset().top - 200}, speed); // Go
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
$(document).on('page:load', buttons_archived);
|
||||
$(document).ready(buttons_archived);
|
||||
$(document).on('turbolinks:load', buttons_archived);
|
||||
|
||||
function buttons_archived(){
|
||||
$("button#archive").on('click', function(){
|
||||
$("button#archive").hide();
|
||||
$("#confirm").show();
|
||||
});
|
||||
$("button#archive").on('click', function(){
|
||||
$("button#archive").hide();
|
||||
$("#confirm").show();
|
||||
});
|
||||
|
||||
$("#confirm #cancel").on('click', function(){
|
||||
$("button#archive").show();
|
||||
$("#confirm").hide();
|
||||
});
|
||||
$("#confirm #cancel").on('click', function(){
|
||||
$("button#archive").show();
|
||||
$("#confirm").hide();
|
||||
});
|
||||
}
|
|
@ -1,8 +1,7 @@
|
|||
$(document).ready(wysihtml5_active);
|
||||
$(document).on('page:load', wysihtml5_active);
|
||||
$(document).on('turbolinks:load', wysihtml5_active);
|
||||
|
||||
function wysihtml5_active (){
|
||||
$('.wysihtml5').each(function(i, elem) {
|
||||
$(elem).wysihtml5({ toolbar:{ "fa": true, "link": false, "color": false }, "locale": "fr-FR" });
|
||||
});
|
||||
$('.wysihtml5').each(function(i, elem) {
|
||||
$(elem).wysihtml5({ toolbar:{ "fa": true, "link": false, "color": false }, "locale": "fr-FR" });
|
||||
});
|
||||
}
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
//= require_tree ./channels
|
||||
|
||||
//(function() {
|
||||
// this.App || (this.App = {});
|
||||
// this.App || (this.App = {});
|
||||
//
|
||||
// App.cable = ActionCable.createConsumer();
|
||||
// App.cable = ActionCable.createConsumer();
|
||||
//
|
||||
//}).call(this);
|
||||
|
|
|
@ -1,60 +1,60 @@
|
|||
function cadastre_active() {
|
||||
return $("#map.cadastre").length > 0
|
||||
return $("#map.cadastre").length > 0
|
||||
}
|
||||
|
||||
function get_cadastre(coordinates) {
|
||||
if (!cadastre_active())
|
||||
return;
|
||||
if (!cadastre_active())
|
||||
return;
|
||||
|
||||
var cadastre;
|
||||
var cadastre;
|
||||
|
||||
$.ajax({
|
||||
method: 'post',
|
||||
url: '/users/dossiers/' + dossier_id + '/carte/cadastre',
|
||||
data: {coordinates: JSON.stringify(coordinates)},
|
||||
dataType: 'json',
|
||||
async: false
|
||||
}).done(function (data) {
|
||||
cadastre = data
|
||||
});
|
||||
$.ajax({
|
||||
method: 'post',
|
||||
url: '/users/dossiers/' + dossier_id + '/carte/cadastre',
|
||||
data: {coordinates: JSON.stringify(coordinates)},
|
||||
dataType: 'json',
|
||||
async: false
|
||||
}).done(function (data) {
|
||||
cadastre = data
|
||||
});
|
||||
|
||||
return cadastre['cadastres'];
|
||||
return cadastre['cadastres'];
|
||||
}
|
||||
|
||||
function display_cadastre(cadastre_array) {
|
||||
if (!cadastre_active())
|
||||
return;
|
||||
if (!cadastre_active())
|
||||
return;
|
||||
|
||||
$("#cadastre.list ul").html('');
|
||||
new_cadastreLayer();
|
||||
$("#cadastre.list ul").html('');
|
||||
new_cadastreLayer();
|
||||
|
||||
if (cadastre_array.length == 1 && cadastre_array[0]['zoom_error'])
|
||||
$("#cadastre.list ul").html('<li><b>Merci de dessiner une surface plus petite afin de récupérer les parcelles cadastrales.</b></li>');
|
||||
if (cadastre_array.length == 1 && cadastre_array[0]['zoom_error'])
|
||||
$("#cadastre.list ul").html('<li><b>Merci de dessiner une surface plus petite afin de récupérer les parcelles cadastrales.</b></li>');
|
||||
|
||||
else if (cadastre_array.length > 0) {
|
||||
cadastre_array.forEach(function (cadastre) {
|
||||
$("#cadastre.list ul").append('<li> Parcelle n°' + cadastre.numero + ' - Feuille ' + cadastre.code_arr + ' ' + cadastre.section + ' ' + cadastre.feuille+ '</li>');
|
||||
else if (cadastre_array.length > 0) {
|
||||
cadastre_array.forEach(function (cadastre) {
|
||||
$("#cadastre.list ul").append('<li> Parcelle n°' + cadastre.numero + ' - Feuille ' + cadastre.code_arr + ' ' + cadastre.section + ' ' + cadastre.feuille+ '</li>');
|
||||
|
||||
cadastreItems.addData(cadastre.geometry);
|
||||
});
|
||||
cadastreItems.addData(cadastre.geometry);
|
||||
});
|
||||
|
||||
cadastreItems.setStyle({
|
||||
fillColor: '#8a6d3b',
|
||||
weight: 2,
|
||||
opacity: 0.3,
|
||||
color: 'white',
|
||||
dashArray: '3',
|
||||
fillOpacity: 0.7
|
||||
})
|
||||
}
|
||||
else
|
||||
$("#cadastre.list ul").html('<li>AUCUN</li>');
|
||||
cadastreItems.setStyle({
|
||||
fillColor: '#8a6d3b',
|
||||
weight: 2,
|
||||
opacity: 0.3,
|
||||
color: 'white',
|
||||
dashArray: '3',
|
||||
fillOpacity: 0.7
|
||||
})
|
||||
}
|
||||
else
|
||||
$("#cadastre.list ul").html('<li>AUCUN</li>');
|
||||
}
|
||||
|
||||
function new_cadastreLayer() {
|
||||
if (typeof cadastreItems != 'undefined')
|
||||
map.removeLayer(cadastreItems);
|
||||
if (typeof cadastreItems != 'undefined')
|
||||
map.removeLayer(cadastreItems);
|
||||
|
||||
cadastreItems = new L.GeoJSON();
|
||||
cadastreItems.addTo(map);
|
||||
cadastreItems = new L.GeoJSON();
|
||||
cadastreItems.addTo(map);
|
||||
}
|
|
@ -2,162 +2,162 @@ var LON = '2.428462';
|
|||
var LAT = '46.538192';
|
||||
|
||||
function initCarto() {
|
||||
OSM = L.tileLayer("http://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png", {
|
||||
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
|
||||
OSM = L.tileLayer("http://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png", {
|
||||
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
|
||||
});
|
||||
|
||||
position = get_position() || default_gestionnaire_position();
|
||||
|
||||
map = L.map("map", {
|
||||
center: new L.LatLng(position.lat, position.lon),
|
||||
zoom: position.zoom,
|
||||
layers: [OSM],
|
||||
scrollWheelZoom: false
|
||||
});
|
||||
|
||||
icon = L.icon({
|
||||
iconUrl: '/assets/marker-icon.png',
|
||||
//shadowUrl: 'leaf-shadow.png',
|
||||
|
||||
iconSize: [34.48, 40], // size of the icon
|
||||
//shadowSize: [50, 64], // size of the shadow
|
||||
iconAnchor: [20, 20] // point of the icon which will correspond to marker's location
|
||||
//shadowAnchor: [4, 62], // the same for the shadow
|
||||
//popupAnchor: [-3, -76] // point from which the popup should open relative to the iconAnchor
|
||||
});
|
||||
|
||||
if (qp_active())
|
||||
display_qp(JSON.parse($("#quartier_prioritaires").val()));
|
||||
|
||||
if (cadastre_active())
|
||||
display_cadastre(JSON.parse($("#cadastres").val()));
|
||||
|
||||
freeDraw = new L.FreeDraw();
|
||||
freeDraw.options.setSmoothFactor(4);
|
||||
freeDraw.options.simplifyPolygon = false;
|
||||
|
||||
map.addLayer(freeDraw);
|
||||
|
||||
if ($("#json_latlngs").val() != '' && $("#json_latlngs").val() != '[]') {
|
||||
map.setZoom(18);
|
||||
|
||||
$.each($.parseJSON($("#json_latlngs").val()), function (i, val) {
|
||||
freeDraw.createPolygon(val);
|
||||
});
|
||||
|
||||
position = get_position() || default_gestionnaire_position();
|
||||
map.fitBounds(freeDraw.polygons[0].getBounds());
|
||||
}
|
||||
else if (position.lat == LAT && position.lon == LON)
|
||||
map.setView(new L.LatLng(position.lat, position.lon), position.zoom);
|
||||
|
||||
map = L.map("map", {
|
||||
center: new L.LatLng(position.lat, position.lon),
|
||||
zoom: position.zoom,
|
||||
layers: [OSM],
|
||||
scrollWheelZoom: false
|
||||
});
|
||||
|
||||
icon = L.icon({
|
||||
iconUrl: '/assets/marker-icon.png',
|
||||
//shadowUrl: 'leaf-shadow.png',
|
||||
|
||||
iconSize: [34.48, 40], // size of the icon
|
||||
//shadowSize: [50, 64], // size of the shadow
|
||||
iconAnchor: [20, 20] // point of the icon which will correspond to marker's location
|
||||
//shadowAnchor: [4, 62], // the same for the shadow
|
||||
//popupAnchor: [-3, -76] // point from which the popup should open relative to the iconAnchor
|
||||
});
|
||||
|
||||
if (qp_active())
|
||||
display_qp(JSON.parse($("#quartier_prioritaires").val()));
|
||||
|
||||
if (cadastre_active())
|
||||
display_cadastre(JSON.parse($("#cadastres").val()));
|
||||
|
||||
freeDraw = new L.FreeDraw();
|
||||
freeDraw.options.setSmoothFactor(4);
|
||||
freeDraw.options.simplifyPolygon = false;
|
||||
|
||||
map.addLayer(freeDraw);
|
||||
|
||||
if ($("#json_latlngs").val() != '' && $("#json_latlngs").val() != '[]') {
|
||||
map.setZoom(18);
|
||||
|
||||
$.each($.parseJSON($("#json_latlngs").val()), function (i, val) {
|
||||
freeDraw.createPolygon(val);
|
||||
});
|
||||
|
||||
map.fitBounds(freeDraw.polygons[0].getBounds());
|
||||
}
|
||||
else if (position.lat == LAT && position.lon == LON)
|
||||
map.setView(new L.LatLng(position.lat, position.lon), position.zoom);
|
||||
|
||||
add_event_freeDraw();
|
||||
add_event_search_address();
|
||||
add_event_freeDraw();
|
||||
add_event_search_address();
|
||||
}
|
||||
|
||||
function default_gestionnaire_position() {
|
||||
return {lon: LON, lat: LAT, zoom: 5}
|
||||
return {lon: LON, lat: LAT, zoom: 5}
|
||||
}
|
||||
|
||||
function get_external_data(latLngs) {
|
||||
if (qp_active())
|
||||
display_qp(get_qp(latLngs));
|
||||
if (qp_active())
|
||||
display_qp(get_qp(latLngs));
|
||||
|
||||
if (cadastre_active()) {
|
||||
polygons = {"type": "FeatureCollection", "features": []};
|
||||
if (cadastre_active()) {
|
||||
polygons = {"type": "FeatureCollection", "features": []};
|
||||
|
||||
for (i = 0; i < latLngs.length; i++)
|
||||
polygons.features.push(feature_polygon_latLngs(latLngs[i]))
|
||||
for (i = 0; i < latLngs.length; i++)
|
||||
polygons.features.push(feature_polygon_latLngs(latLngs[i]))
|
||||
|
||||
cadastre_list = [{zoom_error: true}];
|
||||
cadastre_list = [{zoom_error: true}];
|
||||
|
||||
if (turf_area(polygons) < 300000)
|
||||
cadastre_list = get_cadastre(latLngs);
|
||||
if (turf_area(polygons) < 300000)
|
||||
cadastre_list = get_cadastre(latLngs);
|
||||
|
||||
display_cadastre(cadastre_list);
|
||||
}
|
||||
display_cadastre(cadastre_list);
|
||||
}
|
||||
}
|
||||
|
||||
function feature_polygon_latLngs(coordinates) {
|
||||
return ({
|
||||
"type": "Feature",
|
||||
"properties": {},
|
||||
"geometry": {
|
||||
"type": "Polygon",
|
||||
"coordinates": [
|
||||
JSON.parse(L.FreeDraw.Utilities.getJsonPolygons([coordinates]))['latLngs']
|
||||
]
|
||||
}
|
||||
})
|
||||
return ({
|
||||
"type": "Feature",
|
||||
"properties": {},
|
||||
"geometry": {
|
||||
"type": "Polygon",
|
||||
"coordinates": [
|
||||
JSON.parse(L.FreeDraw.Utilities.getJsonPolygons([coordinates]))['latLngs']
|
||||
]
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function add_event_freeDraw() {
|
||||
freeDraw.on('markers', function (e) {
|
||||
$("#json_latlngs").val(JSON.stringify(e.latLngs));
|
||||
freeDraw.on('markers', function (e) {
|
||||
$("#json_latlngs").val(JSON.stringify(e.latLngs));
|
||||
|
||||
add_event_edit();
|
||||
add_event_edit();
|
||||
|
||||
get_external_data(e.latLngs);
|
||||
});
|
||||
get_external_data(e.latLngs);
|
||||
});
|
||||
|
||||
$("#map").on('click', function(){
|
||||
freeDraw.setMode(L.FreeDraw.MODES.VIEW);
|
||||
});
|
||||
$("#map").on('click', function(){
|
||||
freeDraw.setMode(L.FreeDraw.MODES.VIEW);
|
||||
});
|
||||
|
||||
$("#new").on('click', function (e) {
|
||||
freeDraw.setMode(L.FreeDraw.MODES.CREATE);
|
||||
});
|
||||
$("#new").on('click', function (e) {
|
||||
freeDraw.setMode(L.FreeDraw.MODES.CREATE);
|
||||
});
|
||||
|
||||
$("#delete").on('click', function (e) {
|
||||
freeDraw.setMode(L.FreeDraw.MODES.DELETE);
|
||||
});
|
||||
$("#delete").on('click', function (e) {
|
||||
freeDraw.setMode(L.FreeDraw.MODES.DELETE);
|
||||
});
|
||||
}
|
||||
|
||||
function add_event_edit (){
|
||||
$(".leaflet-container g path").on('click', function (e) {
|
||||
setTimeout(function(){freeDraw.setMode(L.FreeDraw.MODES.EDIT | L.FreeDraw.MODES.DELETE)}, 50);
|
||||
});
|
||||
$(".leaflet-container g path").on('click', function (e) {
|
||||
setTimeout(function(){freeDraw.setMode(L.FreeDraw.MODES.EDIT | L.FreeDraw.MODES.DELETE)}, 50);
|
||||
});
|
||||
}
|
||||
|
||||
function get_position() {
|
||||
var position;
|
||||
var position;
|
||||
|
||||
$.ajax({
|
||||
url: '/users/dossiers/' + dossier_id + '/carte/position',
|
||||
dataType: 'json',
|
||||
async: false
|
||||
}).done(function (data) {
|
||||
position = data
|
||||
});
|
||||
$.ajax({
|
||||
url: '/users/dossiers/' + dossier_id + '/carte/position',
|
||||
dataType: 'json',
|
||||
async: false
|
||||
}).done(function (data) {
|
||||
position = data
|
||||
});
|
||||
|
||||
return position;
|
||||
return position;
|
||||
}
|
||||
|
||||
function get_address_point(request) {
|
||||
$.ajax({
|
||||
url: '/ban/address_point?request=' + request,
|
||||
dataType: 'json',
|
||||
async: true
|
||||
}).done(function (data) {
|
||||
if (data.lat != null) {
|
||||
map.setView(new L.LatLng(data.lat, data.lon), data.zoom);
|
||||
//L.marker([data.lat, data.lon], {icon: icon}).addTo(map);
|
||||
}
|
||||
});
|
||||
$.ajax({
|
||||
url: '/ban/address_point?request=' + request,
|
||||
dataType: 'json',
|
||||
async: true
|
||||
}).done(function (data) {
|
||||
if (data.lat != null) {
|
||||
map.setView(new L.LatLng(data.lat, data.lon), data.zoom);
|
||||
//L.marker([data.lat, data.lon], {icon: icon}).addTo(map);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function jsObject_to_array(qp_list) {
|
||||
return Object.keys(qp_list).map(function (v) {
|
||||
return qp_list[v];
|
||||
});
|
||||
return Object.keys(qp_list).map(function (v) {
|
||||
return qp_list[v];
|
||||
});
|
||||
}
|
||||
|
||||
function add_event_search_address() {
|
||||
$("#search_by_address input[type='address']").bind('typeahead:select', function (ev, seggestion) {
|
||||
get_address_point(seggestion['label']);
|
||||
});
|
||||
$("#search_by_address input[type='address']").bind('typeahead:select', function (ev, seggestion) {
|
||||
get_address_point(seggestion['label']);
|
||||
});
|
||||
|
||||
$("#search_by_address input[type='address']").keypress(function (e) {
|
||||
if (e.keyCode == 13)
|
||||
get_address_point($(this).val());
|
||||
});
|
||||
$("#search_by_address input[type='address']").keypress(function (e) {
|
||||
if (e.keyCode == 13)
|
||||
get_address_point($(this).val());
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,60 +1,60 @@
|
|||
function qp_active() {
|
||||
return $("#map.qp").length > 0
|
||||
return $("#map.qp").length > 0
|
||||
}
|
||||
|
||||
function get_qp(coordinates) {
|
||||
if (!qp_active())
|
||||
return;
|
||||
if (!qp_active())
|
||||
return;
|
||||
|
||||
var qp;
|
||||
var qp;
|
||||
|
||||
$.ajax({
|
||||
method: 'post',
|
||||
url: '/users/dossiers/' + dossier_id + '/carte/qp',
|
||||
data: {coordinates: JSON.stringify(coordinates)},
|
||||
dataType: 'json',
|
||||
async: false
|
||||
}).done(function (data) {
|
||||
qp = data
|
||||
});
|
||||
$.ajax({
|
||||
method: 'post',
|
||||
url: '/users/dossiers/' + dossier_id + '/carte/qp',
|
||||
data: {coordinates: JSON.stringify(coordinates)},
|
||||
dataType: 'json',
|
||||
async: false
|
||||
}).done(function (data) {
|
||||
qp = data
|
||||
});
|
||||
|
||||
return qp['quartier_prioritaires'];
|
||||
return qp['quartier_prioritaires'];
|
||||
}
|
||||
|
||||
function display_qp(qp_list) {
|
||||
if (!qp_active())
|
||||
return;
|
||||
if (!qp_active())
|
||||
return;
|
||||
|
||||
qp_array = jsObject_to_array(qp_list);
|
||||
qp_array = jsObject_to_array(qp_list);
|
||||
|
||||
$("#qp.list ul").html('');
|
||||
$("#qp.list ul").html('');
|
||||
|
||||
new_qpLayer();
|
||||
new_qpLayer();
|
||||
|
||||
if (qp_array.length > 0) {
|
||||
qp_array.forEach(function (qp) {
|
||||
$("#qp.list ul").append('<li>' + qp.commune + ' : ' + qp.nom + '</li>');
|
||||
if (qp_array.length > 0) {
|
||||
qp_array.forEach(function (qp) {
|
||||
$("#qp.list ul").append('<li>' + qp.commune + ' : ' + qp.nom + '</li>');
|
||||
|
||||
qpItems.addData(qp.geometry);
|
||||
});
|
||||
qpItems.addData(qp.geometry);
|
||||
});
|
||||
|
||||
qpItems.setStyle({
|
||||
fillColor: '#31708f',
|
||||
weight: 2,
|
||||
opacity: 0.3,
|
||||
color: 'white',
|
||||
dashArray: '3',
|
||||
fillOpacity: 0.7
|
||||
})
|
||||
}
|
||||
else
|
||||
$("#qp.list ul").html('<li>AUCUN</li>');
|
||||
qpItems.setStyle({
|
||||
fillColor: '#31708f',
|
||||
weight: 2,
|
||||
opacity: 0.3,
|
||||
color: 'white',
|
||||
dashArray: '3',
|
||||
fillOpacity: 0.7
|
||||
})
|
||||
}
|
||||
else
|
||||
$("#qp.list ul").html('<li>AUCUN</li>');
|
||||
}
|
||||
|
||||
function new_qpLayer() {
|
||||
if (typeof qpItems != 'undefined')
|
||||
map.removeLayer(qpItems);
|
||||
if (typeof qpItems != 'undefined')
|
||||
map.removeLayer(qpItems);
|
||||
|
||||
qpItems = new L.GeoJSON();
|
||||
qpItems.addTo(map);
|
||||
qpItems = new L.GeoJSON();
|
||||
qpItems.addTo(map);
|
||||
}
|
|
@ -1,9 +1,8 @@
|
|||
$(document).on('page:load', buttons_anchor);
|
||||
$(document).ready(buttons_anchor);
|
||||
$(document).on('turbolinks:load', buttons_anchor);
|
||||
|
||||
function buttons_anchor(){
|
||||
$("#cgu_menu_block").on('click', 'a', function(){
|
||||
event.preventDefault();
|
||||
$('html,body').animate({scrollTop:$(this.hash).offset().top-80}, 500);
|
||||
});
|
||||
$("#cgu_menu_block").on('click', 'a', function(){
|
||||
event.preventDefault();
|
||||
$('html,body').animate({scrollTop:$(this.hash).offset().top-80}, 500);
|
||||
});
|
||||
}
|
|
@ -1,23 +1,23 @@
|
|||
//App.messages = App.cable.subscriptions.create('NotificationsChannel', {
|
||||
// received: function (data) {
|
||||
// if (window.location.href.indexOf('backoffice') !== -1) {
|
||||
// $("#notification_alert").html(data['message']);
|
||||
// received: function (data) {
|
||||
// if (window.location.href.indexOf('backoffice') !== -1) {
|
||||
// $("#notification_alert").html(data['message']);
|
||||
//
|
||||
// slideIn_notification_alert();
|
||||
// }
|
||||
// slideIn_notification_alert();
|
||||
// }
|
||||
// }
|
||||
//});
|
||||
|
||||
function slideIn_notification_alert (){
|
||||
$("#notification_alert").animate({
|
||||
right: '20px'
|
||||
}, 250);
|
||||
$("#notification_alert").animate({
|
||||
right: '20px'
|
||||
}, 250);
|
||||
|
||||
setTimeout(slideOut_notification_alert, 3500);
|
||||
setTimeout(slideOut_notification_alert, 3500);
|
||||
}
|
||||
|
||||
function slideOut_notification_alert (){
|
||||
$("#notification_alert").animate({
|
||||
right: '-250px'
|
||||
}, 200);
|
||||
$("#notification_alert").animate({
|
||||
right: '-250px'
|
||||
}, 200);
|
||||
}
|
|
@ -1,34 +1,33 @@
|
|||
$(document).on('page:load', init_default_data_block);
|
||||
$(document).ready(init_default_data_block);
|
||||
$(document).on('turbolinks:load', init_default_data_block);
|
||||
|
||||
function init_default_data_block() {
|
||||
$('.default_data_block #dossier .body').toggle();
|
||||
$('.default_data_block #dossier .carret-right').toggle();
|
||||
$('.default_data_block #dossier .carret-down').toggle();
|
||||
$('.default_data_block #dossier .body').toggle();
|
||||
$('.default_data_block #dossier .carret-right').toggle();
|
||||
$('.default_data_block #dossier .carret-down').toggle();
|
||||
|
||||
$('.default_data_block .title').click(function () {
|
||||
toggle_default_data_bloc(this, 400);
|
||||
});
|
||||
$('.default_data_block .title').click(function () {
|
||||
toggle_default_data_bloc(this, 400);
|
||||
});
|
||||
|
||||
$('.new-action').click(function () {
|
||||
var messages_block = $(this).parents().closest('.default_data_block').find('.title')
|
||||
toggle_default_data_bloc(messages_block, 400);
|
||||
});
|
||||
$('.new-action').click(function () {
|
||||
var messages_block = $(this).parents().closest('.default_data_block').find('.title')
|
||||
toggle_default_data_bloc(messages_block, 400);
|
||||
});
|
||||
|
||||
$('.default_data_block.default_visible').each(function() {
|
||||
toggle_default_data_bloc($(this).find('.title'), 0);
|
||||
});
|
||||
$('.default_data_block.default_visible').each(function() {
|
||||
toggle_default_data_bloc($(this).find('.title'), 0);
|
||||
});
|
||||
|
||||
function toggle_default_data_bloc(element, duration) {
|
||||
var block = $(element).parents('.show-block');
|
||||
if (block.attr('id') == 'messages') {
|
||||
block.children('.last-commentaire').toggle();
|
||||
$(".commentaires").animate({ scrollTop: $(this).height() }, "slow");
|
||||
}
|
||||
|
||||
block.children('.body').slideToggle(duration);
|
||||
|
||||
block.find('.carret-right').toggle();
|
||||
block.find('.carret-down').toggle();
|
||||
function toggle_default_data_bloc(element, duration) {
|
||||
var block = $(element).parents('.show-block');
|
||||
if (block.attr('id') == 'messages') {
|
||||
block.children('.last-commentaire').toggle();
|
||||
$(".commentaires").animate({ scrollTop: $(this).height() }, "slow");
|
||||
}
|
||||
|
||||
block.children('.body').slideToggle(duration);
|
||||
|
||||
block.find('.carret-right').toggle();
|
||||
block.find('.carret-down').toggle();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,48 +1,47 @@
|
|||
$(document).on('page:load', action_type_de_champs);
|
||||
$(document).ready(action_type_de_champs);
|
||||
$(document).on('turbolinks:load', action_type_de_champs);
|
||||
|
||||
|
||||
function action_type_de_champs() {
|
||||
$("input[type='email']").on('change', function () {
|
||||
toggleErrorClass(this, validateEmail($(this).val()));
|
||||
});
|
||||
$("input[type='email']").on('change', function () {
|
||||
toggleErrorClass(this, validateEmail($(this).val()));
|
||||
});
|
||||
|
||||
$("input[type='number']").on('change', function () {
|
||||
toggleErrorClass(this, validateNumber($(this).val()));
|
||||
});
|
||||
$("input[type='number']").on('change', function () {
|
||||
toggleErrorClass(this, validateNumber($(this).val()));
|
||||
});
|
||||
|
||||
$("input[type='phone']").on('change', function () {
|
||||
val = $(this).val();
|
||||
val = val.replace(/[ ]/g, '');
|
||||
$("input[type='phone']").on('change', function () {
|
||||
val = $(this).val();
|
||||
val = val.replace(/[ ]/g, '');
|
||||
|
||||
toggleErrorClass(this, validatePhone(val));
|
||||
});
|
||||
toggleErrorClass(this, validatePhone(val));
|
||||
});
|
||||
|
||||
address_type_init();
|
||||
address_type_init();
|
||||
}
|
||||
|
||||
function toggleErrorClass(node, boolean) {
|
||||
if (boolean)
|
||||
$(node).removeClass('input-error');
|
||||
else
|
||||
$(node).addClass('input-error');
|
||||
if (boolean)
|
||||
$(node).removeClass('input-error');
|
||||
else
|
||||
$(node).addClass('input-error');
|
||||
}
|
||||
|
||||
function validatePhone(phone) {
|
||||
var re = /^(0|(\+[1-9]{2})|(00[1-9]{2}))[1-9][0-9]{8}$/;
|
||||
return validateInput(phone, re)
|
||||
var re = /^(0|(\+[1-9]{2})|(00[1-9]{2}))[1-9][0-9]{8}$/;
|
||||
return validateInput(phone, re)
|
||||
}
|
||||
|
||||
function validateEmail(email) {
|
||||
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
||||
return validateInput(email, re)
|
||||
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
||||
return validateInput(email, re)
|
||||
}
|
||||
|
||||
function validateNumber(number) {
|
||||
var re = /^[0-9]+$/;
|
||||
return validateInput(number, re)
|
||||
var re = /^[0-9]+$/;
|
||||
return validateInput(number, re)
|
||||
}
|
||||
|
||||
function validateInput(input, regex) {
|
||||
return regex.test(input);
|
||||
return regex.test(input);
|
||||
}
|
||||
|
|
|
@ -1,16 +1,15 @@
|
|||
$(document).on('page:load', init_modal_commentaire);
|
||||
$(document).ready(init_modal_commentaire);
|
||||
$(document).on('turbolinks:load', init_modal_commentaire);
|
||||
|
||||
function init_modal_commentaire() {
|
||||
var modal = $("#modalCommentairesDossierParChamp");
|
||||
var body = modal.find(".modal-body");
|
||||
var originalBody = body.html();
|
||||
var modal = $("#modalCommentairesDossierParChamp");
|
||||
var body = modal.find(".modal-body");
|
||||
var originalBody = body.html();
|
||||
|
||||
modal.on("show.bs.modal", function (e) {
|
||||
body.load(e.relatedTarget.getAttribute("data-href"));
|
||||
});
|
||||
modal.on("show.bs.modal", function (e) {
|
||||
body.load(e.relatedTarget.getAttribute("data-href"));
|
||||
});
|
||||
|
||||
$("#modalCommentairesDossierParChamp").on("hidden.bs.modal", function (e) {
|
||||
body.html(originalBody);
|
||||
});
|
||||
$("#modalCommentairesDossierParChamp").on("hidden.bs.modal", function (e) {
|
||||
body.html(originalBody);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
$(document).on('page:load', the_terms);
|
||||
$(document).ready(the_terms);
|
||||
$(document).on('page:load', pannel_switch);
|
||||
$(document).ready(pannel_switch);
|
||||
$(document).on('turbolinks:load', the_terms);
|
||||
$(document).on('turbolinks:load', pannel_switch);
|
||||
|
||||
function pannel_switch() {
|
||||
$('#switch-notifications').click(function () {
|
||||
|
@ -19,43 +17,43 @@ function pannel_switch() {
|
|||
}
|
||||
|
||||
function the_terms() {
|
||||
var the_terms = $("#dossier_autorisation_donnees");
|
||||
var the_terms = $("#dossier_autorisation_donnees");
|
||||
|
||||
if (the_terms.size() == 0)
|
||||
return;
|
||||
if (the_terms.size() == 0)
|
||||
return;
|
||||
|
||||
check_value(the_terms);
|
||||
|
||||
the_terms.click(function () {
|
||||
check_value(the_terms);
|
||||
});
|
||||
|
||||
the_terms.click(function () {
|
||||
check_value(the_terms);
|
||||
});
|
||||
|
||||
function check_value(the_terms) {
|
||||
if (the_terms.is(":checked")) {
|
||||
$("#etape_suivante").removeAttr("disabled");
|
||||
} else {
|
||||
$("#etape_suivante").attr("disabled", "disabled");
|
||||
}
|
||||
function check_value(the_terms) {
|
||||
if (the_terms.is(":checked")) {
|
||||
$("#etape_suivante").removeAttr("disabled");
|
||||
} else {
|
||||
$("#etape_suivante").attr("disabled", "disabled");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function error_form_siret(invalid_siret) {
|
||||
setTimeout(function () {
|
||||
$("input[type='submit']").val('Erreur SIRET');
|
||||
}, 10);
|
||||
setTimeout(function () {
|
||||
$("input[type='submit']").val('Erreur SIRET');
|
||||
}, 10);
|
||||
|
||||
$("input[type='submit']").removeClass('btn-success').addClass('btn-danger');
|
||||
$("input[type='submit']").removeClass('btn-success').addClass('btn-danger');
|
||||
|
||||
$("#dossier_siret").addClass('input-error').val(invalid_siret).on('input', reset_form_siret);
|
||||
$("#dossier_siret").addClass('input-error').val(invalid_siret).on('input', reset_form_siret);
|
||||
|
||||
}
|
||||
|
||||
function reset_form_siret() {
|
||||
$("input[type='submit']").removeClass('btn-danger').addClass('btn-success').val('Valider');
|
||||
$("#dossier_siret").removeClass('input-error');
|
||||
$("input[type='submit']").removeClass('btn-danger').addClass('btn-success').val('Valider');
|
||||
$("#dossier_siret").removeClass('input-error');
|
||||
}
|
||||
|
||||
function toggle_etape_1() {
|
||||
$('.row.etape.etape_1 .etapes_menu #logos').toggle(100);
|
||||
$('.row.etape.etape_1 .etapes_informations #description_procedure').toggle(100);
|
||||
$('.row.etape.etape_1 .etapes_menu #logos').toggle(100);
|
||||
$('.row.etape.etape_1 .etapes_informations #description_procedure').toggle(100);
|
||||
}
|
||||
|
|
|
@ -1,45 +1,44 @@
|
|||
$(document).on('page:load', filters_init);
|
||||
$(document).ready(filters_init);
|
||||
$(document).on('turbolinks:load', filters_init);
|
||||
|
||||
function filters_init() {
|
||||
$('html').click(function(event) {
|
||||
var visible_filter = $('.filter_framed:visible')
|
||||
if(visible_filter.length) {
|
||||
if (!$(event.target).closest('.filter_framed').is(":visible")) {
|
||||
visible_filter.hide();
|
||||
}
|
||||
}
|
||||
});
|
||||
$('html').click(function(event) {
|
||||
var visible_filter = $('.filter_framed:visible')
|
||||
if(visible_filter.length) {
|
||||
if (!$(event.target).closest('.filter_framed').is(":visible")) {
|
||||
visible_filter.hide();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$(".filter").on('click', function (event) {
|
||||
filter_framed_show(event);
|
||||
filter_framed_close_all_excepted(framed_id(event));
|
||||
event.stopPropagation();
|
||||
});
|
||||
$(".filter").on('click', function (event) {
|
||||
filter_framed_show(event);
|
||||
filter_framed_close_all_excepted(framed_id(event));
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
$(".erase-filter").on('click', function (event) {
|
||||
$(this).parent().find(".filter_input").val("");
|
||||
});
|
||||
$(".erase-filter").on('click', function (event) {
|
||||
$(this).parent().find(".filter_input").val("");
|
||||
});
|
||||
}
|
||||
|
||||
function filter_framed_close_all_excepted(id) {
|
||||
$(".filter_framed:not("+id+")").hide();
|
||||
$(".filter_framed:not("+id+")").hide();
|
||||
|
||||
$(id).toggle();
|
||||
$(id).toggle();
|
||||
}
|
||||
|
||||
function framed_id(event) {
|
||||
return "#framed_" + event.target.id
|
||||
return "#framed_" + event.target.id
|
||||
}
|
||||
|
||||
function filter_framed_show(event) {
|
||||
dom_object = $(framed_id(event));
|
||||
dom_object = $(framed_id(event));
|
||||
|
||||
var offset = $('#main-container').offset();
|
||||
var offset = $('#main-container').offset();
|
||||
|
||||
var y = event.pageY - offset.top;
|
||||
var x = event.pageX - offset.left;
|
||||
var y = event.pageY - offset.top;
|
||||
var x = event.pageX - offset.left;
|
||||
|
||||
dom_object.css('top', (y + 7) + 'px');
|
||||
dom_object.css('left', (x + 7) + 'px');
|
||||
dom_object.css('top', (y + 7) + 'px');
|
||||
dom_object.css('left', (x + 7) + 'px');
|
||||
}
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
$(document).on('page:load', link_init);
|
||||
$(document).ready(link_init);
|
||||
$(document).on('turbolinks:load', link_init);
|
||||
|
||||
function link_init() {
|
||||
$('#dossiers_list tr').on('click', function () {
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
$(document).on('page:load', franceconnect_kit);
|
||||
$(document).ready(franceconnect_kit);
|
||||
$(document).on('turbolinks:load', franceconnect_kit);
|
||||
|
||||
function franceconnect_kit() {
|
||||
franceConnectKit.init()
|
||||
franceConnectKit.init()
|
||||
}
|
||||
|
||||
|
|
|
@ -1,16 +1,15 @@
|
|||
$(document).on('page:load', modal_action);
|
||||
$(document).ready(modal_action);
|
||||
$(document).on('turbolinks:load', modal_action);
|
||||
|
||||
function modal_action() {
|
||||
$('#PJmodal').on('show.bs.modal', function (event) {
|
||||
$("#PJmodal .modal-body .table .tr_content").hide();
|
||||
$('#PJmodal').on('show.bs.modal', function (event) {
|
||||
$("#PJmodal .modal-body .table .tr_content").hide();
|
||||
|
||||
var button = $(event.relatedTarget) // Button that triggered the modal
|
||||
var modal_title = button.data('modal_title'); // Extract info from data-* attributes
|
||||
var modal_index = button.data('modal_index'); // Extract info from data-* attributes
|
||||
var button = $(event.relatedTarget) // Button that triggered the modal
|
||||
var modal_title = button.data('modal_title'); // Extract info from data-* attributes
|
||||
var modal_index = button.data('modal_index'); // Extract info from data-* attributes
|
||||
|
||||
var modal = $(this)
|
||||
modal.find('#PJmodal_title').html(modal_title);
|
||||
$("#PJmodal .modal-body .table #"+modal_index).show();
|
||||
})
|
||||
var modal = $(this)
|
||||
modal.find('#PJmodal_title').html(modal_title);
|
||||
$("#PJmodal .modal-body .table #"+modal_index).show();
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1,33 +1,32 @@
|
|||
$(document).on('page:load', pref_list_dossier_actions);
|
||||
$(document).ready(pref_list_dossier_actions);
|
||||
$(document).on('turbolinks:load', pref_list_dossier_actions);
|
||||
|
||||
function pref_list_dossier_actions() {
|
||||
pref_list_dossier_open_action();
|
||||
pref_list_dossier_close_action();
|
||||
pref_list_dossier_open_action();
|
||||
pref_list_dossier_close_action();
|
||||
}
|
||||
|
||||
function pref_list_dossier_open_action() {
|
||||
$("#pref_list_dossier_open_action").on('click', function () {
|
||||
$("#pref_list_menu").css('display', 'block');
|
||||
$("#pref_list_menu").css('visibility', 'visible');
|
||||
$("#pref_list_dossier_open_action").on('click', function () {
|
||||
$("#pref_list_menu").css('display', 'block');
|
||||
$("#pref_list_menu").css('visibility', 'visible');
|
||||
|
||||
$("#pref_list_menu").animate({
|
||||
right: 0
|
||||
}, 250);
|
||||
});
|
||||
$("#pref_list_menu").animate({
|
||||
right: 0
|
||||
}, 250);
|
||||
});
|
||||
}
|
||||
|
||||
function pref_list_dossier_close_action() {
|
||||
$("#pref_list_dossier_close_action").on('click', function () {
|
||||
$("#pref_list_menu").animate({
|
||||
right: parseInt($("#pref_list_menu").css('width'), 10)*(-1)+'px'
|
||||
},{
|
||||
duration: 250,
|
||||
complete: function () {
|
||||
$("#pref_list_menu").css('display', 'none');
|
||||
$("#pref_list_menu").css('visibility', 'hidden');
|
||||
}
|
||||
}
|
||||
)
|
||||
});
|
||||
$("#pref_list_dossier_close_action").on('click', function () {
|
||||
$("#pref_list_menu").animate({
|
||||
right: parseInt($("#pref_list_menu").css('width'), 10)*(-1)+'px'
|
||||
},{
|
||||
duration: 250,
|
||||
complete: function () {
|
||||
$("#pref_list_menu").css('display', 'none');
|
||||
$("#pref_list_menu").css('visibility', 'hidden');
|
||||
}
|
||||
}
|
||||
)
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,38 +1,37 @@
|
|||
$(document).on('page:load', button_edit_procedure_init);
|
||||
$(document).ready(button_edit_procedure_init);
|
||||
$(document).on('turbolinks:load', button_edit_procedure_init);
|
||||
|
||||
function button_edit_procedure_init(){
|
||||
buttons_api_carto();
|
||||
button_cerfa();
|
||||
button_individual();
|
||||
buttons_api_carto();
|
||||
button_cerfa();
|
||||
button_individual();
|
||||
}
|
||||
|
||||
function buttons_api_carto () {
|
||||
|
||||
$("#procedure_module_api_carto_use_api_carto").on('change', function() {
|
||||
$("#modules_api_carto").toggle()
|
||||
});
|
||||
$("#procedure_module_api_carto_use_api_carto").on('change', function() {
|
||||
$("#modules_api_carto").toggle()
|
||||
});
|
||||
|
||||
if ($('#procedure_module_api_carto_use_api_carto').is(':checked'))
|
||||
$("#modules_api_carto").show();
|
||||
if ($('#procedure_module_api_carto_use_api_carto').is(':checked'))
|
||||
$("#modules_api_carto").show();
|
||||
}
|
||||
|
||||
function button_cerfa () {
|
||||
|
||||
$("#procedure_cerfa_flag").on('change', function() {
|
||||
$("#procedure_lien_demarche").toggle()
|
||||
});
|
||||
$("#procedure_cerfa_flag").on('change', function() {
|
||||
$("#procedure_lien_demarche").toggle()
|
||||
});
|
||||
|
||||
if ($('#procedure_cerfa_flag').is(':checked'))
|
||||
$("#procedure_lien_demarche").show();
|
||||
if ($('#procedure_cerfa_flag').is(':checked'))
|
||||
$("#procedure_lien_demarche").show();
|
||||
}
|
||||
|
||||
function button_individual () {
|
||||
|
||||
$("#procedure_for_individual").on('change', function() {
|
||||
$("#individual_with_siret").toggle()
|
||||
});
|
||||
$("#procedure_for_individual").on('change', function() {
|
||||
$("#individual_with_siret").toggle()
|
||||
});
|
||||
|
||||
if ($('#procedure_for_individual').is(':checked'))
|
||||
$("#individual_with_siret").show();
|
||||
if ($('#procedure_for_individual').is(':checked'))
|
||||
$("#individual_with_siret").show();
|
||||
}
|
|
@ -1,60 +1,59 @@
|
|||
$(document).on('page:load', init_search_anim);
|
||||
$(document).ready(init_search_anim);
|
||||
$(document).on('turbolinks:load', init_search_anim);
|
||||
|
||||
function init_search_anim(){
|
||||
$("#search_area").on('click', search_fadeIn);
|
||||
$("#search_area").on('click', search_fadeIn);
|
||||
}
|
||||
|
||||
function search_fadeIn(){
|
||||
var search_area = $("#search_area");
|
||||
var body_dom = $('body');
|
||||
var positions = search_area.position();
|
||||
var width = search_area.width();
|
||||
var search_area = $("#search_area");
|
||||
var body_dom = $('body');
|
||||
var positions = search_area.position();
|
||||
var width = search_area.width();
|
||||
|
||||
search_area.css('position', 'fixed');
|
||||
search_area.css('top', positions.top + $('.navbar').height());
|
||||
search_area.css('left', positions.left);
|
||||
search_area.css('z-index', 300);
|
||||
search_area.css('width', width);
|
||||
search_area.find('#q').animate({ height: '50px' });
|
||||
search_area.find('#search_button').animate({ height: '50px' });
|
||||
search_area.css('position', 'fixed');
|
||||
search_area.css('top', positions.top + $('.navbar').height());
|
||||
search_area.css('left', positions.left);
|
||||
search_area.css('z-index', 300);
|
||||
search_area.css('width', width);
|
||||
search_area.find('#q').animate({ height: '50px' });
|
||||
search_area.find('#search_button').animate({ height: '50px' });
|
||||
|
||||
body_dom.append(search_area);
|
||||
$('#mask_search').fadeIn(200);
|
||||
body_dom.append(search_area);
|
||||
$('#mask_search').fadeIn(200);
|
||||
|
||||
var body_width = body_dom.width();
|
||||
var body_width = body_dom.width();
|
||||
|
||||
var search_area_width = body_width/2.5;
|
||||
var search_area_width = body_width/2.5;
|
||||
|
||||
search_area.animate({
|
||||
width: search_area_width,
|
||||
left: (body_width/2 - search_area_width/2 + 40)
|
||||
}, 400, function() {
|
||||
search_area.off();
|
||||
$("#search_area input").focus();
|
||||
search_area.animate({
|
||||
width: search_area_width,
|
||||
left: (body_width/2 - search_area_width/2 + 40)
|
||||
}, 400, function() {
|
||||
search_area.off();
|
||||
$("#search_area input").focus();
|
||||
|
||||
$('#mask_search').on('click', search_fadeOut)
|
||||
});
|
||||
$('#mask_search').on('click', search_fadeOut)
|
||||
});
|
||||
}
|
||||
|
||||
function search_fadeOut(){
|
||||
var search_area = $("#search_area");
|
||||
var search_area = $("#search_area");
|
||||
|
||||
$('#mask_search').fadeOut(200);
|
||||
$('#mask_search').fadeOut(200);
|
||||
|
||||
search_area.fadeOut(200, function(){
|
||||
search_area.css('position', 'static');
|
||||
search_area.css('top', '');
|
||||
search_area.css('left', '');
|
||||
search_area.css('z-index', '');
|
||||
search_area.css('width', 'auto');
|
||||
search_area.find('#q').css('height', 34);
|
||||
search_area.find('#search_button').css('height', 34);
|
||||
search_area.fadeOut(200, function(){
|
||||
search_area.css('position', 'static');
|
||||
search_area.css('top', '');
|
||||
search_area.css('left', '');
|
||||
search_area.css('z-index', '');
|
||||
search_area.css('width', 'auto');
|
||||
search_area.find('#q').css('height', 34);
|
||||
search_area.find('#search_button').css('height', 34);
|
||||
|
||||
$('#search-block').append(search_area);
|
||||
search_area.fadeIn(200);
|
||||
$('#search-block').append(search_area);
|
||||
search_area.fadeIn(200);
|
||||
|
||||
init_search_anim();
|
||||
});
|
||||
init_search_anim();
|
||||
});
|
||||
|
||||
}
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
function show_dossier_id_input (){
|
||||
$("#btn_show_dossier_id_input").hide()
|
||||
$("#btn_show_dossier_id_input").hide()
|
||||
}
|
|
@ -1,5 +1,4 @@
|
|||
$(document).on('page:load', activeSelect2);
|
||||
$(document).ready(activeSelect2);
|
||||
$(document).on('turbolinks:load', activeSelect2);
|
||||
|
||||
function activeSelect2() {
|
||||
$('select.select2').select2({ theme: "bootstrap", width: '100%' });
|
||||
|
|
5
app/assets/stylesheets/_turbolinks.scss
Normal file
5
app/assets/stylesheets/_turbolinks.scss
Normal file
|
@ -0,0 +1,5 @@
|
|||
@import "variables";
|
||||
|
||||
.turbolinks-progress-bar {
|
||||
background-color: $light-blue;
|
||||
}
|
|
@ -1 +1,5 @@
|
|||
// colors
|
||||
$light-blue: #F2F6FA;
|
||||
|
||||
// Bootstrap variables
|
||||
$font-size-base: 16px;
|
|
@ -20,4 +20,3 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
@import "bootstrap";
|
||||
|
||||
body {
|
||||
background-color: #F2F6FA;
|
||||
background-color: $light-blue;
|
||||
}
|
||||
|
||||
html, body {
|
||||
|
@ -63,7 +63,7 @@ form {
|
|||
}
|
||||
|
||||
#footer {
|
||||
background-color: #F2F6FA;
|
||||
background-color: $light-blue;
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
a, p {
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
@import "variables";
|
||||
|
||||
.default_data_block {
|
||||
font-family: Arial;
|
||||
|
||||
|
@ -53,7 +55,7 @@
|
|||
color: #FFFFFF;
|
||||
}
|
||||
.action:hover {
|
||||
color: #F2F6FA;
|
||||
color: $light-blue;
|
||||
}
|
||||
.count {
|
||||
font-size: 16px;
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
@import "variables";
|
||||
|
||||
#header {
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
@ -185,7 +187,7 @@
|
|||
}
|
||||
}
|
||||
.button-navbar-action:hover {
|
||||
color: #F2F6FA;
|
||||
color: $light-blue;
|
||||
}
|
||||
|
||||
.button_navbar:hover, .button-navbar-action:hover {
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
@import "variables";
|
||||
|
||||
#users_index, #admins_index{
|
||||
margin-left: 2rem;
|
||||
margin-right: 2rem;
|
||||
|
@ -48,7 +50,7 @@
|
|||
padding: 10px;
|
||||
}
|
||||
.action:hover {
|
||||
color: #F2F6FA;
|
||||
color: $light-blue;
|
||||
}
|
||||
.padding-left-30 {
|
||||
padding-left: 30px;
|
||||
|
|
|
@ -39,16 +39,13 @@ class Backoffice::DossiersController < Backoffice::DossiersListController
|
|||
end
|
||||
|
||||
def download_dossiers_tps
|
||||
if procedure = Procedure.find_by(id: params[:procedure_id])
|
||||
dossiers = dossiers_list_facade(param_liste).dossiers_to_display
|
||||
respond_with Dossier.export_full_generation(dossiers, request.format) unless dossiers.empty?
|
||||
else
|
||||
dossiers = dossiers_list_facade(param_liste).dossiers_to_display
|
||||
respond_to do |format|
|
||||
format.xlsx { render xlsx: dossiers }
|
||||
format.ods { render ods: dossiers }
|
||||
format.csv { render csv: dossiers }
|
||||
end
|
||||
procedure = Procedure.find_by(id: params[:procedure_id])
|
||||
export = procedure.generate_export
|
||||
|
||||
respond_to do |format|
|
||||
format.csv { send_data(SpreadsheetArchitect.to_csv(data: export[:data], headers: export[:headers]), filename: 'dossiers.csv') }
|
||||
format.xlsx { send_data(SpreadsheetArchitect.to_xlsx(data: export[:data], headers: export[:headers]), filename: 'dossiers.xlsx') }
|
||||
format.ods { send_data(SpreadsheetArchitect.to_ods(data: export[:data], headers: export[:headers]), filename: 'dossiers.ods') }
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -122,7 +122,7 @@ class Users::DossiersController < UsersController
|
|||
@facade = facade params[:dossier][:id]
|
||||
|
||||
if checked_autorisation_donnees?
|
||||
unless Dossier.find(@facade.dossier.id).update_attributes update_params
|
||||
unless Dossier.find(@facade.dossier.id).update_attributes update_params_with_formatted_birthdate
|
||||
flash.alert = @facade.dossier.errors.full_messages.join('<br />').html_safe
|
||||
|
||||
return redirect_to users_dossier_path(id: @facade.dossier.id)
|
||||
|
@ -171,6 +171,25 @@ class Users::DossiersController < UsersController
|
|||
params.require(:dossier).permit(:id, :autorisation_donnees, individual_attributes: [:gender, :nom, :prenom, :birthdate])
|
||||
end
|
||||
|
||||
def update_params_with_formatted_birthdate
|
||||
editable_params = update_params
|
||||
|
||||
# If the user was shown a date input field (if its browser supports it),
|
||||
# the returned param will follow the YYYY-MM-DD pattern, which we need
|
||||
# do convert to the DD/MM/YYYY pattern we use
|
||||
if editable_params &&
|
||||
editable_params[:individual_attributes] &&
|
||||
editable_params[:individual_attributes][:birthdate] &&
|
||||
editable_params[:individual_attributes][:birthdate] =~ /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/
|
||||
|
||||
original_birthdate = editable_params[:individual_attributes][:birthdate]
|
||||
formatted_birthdate = I18n.l(original_birthdate.to_date, format: '%d/%m/%Y')
|
||||
editable_params[:individual_attributes][:birthdate] = formatted_birthdate
|
||||
end
|
||||
|
||||
editable_params
|
||||
end
|
||||
|
||||
def checked_autorisation_donnees?
|
||||
update_params[:autorisation_donnees] == '1'
|
||||
end
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
class TypeDePieceJustificativeDecorator < Draper::Decorator
|
||||
delegate_all
|
||||
def button_up params
|
||||
|
|
|
@ -201,6 +201,8 @@ class Dossier < ActiveRecord::Base
|
|||
|
||||
scope :archived, -> { where(archived: true) }
|
||||
|
||||
scope :downloadable, -> { all_state }
|
||||
|
||||
def cerfa_available?
|
||||
procedure.cerfa_flag? && cerfa.size != 0
|
||||
end
|
||||
|
@ -261,23 +263,6 @@ class Dossier < ActiveRecord::Base
|
|||
return headers
|
||||
end
|
||||
|
||||
def self.export_full_generation(dossiers, format)
|
||||
if dossiers && !dossiers.empty?
|
||||
data = []
|
||||
headers = dossiers.first.export_headers
|
||||
dossiers.each do |dossier|
|
||||
data << dossier.convert_specific_array_values_to_string(dossier.data_with_champs)
|
||||
end
|
||||
if ["csv"].include?(format)
|
||||
return SpreadsheetArchitect.to_csv(data: data, headers: headers)
|
||||
elsif ["xlsx"].include?(format)
|
||||
return SpreadsheetArchitect.to_xlsx(data: data, headers: headers)
|
||||
elsif ["ods"].include?(format)
|
||||
return SpreadsheetArchitect.to_ods(data: data, headers: headers)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def followers_gestionnaires_emails
|
||||
follows.includes(:gestionnaire).map { |f| f.gestionnaire }.pluck(:email).join(' ')
|
||||
end
|
||||
|
|
|
@ -130,4 +130,18 @@ class Procedure < ActiveRecord::Base
|
|||
self.dossiers.where.not(state: :draft).size
|
||||
end
|
||||
|
||||
def generate_export
|
||||
exportable_dossiers = dossiers.downloadable
|
||||
|
||||
headers = exportable_dossiers.any? ? exportable_dossiers.first.export_headers : []
|
||||
data = exportable_dossiers.map do |dossier|
|
||||
dossier.convert_specific_array_values_to_string(dossier.data_with_champs)
|
||||
end
|
||||
|
||||
{
|
||||
headers: headers,
|
||||
data: data
|
||||
}
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
- if @procedure.locked?
|
||||
.alert.alert-info
|
||||
Cette procédure est publiée, certains éléments de la description ne sont plus modifiables
|
||||
|
@ -85,11 +84,8 @@
|
|||
%h4 Options avancées
|
||||
|
||||
%label{ for: :auto_archive_on} Archivage automatique le
|
||||
= f.text_field :auto_archive_on, id: 'auto_archive_on', value: @procedure.auto_archive_on.try{ |d| d.strftime("%d-%m-%Y") }, data: { provide: 'datepicker', 'date-format' => 'dd/mm/yyyy' }
|
||||
= f.text_field :auto_archive_on, id: 'auto_archive_on', value: @procedure.auto_archive_on.try{ |d| d.strftime("%d-%m-%Y") }, data: { provide: 'datepicker', 'date-language' => 'fr', 'date-format' => 'dd/mm/yyyy' }
|
||||
(à 00h00)
|
||||
%p.help-block
|
||||
%i.fa.fa-info-circle
|
||||
L'archivage automatique de la procédure entrainera le passage en instruction de tous les dossiers en construction.
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -46,5 +46,3 @@
|
|||
= link_to("", @types_de_champ_facade.delete_url(ff), method: :delete, remote: true, id: "delete_type_de_champ_#{ff.object.id}", class: %w(form-control btn btn-danger fa fa-trash-o) )
|
||||
|
||||
%div{ style: 'background-color: rgb(204, 204, 204); height: 1px; margin: 30px auto;' }
|
||||
|
||||
|
||||
|
|
|
@ -11,5 +11,3 @@
|
|||
= follower.email
|
||||
- else
|
||||
Aucune personne ne suit ce dossier
|
||||
|
||||
|
||||
|
|
|
@ -44,4 +44,3 @@
|
|||
= columns.second[:libelle]
|
||||
%button.btn.btn-default.btn-xs{type: :submit, id: "add_pref_list_#{columns.second[:table]}_#{columns.second[:attr]}"}
|
||||
%i.fa.fa-plus
|
||||
|
||||
|
|
|
@ -14,4 +14,3 @@
|
|||
dossiers
|
||||
%div.body
|
||||
= smart_listing_render :search
|
||||
|
||||
|
|
|
@ -20,4 +20,3 @@
|
|||
- else
|
||||
%h4.text-primary
|
||||
Pas de fichier dans le flux de commentaires.
|
||||
|
||||
|
|
|
@ -1,13 +1,8 @@
|
|||
%div.dropdown.pull-right#download-menu
|
||||
- if @facade_data_view.dossiers_to_display.count > 400
|
||||
%button.btn.btn-error.dropdown-toggle#dropdownDownloadMenu{ type: :button, 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false, class: 'disabled'}
|
||||
%span{'data-toggle' => :tooltip, "data-placement" => :left, title: 'Pour réduire le nombre de dossiers et ne pas dépasser la limite autorisée de 400, merci de bien vouloir appliquer des filtres.'}
|
||||
= t('dynamics.backoffice.limit_excess_download_all_dossiers')
|
||||
- else
|
||||
%a.dropdown-toggle#dropdownDownloadMenu.button_navbar{ type: :button, 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false }
|
||||
%i.fa.fa-download
|
||||
= t('dynamics.backoffice.download_all_dossiers')
|
||||
%span.caret
|
||||
.dropdown.pull-right#download-menu
|
||||
%a.dropdown-toggle.button_navbar{ type: :button, 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false }
|
||||
%i.fa.fa-download
|
||||
Télécharger tous les dossiers
|
||||
%span.caret
|
||||
%ul.dropdown-menu.dropdown-menu-right
|
||||
%li
|
||||
= link_to backoffice_download_dossiers_tps_path(format: :csv, procedure_id: params[:id]), { class: 'btn btn-sm export-link' } do
|
||||
|
|
|
@ -57,4 +57,3 @@
|
|||
%div.col-xs-12.split-hr
|
||||
- unless @facade.entreprise.rna_information.nil?
|
||||
= render partial: '/dossiers/infos_rna'
|
||||
|
||||
|
|
|
@ -20,4 +20,3 @@
|
|||
|
||||
%dt Capital déclaration :
|
||||
%dd= @facade.entreprise.rna_information.date_declaration
|
||||
|
||||
|
|
|
@ -15,4 +15,3 @@
|
|||
= form_tag invites_dossier_path(dossier_id: @facade.dossier.id), method: :post, class: 'form-inline' do
|
||||
= text_field_tag :email, '', class: 'form-control', placeholder: 'Envoyer une invitation'
|
||||
= submit_tag 'Ajouter', class: 'btn btn-success', id: 'send-invitation', data: {confirm: "Envoyer l'invitation ?"}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
%label
|
||||
%h4
|
||||
Date de naissance *
|
||||
= ff.text_field :birthdate, {class: 'form-control', 'data-provide' => 'datepicker', 'data-date-format' => 'dd/mm/yyyy'}
|
||||
= ff.date_field :birthdate, {class: 'form-control', placeholder: 'jj/mm/aaaa'}
|
||||
|
||||
%p
|
||||
%label{ style:'font-weight:normal' }
|
||||
|
|
|
@ -1,2 +1 @@
|
|||
<%= link_to "Mot de passe oublié ?", new_password_path(resource_name) %><br />
|
||||
|
||||
|
|
|
@ -6,4 +6,3 @@
|
|||
Votre version d'Internet Explorer est trop ancienne pour être utilisée sur le service TPS. Version minimum : Internet Explorer 10
|
||||
|
||||
="<![endif]-->".html_safe
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
%html
|
||||
%head
|
||||
%meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/
|
||||
%meta{ name: "turbolinks-cache-control", content: "no-cache" }
|
||||
%title
|
||||
=t('dynamics.page_title')
|
||||
%meta{'http-equiv' => "X-UA-Compatible", :content => "IE=edge"}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
%div#first-block
|
||||
%div.en-cours
|
||||
-unless @procedure.logo.blank?
|
||||
|
|
|
@ -1,2 +1 @@
|
|||
= render partial: 'layouts/left_panels/left_panel_backoffice_dossierscontroller_index'
|
||||
|
||||
|
|
|
@ -51,4 +51,3 @@
|
|||
%div.procedure_list_element
|
||||
|
||||
%div.procedure_list_element
|
||||
|
||||
|
|
|
@ -85,5 +85,3 @@
|
|||
= link_to 'Demander un accès administrateur', 'https://tps.apientreprise.fr/users/dossiers/new?procedure_id=31', {class: 'btn btn-lg background-tps', target: '_blank'}
|
||||
|
||||
.split-hr-left
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
%script{type: 'text/javascript'}
|
||||
="var dossier_id =#{dossier.id}"
|
||||
$(document).on('page:load', initCarto);
|
||||
$(document).ready(initCarto);
|
||||
$(document).on('turbolinks:load', initCarto);
|
||||
|
|
|
@ -10,4 +10,3 @@
|
|||
#cadastre.list
|
||||
%h3.text-warning Cadastres
|
||||
%ul
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
%table.table
|
||||
- if dossier.procedure.cerfa_flag
|
||||
%tr
|
||||
|
|
|
@ -25,6 +25,3 @@
|
|||
|
||||
- if @user.email != DemoEmails[:gestionnaire] && @user.email != DemoEmails[:admin]
|
||||
= render "users/shared/links"
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
.container.center#users_siret_index
|
||||
.row
|
||||
= render partial: 'pro'
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
development:
|
||||
adapter: postgresql
|
||||
encoding: unicode
|
||||
|
|
|
@ -85,7 +85,6 @@ set :shared_paths, [
|
|||
"config/initializers/super_admin.rb",
|
||||
"config/unicorn.rb",
|
||||
"config/initializers/raven.rb",
|
||||
"config/locales/dynamics/fr.yml",
|
||||
'config/france_connect.yml',
|
||||
'config/initializers/mailjet.rb',
|
||||
'config/initializers/storage_url.rb',
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
if LogStasher.enabled
|
||||
LogStasher.add_custom_fields do |fields|
|
||||
fields[:type] = "tps"
|
||||
fields[:type] = "tps"
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,4 +4,3 @@ Sidekiq.configure_server do |config|
|
|||
schedule_file = "config/schedule.yml"
|
||||
Sidekiq::Cron::Job.load_from_hash YAML.load_file(schedule_file)
|
||||
end
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
fr:
|
||||
dynamics:
|
||||
page_title: TPS - Téléprocédures simplifiées
|
||||
page_title: 'TPS - Téléprocédures simplifiées'
|
||||
contact_email: contact@tps.apientreprise.fr
|
||||
users:
|
||||
connexion_title: Connexion
|
||||
|
@ -12,8 +12,6 @@ fr:
|
|||
pref_list:
|
||||
title: 'Gestion de colonnes affichées'
|
||||
description: 'Ce menu vous permet de choisir les différentes colonnes que vous souhaitez voir apparaître dans votre interface de suivi des dossiers.'
|
||||
download_all_dossiers: 'Télécharger mes dossiers'
|
||||
limit_excess_download_all_dossiers: 'Limite de dossiers fixée à 400 pour le téléchargement'
|
||||
format_csv: 'Au format CSV'
|
||||
format_xlsx: 'Au format XLSX'
|
||||
format_ods: 'Au format ODS'
|
||||
|
|
|
@ -30,4 +30,3 @@ fr:
|
|||
blank: 'doit être rempli'
|
||||
date_previsionnelle:
|
||||
blank: 'doit être remplie'
|
||||
|
||||
|
|
|
@ -15,5 +15,3 @@ fr:
|
|||
blank: 'doit être rempli'
|
||||
birthdate:
|
||||
blank: 'doit être rempli'
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
class RenameDossierPdfintofPieceJointe < ActiveRecord::Migration
|
||||
def change
|
||||
rename_table :dossier_pdfs, :pieces_jointes
|
||||
rename_table :dossier_pdfs, :pieces_jointes
|
||||
end
|
||||
end
|
||||
|
|
|
@ -28,4 +28,3 @@ describe UsersController, type: :controller do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
require 'spec_helper'
|
||||
|
||||
describe TypeDeChampDecorator do
|
||||
|
|
|
@ -9,19 +9,36 @@ feature 'As a User I wanna create a dossier' do
|
|||
let(:procedure_with_siret) { create(:procedure, :published, :with_api_carto, :with_type_de_champ, :with_two_type_de_piece_justificative) }
|
||||
let(:procedure_for_individual) { create(:procedure, :published, :for_individual, :with_api_carto, :with_type_de_champ, :with_two_type_de_piece_justificative) }
|
||||
|
||||
scenario 'Identification for individual' do
|
||||
login_as user, scope: :user
|
||||
visit commencer_path(procedure_path: procedure_for_individual.path)
|
||||
fill_in 'dossier_individual_attributes_nom', with: 'Nom'
|
||||
fill_in 'dossier_individual_attributes_prenom', with: 'Prenom'
|
||||
fill_in 'dossier_individual_attributes_birthdate', with: '14/10/1987'
|
||||
find(:css, "#dossier_autorisation_donnees[value='1']").set(true)
|
||||
page.find_by_id('etape_suivante').click
|
||||
expect(page).to have_current_path(users_dossier_carte_path(procedure_for_individual.dossiers.last.id.to_s), only_path: true)
|
||||
page.find_by_id('etape_suivante').click
|
||||
fill_in "champs_#{procedure_for_individual.dossiers.last.champs.first.id}", with: 'contenu du champ 1'
|
||||
page.find_by_id('suivant').click
|
||||
expect(page).to have_current_path(users_dossier_recapitulatif_path(procedure_for_individual.dossiers.last.id.to_s), only_path: true)
|
||||
context 'Identification for individual' do
|
||||
before do
|
||||
login_as user, scope: :user
|
||||
visit commencer_path(procedure_path: procedure_for_individual.path)
|
||||
fill_in 'dossier_individual_attributes_nom', with: 'Nom'
|
||||
fill_in 'dossier_individual_attributes_prenom', with: 'Prenom'
|
||||
find(:css, "#dossier_autorisation_donnees[value='1']").set(true)
|
||||
end
|
||||
|
||||
scenario "with a proper date input field for birthdate (type='date' supported)" do
|
||||
fill_in 'dossier_individual_attributes_birthdate', with: '1987-10-14'
|
||||
page.find_by_id('etape_suivante').click
|
||||
expect(page).to have_current_path(users_dossier_carte_path(procedure_for_individual.dossiers.last.id.to_s), only_path: true)
|
||||
page.find_by_id('etape_suivante').click
|
||||
fill_in "champs_#{procedure_for_individual.dossiers.last.champs.first.id}", with: 'contenu du champ 1'
|
||||
page.find_by_id('suivant').click
|
||||
expect(user.dossiers.first.individual.birthdate).to eq("14/10/1987")
|
||||
expect(page).to have_current_path(users_dossier_recapitulatif_path(procedure_for_individual.dossiers.last.id.to_s), only_path: true)
|
||||
end
|
||||
|
||||
scenario "with a basic text input field for birthdate (type='date' unsupported)" do
|
||||
fill_in 'dossier_individual_attributes_birthdate', with: '14/10/1987'
|
||||
page.find_by_id('etape_suivante').click
|
||||
expect(page).to have_current_path(users_dossier_carte_path(procedure_for_individual.dossiers.last.id.to_s), only_path: true)
|
||||
page.find_by_id('etape_suivante').click
|
||||
fill_in "champs_#{procedure_for_individual.dossiers.last.champs.first.id}", with: 'contenu du champ 1'
|
||||
page.find_by_id('suivant').click
|
||||
expect(user.dossiers.first.individual.birthdate).to eq("14/10/1987")
|
||||
expect(page).to have_current_path(users_dossier_recapitulatif_path(procedure_for_individual.dossiers.last.id.to_s), only_path: true)
|
||||
end
|
||||
end
|
||||
|
||||
scenario 'Identification through siret', vcr: {cassette_name: 'search_ban_paris'}, js: true do
|
||||
|
|
|
@ -603,7 +603,6 @@ describe Dossier do
|
|||
let(:dossier) { create(:dossier, :with_entreprise, user: user, procedure: procedure, follows: [follow], initiated_at: date1, received_at: date2, processed_at: date3) }
|
||||
|
||||
describe '#export_headers' do
|
||||
|
||||
subject { dossier.export_headers }
|
||||
|
||||
it { expect(subject).to include(:description) }
|
||||
|
@ -611,7 +610,6 @@ describe Dossier do
|
|||
end
|
||||
|
||||
describe '#data_with_champs' do
|
||||
|
||||
subject { dossier.data_with_champs }
|
||||
|
||||
it { expect(subject[0]).to be_a_kind_of(Integer) }
|
||||
|
@ -670,7 +668,6 @@ describe Dossier do
|
|||
it { expect(subject[:entreprise_prenom]).to be_nil }
|
||||
end
|
||||
|
||||
|
||||
describe '#Dossier.to_xlsx' do
|
||||
let!(:procedure) { create(:procedure) }
|
||||
let!(:dossier) { create(:dossier, :with_entreprise, user: user, procedure: procedure) }
|
||||
|
@ -966,4 +963,17 @@ describe Dossier do
|
|||
end
|
||||
|
||||
end
|
||||
|
||||
describe '.downloadable' do
|
||||
let(:procedure) { create(:procedure) }
|
||||
let!(:dossier) { create(:dossier, :with_entreprise, procedure: procedure, state: :draft) }
|
||||
let!(:dossier2) { create(:dossier, :with_entreprise, procedure: procedure, state: :initiated) }
|
||||
let!(:dossier3) { create(:dossier, :with_entreprise, procedure: procedure, state: :received) }
|
||||
|
||||
subject { procedure.dossiers.downloadable }
|
||||
|
||||
it { is_expected.not_to include(dossier)}
|
||||
it { is_expected.to include(dossier2)}
|
||||
it { is_expected.to include(dossier3)}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -256,4 +256,29 @@ describe Procedure do
|
|||
|
||||
it { is_expected.to eq 2 }
|
||||
end
|
||||
|
||||
describe '#generate_export' do
|
||||
let(:procedure) { create :procedure }
|
||||
subject { procedure.generate_export }
|
||||
|
||||
context 'when there are no dossiers' do
|
||||
it { expect(subject[:data]).to eq([]) }
|
||||
it { expect(subject[:headers]).to eq([]) }
|
||||
end
|
||||
|
||||
context 'when there are some dossiers' do
|
||||
let!(:dossier){ create(:dossier, procedure: procedure, state: 'initiated') }
|
||||
let!(:dossier2){ create(:dossier, procedure: procedure, state: 'closed') }
|
||||
|
||||
it { expect(subject[:data].size).to eq(2) }
|
||||
it { expect(subject[:headers]).to eq(dossier.export_headers) }
|
||||
end
|
||||
|
||||
context 'when there is a draft dossier' do
|
||||
let!(:dossier_not_exportable){ create(:dossier, procedure: procedure, state: 'draft') }
|
||||
|
||||
it { expect(subject[:data]).to eq([]) }
|
||||
it { expect(subject[:headers]).to eq([]) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -6,4 +6,3 @@ describe TypeDeChamp do
|
|||
|
||||
it_should_behave_like "type_de_champ_spec"
|
||||
end
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
RSpec.configure do |config|
|
||||
# config.include Devise::TestHelpers, type: :controller
|
||||
end
|
||||
|
|
1
vendor/assets/javascripts/franceconnect.js
vendored
1
vendor/assets/javascripts/franceconnect.js
vendored
|
@ -147,4 +147,3 @@ var franceConnectKit = {};
|
|||
}
|
||||
}, false);
|
||||
})(this);
|
||||
|
||||
|
|
Loading…
Reference in a new issue