diff --git a/app/controllers/admin/i_websites_controller.rb b/app/controllers/admin/i_websites_controller.rb index 5e10e70..a222430 100644 --- a/app/controllers/admin/i_websites_controller.rb +++ b/app/controllers/admin/i_websites_controller.rb @@ -12,6 +12,17 @@ class Admin::IWebsitesController < ApplicationController + def preview + @i_website = IWebsite.where(:token => params[:id]).first + + @i_tasks = @i_website.i_tasks + + #render :template => "admin/i_tasks/index" + + @preview = true + params[:no_detail]= true + end + def index @i_websites = IWebsite.joins(:p_customer).order("p_customers.name ASC, p_customers.id ASC, i_websites.name ASC").all diff --git a/app/models/i_website.rb b/app/models/i_website.rb index 4c2d8ab..190375f 100644 --- a/app/models/i_website.rb +++ b/app/models/i_website.rb @@ -8,4 +8,16 @@ class IWebsite < ActiveRecord::Base self.name.to_s+(" - "+self.url.to_s if self.url?).to_s+(" - "+self.prov_url.to_s if self.prov_url?).to_s end + before_save do + self.verify + end + def verify(size=16) + if !self.token + s = "" + size.times { s << (i = Kernel.rand(62); i += ((i < 10) ? 48 : ((i < 36) ? 55 : 61 ))).chr } + self.token = s + end + end + + end diff --git a/app/views/admin/i_tasks/_i_task.html.haml b/app/views/admin/i_tasks/_i_task.html.haml index 04c11b9..9bbc895 100644 --- a/app/views/admin/i_tasks/_i_task.html.haml +++ b/app/views/admin/i_tasks/_i_task.html.haml @@ -5,14 +5,23 @@ %tr %td{:style => (params[:no_detail] ? "width:30px;" : "width:150px;")} - -if i_task.done - =link_to admin_i_task_path(:id => i_task.id, :i_task => {:done => false}), :remote => true, :method => :put do + -if @preview + -if i_task.done .big_icon.done =ic :check - -else - =link_to admin_i_task_path(:id => i_task.id, :i_task => {:done => true}), :remote => true, :method => :put do + -else .big_icon.undone =ic :check + + -else + -if i_task.done + =link_to admin_i_task_path(:id => i_task.id, :i_task => {:done => false}), :remote => true, :method => :put do + .big_icon.done + =ic :check + -else + =link_to admin_i_task_path(:id => i_task.id, :i_task => {:done => true}), :remote => true, :method => :put do + .big_icon.undone + =ic :check -if !params[:no_detail] -if i_task.urgent diff --git a/app/views/admin/i_tasks/index.html.haml b/app/views/admin/i_tasks/index.html.haml index f8413b3..ffff0e7 100644 --- a/app/views/admin/i_tasks/index.html.haml +++ b/app/views/admin/i_tasks/index.html.haml @@ -63,9 +63,15 @@ .i_task_project .right =@i_task_project.admin.name if @i_task_project.admin + + =link_to ic(:globe), "/p/#{@i_task_project.token}", :target => "_blank" + + =@i_task_project.name    =link_to ic(:times), params.merge(:i_task_project_id => "") + + :scss .tasks_menu{ a{ diff --git a/app/views/admin/i_tasks/preview.html.haml b/app/views/admin/i_tasks/preview.html.haml new file mode 100644 index 0000000..ffff0e7 --- /dev/null +++ b/app/views/admin/i_tasks/preview.html.haml @@ -0,0 +1,113 @@ +.qi_header + %h1 To do + + +.qi_row + + -if params[:i_previ_id] + -@i_tasks = ITask.where(:i_previ_id => params[:i_previ_id], :done => false).all + + -elsif params[:archive] + -@i_tasks = ITask.where(:done => true).all + + -elsif params[:urgent] + -@i_tasks = ITask.where(:urgent => true, :done => false).all + -elsif params[:no] + -@i_tasks = ITask.where(:done => false, :i_previ_id => nil).all + + -else + -params[:all] = true + -@i_tasks = ITask.where(:done => false).all + + -if params[:i_task_project_id] and params[:i_task_project_id].to_s != "" + -@i_task_project = IWebsite.where(:id => params[:i_task_project_id]).first + -@i_tasks = @i_tasks.where(:i_website_id => params[:i_task_project_id]).all + + + + :scss + .i_task_project{ + background:white; + font-weight:bold; + padding:10px 20px; + margin-top:10px; + } + .tasks_menu + =link_to admin_i_tasks_path(:no => 1, :i_task_project_id => params[:i_task_project_id]), :class => ("active" if params[:no]) do + Non planifiées + + =link_to admin_i_tasks_path(:all => 1, :i_task_project_id => params[:i_task_project_id]), :class => ("active" if params[:all]) do + Toutes les tâches + + + =link_to admin_i_tasks_path(:urgent => 1, :i_task_project_id => params[:i_task_project_id]), :class => ("active" if params[:urgent]) do + =ic :"free-code-camp" + Urgent + + =link_to admin_i_tasks_path(:i_previ_id => 1, :i_task_project_id => params[:i_task_project_id]), :class => ("active" if params[:i_previ_id].to_s == "1") do + =ic :star + Aujourd'hui + + =link_to admin_i_tasks_path(:i_previ_id => 2, :i_task_project_id => params[:i_task_project_id]), :class => ("active" if params[:i_previ_id].to_s == "2") do + =ic :"arrow-right" + Rapidement + + =link_to admin_i_tasks_path(:i_previ_id => 3, :i_task_project_id => params[:i_task_project_id]), :class => ("active" if params[:i_previ_id].to_s == "3") do + =ic :history + Un jour + + =link_to admin_i_tasks_path(:archive => 1, :i_task_project_id => params[:i_task_project_id]), :class => ("active" if params[:archive]) do + Journal + + -if @i_task_project + .i_task_project + .right + =@i_task_project.admin.name if @i_task_project.admin + + =link_to ic(:globe), "/p/#{@i_task_project.token}", :target => "_blank" + + + =@i_task_project.name +    + =link_to ic(:times), params.merge(:i_task_project_id => "") + + + :scss + .tasks_menu{ + a{ + display:inline-block; + padding:4px 8px; + + &:hover,&.active{ + font-weight:bold; + } + } + + } + + #i_task_form + + + #new_i_task_form=render :partial => "admin/i_tasks/form", :locals => {:new_var => true} + + .row + #i_tasks_results= render :partial => "admin/i_tasks/results" + + .projects + %strong Projets avec des tâches en cours : + %br + -ITask.where(:done => false).where("i_website_id is not NULL").group(:i_website_id).map {|i| [i.i_website_id, i.i_website.name]}.sort.each do |iw| + =link_to iw[1],admin_i_tasks_path(:i_task_project_id => iw[0]), :class => "project" + + :scss + .projects{ + margin-bottom:100px; + .project{ + display:inline-block; + padding:5px 8px; + margin:5px; + background:white; + } + + } + \ No newline at end of file diff --git a/app/views/admin/i_websites/preview.html.haml b/app/views/admin/i_websites/preview.html.haml new file mode 100644 index 0000000..8c9f809 --- /dev/null +++ b/app/views/admin/i_websites/preview.html.haml @@ -0,0 +1,83 @@ +.qi_header + %h1=@i_website.name + + +.qi_row + + -if params[:i_previ_id] + -@i_tasks = ITask.where(:i_previ_id => params[:i_previ_id], :done => false).all + + -elsif params[:archive] + -@i_tasks = ITask.where(:done => true).all + + -elsif params[:urgent] + -@i_tasks = ITask.where(:urgent => true, :done => false).all + -elsif params[:no] + -@i_tasks = ITask.where(:done => false, :i_previ_id => nil).all + + -else + -params[:all] = true + -@i_tasks = ITask.where(:done => false).all + + -if params[:i_task_project_id] and params[:i_task_project_id].to_s != "" + -@i_task_project = IWebsite.where(:id => params[:i_task_project_id]).first + -@i_tasks = @i_tasks.where(:i_website_id => params[:i_task_project_id]).all + + + + :scss + .i_task_project{ + background:white; + font-weight:bold; + padding:10px 20px; + margin-top:10px; + } + .tasks_menu + =link_to url_for(:no => 1), :class => ("active" if params[:no]) do + Non planifiées + + =link_to url_for(:all => 1), :class => ("active" if params[:all]) do + Toutes les tâches + + + -if false + =link_to url_for(:urgent => 1), :class => ("active" if params[:urgent]) do + =ic :"free-code-camp" + Urgent + + + + =link_to url_for(:archive => 1), :class => ("active" if params[:archive]) do + Journal + + -if @i_task_project + .i_task_project + .right + =@i_task_project.admin.name if @i_task_project.admin + + =link_to ic(:globe), "/p/#{@i_task_project.token}", :target => "_blank" + + + =@i_task_project.name +    + =link_to ic(:times), params.merge(:i_task_project_id => "") + + + :scss + .tasks_menu{ + a{ + display:inline-block; + padding:4px 8px; + + &:hover,&.active{ + font-weight:bold; + } + } + + } + + + + .row + #i_tasks_results= render :partial => "admin/i_tasks/results" + \ No newline at end of file diff --git a/app/views/layouts/admin.html.haml b/app/views/layouts/admin.html.haml index 4472c63..581d44b 100644 --- a/app/views/layouts/admin.html.haml +++ b/app/views/layouts/admin.html.haml @@ -19,78 +19,79 @@ %body.admin - #right_bar - .element - =link_to "/" do - .cat#big_cat_clients - =ic :"home" + -if !@preview + #right_bar + .element + =link_to "/" do + .cat#big_cat_clients + =ic :"home" - .element - =link_to admin_p_customers_path do - .cat#big_cat_clients - =ic :"address-book-o" - Clients + .element + =link_to admin_p_customers_path do + .cat#big_cat_clients + =ic :"address-book-o" + Clients - .element - =link_to admin_p_customer_sheets_path do - .cat#big_cat_ventes - =ic :"shopping-cart" - Offres + .element + =link_to admin_p_customer_sheets_path do + .cat#big_cat_ventes + =ic :"shopping-cart" + Offres - .element - =link_to admin_i_websites_path do - .cat#big_cat_web - =ic :"globe" - Sites - .element - =link_to admin_p_documents_path do - .cat#big_cat_documents - =ic :"file-text-o" - Documents - .element - =link_to admin_p_payments_path do - .cat#big_cat_paiements - =ic :"eur" - Paiements - - -if false .element - =link_to admin_p_stats_path do - .cat#big_cat_charts - =ic :"bar-chart" - Stats - - .bottom + =link_to admin_i_websites_path do + .cat#big_cat_web + =ic :"globe" + Sites .element - =link_to admin_admins_path do - .cat#big_cat_preferences - =ic :"cog" - + =link_to admin_p_documents_path do + .cat#big_cat_documents + =ic :"file-text-o" + Documents + .element + =link_to admin_p_payments_path do + .cat#big_cat_paiements + =ic :"eur" + Paiements + + -if false + .element + =link_to admin_p_stats_path do + .cat#big_cat_charts + =ic :"bar-chart" + Stats + + .bottom + .element + =link_to admin_admins_path do + .cat#big_cat_preferences + =ic :"cog" + - -if @admin_space - %script - =raw '$("#big_cat_'+@admin_space.to_s+'").addClass("active");' + -if @admin_space + %script + =raw '$("#big_cat_'+@admin_space.to_s+'").addClass("active");' - %nav#admin_nav.navbar.navbar-default.navbar-inverse{role: "navigation"} - .container-fluid + %nav#admin_nav.navbar.navbar-default.navbar-inverse{role: "navigation"} + .container-fluid - .navbar-header - %button.navbar-toggle{"data-target" => "#bs-example-navbar-collapse-1", "data-toggle" => "collapse", type: "button"} - %span.sr-only Toggle navigation - %span.icon-bar - %span.icon-bar - %span.icon-bar + .navbar-header + %button.navbar-toggle{"data-target" => "#bs-example-navbar-collapse-1", "data-toggle" => "collapse", type: "button"} + %span.sr-only Toggle navigation + %span.icon-bar + %span.icon-bar + %span.icon-bar - #bs-example-navbar-collapse-1.collapse.navbar-collapse - %ul.nav.navbar-nav - -if @admin_space - =render :partial => "admin/admin_spaces/#{@admin_space.to_s}" + #bs-example-navbar-collapse-1.collapse.navbar-collapse + %ul.nav.navbar-nav + -if @admin_space + =render :partial => "admin/admin_spaces/#{@admin_space.to_s}" @@ -98,24 +99,28 @@ - %ul.nav.navbar-nav.navbar-right - %li.dropdown - %a.dropdown-toggle{"data-toggle" => "dropdown", href: "#"} - =current_admin.firstname - =current_admin.name - %b.caret + %ul.nav.navbar-nav.navbar-right + %li.dropdown + %a.dropdown-toggle{"data-toggle" => "dropdown", href: "#"} + =current_admin.firstname + =current_admin.name + %b.caret - %ul.dropdown-menu - %li= link_to "Gestion des admins", admin_admins_path - %li.divider - %li=link_to "Se déconnecter", admin_admin_auth_path(1), method: :delete + %ul.dropdown-menu + %li= link_to "Gestion des admins", admin_admins_path + %li.divider + %li=link_to "Se déconnecter", admin_admin_auth_path(1), method: :delete - + -else + #right_bar + =image_tag("/logo-olwen-technology.png", :style => "margin:10px auto;width:50%;display:block;") + + = yield diff --git a/config/routes.rb b/config/routes.rb index df88189..7883e45 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -7,7 +7,7 @@ Rails.application.routes.draw do get "sitemap.:f" => "public/seo#sitemap" - + get "p/:id" => "admin/i_websites#preview" diff --git a/db/migrate/20191112110616_add_token_to_i_websites.rb b/db/migrate/20191112110616_add_token_to_i_websites.rb new file mode 100644 index 0000000..04d1443 --- /dev/null +++ b/db/migrate/20191112110616_add_token_to_i_websites.rb @@ -0,0 +1,10 @@ +class AddTokenToIWebsites < ActiveRecord::Migration + def change + add_column :i_websites, :token, :string + + IWebsite.all.each do |iw| + iw.save + end + + end +end diff --git a/db/schema.rb b/db/schema.rb index aa3a5c6..d53c7ba 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20190722161039) do +ActiveRecord::Schema.define(version: 20191112110616) do create_table "admin_admin_roles", force: :cascade do |t| t.integer "admin_id", limit: 4 @@ -464,6 +464,7 @@ ActiveRecord::Schema.define(version: 20190722161039) do t.datetime "updated_at", null: false t.integer "admin_id", limit: 4 t.string "state", limit: 255 + t.string "token", limit: 255 end create_table "image_contents", force: :cascade do |t| diff --git a/public/logo-olwen-technology.png b/public/logo-olwen-technology.png new file mode 100644 index 0000000..08b87e9 Binary files /dev/null and b/public/logo-olwen-technology.png differ