Fixed messages. New styling for token input plugin.
This commit is contained in:
parent
c0c41a7752
commit
52e62f8ddb
14 changed files with 359 additions and 412 deletions
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
*= require bootstrap_and_overrides
|
||||
*= require foodsoft
|
||||
*= require token-input
|
||||
*= require token-input-bootstrappy
|
||||
*= require jquery.fancybox-1.3.4
|
||||
*/
|
||||
|
|
@ -1,58 +0,0 @@
|
|||
/* Navigation .... */
|
||||
#nav {
|
||||
position: relative;
|
||||
height: 3em;
|
||||
text-align: right;
|
||||
margin-top: 5px; }
|
||||
#nav ul {
|
||||
padding: 0 0 0 0;
|
||||
margin: -2.3em 0 0 0;
|
||||
list-style: none; }
|
||||
#nav ul li {
|
||||
display: inline;
|
||||
list-style: none;
|
||||
padding: 0.3em 0 0.3em 0;
|
||||
margin: 0 0 0 0.2em;
|
||||
background: none;
|
||||
vertical-align: middle; }
|
||||
#nav ul li a {
|
||||
margin: 0.1em 0 0 0;
|
||||
text-align: center;
|
||||
font-size: 1.1em;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
color: #737272;
|
||||
border: none;
|
||||
background: #e3e3e3;
|
||||
padding: 0.5em 1.2em 0.6em 1.2em;
|
||||
margin-top: 0; }
|
||||
#nav ul li a:hover {
|
||||
color: #ed0606; }
|
||||
#nav ul li ul {
|
||||
display: none;
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
left: 0;
|
||||
padding: 0.6em;
|
||||
bottom: -1.4em;
|
||||
right: 0em;
|
||||
background: #ed0606; }
|
||||
#nav ul li ul li {
|
||||
border-left: 0.1em dotted white;
|
||||
background: none; }
|
||||
#nav ul li ul a, #nav ul li ul a:hover {
|
||||
border: none;
|
||||
background: none;
|
||||
color: white;
|
||||
font-style: normal;
|
||||
font-size: 1em; }
|
||||
#nav ul li.current a {
|
||||
border: none;
|
||||
border-bottom: none;
|
||||
background: #ed0606;
|
||||
padding-bottom: 0.6em;
|
||||
color: white; }
|
||||
#nav ul li.current ul {
|
||||
display: inline; }
|
||||
#nav ul li.current ul a {
|
||||
background: none; }
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
/* rails messages .... */
|
||||
h3.notice, div.notice {
|
||||
color: #090; }
|
||||
|
||||
h3.notice {
|
||||
background: #dfd image-url('icon_message.gif') no-repeat 10px 3px;
|
||||
border: 1px solid #bfb;
|
||||
padding: 4px 40px;
|
||||
margin: 2em 0 1em 0;
|
||||
font-size: 100%;
|
||||
position: relative; }
|
||||
|
||||
h3.alert, div.alert, div.error {
|
||||
color: red;
|
||||
font-size: 100%;
|
||||
font-weight: bold; }
|
||||
|
||||
h3.alert {
|
||||
background: yellow image-url('error.png') no-repeat 10px 3px;
|
||||
border: 1px solid red;
|
||||
padding: 4px 40px;
|
||||
position: relative;
|
||||
margin: 2em 0 1em 0;
|
||||
font-weight: normal; }
|
||||
|
||||
.fieldWithErrors {
|
||||
padding: 2px;
|
||||
background-color: red;
|
||||
display: table; }
|
||||
|
||||
.fieldWithErrors input {
|
||||
background-color: yellow; }
|
||||
|
||||
#errorExplanation {
|
||||
width: 40em;
|
||||
padding: 7px;
|
||||
padding-bottom: 12px;
|
||||
color: #ed0606; }
|
||||
#errorExplanation h2 {
|
||||
color: #ed0606;
|
||||
text-align: left;
|
||||
font-weight: bold;
|
||||
margin: 0;
|
||||
padding: 5px 5px 5px 5px;
|
||||
font-size: 15px; }
|
||||
#errorExplanation p {
|
||||
margin: 0;
|
||||
padding: 5px; }
|
||||
#errorExplanation ul, #errorExplanation li {
|
||||
margin: 0; }
|
||||
#errorExplanation li {
|
||||
padding: 0;
|
||||
font-size: 12px;
|
||||
list-style: square; }
|
||||
|
||||
div.uploadStatus {
|
||||
margin: 5px; }
|
||||
|
||||
div.progressBar {
|
||||
margin: 5px; }
|
||||
div.progressBar div.border {
|
||||
background-color: #fff;
|
||||
border: 1px solid grey;
|
||||
width: 100%; }
|
||||
div.progressBar div.background {
|
||||
background-color: #333;
|
||||
height: 18px;
|
||||
width: 0%; }
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
body { background-color: #fff; color: #333; }
|
||||
|
||||
body, p, ol, ul, td {
|
||||
font-family: verdana, arial, helvetica, sans-serif;
|
||||
font-size: 13px;
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
pre {
|
||||
background-color: #eee;
|
||||
padding: 10px;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
a { color: #000; }
|
||||
a:visited { color: #666; }
|
||||
a:hover { color: #fff; background-color:#000; }
|
||||
|
||||
.fieldWithErrors {
|
||||
padding: 2px;
|
||||
background-color: red;
|
||||
display: table;
|
||||
}
|
||||
|
||||
#errorExplanation {
|
||||
width: 400px;
|
||||
border: 2px solid red;
|
||||
padding: 7px;
|
||||
padding-bottom: 12px;
|
||||
margin-bottom: 20px;
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
#errorExplanation h2 {
|
||||
text-align: left;
|
||||
font-weight: bold;
|
||||
padding: 5px 5px 5px 15px;
|
||||
font-size: 12px;
|
||||
margin: -7px;
|
||||
background-color: #c00;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#errorExplanation p {
|
||||
color: #333;
|
||||
margin-bottom: 0;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#errorExplanation ul li {
|
||||
font-size: 12px;
|
||||
list-style: square;
|
||||
}
|
||||
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
.simple_form label {
|
||||
float: left;
|
||||
width: 120px;
|
||||
text-align: right;
|
||||
margin: 2px 10px;
|
||||
}
|
||||
|
||||
.simple_form div.input {
|
||||
margin-bottom: 10px;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.simple_form div.boolean, .simple_form input[type='submit'] {
|
||||
margin-left: 140px;
|
||||
}
|
||||
|
||||
.simple_form div.boolean label, .simple_form label.collection_radio {
|
||||
float: none;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.simple_form label.collection_radio {
|
||||
margin-right: 10px;
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.simple_form .error {
|
||||
clear: left;
|
||||
margin-left: 140px;
|
||||
font-size: 12px;
|
||||
color: #D00;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.simple_form .hint {
|
||||
clear: left;
|
||||
margin-left: 140px;
|
||||
font-size: 12px;
|
||||
color: #555;
|
||||
display: block;
|
||||
font-style: italic;
|
||||
}
|
||||
133
app/assets/stylesheets/token-input-bootstrappy.css
Normal file
133
app/assets/stylesheets/token-input-bootstrappy.css
Normal file
|
|
@ -0,0 +1,133 @@
|
|||
/* Example tokeninput style #2: Facebook style */
|
||||
ul.token-input-list-facebook {
|
||||
overflow: hidden;
|
||||
height: auto !important;
|
||||
height: 1%;
|
||||
width: 400px;
|
||||
border: 1px solid #BBB;
|
||||
cursor: text;
|
||||
font-size: 12px;
|
||||
font-family: Verdana, sans-serif;
|
||||
min-height: 1px;
|
||||
z-index: 999;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #fff;
|
||||
list-style-type: none;
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
ul.token-input-list-facebook.token-input-focused-facebook {
|
||||
border-color: rgba(82, 168, 236, 0.8);
|
||||
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
|
||||
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
|
||||
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
|
||||
outline: 0;
|
||||
outline: thin dotted 9;
|
||||
}
|
||||
|
||||
ul.token-input-list-facebook li input {
|
||||
border: 0;
|
||||
width: 100px;
|
||||
padding: 3px 8px;
|
||||
background-color: white;
|
||||
margin: 2px 0;
|
||||
-webkit-appearance: caret;
|
||||
}
|
||||
|
||||
li.token-input-token-facebook {
|
||||
overflow: hidden;
|
||||
height: auto !important;
|
||||
height: 15px;
|
||||
margin: 3px;
|
||||
padding: 1px 3px;
|
||||
background-color: #F5F5F5;
|
||||
color: #555;
|
||||
cursor: default;
|
||||
border: 1px solid #BBB;
|
||||
font-size: 11px;
|
||||
border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
-webkit-border-radius: 5px;
|
||||
float: left;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
li.token-input-token-facebook p {
|
||||
display: inline;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
li.token-input-token-facebook span {
|
||||
color: #a6b3cf;
|
||||
margin-left: 5px;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
li.token-input-selected-token-facebook {
|
||||
background-color: #5670a6;
|
||||
border: 1px solid #3b5998;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
li.token-input-input-token-facebook {
|
||||
float: left;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
div.token-input-dropdown-facebook {
|
||||
position: absolute;
|
||||
width: 400px;
|
||||
background-color: #F5F5F5;
|
||||
overflow: hidden;
|
||||
border-left: 1px solid #ccc;
|
||||
border-right: 1px solid #ccc;
|
||||
border-bottom: 1px solid #ccc;
|
||||
cursor: default;
|
||||
font-size: 12px;
|
||||
font-family: Verdana, sans-serif;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
div.token-input-dropdown-facebook p {
|
||||
margin: 0;
|
||||
padding: 5px;
|
||||
font-weight: bold;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
div.token-input-dropdown-facebook ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.token-input-dropdown-facebook ul li {
|
||||
background-color: #f5f5f5;
|
||||
padding: 3px;
|
||||
margin: 0;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
div.token-input-dropdown-facebook ul li.token-input-dropdown-item-facebook {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
div.token-input-dropdown-facebook ul li.token-input-dropdown-item2-facebook {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
div.token-input-dropdown-facebook ul li em {
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
div.token-input-dropdown-facebook ul li.token-input-selected-dropdown-item-facebook {
|
||||
background-color: #08C;
|
||||
color: #f5f5f5;
|
||||
}
|
||||
|
|
@ -1,112 +0,0 @@
|
|||
/* Example tokeninput style #1: Token vertical list*/
|
||||
ul.token-input-list {
|
||||
overflow: hidden;
|
||||
height: auto !important;
|
||||
height: 1%;
|
||||
width: 300px;
|
||||
border: 1px solid #999;
|
||||
cursor: text;
|
||||
font-size: 12px;
|
||||
font-family: Verdana;
|
||||
z-index: 999;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #fff;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
ul.token-input-list li {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
ul.token-input-list li input {
|
||||
border: 0;
|
||||
width: 350px;
|
||||
padding: 3px 8px;
|
||||
background-color: white;
|
||||
-webkit-appearance: caret;
|
||||
}
|
||||
|
||||
li.token-input-token {
|
||||
overflow: hidden;
|
||||
height: auto !important;
|
||||
height: 1%;
|
||||
margin: 3px;
|
||||
padding: 3px 5px;
|
||||
background-color: #d0efa0;
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
cursor: default;
|
||||
display: block;
|
||||
}
|
||||
|
||||
li.token-input-token p {
|
||||
float: left;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
li.token-input-token span {
|
||||
float: right;
|
||||
color: #777;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
li.token-input-selected-token {
|
||||
background-color: #08844e;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
li.token-input-selected-token span {
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
div.token-input-dropdown {
|
||||
position: absolute;
|
||||
width: 400px;
|
||||
background-color: #fff;
|
||||
overflow: hidden;
|
||||
border-left: 1px solid #ccc;
|
||||
border-right: 1px solid #ccc;
|
||||
border-bottom: 1px solid #ccc;
|
||||
cursor: default;
|
||||
font-size: 12px;
|
||||
font-family: Verdana;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
div.token-input-dropdown p {
|
||||
margin: 0;
|
||||
padding: 5px;
|
||||
font-weight: bold;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
div.token-input-dropdown ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.token-input-dropdown ul li {
|
||||
background-color: #fff;
|
||||
padding: 3px;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
div.token-input-dropdown ul li.token-input-dropdown-item {
|
||||
background-color: #fafafa;
|
||||
}
|
||||
|
||||
div.token-input-dropdown ul li.token-input-dropdown-item2 {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
div.token-input-dropdown ul li em {
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
div.token-input-dropdown ul li.token-input-selected-dropdown-item {
|
||||
background-color: #d0efa0;
|
||||
}
|
||||
|
||||
|
|
@ -2,7 +2,7 @@ class MessagesController < ApplicationController
|
|||
|
||||
# Renders the "inbox" action.
|
||||
def index
|
||||
@messages = Message.public.paginate :page => params[:page], :per_page => 20, :order => 'created_at DESC'
|
||||
@messages = Message.public.page(params[:page]).per(@per_page).order('created_at DESC')
|
||||
end
|
||||
|
||||
# Creates a new message object.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
- if Message.public.count > 20
|
||||
= items_per_page
|
||||
= pagination_links_remote messages
|
||||
|
||||
- unless messages.empty?
|
||||
%table.table.table-striped
|
||||
%tbody
|
||||
|
|
|
|||
|
|
@ -1,8 +1,5 @@
|
|||
- title "Nachrichten im Überblick"
|
||||
|
||||
%p= link_to('Neue Nachricht', :action => 'new')
|
||||
|
||||
%div{:style => "text-align:right"}= will_paginate @messages
|
||||
- title "Nachrichten"
|
||||
|
||||
= link_to 'Neue Nachricht', new_message_path, class: 'btn btn-primary'
|
||||
#messages
|
||||
= render :partial => 'messages', :locals => { :messages => @messages, :subject_length => 130 }
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
- content_for :head do
|
||||
- content_for :javascript do
|
||||
:javascript
|
||||
$(function() {
|
||||
$('#message_recipient_tokens').tokenInput("#{users_path(:format => :json)}", {
|
||||
|
|
@ -6,7 +6,8 @@
|
|||
prePopulate: $('#message_recipient_tokens').data('pre'),
|
||||
hintText: 'Nach Nutzerin suchen',
|
||||
noResultText: 'Keine Nutzerin gefunden',
|
||||
searchingText: 'Suche ...'
|
||||
searchingText: 'Suche ...',
|
||||
theme: 'facebook'
|
||||
});
|
||||
|
||||
$('#message_sent_to_all').click(function() {
|
||||
|
|
@ -38,6 +39,8 @@
|
|||
= f.input :recipient_tokens, :input_html => { 'data-pre' => User.find_all_by_id(@message.recipients_ids).map { |u| u.token_attributes }.to_json }
|
||||
= f.input :group_id, :as => :select, :collection => Group.order('type DESC, name DESC').all.reject { |g| g.memberships.empty? }
|
||||
= f.input :private
|
||||
= f.input :subject
|
||||
= f.input :body
|
||||
= f.submit
|
||||
= f.input :subject, input_html: {class: 'input-xxlarge'}
|
||||
= f.input :body, input_html: {class: 'input-xxlarge'}
|
||||
.form-actions
|
||||
= f.submit
|
||||
= link_to 'oder abbrechen', :back
|
||||
|
|
@ -16,6 +16,6 @@
|
|||
%p= simple_format(h(@message.body))
|
||||
%hr/
|
||||
%p
|
||||
= link_to('Antworten', new_message_path(:message => {:reply_to => @message.id}))
|
||||
= link_to 'Antworten', new_message_path(:message => {:reply_to => @message.id}), class: 'btn'
|
||||
|
|
||||
= link_to 'Nachricht im Überblick', messages_path
|
||||
Loading…
Add table
Add a link
Reference in a new issue