poodle-rb 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +34 -0
- data/app/assets/fonts/FontAwesome.otf +0 -0
- data/app/assets/fonts/fontawesome-webfont.eot +0 -0
- data/app/assets/fonts/fontawesome-webfont.svg +520 -0
- data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
- data/app/assets/fonts/fontawesome-webfont.woff +0 -0
- data/app/assets/javascripts/poodle/application.js +21 -0
- data/app/assets/javascripts/poodle/bootstrap.js +2323 -0
- data/app/assets/javascripts/poodle/common.js +0 -0
- data/app/assets/javascripts/poodle/photo_upload.js +104 -0
- data/app/assets/javascripts/poodle/utilities.js +50 -0
- data/app/assets/javascripts/poodle/validations/sample.js +67 -0
- data/app/assets/stylesheets/poodle/application.css +18 -0
- data/app/assets/stylesheets/poodle/bootstrap-theme.css +473 -0
- data/app/assets/stylesheets/poodle/bootstrap.css +5482 -0
- data/app/assets/stylesheets/poodle/font-awesome.css +1672 -0
- data/app/assets/stylesheets/poodle/poodle-theme.css +55 -0
- data/app/controllers/poodle/application_controller.rb +15 -0
- data/app/helpers/poodle/application_helper.rb +4 -0
- data/app/helpers/poodle/display_helper.rb +36 -0
- data/app/helpers/poodle/flash_helper.rb +14 -0
- data/app/helpers/poodle/image_helper.rb +100 -0
- data/app/helpers/poodle/meta_tags_helper.rb +4 -0
- data/app/helpers/poodle/navigation_helper.rb +20 -0
- data/app/helpers/poodle/notification_helper.rb +20 -0
- data/app/helpers/poodle/params_parser_helper.rb +32 -0
- data/app/helpers/poodle/title_helper.rb +16 -0
- data/app/helpers/poodle/url_helper.rb +21 -0
- data/app/views/layouts/poodle/application/_footer.html.erb +5 -0
- data/app/views/layouts/poodle/application/_header.html.erb +26 -0
- data/app/views/layouts/poodle/application/_sidebar.html.erb +45 -0
- data/app/views/layouts/poodle/application.html.erb +56 -0
- data/app/views/layouts/poodle/common/_field.html.erb +46 -0
- data/app/views/layouts/poodle/common/_flash_message.html.erb +23 -0
- data/app/views/layouts/poodle/common/_meta_tags.html.erb +42 -0
- data/app/views/layouts/poodle/common/_overlays.html.erb +28 -0
- data/app/views/layouts/poodle/public.html.erb +48 -0
- data/app/views/widgets/_more_details.html.erb +89 -0
- data/config/initializers/api_errors.rb +32 -0
- data/config/routes.rb +2 -0
- data/lib/poodle/configuration.rb +14 -0
- data/lib/poodle/engine.rb +5 -0
- data/lib/poodle/version.rb +3 -0
- data/lib/poodle-rb.rb +20 -0
- data/lib/tasks/poodle_tasks.rake +4 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/config/application.rb +23 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +78 -0
- data/test/dummy/config/environments/test.rb +39 -0
- data/test/dummy/config/initializers/assets.rb +8 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +4 -0
- data/test/dummy/config/secrets.yml +22 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/poodle_test.rb +7 -0
- data/test/test_helper.rb +19 -0
- metadata +226 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/* Styles for footer */
|
|
2
|
+
.footer {margin:100px 0px 0px 0px;color: #4b4b4b;height:50px;text-align:center;}
|
|
3
|
+
|
|
4
|
+
/* Styles for Sidebar and Main Content */
|
|
5
|
+
|
|
6
|
+
.sidebar li {margin:18px 0px;padding-left:25px;list-style: none;}
|
|
7
|
+
.sidebar li.heading {color: #D0D0D0;margin: 25px 0px;padding-left:5px;}
|
|
8
|
+
.sidebar li.active {background-color: #eeeeee;padding: 10px;}
|
|
9
|
+
.sidebar li.active a {color: #cd2177;}
|
|
10
|
+
.sidebar li a {color: #fff; margin:5px 0px;}
|
|
11
|
+
.sidebar li a:hover {color: #f0f0f0;text-decoration: none;}
|
|
12
|
+
|
|
13
|
+
@media (min-width: 500px) {
|
|
14
|
+
.container-fluid.with_sidebar {padding-left:0px;}
|
|
15
|
+
.main-content {float: left;width:70%;margin-left:15px;}
|
|
16
|
+
.sidebar{display:block;float: left;background-color:#15894F;color:#fff;padding:10px;height:200vh;position: relative; width:25%;}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@media (max-width: 700px) {
|
|
20
|
+
.sidebar ul {padding:0px; margin:0px;}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@media (max-width: 500px) {
|
|
24
|
+
.main-content {float: none;width:100%;margin-left:0px;}
|
|
25
|
+
.sidebar{display:none}
|
|
26
|
+
.btn-text{display: none}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.panel-420 {
|
|
30
|
+
top: 50%;
|
|
31
|
+
left: 50%;
|
|
32
|
+
display: block;
|
|
33
|
+
margin-top: -185px;
|
|
34
|
+
margin-left: -205px;
|
|
35
|
+
width: 420px;
|
|
36
|
+
height: auto;
|
|
37
|
+
position: absolute;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.panel-bordered {
|
|
41
|
+
-webkit-border-radius: 15px;
|
|
42
|
+
-moz-border-radius: 15px;
|
|
43
|
+
-ms-border-radius: 15px;
|
|
44
|
+
-o-border-radius: 15px;
|
|
45
|
+
border-radius: 15px;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.rounded {
|
|
49
|
+
overflow: hidden;
|
|
50
|
+
-webkit-border-radius: 50%;
|
|
51
|
+
-moz-border-radius: 50%;
|
|
52
|
+
border-radius: 50%;
|
|
53
|
+
border: 1px solid #d1d1d1;
|
|
54
|
+
display: inline-block;
|
|
55
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
class Poodle::ApplicationController < ActionController::Base
|
|
2
|
+
|
|
3
|
+
## This filter method is used to fetch current user
|
|
4
|
+
before_filter :current_user
|
|
5
|
+
|
|
6
|
+
include Poodle::ParamsParserHelper
|
|
7
|
+
include Poodle::FlashHelper
|
|
8
|
+
include Poodle::UrlHelper
|
|
9
|
+
include Poodle::TitleHelper
|
|
10
|
+
include Poodle::ImageHelper
|
|
11
|
+
include Poodle::NavigationHelper
|
|
12
|
+
include Poodle::SessionsHelper
|
|
13
|
+
include Poodle::NotificationHelper
|
|
14
|
+
|
|
15
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module Poodle
|
|
2
|
+
module DisplayHelper
|
|
3
|
+
|
|
4
|
+
def scrap_word(text, char_count_limit, more_text = nil, more_link = nil,style='')
|
|
5
|
+
# remove HTML tags
|
|
6
|
+
text = text.to_s.gsub(/<\/?[^>]*>/, " ")
|
|
7
|
+
# remove additional spaces
|
|
8
|
+
text = text.to_s.gsub(/[ ]+/, " ")
|
|
9
|
+
if text.length < char_count_limit
|
|
10
|
+
return text
|
|
11
|
+
end
|
|
12
|
+
teaser = ""
|
|
13
|
+
words = text.split(/ /)
|
|
14
|
+
words.each do |word|
|
|
15
|
+
if word.length > 0
|
|
16
|
+
if (teaser + word).length > char_count_limit
|
|
17
|
+
if more_text && more_link
|
|
18
|
+
teaser = teaser + " " + link_to(more_text, more_link,:style=>style, :target=>"_blank")
|
|
19
|
+
else
|
|
20
|
+
teaser = teaser.strip + "..."
|
|
21
|
+
end
|
|
22
|
+
break;
|
|
23
|
+
else
|
|
24
|
+
teaser = teaser + word + " "
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
return teaser
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def display_time(disp_time, class_name = nil)
|
|
32
|
+
return distance_of_time_in_words_to_now(disp_time) + " ago"
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module Poodle
|
|
2
|
+
module FlashHelper
|
|
3
|
+
|
|
4
|
+
## This function will set a flash message depending up on the request type (ajax - xml http or direct http)
|
|
5
|
+
## example : store_flash_message("The message has been sent successfully", :success)
|
|
6
|
+
def store_flash_message(message, type)
|
|
7
|
+
if request.xhr?
|
|
8
|
+
flash.now[type] = message
|
|
9
|
+
else
|
|
10
|
+
flash[type] = message
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
module Poodle
|
|
2
|
+
module ImageHelper
|
|
3
|
+
|
|
4
|
+
DEFAULT_PLACE_HOLDER_HEIGHT = 60
|
|
5
|
+
DEFAULT_PLACE_HOLDER_WIDTH = 100
|
|
6
|
+
DEFAULT_PLACE_HOLDER_TEXT = "<No Image>"
|
|
7
|
+
|
|
8
|
+
# This method only works with carrier wave way of doing.
|
|
9
|
+
# eg: user.profile_picture.image.large.url
|
|
10
|
+
# Usage:
|
|
11
|
+
# image_url(user, "profile_picture.image.large.url")
|
|
12
|
+
# image_url(user, "profile_picture.image.large.url")
|
|
13
|
+
# image_url(user, "profile_picture.image.large.url", {width: 40, height: 10})
|
|
14
|
+
# Where as the hash contains width and height for the place holder incase if the object doesn't has the image object
|
|
15
|
+
def image_url(object, eval_url, place_holder={})
|
|
16
|
+
begin
|
|
17
|
+
url = object.send :eval, eval_url
|
|
18
|
+
raise if url.blank?
|
|
19
|
+
rescue
|
|
20
|
+
url = place_holder[:url] ? place_holder[:url] : "http://placehold.it/#{place_holder[:width]}x#{place_holder[:height]}&text=#{place_holder[:text]}"
|
|
21
|
+
end
|
|
22
|
+
return url
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# This method will render the image with required width and height.
|
|
26
|
+
# The image url will be set to the placeholder url if the object doesn't respond to the image method
|
|
27
|
+
# Usage:
|
|
28
|
+
# display_image(client, "logo.image.url")
|
|
29
|
+
# display_image(client, "logo.image.url",
|
|
30
|
+
# width: "100%", height:"100%")
|
|
31
|
+
# display_image(client, "logo.image.url",
|
|
32
|
+
# width: "100%", height:"100%",
|
|
33
|
+
# place_holder: {width: 100, height: 50, text: "<No Image>"})
|
|
34
|
+
def display_image(object, eval_url, hsh={})
|
|
35
|
+
hsh[:width] = "100%" unless hsh[:width]
|
|
36
|
+
hsh[:height] = "auto" unless hsh[:height]
|
|
37
|
+
|
|
38
|
+
ph = hsh.has_key?(:place_holder) ? hsh[:place_holder] : {}
|
|
39
|
+
ph[:width] = ph.has_key?(:width) ? ph[:width] : DEFAULT_PLACE_HOLDER_WIDTH
|
|
40
|
+
ph[:height] = ph.has_key?(:height) ? ph[:height] : DEFAULT_PLACE_HOLDER_HEIGHT
|
|
41
|
+
ph[:text] = ph.has_key?(:text) ? ph[:text] : DEFAULT_PLACE_HOLDER_TEXT
|
|
42
|
+
hsh[:place_holder] = ph
|
|
43
|
+
|
|
44
|
+
hsh[:style] = "" unless hsh[:style]
|
|
45
|
+
hsh[:class] = "" unless hsh[:class]
|
|
46
|
+
img_url = image_url(object, eval_url, ph)
|
|
47
|
+
return image_tag img_url, class: hsh[:class], style: "width:#{hsh[:width]};height:#{hsh[:height]};#{hsh[:style]}"
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def display_user_image(user, hsh)
|
|
51
|
+
hsh[:width] = "100%" unless hsh[:width]
|
|
52
|
+
hsh[:height] = "auto" unless hsh[:height]
|
|
53
|
+
|
|
54
|
+
ph = hsh.has_key?(:place_holder) ? hsh[:place_holder] : {}
|
|
55
|
+
ph[:width] = ph.has_key?(:width) ? ph[:width] : DEFAULT_PLACE_HOLDER_WIDTH
|
|
56
|
+
ph[:height] = ph.has_key?(:height) ? ph[:height] : DEFAULT_PLACE_HOLDER_HEIGHT
|
|
57
|
+
ph[:text] = ph.has_key?(:text) ? ph[:text] : DEFAULT_PLACE_HOLDER_TEXT
|
|
58
|
+
hsh[:place_holder] = ph
|
|
59
|
+
|
|
60
|
+
hsh[:style] = "" unless hsh[:style]
|
|
61
|
+
hsh[:class] = "" unless hsh[:class]
|
|
62
|
+
hsh[:size] = "thumb" unless hsh[:size]
|
|
63
|
+
hsh[:url_domain] = "http://localhost:3000" unless hsh[:url_domain]
|
|
64
|
+
|
|
65
|
+
if user.send("#{hsh[:size]}_url").blank?
|
|
66
|
+
url = "http://placehold.it/#{ph[:width]}x#{ph[:height]}&text=#{ph[:text]}"
|
|
67
|
+
else
|
|
68
|
+
url = hsh[:url_domain] + user.send("#{hsh[:size]}_url")
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
return image_tag url, class: hsh[:class], style: "width:#{hsh[:width]};height:#{hsh[:height]};#{hsh[:style]}"
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
## Returns new photo url or edit existing photo url based on
|
|
75
|
+
# object is associated with photo or not
|
|
76
|
+
# == Examples
|
|
77
|
+
# >>> upload_image_link(@user, admin_user_path(@user), :profile_picture)
|
|
78
|
+
# => "/admin/images/new" OR
|
|
79
|
+
# => "/admin/images/1/edit"
|
|
80
|
+
def upload_image_link(object, redirect_url, assoc_name=:photo)
|
|
81
|
+
|
|
82
|
+
photo_object = nil
|
|
83
|
+
photo_object = object.send(assoc_name) if object.respond_to?(assoc_name)
|
|
84
|
+
#binding.pry
|
|
85
|
+
if photo_object.present?
|
|
86
|
+
edit_admin_image_path(photo_object,
|
|
87
|
+
:redirect_url => redirect_url,
|
|
88
|
+
:imageable_id => object.id,
|
|
89
|
+
:imageable_type => object.class.to_s,
|
|
90
|
+
:image_type => photo_object.class.name)
|
|
91
|
+
else
|
|
92
|
+
photo_object = object.send("build_#{assoc_name}")
|
|
93
|
+
new_admin_image_path(:redirect_url => redirect_url,
|
|
94
|
+
:imageable_id => object.id,
|
|
95
|
+
:imageable_type => object.class.to_s,
|
|
96
|
+
:image_type => photo_object.class.name)
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module Poodle
|
|
2
|
+
module NavigationHelper
|
|
3
|
+
|
|
4
|
+
def nav_active?(name)
|
|
5
|
+
@nav == name
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def nav_class(name)
|
|
9
|
+
nav_active?(name) ? "active" : ""
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def set_nav(name)
|
|
13
|
+
@nav = name
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def current_nav
|
|
17
|
+
@nav
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module Poodle
|
|
2
|
+
module NotificationHelper
|
|
3
|
+
|
|
4
|
+
## This function will set a flash message depending up on the request type (ajax - xml http or direct http)
|
|
5
|
+
## example : store_flash_message("The message has been sent successfully", :success)
|
|
6
|
+
def store_flash_message(message, type)
|
|
7
|
+
if request.xhr?
|
|
8
|
+
flash.now[type] = message
|
|
9
|
+
else
|
|
10
|
+
flash[type] = message
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def set_notification_messages(heading, alert, not_type)
|
|
15
|
+
@heading = heading
|
|
16
|
+
@alert = alert
|
|
17
|
+
store_flash_message("#{@heading}: #{@alert}", not_type) if defined?(flash) && flash
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
module Poodle
|
|
2
|
+
module ParamsParserHelper
|
|
3
|
+
|
|
4
|
+
def parse_pagination_params
|
|
5
|
+
@current_page = params[:page] || "1"
|
|
6
|
+
@per_page = params[:per_page] || Poodle.configuration.items_per_list.to_s
|
|
7
|
+
|
|
8
|
+
if @per_page && @per_page.to_i > Poodle.configuration.max_items_per_list
|
|
9
|
+
@per_page = Poodle.configuration.items_per_list.to_s
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
@offset = (@current_page.to_i - 1) * (@per_page.to_i)
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def parse_filter_dates(instance_name, start_date_name="start_date", end_date_name="end_date")
|
|
17
|
+
## Parsing the date info if any
|
|
18
|
+
unless params[instance_name][start_date_name].blank?
|
|
19
|
+
d = params[instance_name][start_date_name] ? (Time.parse(params[instance_name][start_date_name])) : (Date.today - 1.day)
|
|
20
|
+
@start_date = params[instance_name][:start_date] || (Date.today - 1.day)
|
|
21
|
+
@start_time = Time.utc(d.year,d.month,d.day,00,00,00)
|
|
22
|
+
end
|
|
23
|
+
unless params[instance_name][end_date_name].blank?
|
|
24
|
+
d = params[instance_name][end_date_name] ? Time.parse(params[instance_name][end_date_name]) : Date.today
|
|
25
|
+
@end_date = params[instance_name][end_date_name] || Date.today
|
|
26
|
+
@end_time = Time.utc(d.year,d.month,d.day,23,59,59)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Poodle
|
|
2
|
+
module UrlHelper
|
|
3
|
+
|
|
4
|
+
def add_query_params(url, params)
|
|
5
|
+
parsed_uri = URI(url)
|
|
6
|
+
|
|
7
|
+
if parsed_uri.query
|
|
8
|
+
query_params = URI.decode_www_form(parsed_uri.query)
|
|
9
|
+
else
|
|
10
|
+
query_params = []
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
params.each_pair do |k, v|
|
|
14
|
+
query_params << [k.to_s, v]
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
parsed_uri.query = URI.encode_www_form(query_params)
|
|
18
|
+
parsed_uri.to_s
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<div class="header">
|
|
2
|
+
|
|
3
|
+
<ul class="nav nav-pills pull-right">
|
|
4
|
+
<%# if @current_user %>
|
|
5
|
+
<li class="dropdown">
|
|
6
|
+
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><%#= @current_user.name %> User Name <b class="caret"></b></a>
|
|
7
|
+
<ul class="dropdown-menu">
|
|
8
|
+
<li class="dropdown-header">Profile</li>
|
|
9
|
+
<li><a href="#">Update Profile</a></li>
|
|
10
|
+
<li><a href="#">Profile Settings</a></li>
|
|
11
|
+
<li><a href="#">Notifications Settings</a></li>
|
|
12
|
+
<li class="divider"></li>
|
|
13
|
+
<li><%= link_to raw("Sign Out"), "#", method: :delete %></li>
|
|
14
|
+
</ul>
|
|
15
|
+
</li>
|
|
16
|
+
<%# else %>
|
|
17
|
+
<!-- <li class="<%= nav_class("Manage Page 1") %>">
|
|
18
|
+
<%#= link_to raw("Sign In"), "#" %>
|
|
19
|
+
</li> -->
|
|
20
|
+
<%# end %>
|
|
21
|
+
|
|
22
|
+
</ul>
|
|
23
|
+
<div class="cl-10"></div>
|
|
24
|
+
<div class="visible-xs" style="border:1px solid #c1c1c1;margin-bottom:20px"></div>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<h3 class="text-center">Poodle</h3>
|
|
2
|
+
<!-- <img src="http://www.domain.com/images/logo.png"/> -->
|
|
3
|
+
<div class="cl-30"></div>
|
|
4
|
+
|
|
5
|
+
<ul>
|
|
6
|
+
|
|
7
|
+
<li class="<%= nav_class("user/dashboard") %>">
|
|
8
|
+
<%= link_to raw("<i class=\"fa fa-dashboard\"></i> Dashboard"), "#" %>
|
|
9
|
+
</li>
|
|
10
|
+
|
|
11
|
+
<% if @current_user.is_admin? %>
|
|
12
|
+
|
|
13
|
+
<li class="heading">Admin</li>
|
|
14
|
+
|
|
15
|
+
<li class="<%= nav_class("admin/1") %>">
|
|
16
|
+
<%= link_to raw("<i class=\"fa fa-globe\"></i> Manage Admin 1"), "#" %>
|
|
17
|
+
</li>
|
|
18
|
+
|
|
19
|
+
<li class="<%= nav_class("admin/2") %>">
|
|
20
|
+
<%= link_to raw("<i class=\"fa fa-rub\"></i> Manage Admin 2"), "#" %>
|
|
21
|
+
</li>
|
|
22
|
+
|
|
23
|
+
<% end %>
|
|
24
|
+
|
|
25
|
+
<% if @current_user.is_super_admin? %>
|
|
26
|
+
|
|
27
|
+
<li class="heading">System Configuration</li>
|
|
28
|
+
|
|
29
|
+
<li class="<%= nav_class("super_admin/1") %>">
|
|
30
|
+
<%= link_to raw("<i class=\"fa fa-link\"></i> Configure 3"), "#" %>
|
|
31
|
+
</li>
|
|
32
|
+
|
|
33
|
+
<% end %>
|
|
34
|
+
|
|
35
|
+
<li class="heading">Account</li>
|
|
36
|
+
|
|
37
|
+
<li class="<%= nav_class("account/profile") %>">
|
|
38
|
+
<%= link_to raw("<i class=\"fa fa-user\"></i> My Profile"), "#" %>
|
|
39
|
+
</li>
|
|
40
|
+
|
|
41
|
+
<li>
|
|
42
|
+
<%= link_to raw("<i class=\"fa fa-power-off\"></i> Sign Out"), "#" %>
|
|
43
|
+
</li>
|
|
44
|
+
</ul>
|
|
45
|
+
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en" class="no-js">
|
|
3
|
+
<head>
|
|
4
|
+
<title><%= title -%></title>
|
|
5
|
+
<%= render :partial=>"/layouts/poodle/common/meta_tags" -%>
|
|
6
|
+
<link rel="icon" href="/assets/favicon.ico" type="image/png">
|
|
7
|
+
<%= stylesheet_link_tag "poodle/application", :media => "all" -%>
|
|
8
|
+
<%= csrf_meta_tags -%>
|
|
9
|
+
<%= yield :javascript_header -%>
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
|
|
13
|
+
<div>
|
|
14
|
+
|
|
15
|
+
<div class="container-fluid with_sidebar header-block clearfix">
|
|
16
|
+
|
|
17
|
+
<%#* Display Sidebar -%>
|
|
18
|
+
<div class="sidebar">
|
|
19
|
+
<%= render :partial=>"/layouts/poodle/application/sidebar" -%>
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
<div class="main-content">
|
|
23
|
+
<div id="div_page_header">
|
|
24
|
+
<%= render :partial=>"/layouts/poodle/application/header" -%>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
<%#* Show flash messages if controller has set any. -%>
|
|
28
|
+
<div id="div_flash_message" class="container-fluid" >
|
|
29
|
+
<%= render :partial=>"/layouts/poodle/common/flash_message" -%>
|
|
30
|
+
</div>
|
|
31
|
+
|
|
32
|
+
<%#* Page Content Starts here -%>
|
|
33
|
+
<div class="pt-10" style="min-height:400px;">
|
|
34
|
+
<%= yield %>
|
|
35
|
+
</div>
|
|
36
|
+
|
|
37
|
+
<%#* Display Footer -%>
|
|
38
|
+
<%= render :partial=>"/layouts/poodle/application/footer" -%>
|
|
39
|
+
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
<%#* Display Hidden Overlays -%>
|
|
47
|
+
<%= render :partial=>"/layouts/poodle/common/overlays" -%>
|
|
48
|
+
|
|
49
|
+
<%#* Loading Javascripts -%>
|
|
50
|
+
<%= javascript_include_tag "poodle/application" -%>
|
|
51
|
+
|
|
52
|
+
<%= yield :javascript_footer -%>
|
|
53
|
+
|
|
54
|
+
</body>
|
|
55
|
+
|
|
56
|
+
</html>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<%
|
|
2
|
+
unless defined?(required)
|
|
3
|
+
required = false
|
|
4
|
+
end
|
|
5
|
+
unless defined?(place_holder)
|
|
6
|
+
place_holder = ""
|
|
7
|
+
end
|
|
8
|
+
inp_id = "inp_#{display_name.underscore.split(" ").join("_")}"
|
|
9
|
+
error_class = object.errors[field_name.to_s].any? ? "has-errors" : ""
|
|
10
|
+
%>
|
|
11
|
+
|
|
12
|
+
<div class="form-group <%= error_class %>">
|
|
13
|
+
|
|
14
|
+
<% if ["text", "email", "search", "password", "date", "time", "tel", "url", "month", "file", "image", ""].include?(input_type) %>
|
|
15
|
+
|
|
16
|
+
<label for="inp_<%= display_name.underscore.split(" ").join("_") %>" class="col-md-4 control-label">
|
|
17
|
+
<%= display_name %>
|
|
18
|
+
<span class="text-color-red ml-10 mr-5 pull-right"><%= required ? "*" : raw(" ") %></span>
|
|
19
|
+
</label>
|
|
20
|
+
<div class="col-md-8">
|
|
21
|
+
<input name="<%= object_name %>[<%= field_name %>]" id="inp_<%= display_name.underscore.split(" ").join("_") %>" class="text input form-control" type="<%= input_type %>" placeholder="<%= place_holder %>" value="<%= object.send(field_name.to_s) %>" />
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
<% elsif input_type == "checkbox" %>
|
|
25
|
+
|
|
26
|
+
<label for="inp_<%= display_name.underscore.split(" ").join("_") %>" class="col-md-4 control-label">
|
|
27
|
+
<%= display_name %>
|
|
28
|
+
<span class="text-color-red ml-10 mr-5 pull-right"><%= required ? "*" : raw(" ") %></span>
|
|
29
|
+
</label>
|
|
30
|
+
<div class="col-md-8">
|
|
31
|
+
<input name="<%= object_name %>[<%= field_name %>]" id="inp_<%= display_name.underscore.split(" ").join("_") %>" type="<%= input_type %>" class="checkbox input form-control" <%= object.send(field_name.to_s) ? "checked='checked'" : "" %> />
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
<% elsif input_type == "textarea" %>
|
|
35
|
+
|
|
36
|
+
<label for="inp_<%= display_name.underscore.split(" ").join("_") %>" class="col-md-4 control-label">
|
|
37
|
+
<%= display_name %>
|
|
38
|
+
<span class="text-color-red ml-10 mr-5 pull-right"><%= required ? "*" : raw(" ") %></span>
|
|
39
|
+
</label>
|
|
40
|
+
<div class="col-md-8">
|
|
41
|
+
<textarea name="<%= object_name %>[<%= field_name %>]" style="height:200px;" class="textarea input form-control" id="inp_<%= display_name.underscore.split(" ").join("_") %> placeholder="<%= place_holder %>" "><%= object.send(field_name.to_s) %></textarea>
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
<% end %>
|
|
45
|
+
|
|
46
|
+
</div>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<%
|
|
2
|
+
if request.xhr?
|
|
3
|
+
flash_message = flash.now[:success] || flash.now[:notice] || flash.now[:alert] || flash.now[:error]
|
|
4
|
+
style_classes = ""
|
|
5
|
+
else
|
|
6
|
+
style_classes = ""
|
|
7
|
+
flash_message = flash[:success] || flash[:notice] || flash[:alert] || flash[:error]
|
|
8
|
+
end
|
|
9
|
+
cls_name = "alert-info"
|
|
10
|
+
cls_name = 'alert-success' if flash.now[:success] || flash[:success]
|
|
11
|
+
cls_name = 'alert-warning' if flash.now[:alert] || flash[:alert]
|
|
12
|
+
cls_name = 'alert-danger' if flash.now[:error] || flash[:error]
|
|
13
|
+
|
|
14
|
+
flash_message = flash_message.strip if flash_message
|
|
15
|
+
|
|
16
|
+
%>
|
|
17
|
+
|
|
18
|
+
<% unless flash_message.blank? %>
|
|
19
|
+
<div class="<%= style_classes %> alert <%= cls_name %> fade in mb-10" data-alert="alert">
|
|
20
|
+
<a class="close" data-dismiss='alert' href="#">×</a>
|
|
21
|
+
<p><%= flash_message %></p>
|
|
22
|
+
</div>
|
|
23
|
+
<% end %>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
|
|
2
|
+
<%# meta tags%>
|
|
3
|
+
<% if @meta_tags %>
|
|
4
|
+
<% if @meta_tags[:rel_prev] %>
|
|
5
|
+
<link rel="prev" href="<%%= @meta_tags[:rel_prev] %>" />
|
|
6
|
+
<% end %>
|
|
7
|
+
<% if @meta_tags[:rel_next] %>
|
|
8
|
+
<link rel="next" href="<%%= @meta_tags[:rel_next] %>" />
|
|
9
|
+
<% end %>
|
|
10
|
+
<% if @meta_tags[:canonical] %>
|
|
11
|
+
<link rel="canonical" href="<%%= @meta_tags[:canonical] %>" />
|
|
12
|
+
<% end %>
|
|
13
|
+
<% if @meta_tags[:meta_description] %>
|
|
14
|
+
<meta name="description" content="<%%= @meta_tags[:meta_description] %>"></meta>
|
|
15
|
+
<% else %>
|
|
16
|
+
<meta name="description" content="Twitter Like App = A learning app."></meta>
|
|
17
|
+
<% end %>
|
|
18
|
+
<% if @meta_tags[:meta_keywords] %>
|
|
19
|
+
<meta name="keywords" content="<%%= @meta_tags[:meta_keywords] %>"></meta>
|
|
20
|
+
<% else %>
|
|
21
|
+
<% meta_keywords = "Twitter Like App = A learning app." %>
|
|
22
|
+
<meta name="keywords" content="<%%= meta_keywords %>"></meta>
|
|
23
|
+
<% end %>
|
|
24
|
+
<% if @meta_tags[:robots] %>
|
|
25
|
+
<meta name="robots" content="<%%= @meta_tags[:robots] %>" />
|
|
26
|
+
<% else %>
|
|
27
|
+
<meta name="robots" content="all" />
|
|
28
|
+
<% end %>
|
|
29
|
+
<% end %>
|
|
30
|
+
|
|
31
|
+
<meta charset="utf-8">
|
|
32
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
33
|
+
<meta name="copyright" content="2014 kpvarma" />
|
|
34
|
+
<meta name="content-language" content="en" />
|
|
35
|
+
<meta name="author" content="K P Varma" />
|
|
36
|
+
<meta name="resource-type" content="document" />
|
|
37
|
+
<meta name="distribution" content="global" />
|
|
38
|
+
<meta name="rating" content="general" />
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<div id="div_modal_generic" class="modal fade">
|
|
2
|
+
<div class="modal-dialog">
|
|
3
|
+
<div class="modal-content">
|
|
4
|
+
<div class="modal-header">
|
|
5
|
+
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
|
6
|
+
<h4 class="modal-title">Modal title</h4>
|
|
7
|
+
</div>
|
|
8
|
+
<div class="modal-body-main"></div>
|
|
9
|
+
</div><!-- /.modal-content -->
|
|
10
|
+
</div><!-- /.modal-dialog -->
|
|
11
|
+
</div><!-- /.modal -->
|
|
12
|
+
|
|
13
|
+
<div id="div_modal_message" class="modal fade">
|
|
14
|
+
<div class="modal-dialog">
|
|
15
|
+
<div class="modal-content">
|
|
16
|
+
<div class="modal-header">
|
|
17
|
+
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
|
18
|
+
<h4 class="modal-title">Modal title</h4>
|
|
19
|
+
</div>
|
|
20
|
+
<div class="modal-body">
|
|
21
|
+
<p>One fine body…</p>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="modal-footer">
|
|
24
|
+
<button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
|
|
25
|
+
</div>
|
|
26
|
+
</div><!-- /.modal-content -->
|
|
27
|
+
</div><!-- /.modal-dialog -->
|
|
28
|
+
</div><!-- /.modal -->
|