diff --git a/app/views/admin/communication/website/blocks/edit.html.erb b/app/views/admin/communication/website/blocks/edit.html.erb index 0a5805595b78d65ce35897eb30ba676bae5e437f..4d8d2f0d958999c69c75530f40b7d30c5416bb9a 100644 --- a/app/views/admin/communication/website/blocks/edit.html.erb +++ b/app/views/admin/communication/website/blocks/edit.html.erb @@ -25,6 +25,25 @@ }, data() { return { data: <%= @block.data.to_json.html_safe %> } + }, + methods: { + // TODO : replace by real image upload + onFileImageChange(event, object, key) { + var files = event.target.files || event.dataTransfer.files; + if (!files.length) + return; + this.assignImage(files[0], object, key); + }, + assignImage(file, object, key) { + var image = new Image(); + var reader = new FileReader(); + + reader.onload = function(event){ + object[key] = event.target.result; + }.bind(this); + + reader.readAsDataURL(file); + } } }); app.mount('#app') diff --git a/app/views/admin/communication/website/blocks/templates/organization_chart/_edit.html.erb b/app/views/admin/communication/website/blocks/templates/organization_chart/_edit.html.erb index e8a4da3341125443b4f05c08c195ab664c99b305..f20c350ca5f7dcbbb9e3f1b1918e2d90e8a9ec07 100644 --- a/app/views/admin/communication/website/blocks/templates/organization_chart/_edit.html.erb +++ b/app/views/admin/communication/website/blocks/templates/organization_chart/_edit.html.erb @@ -3,7 +3,6 @@ Add role </a> - <div class="row"> <draggable class="col-md-11" :list="data.elements"> <div class="card" v-for="element in data.elements"> diff --git a/app/views/admin/communication/website/blocks/templates/partners/_edit.html.erb b/app/views/admin/communication/website/blocks/templates/partners/_edit.html.erb index 0d2711ae79bd5918248a3fa37b2a045c0e482137..03e1fc7616d7a0d690d8b9783cfb94ef1f2eeb9e 100644 --- a/app/views/admin/communication/website/blocks/templates/partners/_edit.html.erb +++ b/app/views/admin/communication/website/blocks/templates/partners/_edit.html.erb @@ -1,37 +1,99 @@ -<a class="<%= button_classes('mb-4') %>" - v-on:click="data.elements.push({name: '', url: '', logo: ''})"> - Add partner +<a class="<%= button_classes('mb-4') %>" + v-on:click="data.elements.push({title: '', partners: [] })"> + Add category </a> - -<div class="row"> - <draggable class="col-md-6" :list="data.elements"> - <div class="card" v-for="element in data.elements"> - <div class="card-header pb-0 nav justify-content-between"> - <a class="btn ps-0"> - <i class="fa fa-bars handle"></i> - </a> - <a class="btn btn-sm btn-danger mt-1" v-on:click="data.elements.splice(data.elements.indexOf(element), 1)"> - <i class="fas fa-times"></i> - </a> +<draggable :list="data.elements"> + <div class="card" v-for="element in data.elements"> + <div class="card-header pb-0 nav justify-content-between"> + <div class="d-flex"> + <a class="btn ps-0"> + <i class="fa fa-bars handle"></i> + </a> + <h3>{{ element.title }}</h3> </div> - <div class="card-body"> - <div class="mb-3"> - <label class="form-label">Partner's name</label> - <input class="form-control" type="text" v-model="element.name" placeholder="Type partner's name here"> + <a class="btn btn-sm btn-danger mt-1" v-on:click="data.elements.splice(data.elements.indexOf(element), 1)"> + <i class="fas fa-times"></i> + </a> + </div> + <div class="card-header"> + <div class="row"> + <div class="col-10"> + <label class="form-label" for="">Title</label> + <input class="form-control form-control-lg" + type="text" + v-model="element.title" + placeholder="Type category name here"> </div> - - <div class="mb-3"> - <label class="form-label">Partner's url</label> - <input class="form-control" type="url" v-model="element.url" placeholder="Type partner's url here"> + </div> + </div> + <div class="card-body"> + <div class="row"> + <div class="col-md-8"> + <p>Partner for {{ element.title }}</p> </div> - - <div class="mb-3"> - <label class="form-label">Partner's logo</label> - <input class="form-control" type="file" v-model="element.logo"> + <div class="col-md-4 text-end"> + <a class="<%= button_classes('mt-n1') %>" + v-on:click="element.partners.push({name: '', url: '', logo: ''})"> + Add partner + </a> </div> - </div> - </div> - </draggable> + + <draggable :list="element.partners" class="list-group"> + <div v-for="partner in element.partners" class="list-group-item"> + <div class="row"> + <div class="col-1"> + <a class="btn ps-0"> + <i class="fa fa-bars handle"></i> + </a> + </div> + <div class="col-lg-3 col-sm-10"> + <label class="form-label"> + Name : + <input class="form-control mb-2" + type="text" + v-model="partner.name" + placeholder="Type partner's name here"> + </label> + </div> + <div class="offset-lg-0 col-lg-3 offset-sm-1 col-sm-10"> + <label class="form-label"> + Url <small>(starting with http:// )</small>: + <input class="form-control mb-2" + type="text" + v-model="partner.url" + placeholder="Type partner's url here"> + </label> + </div> + <div class="offset-lg-0 col-lg-4 offset-sm-1 col-sm-10"> + <%# TODO : Replace by real image upload %> + <label class="form-label"> + Logo : + <input class="form-control mb-2" + type="file" + accept="image/*" + @change="onFileImageChange( $event, partner, 'logo' )"> -</div> \ No newline at end of file + <div v-if="partner.logo"> + <img :src="partner.logo" class="img-fluid" /> + <a class="btn btn-sm btn-danger mt-1" + v-on:click="partner.logo=''"> + Remove + <i class="fas fa-times"></i> + </a> + </div> + + </label> + </div> + <div class="col-1 text-end"> + <a class="btn btn-sm btn-danger mt-1" + v-on:click="element.partners.splice(element.partners.indexOf(person), 1)"> + <i class="fas fa-times"></i> + </a> + </div> + </div> + </div> + </draggable> + </div> + </div> +</draggable> diff --git a/app/views/admin/communication/website/blocks/templates/partners/_show.html.erb b/app/views/admin/communication/website/blocks/templates/partners/_show.html.erb index 52d7aadaff560b30256103d6e07721e8eaaf7334..a46172395d78c831b9e9450c87c7c0aafb4818cb 100644 --- a/app/views/admin/communication/website/blocks/templates/partners/_show.html.erb +++ b/app/views/admin/communication/website/blocks/templates/partners/_show.html.erb @@ -1,12 +1,19 @@ <% @block.data['elements'].each do |element| %> - <div class="card"> - <div class="card-body"> - <h2 class="card-title"><%= element['name'] %></h2> - <p><%= element['url'] %></p> - <% if element['logo'] %> - <%#= kamifusen_tag element['logo'], class: 'img-fluid' %> - <% end %> + <h2><%= element['title'] %></h2> + <div class="row"> + <% element['partners'].each do |partner| %> + <div class="col-md-3"> + <article class="card"> + <div class="card-body"> + <%# TODO : Replace by kamifusen %> + <% if partner['logo'] %> + <img src="<%= partner['logo'] %>" class="img-fluid mb-2" /> + <% end %> + <h3 class="card-title h5"><%= partner['name'] %></h3> + <p class="mb-0"><%= partner['url'] %></p> + </div> + </article> </div> - </div> + <% end %> </div> <% end %>