From 380e1907da9d79fb0489941c4ca76ec0bbcf113e Mon Sep 17 00:00:00 2001
From: Sybil <sybil.deboin@gmail.com>
Date: Fri, 5 Sep 2014 04:59:30 +0200
Subject: [PATCH] Tags added, listing by tags, eating tags, drinking tags.

---
 app/assets/javascripts/music_player.js        |   2 +-
 app/assets/stylesheets/music_index.css        |  44 ++++++++++++++++++
 ...troller.rb.swp => .tags_controller.rb.swp} | Bin 12288 -> 12288 bytes
 app/controllers/musics_controller.rb          |   1 -
 app/controllers/tags_controller.rb            |  16 +++++++
 app/models/music.rb                           |   2 +
 app/models/tag.rb                             |   5 ++
 app/views/musics/.index.html.erb.swo          | Bin 12288 -> 12288 bytes
 app/views/musics/index.html.erb               |  17 ++-----
 app/views/tags/index.html.erb                 |   4 ++
 app/views/tags/show.html.erb                  |  13 ++++++
 config/.routes.rb.swp                         | Bin 0 -> 12288 bytes
 config/routes.rb                              |   3 ++
 13 files changed, 93 insertions(+), 14 deletions(-)
 create mode 100644 app/assets/stylesheets/music_index.css
 rename app/controllers/{.musics_controller.rb.swp => .tags_controller.rb.swp} (93%)
 create mode 100644 app/controllers/tags_controller.rb
 create mode 100644 app/models/tag.rb
 create mode 100644 app/views/tags/index.html.erb
 create mode 100644 app/views/tags/show.html.erb
 create mode 100644 config/.routes.rb.swp

diff --git a/app/assets/javascripts/music_player.js b/app/assets/javascripts/music_player.js
index 7293b01..c05bf4f 100644
--- a/app/assets/javascripts/music_player.js
+++ b/app/assets/javascripts/music_player.js
@@ -1,5 +1,5 @@
 function music_player() {
-  $.get("musics/"+$(this).data().id, function( data ) {
+  $.get("/musics/"+$(this).data().id, function( data ) {
     $( "#music_player" ).html( data );
   }); 
 }
diff --git a/app/assets/stylesheets/music_index.css b/app/assets/stylesheets/music_index.css
new file mode 100644
index 0000000..3a7a1da
--- /dev/null
+++ b/app/assets/stylesheets/music_index.css
@@ -0,0 +1,44 @@
+ul
+{
+  list-style-type: none;
+  margin: 5px;
+  padding: 0px;
+}
+
+.clickable_links
+{
+  background-color: rgba(0, 110, 140, 0.8);
+  margin: 2px;
+  cursor: pointer;
+}
+
+
+.clickable_links span
+{
+  display: inline-block;
+  padding: 15px 0;
+  font: 15px 'Helvetica Neue', Helvetica, Arial, sans-serif;
+  color: rgba(250,220,180,1);
+}
+
+.music_id
+{
+  width: 5%;
+  text-align: center;
+}
+
+.music_title
+{
+  width: 50%;
+}
+
+.music_sender
+{
+  width: 10%;
+  /*overflow: hidden;*/
+}
+
+.music_tags
+{
+  width: 20%;
+}
diff --git a/app/controllers/.musics_controller.rb.swp b/app/controllers/.tags_controller.rb.swp
similarity index 93%
rename from app/controllers/.musics_controller.rb.swp
rename to app/controllers/.tags_controller.rb.swp
index 0c92ec025dcd7cd2657bbe81693c94aca732804c..9c1bd6d5d4b0925b6b28d8ccfd1f21957fe4b8e4 100644
GIT binary patch
delta 361
zcmZojXh;xEG6?hZRWR2xVPIfj5MW^NRpboWI8n5cxg;@t<K!^r&Ci)Nc^CyY3krPZ
z&n@O-U^veQQ78b?z`($8nV*5-I6ni!W_|{SP5cZD)A<<~TKO3mYWW!$%J~@>%J>-=
zviTVp`1lzZKJzg!Jmh0wxXH)Ba2aaWIX(u4Wqb?_9efN7k$emc9()W8aeNF6ZkrPo
zmhdvArcS=7ry|FoprD{olv-SnpO>1NnwP@Bpr8PvK*FhcASK*LN+w^_lLLuyfW$z`
zCnxILOg7NxvM*M!Rq!n>&P>+J%FoOz*03r`OfS~dE6+$RO4TUHNvurDFNp_<St(SP
zB&J&_6eJcU<`zeT)Wz0nPTr_5#ZsJ+Up_fO-&qBuPQg|oBr#ntF(-#XK_MkIO(8Qc
TCAESfIVZ8W7$h_Kj=l;2lR98V

delta 333
zcmZojXh;xEG6?hZRWR2xVPIfj5MW?%y22i^X`*N)Yi?<AX7a{~Va%IfGOP123T_q@
z_{<+$$j88Nkq@F&5Tu2Hf#D)Q1H(~%28Mb33=DJm85o-Q85j!q85lD785olI85k1z
z85lzO85j)s85l(Q85o}MF)-ZWV_>+($G~tEYTiyh28MT=3l)~|PTa6XA~i3Cfk8n5
zL@6jBXobm<dMfe?)kUd!DXB#Y>ctuP<?1>LIf<3|r6pDhX^A<-skM_o>8YtH*edvf
z+^?6GnU|tbkXV$MTO4hbnG&nXprDYFnx+8KsxUc5PiOL9Jwba0kSz{i9~Z;579^&p
eD!{aYII&Q@nRzLx6%5HaiN(bbTPEMpR{;ROuv)qR

diff --git a/app/controllers/musics_controller.rb b/app/controllers/musics_controller.rb
index db911b6..1bc333e 100644
--- a/app/controllers/musics_controller.rb
+++ b/app/controllers/musics_controller.rb
@@ -13,5 +13,4 @@ class MusicsController < ApplicationController
       format.html {render 'show', layout: false}
     end
   end
-
 end
diff --git a/app/controllers/tags_controller.rb b/app/controllers/tags_controller.rb
new file mode 100644
index 0000000..5225192
--- /dev/null
+++ b/app/controllers/tags_controller.rb
@@ -0,0 +1,16 @@
+class TagsController < ApplicationController
+  def index
+    @tags = Tag.all
+
+    respond_to do |format|
+      format.html
+    end
+  end
+
+  def show
+    @musics = Music.joins(:tags).where(playbot_tags: {tag: params[:tag]}).page params[:page]
+    respond_to do |format|
+      format.html
+    end
+  end
+end
diff --git a/app/models/music.rb b/app/models/music.rb
index 6ad04dc..302f329 100644
--- a/app/models/music.rb
+++ b/app/models/music.rb
@@ -1,4 +1,6 @@
 class Music < ActiveRecord::Base
   self.table_name = "playbot"
   self.inheritance_column = "inheritance_type"
+
+  has_many :tags, foreign_key: "id"
 end
diff --git a/app/models/tag.rb b/app/models/tag.rb
new file mode 100644
index 0000000..33c93d9
--- /dev/null
+++ b/app/models/tag.rb
@@ -0,0 +1,5 @@
+class Tag < ActiveRecord::Base
+  self.table_name = "playbot_tags"
+
+  belongs_to :music
+end
diff --git a/app/views/musics/.index.html.erb.swo b/app/views/musics/.index.html.erb.swo
index dacf3bccfaf547d179dbdfdf3bee33c0f5204234..ef74791dc89e70492f4f2e9dc0f020eb5844a54c 100644
GIT binary patch
delta 321
zcmZojXh;xCG6?hZRWR2xVPIfj5MW^FRpSgX;@l|qi=UBiv!K9de!m~Q3=BSe5Lplf
zQuv6Uf#D%P1H&DD28KQS3=9qY3=BT}3=G2j3=9YP7#JG)7#Pa=7#Ono7#LFd7#Mu{
zAZD=eZB`W6%sY94j@;yYJuzXM;)29Hh2)&X;$mAR1{)BZ9H8eQ3KPmLEzV4iFHX%%
zNi9;EJV8%84OONjF}+yH&PLT%0jyFF#MjGBEU2z2sZl5aaclLm@-y=^lynr7G!<0s
zZ1h1k+A%1A0gClt6XHuUOL9_`Chyi$6-2cvGev3g13in$#`-qQHl;a}@9Qf902{_u
Aw*UYD

delta 525
zcmZojXh;xCG6?hZRWR2xVPIfj5MW?<k;xu%jccRWFMdYR&4L1-`RgC>GB5=2L1aZi
zsu&m;9`Q3UJmhC!IKj`raGalk;SfIq!)|^ChUNSW3={Yn7%KP~7z+3q81nfU82tGe
z7=G|EFkIzhVA#ONz|hLaz);P{z>v?!z>vwuz!1m>F<+98fkA?gfq|Kif#EAJ1H)rp
z28PAF4AKleybKJ!ybKHuybKIdybKKQc^DYZ^Dr>%<=M>0@`-ygtDYP;gN>@KLP27B
zW?teXJ+a9?dJ2<$^t31Y=&A7{NtL8d_R+H!M-fqQ$Sp0-OfFVXo$RCMV1_A&DuT*`
z>SdVhqo+6dx2_$x0vOm77bNCQUZ|%%*+^e?a)!QzWM+!364;)2kVC;Nz04E^RlCXa
z^zG^y6clXqb29B1K)S)2?SfPDQc{a-^g$*ei~E8ciz)1xf)KL-nPgL%W5>W?lVND*
gn3JPWl98$awp2mUMnA(4B$JX^rT}%-<ahc)0L6iX)c^nh

diff --git a/app/views/musics/index.html.erb b/app/views/musics/index.html.erb
index c00142f..d34d470 100644
--- a/app/views/musics/index.html.erb
+++ b/app/views/musics/index.html.erb
@@ -1,19 +1,12 @@
 <div id="music_player"></div>
 
-<h1>All the music !</h1>
-
 <ul>
-  <li>
-    <span>Id</span>
-    <span>Music</span>
-    <span>Sender</span>
-  </li>
-
   <% @musics.each do |music| %>
-    <li class="clickable_links" id="music_<%= music.id %>" data-id="<%= music.id %>" >
-      <span><%= music.id %></span>
-      <span><%= music.title%></span>
-      <span><%= music.sender_irc %></span>
+    <li class="clickable_links" data-id="<%= music.id %>" >
+      <span class="music_id"><%= music.id %></span>
+      <span class="music_title"><%= music.title%></span>
+      <span class="music_tags"><%= music.tags.map{|t| t.tag}.join(", ") %></span>
+      <span class="music_sender"><%= music.sender_irc %></span>
     </li>
   <% end %>
 </ul>
diff --git a/app/views/tags/index.html.erb b/app/views/tags/index.html.erb
new file mode 100644
index 0000000..429fa31
--- /dev/null
+++ b/app/views/tags/index.html.erb
@@ -0,0 +1,4 @@
+<% @tags.each do |tag| %>
+  <%= tag.tag+" " %>
+<% end %>
+
diff --git a/app/views/tags/show.html.erb b/app/views/tags/show.html.erb
new file mode 100644
index 0000000..4aacd27
--- /dev/null
+++ b/app/views/tags/show.html.erb
@@ -0,0 +1,13 @@
+<div id="music_player"></div>
+
+<ul>
+  <% @musics.each do |music| %>
+    <li class="clickable_links" data-id="<%= music.id %>" >
+      <span class="music_id"><%= music.id %></span>
+      <span class="music_title"><%= music.title %></span>
+      <span class="music_tags"><%= music.tags.map{|t| t.tag}.join(", ") %></span>
+      <span class="music_sender"><%= music.sender_irc %></span>
+    </li>
+  <% end %>
+</ul>
+
diff --git a/config/.routes.rb.swp b/config/.routes.rb.swp
new file mode 100644
index 0000000000000000000000000000000000000000..a2762380866c3e4446801c7487f5c6b7ff484868
GIT binary patch
literal 12288
zcmYc?2=nw+FxN9-U|?VnU|>*C<qWyN_k+bwkb$ANGAT0$Bu)T_6ekvBWM`%lQd<W$
zP(M61DIh1Y(kZ`0KRG`yEi+xeD8IBMwOFqxiGW3;(xV|T8Uo~nKxs*ut_3fHv5}zx
z$N*&}MFnA@P!MwzkA}c#2#kinXb6mkz-S1JhQMeDjE2By2#k;rC@ElMsAphcV1oMB
z21+xc(NOLvH5vk=Aut*OqaiRF0;3@?8UmvsFd71*Aut*OqaiRF0;3@?1VbP(g@GZF
zgMlHJ6Egn~>;K>9XJF{!XJ828XJ82AXJ8QLXJGip$H4HHkAdMn9|OY{J_d%(d<+ap
zd<+cId<+ayd<+aHco`Vh@iH*1<z--K;bmY*=Vf3B<z-;7=Vf3}=Vf4!=4D_I=Vf4E
z<Yi!Z!^6PvfQNzM8V>`*RUQV0WjqWFojeQ-sXPn}K0FKzPCN_@jywzutUL@1FSr>P
z&Tum@Y~W^K=-_5xsNrT{DB@;dDCA~faOY-V(Bfub5aDKE;NoUrxWmQ3u$GH~VGS1p
zLoF8rLoycwgAx}5!%I#EhO?Xu42L-x7}j$#FwEs-V3@<nz);8u@jKZ6LoohEoje)>
zqaiRF0;3@?8UmvsFvvq7H7|uhK_NZ0L_u9Yx3oAjxmdp>F}+ydsw6R8T}PoL-%3FV
zB%oZJkzcOFz@VT|lv<o$T9lkxtN>C|j4A>#f<Zw+SwTSoVm63{qN|`NKczIe1f&xp
zr>vlnSWp03d0A4FpOceXRIHzvlAD>Q4^tVRoSz4k(kn{Rgc=XB#3i#RHMyi%0ZoIx
zmO@Fsf+NTfE2{vgea>)0pa$e6=B5@GBqpaSSb^<RNXZAwxK<?Q7UZPDeX0On460C`
zS(1^Nr;w-s*JlL^50D>_!lWQ0za+m{M<F>sFFCa+uh>e#sw6)>Jts9WDJK<dJZfO%
z7ncxFjU0>x`Nbs)>JS6fp{7A?LbitppCB9v^8~Uz$ZTlxC`wIE%_~vYQOM7;Qm{$}
zMO1Q0W_}*j6)3(cPRvOyhB-n(0Yxr3KQ}iu4<7x<K?jW}m_|JDppctil&X-N4~nM>
zh2qjAUAQ^$NI~`kOjg0FI2Dw_usIs$FdYReu=}BEU|Ne6tYGPp7zYw|6SDiDVO*S_
zlLCuY1qDPHLoI~52sLLZC}2wzpg;%b>f((2q7sCexv9BHsYOupP$PyE-{lv8qP`d&
z)>r}w>{uL8sF9mkP^{n)5)z<LmRgil49cyDJg$%kPFTeXiKQj^xrrs2$%#2Rm6~wN
z!2W`{R^KW!MZci5C^;jsI8|N2)=oh^Ik6-$CqG>oE~=xD2+D^rK8nlo)4=&T1)9lA
zG7?J^k`wb3l2R2i^UCtGQ&YehUje2$zO*PuBQwQH0qOv~%oI&n4#IF4s(Z>ZQ_CSS
z0SlJ=G=-wn^wONfB8c@+FBawJmnf*0r{*N*=cX!W=B1=oK=eiCmx3Lakyw_hP?C|V
z09Kiwrcjw*TBJ~%SppI%ErGdN2_y|Jw3QWtQ&SZ(^2-$xb8;Z6!G&6}LQZ0(LVjrp
z#FI)ziP=yiik0-h;S`dQs!&jrnO~GyQmK$xtdNvgoSLFgT9BWokYALNTBMMlrjT5e
zng~h{RtjmEMa3l$erk$>uAM?gW_m_yaS7ZAJ%*sf%$#Dq#DapH%w(`GJ%~&6Qi>AG
HK?xH8`T|wc

literal 0
HcmV?d00001

diff --git a/config/routes.rb b/config/routes.rb
index bb11b07..37aea08 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -54,4 +54,7 @@ Rails.application.routes.draw do
   #     resources :products
   #   end
   resources :musics
+  resources :tags
+
+  get '/musics/tags/:tag', to: "tags#show"
 end
-- 
GitLab