poodle-rb 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
File without changes
|
@@ -0,0 +1,104 @@
|
|
1
|
+
var status;
|
2
|
+
var maxPhotoUploadFileSize = 5000000;
|
3
|
+
|
4
|
+
// Used to clone photo uploader
|
5
|
+
function add_fields(link, association, content) {
|
6
|
+
var new_id = new Date().getTime();
|
7
|
+
var regexp = new RegExp("new_" + association, "g")
|
8
|
+
$(link).parent().before(content.replace(regexp, new_id));
|
9
|
+
var upload_label = $('label.upload_image');
|
10
|
+
if($(upload_label).length > 0) {
|
11
|
+
$(upload_label).text('browse');
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
// Remove a photo uploader
|
16
|
+
function remove_fields(link) {
|
17
|
+
$(link).prev("input[type=hidden]").val("1");
|
18
|
+
$(link).closest("div.add-photos-path").hide();
|
19
|
+
}
|
20
|
+
|
21
|
+
// Remove Option filed
|
22
|
+
function remove_option_field(link) {
|
23
|
+
$(link).prev("input[type=hidden]").val("1");
|
24
|
+
$(link).closest("div.div-new-field").hide();
|
25
|
+
}
|
26
|
+
|
27
|
+
/* Validate image file extension. The Supported formats are
|
28
|
+
.jpg, .jpeg, .ico, .png, .gif
|
29
|
+
*/
|
30
|
+
function validate_file_extn(filename) {
|
31
|
+
var image_extns = new Array(/^jpg$/i, /^png$/i, /^jpeg$/i, /^ico$/i, /^gif$/i)
|
32
|
+
var extn = filename.split('.');
|
33
|
+
for(var i = 0; i < image_extns.length; i++) {
|
34
|
+
if(extn[1].match(image_extns[i])) {
|
35
|
+
status = "true"
|
36
|
+
break;
|
37
|
+
}
|
38
|
+
else {
|
39
|
+
status = "false";
|
40
|
+
}
|
41
|
+
}
|
42
|
+
return status;
|
43
|
+
}
|
44
|
+
|
45
|
+
// Client side image preview before uploading to server
|
46
|
+
|
47
|
+
function preview_image(input, element_id, width) {
|
48
|
+
|
49
|
+
if(width == undefined){
|
50
|
+
width = 90;
|
51
|
+
}
|
52
|
+
|
53
|
+
var filename = $(input).val().split('\\').pop();
|
54
|
+
var status = validate_file_extn(filename);
|
55
|
+
var reader = '';
|
56
|
+
|
57
|
+
if(status == "false") {
|
58
|
+
$(input).val('');
|
59
|
+
alert("File type is not supported");
|
60
|
+
}
|
61
|
+
else {
|
62
|
+
|
63
|
+
if(navigator.userAgent.match(/msie/i) && !navigator.userAgent.match(/msie 10/i)) {
|
64
|
+
if($('.div-sg-photo-preview').length > 0) {
|
65
|
+
$('.div-sg-photo-preview').css('border', '1px solid lightgray').html(filename);
|
66
|
+
}
|
67
|
+
else {
|
68
|
+
$(input).parents('.add-photos-path').find('.jquery-sg-image-container').
|
69
|
+
css('border-top', '1px solid gray').html(filename);
|
70
|
+
}
|
71
|
+
}
|
72
|
+
else if(navigator.userAgent.match(/msie/i) && navigator.userAgent.match(/msie 10/i)) {
|
73
|
+
reader = new FileReader();
|
74
|
+
reader.onload = function (e) {
|
75
|
+
$('#'+element_id)
|
76
|
+
.attr('src', e.target.result)
|
77
|
+
.width(width);
|
78
|
+
};
|
79
|
+
|
80
|
+
reader.readAsDataURL(input.files[0]);
|
81
|
+
}
|
82
|
+
|
83
|
+
else {
|
84
|
+
|
85
|
+
if (input.files && input.files[0]) {
|
86
|
+
if(input.files[0].size < maxPhotoUploadFileSize) {
|
87
|
+
reader = new FileReader();
|
88
|
+
reader.onload = function (e) {
|
89
|
+
$('#'+element_id)
|
90
|
+
.attr('src', e.target.result)
|
91
|
+
.width(width);
|
92
|
+
};
|
93
|
+
|
94
|
+
reader.readAsDataURL(input.files[0]);
|
95
|
+
}
|
96
|
+
else {
|
97
|
+
alert("Maximum Size is " + maxPhotoUploadFileSize + " KB");
|
98
|
+
}
|
99
|
+
|
100
|
+
}
|
101
|
+
}
|
102
|
+
}
|
103
|
+
|
104
|
+
}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
// Write down only those functions which are being used by application.init or any part of the application like ajax event handlers.
|
2
|
+
|
3
|
+
// loadANewPage will accept a url and will load a new page
|
4
|
+
// It can be tuned to show a lightbox showing a loading, please wait message.
|
5
|
+
function loadANewPage(url){
|
6
|
+
// showLightBoxLoading();
|
7
|
+
window.location.href=url;
|
8
|
+
}
|
9
|
+
|
10
|
+
// sendAjaxRequest is used to send an xml http request using javascript to a url using a method / get, put, post, delete
|
11
|
+
function sendAjaxRequest(url, mType){
|
12
|
+
methodType = mType || "GET";
|
13
|
+
jQuery.ajax({type: methodType, dataType:"script", url:url});
|
14
|
+
}
|
15
|
+
|
16
|
+
// Call this function by passing model Id, heading and a bodyContent.
|
17
|
+
// it will pop up bootstrap 3 modal.
|
18
|
+
var messageModalId = "div_modal_message";
|
19
|
+
var genericModalId = "div_modal_generic";
|
20
|
+
function showModal(heading, bodyContent, modalId){
|
21
|
+
if(modalId==null){
|
22
|
+
var modalId = genericModalId;
|
23
|
+
}
|
24
|
+
//$('#' + modalId + ' .modal-body').html("<p>"+ message +"</p>");
|
25
|
+
$('#' + modalId + ' .modal-header h4.modal-title').text(heading);
|
26
|
+
$('#' + modalId + ' div.modal-body-main').html(bodyContent);
|
27
|
+
$('#' + modalId).modal('show');
|
28
|
+
//$('#' + modalId + ' .modal-footer button.btn-primary').button('reset');
|
29
|
+
}
|
30
|
+
|
31
|
+
// Call this function by passing heading and a message.
|
32
|
+
// it will pop up bootstrap 3 modal which shows the heading and message as content body.
|
33
|
+
function showModalMessage(heading, message, modalId){
|
34
|
+
if(modalId==null){
|
35
|
+
var modalId = messageModalId;
|
36
|
+
}
|
37
|
+
var bodyContent = "<p>"+ message +"</p>";
|
38
|
+
//$('#' + modalId + ' .modal-body').html("<p>"+ message +"</p>");
|
39
|
+
$('#' + modalId + ' .modal-header h4.modal-title').text(heading);
|
40
|
+
$('#' + modalId + ' div.modal-body').html(bodyContent);
|
41
|
+
$('#' + modalId).modal('show');
|
42
|
+
//$('#' + modalId + ' .modal-footer button.btn-primary').button('reset');
|
43
|
+
}
|
44
|
+
|
45
|
+
function closeModal(modalId){
|
46
|
+
if(modalId==null){
|
47
|
+
var modalId = genericModalId;
|
48
|
+
}
|
49
|
+
$('#' + modalId).modal('hide');
|
50
|
+
}
|
@@ -0,0 +1,67 @@
|
|
1
|
+
function validateSampleForm() {
|
2
|
+
|
3
|
+
$('#form_sample').validate({
|
4
|
+
debug: true,
|
5
|
+
rules: {
|
6
|
+
"sample[first_name]": {
|
7
|
+
required: true,
|
8
|
+
minlength: 2,
|
9
|
+
maxlength: 50
|
10
|
+
},
|
11
|
+
"sample[last_name]": {
|
12
|
+
required: true,
|
13
|
+
minlength: 2,
|
14
|
+
maxlength: 50
|
15
|
+
},
|
16
|
+
"sample[email]": {
|
17
|
+
required: true,
|
18
|
+
email: true
|
19
|
+
},
|
20
|
+
},
|
21
|
+
errorElement: "span",
|
22
|
+
errorClass: "help-block",
|
23
|
+
messages: {
|
24
|
+
"sample[first_name]": "Please specify First Name",
|
25
|
+
"sample[last_name]": "Please specify Last Name",
|
26
|
+
"sample[email]": {
|
27
|
+
required: "We need your email address to contact you",
|
28
|
+
email: "Your email address must be in the format of name@domain.com"
|
29
|
+
},
|
30
|
+
},
|
31
|
+
highlight: function(element) {
|
32
|
+
$(element).parent().parent().addClass("has-error");
|
33
|
+
},
|
34
|
+
unhighlight: function(element) {
|
35
|
+
$(element).parent().parent().removeClass("has-error");
|
36
|
+
},
|
37
|
+
invalidHandler: function(event, validator) {
|
38
|
+
// 'this' refers to the form
|
39
|
+
var errors = validator.numberOfInvalids();
|
40
|
+
if (errors) {
|
41
|
+
|
42
|
+
// Populating error message
|
43
|
+
var errorMessage = errors == 1
|
44
|
+
? 'You missed 1 field. It has been highlighted'
|
45
|
+
: 'You missed ' + errors + ' fields. They have been highlighted';
|
46
|
+
|
47
|
+
// Removing the form error if it already exists
|
48
|
+
$("#div_sample_js_validation_error").remove();
|
49
|
+
|
50
|
+
errorHtml = "<div id='div_sample_js_validation_error' class=\"alert alert-danger\" data-alert=\"alert\" style=\"margin-bottom:5px;\">"+ errorMessage +"</div>"
|
51
|
+
//$("#div_sample_details").prepend(errorHtml);
|
52
|
+
$("#div_modal_generic div.modal-body-main").prepend(errorHtml);
|
53
|
+
|
54
|
+
// Show error labels
|
55
|
+
$("div.error").show();
|
56
|
+
|
57
|
+
} else {
|
58
|
+
// Hide error labels
|
59
|
+
$("div.error").hide();
|
60
|
+
// Removing the error message
|
61
|
+
$("#div_sample_js_validation_error").remove();
|
62
|
+
}
|
63
|
+
}
|
64
|
+
|
65
|
+
});
|
66
|
+
|
67
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
+
* listed below.
|
4
|
+
*
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
+
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
|
7
|
+
*
|
8
|
+
* You're free to add application-wide styles to this file and they'll appear at the top of the
|
9
|
+
* compiled file, but it's generally better to create a new file per style scope.
|
10
|
+
*
|
11
|
+
*= require poodle/bootstrap
|
12
|
+
*= require poodle/bootstrap-theme
|
13
|
+
*= require poodle/font-awesome
|
14
|
+
*= require poodle/poodle-theme
|
15
|
+
*= require handycss.css
|
16
|
+
*= require_self
|
17
|
+
|
18
|
+
*/
|