rails_admin_content 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +38 -0
  3. data/Rakefile +7 -0
  4. data/app/assets/javascripts/develop/manages.js.coffee +96 -0
  5. data/app/assets/javascripts/rails_admin_content.js +22 -0
  6. data/app/assets/stylesheets/develop/manages.css.scss +38 -0
  7. data/app/assets/stylesheets/rails_admin_content.css +19 -0
  8. data/app/assets/stylesheets/site.css +479 -0
  9. data/app/controllers/application_controller.rb +3 -0
  10. data/app/controllers/rails_admin_content/develop/application_controller.rb +5 -0
  11. data/app/controllers/rails_admin_content/develop/manages_controller.rb +77 -0
  12. data/app/views/layouts/rails_admin_content/admin.html.slim +58 -0
  13. data/app/views/rails_admin_content/develop/manages/_content.html.slim +21 -0
  14. data/app/views/rails_admin_content/develop/manages/_filter.html.slim +25 -0
  15. data/app/views/rails_admin_content/develop/manages/_form.html.slim +5 -0
  16. data/app/views/rails_admin_content/develop/manages/_menv.html.slim +8 -0
  17. data/app/views/rails_admin_content/develop/manages/_navbar.html.slim +34 -0
  18. data/app/views/rails_admin_content/develop/manages/details.html.slim +18 -0
  19. data/app/views/rails_admin_content/develop/manages/edit.html.slim +16 -0
  20. data/app/views/rails_admin_content/develop/manages/edit_column.html.slim +30 -0
  21. data/app/views/rails_admin_content/develop/manages/index.html.slim +2 -0
  22. data/app/views/rails_admin_content/develop/manages/new.html.slim +10 -0
  23. data/app/views/rails_admin_content/develop/manages/query.html.slim +24 -0
  24. data/app/views/rails_admin_content/develop/manages/show.html.slim +27 -0
  25. data/config/routes.rb +12 -0
  26. data/lib/assets/codemirror/charisma-app.css +501 -0
  27. data/lib/assets/codemirror/codemirror.css +249 -0
  28. data/lib/assets/codemirror/codemirror.js +5637 -0
  29. data/lib/assets/codemirror/javascript.js +471 -0
  30. data/lib/assets/codemirror/matchbrackets.js +82 -0
  31. data/lib/assets/codemirror/midnight.css +52 -0
  32. data/lib/assets/codemirror/solarized.css +207 -0
  33. data/lib/assets/codemirror/sql.js +267 -0
  34. data/lib/assets/codemirror/twilight.css +26 -0
  35. data/lib/assets/images/add.png +0 -0
  36. data/lib/assets/images/column.png +0 -0
  37. data/lib/assets/images/content.png +0 -0
  38. data/lib/assets/images/details.png +0 -0
  39. data/lib/assets/images/file.png +0 -0
  40. data/lib/assets/images/home.png +0 -0
  41. data/lib/assets/images/search.png +0 -0
  42. data/lib/assets/images/setting.png +0 -0
  43. data/lib/assets/images/user.png +0 -0
  44. data/lib/assets/javascripts/bootstrap/bootstrap-alert.js +100 -0
  45. data/lib/assets/javascripts/jquery/dyndatetime/calendar_zh.js +128 -0
  46. data/lib/assets/javascripts/jquery/dyndatetime/dynDateTime.js +2011 -0
  47. data/lib/assets/javascripts/jquery/editable.js +31 -0
  48. data/lib/assets/javascripts/jquery/jquery.jeditable.js +543 -0
  49. data/lib/assets/stylesheets/bootstrap/bootstrap-app.css +5255 -0
  50. data/lib/assets/stylesheets/dyndatetime/calendar-system.css +251 -0
  51. data/lib/assets/stylesheets/dyndatetime/skins/aqua/active-bg.gif +0 -0
  52. data/lib/assets/stylesheets/dyndatetime/skins/aqua/dark-bg.gif +0 -0
  53. data/lib/assets/stylesheets/dyndatetime/skins/aqua/hover-bg.gif +0 -0
  54. data/lib/assets/stylesheets/dyndatetime/skins/aqua/menuarrow.gif +0 -0
  55. data/lib/assets/stylesheets/dyndatetime/skins/aqua/normal-bg.gif +0 -0
  56. data/lib/assets/stylesheets/dyndatetime/skins/aqua/rowhover-bg.gif +0 -0
  57. data/lib/assets/stylesheets/dyndatetime/skins/aqua/status-bg.gif +0 -0
  58. data/lib/assets/stylesheets/dyndatetime/skins/aqua/theme.css +236 -0
  59. data/lib/assets/stylesheets/dyndatetime/skins/aqua/title-bg.gif +0 -0
  60. data/lib/assets/stylesheets/dyndatetime/skins/aqua/today-bg.gif +0 -0
  61. data/lib/rails_admin_content/client.rb +93 -0
  62. data/lib/rails_admin_content/engine.rb +12 -0
  63. data/lib/rails_admin_content/helper.rb +65 -0
  64. data/lib/rails_admin_content/mysql/adapters/client.rb +18 -0
  65. data/lib/rails_admin_content/paginate.rb +53 -0
  66. data/lib/rails_admin_content/version.rb +3 -0
  67. data/lib/rails_admin_content.rb +5 -0
  68. metadata +180 -0
@@ -0,0 +1,3 @@
1
+ class ApplicationController < ActionController::Base
2
+ protect_from_forgery
3
+ end
@@ -0,0 +1,5 @@
1
+ class RailsAdminContent::Develop::ApplicationController < ApplicationController
2
+ layout 'rails_admin_content/admin'
3
+
4
+
5
+ end
@@ -0,0 +1,77 @@
1
+ class RailsAdminContent::Develop::ManagesController < RailsAdminContent::Develop::ApplicationController
2
+
3
+ before_filter :find_params, except: %w(update create new)
4
+
5
+ def index
6
+ @version = RailsAdminContent::Client.conn.origin_query("SELECT Version() as version").each
7
+ end
8
+
9
+
10
+ def query
11
+ @entries = RailsAdminContent::Client.query(RailsAdminContent::Client.query_str,@page, @per).each if RailsAdminContent::Client.query_str
12
+ rescue Exception => e
13
+ flash[:errors] = e.message
14
+ end
15
+
16
+ def filter
17
+ RailsAdminContent::Client.query_str = params[:q]
18
+ redirect_to action: :query
19
+ end
20
+
21
+ def show
22
+ @query_str = "SELECT * FROM #{params[:id]}"
23
+ @query_str = RailsAdminContent::Client.compose(params) if params[:field].present?
24
+ @fields = RailsAdminContent::Client.desc_table params[:id]
25
+ @entries = RailsAdminContent::Client.query(@query_str,@page, @per)
26
+ rescue Exception => e
27
+ flash[:errors] = e.message
28
+ end
29
+
30
+ def new;end
31
+
32
+ def edit; end
33
+
34
+ def edit_column
35
+ @fields = RailsAdminContent::Client.desc_table params[:id]
36
+ end
37
+
38
+ def details
39
+ @details = RailsAdminContent::Client.conn.origin_query("SHOW TABLE STATUS LIKE '#{params[:id]}'").each
40
+ end
41
+
42
+ def create
43
+ RailsAdminContent::Client.insert(params[:table_name], params[:field])
44
+ flash[:success] = "成功添加#{params[:table_name]}一条数据。"
45
+ rescue Exception => e
46
+ flash[:errors] = e.message
47
+ ensure
48
+ redirect_to develop_manage_path(params[:table_name])
49
+ end
50
+
51
+ def update
52
+ RailsAdminContent::Client.update(params[:table_name], params[:id], params[:field])
53
+ flash[:success] = "更新#{params[:id]}内容成功。"
54
+ rescue Exception => e
55
+ flash[:errors] = e.message
56
+ ensure
57
+ redirect_to develop_manage_path(params[:table_name])
58
+ end
59
+
60
+
61
+ def update_field
62
+ RailsAdminContent::Client.conn.origin_query("UPDATE #{params[:table]} SET #{params[:field]} = REPLACE(REPLACE(REPLACE('#{params[:value]}', '&','&amp;'), '>', '&gt;'), '<', '&lt;') WHERE id = #{params[:id]}")
63
+ render text: 'success'
64
+ end
65
+
66
+ def destroy
67
+ RailsAdminContent::Client.delete(params[:id], params[:edit_id]) if params[:edit_id].present?
68
+ render json: params[:edit_id]
69
+ end
70
+
71
+ private
72
+
73
+ def find_params
74
+ @page, @per = (params[:page] || 1).to_i, (params[:per] || 100).to_i
75
+ end
76
+
77
+ end
@@ -0,0 +1,58 @@
1
+ doctype html
2
+ html
3
+ head
4
+ title RailsAdminContent
5
+ meta name="key_words" content="template languagea"
6
+ = stylesheet_link_tag "rails_admin_content", media: "all"
7
+ = javascript_include_tag 'rails_admin_content'
8
+ = csrf_meta_tag
9
+ body
10
+ #wrapper
11
+ #wrapper2
12
+ #wrapper3
13
+ #header
14
+ h1
15
+ #main-menu
16
+ - if flash[:success]
17
+ .alert.alert-success
18
+ button data-dismiss="alert" class="close" type="button" x
19
+ strong
20
+ | 成功:
21
+ = flash[:success]
22
+
23
+ - if flash[:errors]
24
+ .alert.alert-error
25
+ button data-dismiss="alert" class="close" type="button" x
26
+ strong
27
+ | 错误:
28
+ = flash[:errors]
29
+
30
+ - if flash[:notice]
31
+ .alert.alert-info
32
+ button data-dismiss="alert" class="close" type="button" x
33
+ strong
34
+ | 成功:
35
+ = flash[:notice]
36
+ .container-fluid
37
+ .row-fluid
38
+ .span2
39
+ = render 'menv'
40
+ .content.span10
41
+ - if action_name =~ /query/
42
+ = render 'form'
43
+ - elsif action_name =~ /index/
44
+ - else
45
+ = render 'navbar'
46
+ - if action_name =~ /show/
47
+ = render 'filter'
48
+ .span11
49
+ = yield
50
+ - if @entries.present?
51
+ #edit_tools
52
+ span
53
+ label 当前选择<span id="select_num">0</span>条
54
+ span
55
+ = link_to 'ⓧ', "#", class: 'btn deselect', title: '取消选择'
56
+ = link_to '✘', "", class: 'btn', title: '删除', disabled: true, id: "btn_delete"
57
+ span
58
+ = @entries.present? ? custom_paginate(@entries, spage: @page, stint: @per) : '0条数据'
@@ -0,0 +1,21 @@
1
+ - if @entries.present? && @entries.first
2
+ .nav#nav
3
+ | #{@content}
4
+ .details#grid_search
5
+ table#edit_tables.table-bordered.table.table-hover
6
+ thead
7
+ tr#th-title
8
+ - @entries.first.keys.each do |entry|
9
+ th
10
+ = entry
11
+ - if @entries.present? && @entries.first
12
+ tbody
13
+ - @entries.each do |content|
14
+ tr class="tr_#{content.first[1]}"
15
+ td
16
+ label
17
+ input type="checkbox" class="edit_checkbox" value="#{content.first[1]}" name="edit_id[]"
18
+ - content.each do |key,value|
19
+ td
20
+ span class="#{edited(key,value)}" data-field="#{key}" data-table="#{RailsAdminContent::Client.table_name}" data-title="#{value}" data-url="#{develop_manage_path(content.values.first)}"
21
+ = format(value)
@@ -0,0 +1,25 @@
1
+ .span12
2
+ .search
3
+ .row
4
+ = hidden_field_tag 'current_condition', params[:calc].present? && params[:calc].keys.join(",")
5
+ = form_tag "", method: :post, class: 'form-search', method: :get
6
+
7
+ - RailsAdminContent::Client.desc_table(params[:id]).each do |column|
8
+ div class="span7 #{column["Field"]} check_edit" style="#{params[:calc].present? && params[:calc].has_key?(column["Field"]) ? '' : 'display:none;' }"
9
+ .span4
10
+ = label_tag do
11
+ = check_box_tag "check_box[#{column['Field']}]", '', true, class: 'check_box_edit', name: '', 'data-field' => column['Field']
12
+ |
13
+ = column["Field"]
14
+ .span3
15
+ = select_tag "calc[#{column['Field']}]", options_for_select(RailsAdminContent::Client.select_field(column["Type"]), params[:calc].present? ? params[:calc][column['Field']] : nil), 'data-field' => "calc[#{column['Field']}]", class: 'span6 calc'
16
+ .span3
17
+ - column["Type"] = 'varchar' if column["Type"] == 'text'
18
+ - column["Default"] = params[:field][column["Field"]] if params[:field].present?
19
+ = content_field(column)
20
+
21
+ .span8
22
+ = field_set_tag "选项" do
23
+ = select_tag 'select_field', options_for_select_column_data(params[:id]), class: 'span2', name: '', :prompt => "Select Filter"
24
+ = button_tag '应用', class: 'btn'
25
+ = link_to '清除', '#', class: 'btn clear'
@@ -0,0 +1,5 @@
1
+ = form_tag filter_develop_manages_path, method: :post
2
+ #search_area
3
+ textarea rows="2" cols="140" id="search-textarea" style="height:100px" name="q" #{RailsAdminContent::Client.query_str||""}
4
+ .nav
5
+ input type="submit" value="Run" calss="btn btn-primary"
@@ -0,0 +1,8 @@
1
+ .main-menu-span style="padding:8px;margin-left:0px"
2
+ .well.nav-collapse.sidebar-nav
3
+ ul.nav.nav-tabs.nav-stacked.main-menu
4
+ li.nav-header.hidden-tablet style="font-size:12px"
5
+ | Database #{RailsAdminContent::Client.conn.query_options[:database]}
6
+ - RailsAdminContent::Client.get_tables.each do |table|
7
+ li class="#{'active' if params[:id] == table.values.first}"
8
+ = link_to table.values.first, develop_manage_path(table.values.first), title: "[#{table.keys.first}] #{table.values.first}"
@@ -0,0 +1,34 @@
1
+ .span10
2
+ .navbar
3
+ ul
4
+ li
5
+ = link_to develop_manages_path, class: 'btn-icon', title: 'Home' do
6
+ dt = image_tag("home.png")
7
+ dd Home
8
+
9
+ li
10
+ = link_to new_develop_manage_path(id: RailsAdminContent::Client.table_name), class: 'btn-icon', title: 'add' do
11
+ dt = image_tag("add.png")
12
+ dd Add
13
+
14
+ li
15
+ = link_to develop_manage_path(RailsAdminContent::Client.table_name), class: 'btn-icon', title: 'Content' do
16
+ dt = image_tag("content.png")
17
+ dd Content
18
+
19
+ li
20
+ = link_to edit_column_develop_manage_path(RailsAdminContent::Client.table_name), class: 'btn-icon', title: 'Structure' do
21
+ dt = image_tag("setting.png")
22
+ dd Structure
23
+
24
+ li
25
+ = link_to details_develop_manage_path(RailsAdminContent::Client.table_name), class: 'btn-icon', title: 'Table info' do
26
+ dt = image_tag("details.png")
27
+ dd Table info
28
+
29
+ li
30
+ = link_to query_develop_manages_path, class: 'btn-icon', title: 'Query' do
31
+ dt = image_tag("search.png")
32
+ dd Query
33
+
34
+ div style="clear:both"
@@ -0,0 +1,18 @@
1
+
2
+ - if @details.present?
3
+ .span10
4
+ .details#grid_search
5
+ table#edit_tables.table-bordered.table.table-hover
6
+ thead
7
+ tr#th-title
8
+ th key
9
+ th value
10
+
11
+ tbody
12
+ - @details.first.each do |key, value|
13
+ tr
14
+ td width="200"
15
+ strong
16
+ = key
17
+ td
18
+ = value
@@ -0,0 +1,16 @@
1
+ .span8
2
+ = form_tag(develop_manage_path(params[:id]), method: :put)
3
+ = field_set_tag "Table[#{params[:table_name]}]" do
4
+ = hidden_field_tag 'table_name', params[:table_name]
5
+ - columns = RailsAdminContent::Client.conn.origin_query("DESC #{params[:table_name]}").each
6
+ - RailsAdminContent::Client.conn.origin_query("SELECT * FROM #{params[:table_name]} WHERE id = #{params[:id]}").each[0].map do |key,value|
7
+ - if key == "id"
8
+ = hidden_field_tag :id, value
9
+ - else
10
+ = label_tag "field[#{key}]", key
11
+ = content_field(columns.select{|c| c["Field"] == key }.first ,value)
12
+ .controllers
13
+ .span2
14
+ = submit_tag 'Save', class: 'btn btn-primary'
15
+ .span2
16
+ = link_to 'Back', :back, class: 'btn'
@@ -0,0 +1,30 @@
1
+
2
+ .span10
3
+ table#edit_tables.table-bordered.table.table-hover
4
+ thead
5
+ tr#th-title
6
+ th index
7
+ th Field
8
+ th Type
9
+ th Null
10
+ th Key
11
+ th Default
12
+ th Extra
13
+ - if @fields.present?
14
+ tbody
15
+ - @fields.each_with_index do |field,index|
16
+ tr
17
+ td
18
+ = index + 1
19
+ td
20
+ = field["Field"]
21
+ td
22
+ = field["Type"]
23
+ td
24
+ = field["Null"]
25
+ td
26
+ = field["key"]
27
+ td
28
+ = field["Default"]
29
+ td
30
+ = field["extra"]
@@ -0,0 +1,2 @@
1
+ .span3
2
+ = "Version: #{@version[0]['version']}"
@@ -0,0 +1,10 @@
1
+ .span8
2
+ = form_tag develop_manages_path
3
+ = field_set_tag "Table[#{params[:id]}]" do
4
+ = hidden_field_tag 'table_name', params[:id]
5
+ - RailsAdminContent::Client.conn.origin_query("DESC #{params[:id]}").each.map do |column|
6
+ - next if column["Field"] == "id"
7
+ = label_tag "field[#{column["Field"]}]", column["Field"]
8
+ = content_field column
9
+ .controllers
10
+ = submit_tag 'Save', class: 'btn btn-primary'
@@ -0,0 +1,24 @@
1
+ - if @entries.present? && @entries.first
2
+ .nav#nav
3
+ | #{@content}
4
+ .details#grid_search
5
+ form action="#{develop_manage_path(RailsAdminContent::Client.table_name)}" method="delete" id="details_form" remote="true"
6
+ input type="hidden" value="#{RailsAdminContent::Client.table_name}" name="table_name"
7
+ table#edit_tables.table-bordered.table.table-hover
8
+ thead
9
+ tr#th-title
10
+ th Index
11
+ - @entries.first.keys.each do |entry|
12
+ th
13
+ = entry
14
+ - if @entries.present? && @entries.first
15
+ tbody
16
+ - @entries.each do |content|
17
+ tr class="tr_#{content.first[1]}"
18
+ td
19
+ label
20
+ input type="checkbox" class="edit_checkbox" value="#{content.first[1]}" name="edit_id[]"
21
+ - content.each do |key,value|
22
+ td
23
+ span class="#{edited(key,value)}" data-field="#{key}" data-table="#{RailsAdminContent::Client.table_name}" data-title="#{value}" data-url="#{develop_manage_path(content.values.first)}"
24
+ = format(value)
@@ -0,0 +1,27 @@
1
+
2
+ .nav#nav
3
+ | #{@content}
4
+ .details#grid_search
5
+ form action="#{develop_manage_path(params[:id])}" method="delete" id="details_form" remote="true"
6
+ input type="hidden" value="#{RailsAdminContent::Client.table_name}" name="table_name"
7
+ table#edit_tables.table-bordered.table.table-hover
8
+ thead
9
+ tr#th-title
10
+ th Index
11
+ - @fields.map do |element|
12
+ th
13
+ = element["Field"]
14
+ - if @entries.present? && @entries.first
15
+ tbody
16
+ - @entries.each do |content|
17
+ tr class="tr_#{content.first[1]}"
18
+ td
19
+ label
20
+ input type="checkbox" class="edit_checkbox" value="#{content.first[1]}" name="edit_id[]"
21
+ - content.each do |key,value|
22
+ td
23
+ span class="#{edited(key,value)}" data-field="#{key}" data-table="#{RailsAdminContent::Client.table_name}" data-title="#{value}" data-url="#{update_field_develop_manage_path(content.values.first)}"
24
+ - if key == "id"
25
+ = link_to value, edit_develop_manage_path(value,table_name: RailsAdminContent::Client.table_name), title: 'edit'
26
+ - else
27
+ = format(value)
data/config/routes.rb ADDED
@@ -0,0 +1,12 @@
1
+ RailsAdminContent::Engine.routes.draw do
2
+ match '/', to: "develop/manages#index"
3
+ namespace :develop do
4
+ resources :manages do
5
+ post :filter, on: :collection
6
+ get :query, on: :collection
7
+ put :update_field, on: :member
8
+ get :edit_column, on: :member
9
+ get :details, on: :member
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,501 @@
1
+ @import url(https://fonts.googleapis.com/css?family=Shojumaru);
2
+
3
+ select{
4
+ background-color:#fff;
5
+ }
6
+
7
+ .top-block{
8
+ font-size:14px;
9
+ text-align: center;
10
+ padding: 5px;
11
+ margin-bottom:10px;
12
+ font-weight:bold;
13
+ position: relative;
14
+ display: block;
15
+ line-height: 22px;
16
+ text-shadow: 0 0 1px #DDD;
17
+ text-decoration:none;
18
+ -webkit-box-shadow: inset 0 0 0 1px #FAFAFA;
19
+ -moz-box-shadow: inset 0 0 0 1px #FAFAFA;
20
+ box-shadow: inset 0 0 0 1px #FAFAFA;
21
+ background: -moz-linear-gradient(top, rgba(30,87,153,0.2) 0%, rgba(125,185,232,0) 100%);
22
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(30,87,153,0.2)), color-stop(100%,rgba(125,185,232,0)));
23
+ background: -webkit-linear-gradient(top, rgba(30,87,153,0.2) 0%,rgba(125,185,232,0) 100%);
24
+ background: -o-linear-gradient(top, rgba(30,87,153,0.2) 0%,rgba(125,185,232,0) 100%);
25
+ background: -ms-linear-gradient(top, rgba(30,87,153,0.2) 0%,rgba(125,185,232,0) 100%);
26
+ background: linear-gradient(to bottom, rgba(30,87,153,0.2) 0%,rgba(125,185,232,0) 100%);
27
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#331e5799', endColorstr='#007db9e8',GradientType=0 );
28
+ }
29
+
30
+ .top-block span{
31
+ clear:both;
32
+ }
33
+
34
+
35
+ .top-block:hover{
36
+ text-decoration:none;
37
+ }
38
+
39
+ .notification {
40
+ display: block;
41
+ position: absolute;
42
+ top: -10px;
43
+ right: -5px;
44
+ line-height: 16px;
45
+ height: 16px;
46
+ padding: 0 5px;
47
+ font-family: Arial, sans-serif;
48
+ color: white !important;
49
+ text-shadow: 0 1px
50
+ hsla(0, 0%, 0%, 0.25);
51
+ border-width: 1px;
52
+ border-style: solid;
53
+ border-radius: 10px;
54
+ -webkit-border-radius: 10px;
55
+ -moz-border-radius: 10px;
56
+ -webkit-box-shadow: 0 1px 1px
57
+ hsla(0, 0%, 0%, 0.08), inset 0 1px
58
+ hsla(0, 100%, 100%, 0.3);
59
+ -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.08), inset 0 1px rgba(255, 255, 255, 0.3);
60
+ box-shadow: 0 1px 1px
61
+ hsla(0, 0%, 0%, 0.08), inset 0 1px
62
+ hsla(0, 100%, 100%, 0.3);
63
+ }
64
+
65
+ .notification {
66
+ border-color: #2FABE9;
67
+ background-color: #67C2EF;
68
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, hsl(200, 80%, 82%)), color-stop(100%, hsl(200, 81%, 67%)));
69
+ background-image: -webkit-linear-gradient(top, hsl(200, 80%, 82%), hsl(200, 81%, 67%));
70
+ background-image: -moz-linear-gradient(top, hsl(200, 80%, 82%), hsl(200, 81%, 67%));
71
+ background-image: -ms-linear-gradient(top, hsl(200, 80%, 82%), hsl(200, 81%, 67%));
72
+ background-image: -o-linear-gradient(top, hsl(200, 80%, 82%), hsl(200, 81%, 67%));
73
+ background-image: linear-gradient(top, hsl(200, 80%, 82%), hsl(200, 81%, 67%));
74
+ }
75
+
76
+ .notification.green {
77
+ border-color: #5AAD34;
78
+ background-color: #78CD51;
79
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, hsl(101, 54%, 71%)), color-stop(100%, hsl(101, 55%, 56%)));
80
+ background-image: -webkit-linear-gradient(top, hsl(101, 54%, 71%), hsl(101, 55%, 56%));
81
+ background-image: -moz-linear-gradient(top, hsl(101, 54%, 71%), hsl(101, 55%, 56%));
82
+ background-image: -ms-linear-gradient(top, hsl(101, 54%, 71%), hsl(101, 55%, 56%));
83
+ background-image: -o-linear-gradient(top, hsl(101, 54%, 71%), hsl(101, 55%, 56%));
84
+ background-image: linear-gradient(top, hsl(101, 54%, 71%), hsl(101, 55%, 56%));
85
+ }
86
+
87
+ .notification.yellow {
88
+ border-color: #F4A506;
89
+ background-color: #FABB3D;
90
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, hsl(40, 95%, 76%)), color-stop(100%, hsl(40, 95%, 61%)));
91
+ background-image: -webkit-linear-gradient(top, hsl(40, 95%, 76%), hsl(40, 95%, 61%));
92
+ background-image: -moz-linear-gradient(top, hsl(40, 95%, 76%), hsl(40, 95%, 61%));
93
+ background-image: -ms-linear-gradient(top, hsl(40, 95%, 76%), hsl(40, 95%, 61%));
94
+ background-image: -o-linear-gradient(top, hsl(40, 95%, 76%), hsl(40, 95%, 61%));
95
+ background-image: linear-gradient(top, hsl(40, 95%, 76%), hsl(40, 95%, 61%));
96
+ }
97
+
98
+ .notification.red {
99
+ border-color: #FA5833;
100
+ background-color: #FA603D;
101
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, hsl(11, 95%, 76%)), color-stop(100%, hsl(11, 95%, 61%)));
102
+ background-image: -webkit-linear-gradient(top, hsl(11, 95%, 76%), hsl(11, 95%, 61%));
103
+ background-image: -moz-linear-gradient(top, hsl(11, 95%, 76%), hsl(11, 95%, 61%));
104
+ background-image: -ms-linear-gradient(top, hsl(11, 95%, 76%), hsl(11, 95%, 61%));
105
+ background-image: -o-linear-gradient(top, hsl(11, 95%, 76%), hsl(11, 95%, 61%));
106
+ background-image: linear-gradient(top, hsl(11, 95%, 76%), hsl(11, 95%, 61%));
107
+ }
108
+
109
+ #external-events {
110
+ float: left;
111
+ width: 15%;
112
+ padding: 10px;
113
+ text-align: left;
114
+ }
115
+ .external-event{
116
+ margin: 5px;
117
+ cursor:move;
118
+ }
119
+ #calendar {
120
+ float: right;
121
+ width: 80%;
122
+ }
123
+
124
+
125
+
126
+ .box{
127
+ border: 1px solid #DEDEDE;
128
+ border-radius:3px;
129
+ -webkit-border-radius:3px;
130
+ -moz-border-radius:3px;
131
+ margin-top: 10px;
132
+ margin-bottom: 10px ;
133
+ box-shadow: 0 0 10px rgba(189, 189, 189, 0.4);
134
+ -webkit-box-shadow: 0 0 10px rgba(189, 189, 189, 0.4);
135
+ -moz-box-shadow: 0 0 10px rgba(189, 189, 189, 0.4);
136
+ }
137
+
138
+ .box-header{
139
+ border:none;
140
+ padding-top:5px;
141
+ border-bottom: 1px solid #DEDEDE;
142
+ border-radius:3px 3px 0 0;
143
+ -webkit-border-radius:3px 3px 0 0;
144
+ -moz-border-radius:3px 3px 0 0;
145
+ height:12px;
146
+ min-height:12px;
147
+ margin-bottom: 0;
148
+ cursor:move;
149
+ font-weight:bold;
150
+ font-size:16px;
151
+ background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(0,0,0,0.1) 100%);
152
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0)), color-stop(100%,rgba(0,0,0,0.1)));
153
+ background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(0,0,0,0.1) 100%);
154
+ background: -o-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(0,0,0,0.1) 100%);
155
+ background: -ms-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(0,0,0,0.1) 100%);
156
+ background: linear-gradient(to bottom, rgba(255,255,255,0) 0%,rgba(0,0,0,0.1) 100%);
157
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#1a000000',GradientType=0 );
158
+
159
+ }
160
+
161
+ .box-header h2{
162
+ font-size:15px;
163
+ width:auto;
164
+ clear:none;
165
+ float:left;
166
+ line-height:25px;
167
+ }
168
+ .box-header h3{
169
+ font-size:13px;
170
+ width:auto;
171
+ clear:none;
172
+ float:left;
173
+ line-height:25px;
174
+ }
175
+ .box-header h2 > i{
176
+ margin-top:1px;
177
+ }
178
+ .box-icon{
179
+ float:right;
180
+ }
181
+ .box-icon a{
182
+ clear:none;
183
+ float:left;
184
+ margin:0 2px;
185
+ height: 18px;
186
+ width:5px;
187
+ margin-top: -1px;
188
+ }
189
+ .box-icon a i{
190
+ margin-left:-4.5px;
191
+ }
192
+ .box-content{
193
+ padding:10px;
194
+ }
195
+
196
+
197
+ .btn-round{
198
+ border-radius: 40px;
199
+ -webkit-border-radius: 40px;
200
+ -moz-border-radius: 40px;
201
+ font-size:12px;
202
+ padding-top:4px;
203
+ }
204
+
205
+ ul.dashboard-list li{
206
+ padding: 7px 0;
207
+ list-style:none;
208
+ border-bottom: 1px solid #EBEBEB;
209
+ border-top: 1px solid white;
210
+ }
211
+
212
+ ul.dashboard-list a:hover{
213
+ text-decoration:none;
214
+ }
215
+
216
+ ul.dashboard-list{
217
+ margin:0;
218
+ }
219
+
220
+ ul.dashboard-list li a span {
221
+ display: inline-block;
222
+ font-size: 18px;
223
+ font-weight: bold;
224
+ margin-right: 10px;
225
+ text-align: right;
226
+ width: 70px;
227
+ zoom: 1;
228
+ }
229
+
230
+ .dashboard-avatar{
231
+ height: 50px;
232
+ width: 50px;
233
+ padding: 1px;
234
+ float: left;
235
+ margin-left: 15px;
236
+ margin-right: 15px;
237
+ border: 1px solid #EBEBEB;
238
+ }
239
+
240
+ #prependedInput,#appendedPrependedInput,#appendedInputButtons,#appendedInputButton{
241
+ width:200px;
242
+ }
243
+ #appendedInput{
244
+ width:75px;
245
+ }
246
+ .thumbnail{
247
+ background-color:white;
248
+ z-index:2;
249
+ position:relative;
250
+ margin-bottom:40px !important;
251
+ }
252
+ .thumbnails > li{
253
+ margin-left:15px;
254
+ }
255
+ .thumbnail img,.thumbnail > a{
256
+ z-index:2;
257
+ height:100px;
258
+ width:100px;
259
+ position:relative;
260
+ display: block;
261
+ }
262
+
263
+ img.grayscale{
264
+ -webkit-filter: grayscale(1);
265
+ -webkit-filter: grayscale(100%);
266
+ -moz-filter: grayscale(100%);
267
+ -ms-filter: grayscale(100%);
268
+ -o-filter: grayscale(100%);
269
+ /*filter: url(desaturate.svg#grayscale);
270
+ filter: gray;
271
+ filter: grayscale(100%); */
272
+ }
273
+
274
+ .thumbnail .gallery-controls{
275
+ position:absolute;
276
+ z-index:1;
277
+ margin-top:-30px;
278
+ height:22px;
279
+ min-height:22px;
280
+ width:80px;
281
+ padding:9px;
282
+ }
283
+ .thumbnail .gallery-controls p{
284
+ display:block;
285
+ margin:auto;
286
+ width:100%;
287
+ }
288
+ label div.checker,label div.radio{
289
+ margin-bottom:3px;
290
+ }
291
+ div.uploader{
292
+ border-radius:14px;
293
+ -webkit-border-radius:14px;
294
+ -moz-border-radius:14px;
295
+ }
296
+ footer{
297
+ clear:both;
298
+ }
299
+ footer .pull-right{
300
+ float:right;
301
+ margin-right:10px;
302
+ }
303
+ footer .pull-left{
304
+ float:left;
305
+ margin-left:10px;
306
+ }
307
+ .docs-input-sizes select, .docs-input-sizes input[type="text"] {
308
+ display: block;
309
+ margin-bottom: 9px;
310
+ }
311
+
312
+ div.center,p.center,img.center{
313
+ margin-left: auto !important;
314
+ margin-right: auto !important;
315
+ float:none !important;
316
+ display: block;
317
+ text-align:center;
318
+ }
319
+
320
+ .stackControls{
321
+ padding:5px;
322
+ }
323
+
324
+ .clear{
325
+ clear:both;
326
+ width:0px;
327
+ height:0px;
328
+ }
329
+
330
+ .sidebar-nav{
331
+ min-height:0;
332
+ box-shadow: 0 0 10px #BDBDBD;
333
+ -webkit-box-shadow: 0 0 10px #BDBDBD;
334
+ -moz-box-shadow: 0 0 10px #BDBDBD;
335
+ border-radius: 5px;
336
+ -webkit-border-radius: 5px;
337
+ -moz-border-radius: 5px;
338
+ margin-bottom: 0;
339
+ padding-bottom:0;
340
+ }
341
+ .sidebar-nav > ul > li:not(.nav-header){
342
+ margin-right:-2px;
343
+ margin-left:-2px;
344
+ }
345
+ .brand{
346
+ font-family: 'Shojumaru', cursive, Arial, serif;
347
+ letter-spacing:2px;
348
+ text-shadow:1px 1px 5px rgba(0, 0, 0, 0.5);
349
+ width:166px;
350
+ }
351
+ .brand img{
352
+ float:left;
353
+ height:20px;
354
+ width:20px;
355
+ margin-right:5px;
356
+ }
357
+ .brand span{
358
+ float:left;
359
+ }
360
+ @media (max-width: 979px){
361
+ .sidebar-nav{
362
+ padding:0;
363
+ margin-bottom:0;
364
+ }
365
+ .theme-text{
366
+ display:none;
367
+ }
368
+ }
369
+ @media (min-width: 768px) and (max-width: 979px) {
370
+ .box-icon{
371
+ display:none;
372
+ }
373
+ .box-header h2{
374
+ font-size:13px !important;
375
+ }
376
+ .box-header h3{
377
+ font-size:11px !important;
378
+ }
379
+ .main-menu-span{
380
+ width:6.2% !important;
381
+ margin-right:4%;
382
+ }
383
+ }
384
+
385
+ .navbar-search{
386
+ margin-left:10px;
387
+ }
388
+ .navbar-inner{
389
+ border-radius:0 0 10px 10px;
390
+ -webkit-border-radius:0 0 10px 10px;
391
+ -moz-border-radius:0 0 10px 10px;
392
+ padding-top:5px;
393
+ padding-bottom:5px;
394
+ }
395
+ div.dataTables_length select {
396
+ width: 50px;
397
+ }
398
+ .dataTables_filter input, .dataTables_length select {
399
+ display: inline-block;
400
+ margin-bottom: 0;
401
+ }
402
+ ul.ajax-loaders li{
403
+ display:inline-block;
404
+ list-style:none;
405
+ padding:10px;
406
+ }
407
+ ul.ajax-loaders{
408
+ min-height:80px;
409
+ }
410
+ .bs-icons li{
411
+ list-style:none;
412
+ }
413
+ #for-is-ajax{
414
+ padding-left: 12px;
415
+ cursor:pointer;
416
+ }
417
+ #loading{
418
+ margin-top: 20px;
419
+ width:128px;
420
+ font-weight: bold;
421
+ }
422
+ #loading div.center{
423
+ margin-top:10px;
424
+ height:15px;
425
+ width:128px;
426
+ background:url(../img/ajax-loaders/ajax-loader-6.gif);
427
+ }
428
+
429
+ .box-content .nav-tabs{
430
+ margin-right:-10px;
431
+ margin-left:-10px;
432
+ }
433
+ #inputIcon{
434
+ width:200px;
435
+ }
436
+ .show-grid [class*="span"] {
437
+ background-color: #EDEDED;
438
+ text-align: center;
439
+ -webkit-border-radius: 3px;
440
+ -moz-border-radius: 3px;
441
+ border-radius: 3px;
442
+ min-height: 30px;
443
+ line-height: 30px;
444
+ }
445
+ .show-grid {
446
+ margin-top: 10px;
447
+ margin-bottom: 20px;
448
+ color:black;
449
+ }
450
+ .show-grid:hover [class*="span"] {
451
+ background: #DEDEDE;
452
+ }
453
+ .login-header{
454
+ padding-top:30px;
455
+ height:120px;
456
+ }
457
+ .pull-left{
458
+ float:left !important;
459
+ }
460
+ .pull-right{
461
+ float:right !important;
462
+ }
463
+ .remember{
464
+ margin-top:3px;
465
+ }
466
+ .green {
467
+ color: #458746;
468
+ }
469
+ .red {
470
+ color: #B94846;
471
+ }
472
+ .blue {
473
+ color: #3986AC;
474
+ }
475
+ .yellow {
476
+ color: #F99406;
477
+ }
478
+ .login-box{
479
+
480
+ }
481
+ .login-box .input-prepend{
482
+ margin-bottom: 10px;
483
+ }
484
+ .login-box .btn{
485
+ margin-top:15px;
486
+ width:100%
487
+ }
488
+ .charisma_qr{
489
+ height:136px;
490
+ width:136px;
491
+ border:solid grey 1px;
492
+ border-radius:2px;
493
+ -webkit-border-radius:2px;
494
+ -moz-border-radius:2px;
495
+ box-shadow: 0 0 10px #BDBDBD;
496
+ -webkit-box-shadow: 0 0 10px #BDBDBD;
497
+ -moz-box-shadow: 0 0 10px #BDBDBD;
498
+ }
499
+ .box-content.buttons{
500
+ min-height:297px;
501
+ }