itsf_backend 1.0.1
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 +43 -0
- data/Rakefile +21 -0
- data/app/assets/images/itsf/backend/favicon.png +0 -0
- data/app/assets/javascripts/itsf/backend/application.js +21 -0
- data/app/assets/javascripts/itsf/backend/application/ace.coffee +51 -0
- data/app/assets/javascripts/itsf/backend/application/acts-as-list.coffee +21 -0
- data/app/assets/javascripts/itsf/backend/application/auto-submit.coffee +21 -0
- data/app/assets/javascripts/itsf/backend/application/autofocus-last.coffee +4 -0
- data/app/assets/javascripts/itsf/backend/application/drop-down-hover.coffee +8 -0
- data/app/assets/javascripts/itsf/backend/application/itsf-logo.coffee +24 -0
- data/app/assets/javascripts/itsf/backend/vendor/jQueryRotate.js +339 -0
- data/app/assets/javascripts/itsf/backend/vendor/jquery.redirect.js +119 -0
- data/app/assets/javascripts/itsf_backend.js +1 -0
- data/app/assets/stylesheets/itsf/backend/application.css.less +30 -0
- data/app/assets/stylesheets/itsf/backend/application/ace.css.less +6 -0
- data/app/assets/stylesheets/itsf/backend/application/basic-page.css.less +10 -0
- data/app/assets/stylesheets/itsf/backend/application/bootstrap-extensions.css.less +48 -0
- data/app/assets/stylesheets/itsf/backend/application/bottom-margin-extension.css.less +9 -0
- data/app/assets/stylesheets/itsf/backend/application/button-responsive.css.less +7 -0
- data/app/assets/stylesheets/itsf/backend/application/check-box-margin-fix.css.less +5 -0
- data/app/assets/stylesheets/itsf/backend/application/code.css.less +6 -0
- data/app/assets/stylesheets/itsf/backend/application/form-errors.css.less +6 -0
- data/app/assets/stylesheets/itsf/backend/application/form-inline-margin-fixes.css.less +9 -0
- data/app/assets/stylesheets/itsf/backend/application/hexagon.css.less +161 -0
- data/app/assets/stylesheets/itsf/backend/application/itsf-dashboard-panels.css.less +9 -0
- data/app/assets/stylesheets/itsf/backend/application/itsf-logo.css.less +107 -0
- data/app/assets/stylesheets/itsf/backend/application/navigation-logo.css.less +5 -0
- data/app/assets/stylesheets/itsf/backend/application/panel-footer-pagination.css.less +8 -0
- data/app/assets/stylesheets/itsf/backend/application/panel-with-actions.css.less +21 -0
- data/app/assets/stylesheets/itsf/backend/application/table-actions.css.less +9 -0
- data/app/assets/stylesheets/itsf/backend/application/table-responsive.css.less +3 -0
- data/app/assets/stylesheets/itsf/backend/bootstrap_and_overrides.css.less +34 -0
- data/app/assets/stylesheets/itsf/backend/vendor/timeline.min.css +1 -0
- data/app/assets/stylesheets/itsf_backend.css +3 -0
- data/app/concerns/routing/service_concern.rb +12 -0
- data/app/controllers/concerns/controller/acts_as_list_concern.rb +13 -0
- data/app/controllers/concerns/controller/acts_as_published_concern.rb +13 -0
- data/app/controllers/concerns/controller/pagination_concern.rb +15 -0
- data/app/controllers/concerns/controller/pundit_namespaced_authorize_concern.rb +19 -0
- data/app/controllers/concerns/controller/ransack_concern.rb +25 -0
- data/app/controllers/concerns/controller/rest_actions_concern_with_pundit.rb +93 -0
- data/app/controllers/itsf/backend/application_controller.rb +6 -0
- data/app/controllers/itsf/backend/base_controller.rb +34 -0
- data/app/controllers/itsf/backend/dashboard_controller.rb +20 -0
- data/app/controllers/itsf/backend/home_controller.rb +27 -0
- data/app/controllers/itsf/backend/resource/base_controller.rb +35 -0
- data/app/controllers/itsf/backend/service/base_controller.rb +29 -0
- data/app/extensions/concerns/head_row/acts_as_list_extensions.rb +11 -0
- data/app/extensions/concerns/head_row/association_extensions.rb +14 -0
- data/app/extensions/concerns/head_row/paperclip_extensions.rb +11 -0
- data/app/extensions/concerns/head_row/published_extensions.rb +11 -0
- data/app/extensions/concerns/head_row/ransack_extensions.rb +7 -0
- data/app/extensions/concerns/head_row/timestamp_extensions.rb +21 -0
- data/app/extensions/concerns/object_extensions.rb +8 -0
- data/app/extensions/concerns/ransack_form_builder_extensions.rb +72 -0
- data/app/extensions/concerns/resource_row/acts_as_list_extensions.rb +28 -0
- data/app/extensions/concerns/resource_row/association_extensions.rb +22 -0
- data/app/extensions/concerns/resource_row/paperclip_extensions.rb +18 -0
- data/app/extensions/concerns/resource_row/published_extensions.rb +24 -0
- data/app/extensions/concerns/resource_row/timestamp_extensions.rb +23 -0
- data/app/extensions/concerns/simple_form_form_builder_extensions.rb +28 -0
- data/app/helpers/itsf/backend/application_helper.rb +9 -0
- data/app/policies/itsf/backend/base_policy.rb +67 -0
- data/app/policies/itsf/backend/dashboard_policy.rb +14 -0
- data/app/policies/itsf/backend/engine_policy.rb +14 -0
- data/app/policies/itsf/backend/service/base_policy.rb +29 -0
- data/app/presenters/bootstrap_table_presenter.rb.old +106 -0
- data/app/views/itsf/backend/dashboard/_dashboard_panel.html.haml +18 -0
- data/app/views/itsf/backend/dashboard/index.html.haml +7 -0
- data/app/views/itsf/backend/home/_dashboard_panel.html.haml +26 -0
- data/app/views/itsf/backend/home/_index_extras.html.haml +0 -0
- data/app/views/itsf/backend/home/index.html.haml +14 -0
- data/app/views/itsf/backend/i18n/_navigation.html.haml +10 -0
- data/app/views/itsf/backend/resource/base/_form.html.haml +2 -0
- data/app/views/itsf/backend/resource/base/_form_errors.html.haml +6 -0
- data/app/views/itsf/backend/resource/base/_scopes.html.haml +1 -0
- data/app/views/itsf/backend/resource/base/_search.html.haml +3 -0
- data/app/views/itsf/backend/resource/base/_show.html.haml +2 -0
- data/app/views/itsf/backend/resource/base/_show_extras.html.haml +0 -0
- data/app/views/itsf/backend/resource/base/_table.html.haml +2 -0
- data/app/views/itsf/backend/resource/base/_table_actions.html.haml +15 -0
- data/app/views/itsf/backend/resource/base/edit.html.haml +17 -0
- data/app/views/itsf/backend/resource/base/index.html.haml +48 -0
- data/app/views/itsf/backend/resource/base/new.html.haml +15 -0
- data/app/views/itsf/backend/resource/base/show.html.haml +28 -0
- data/app/views/itsf/backend/service/base/_form.html.haml +0 -0
- data/app/views/itsf/backend/service/base/_form_errors.html.haml +6 -0
- data/app/views/itsf/backend/service/base/_messages.html.erb +5 -0
- data/app/views/itsf/backend/service/base/index.html.haml +18 -0
- data/app/views/itsf/backend/service/base/invoke.html.haml +16 -0
- data/app/views/itsf/backend/service/base/success.html.haml +13 -0
- data/app/views/layouts/itsf/backend/_footer.html.haml +1 -0
- data/app/views/layouts/itsf/backend/_logo.html.haml +4 -0
- data/app/views/layouts/itsf/backend/_main_navigation.html.haml +6 -0
- data/app/views/layouts/itsf/backend/_main_navigation_drop_down.html.haml +20 -0
- data/app/views/layouts/itsf/backend/base.html.haml +56 -0
- data/config/initializers/assets.rb +3 -0
- data/config/initializers/extend_object.rb +1 -0
- data/config/initializers/extend_ransack_form_builder.rb +4 -0
- data/config/initializers/extend_simple_form_form_builder.rb +5 -0
- data/config/locales/de.yml +104 -0
- data/config/locales/en.yml +99 -0
- data/config/rbac.yml +7 -0
- data/config/routes.rb +3 -0
- data/lib/generators/itsf/backend/home_controller/home_controller_generator.rb +77 -0
- data/lib/generators/itsf/backend/home_controller/templates/home_controller.rb +6 -0
- data/lib/generators/itsf/backend/home_controller/templates/routes.source +2 -0
- data/lib/generators/itsf/backend/install/install_generator.rb +23 -0
- data/lib/generators/itsf/backend/install/templates/backend_controller.rb +2 -0
- data/lib/generators/itsf/backend/install/templates/initializer.rb +95 -0
- data/lib/generators/itsf/backend/install/templates/routes.source +9 -0
- data/lib/generators/itsf/backend/resource/resource_generator.rb +96 -0
- data/lib/generators/itsf/backend/resource/templates/controller.rb +34 -0
- data/lib/generators/itsf/backend/resource/templates/routes.source +2 -0
- data/lib/itsf/backend.rb +11 -0
- data/lib/itsf/backend/configuration.rb +38 -0
- data/lib/itsf/backend/engine.rb +16 -0
- data/lib/itsf/backend/features.rb +13 -0
- data/lib/itsf/backend/policies.rb +13 -0
- data/lib/itsf/backend/spec_helpers.rb +47 -0
- data/lib/itsf/backend/version.rb +5 -0
- data/lib/itsf_backend.rb +21 -0
- data/lib/tasks/itsf/backend_tasks.rake +4 -0
- data/spec/dummy/README.rdoc +28 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/javascripts/application.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy/app/controllers/application_controller.rb +5 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/models/post.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/bin/setup +29 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +38 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +41 -0
- data/spec/dummy/config/environments/production.rb +79 -0
- data/spec/dummy/config/environments/test.rb +42 -0
- data/spec/dummy/config/initializers/assets.rb +11 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/itsf_backend.rb +15 -0
- data/spec/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +56 -0
- data/spec/dummy/config/secrets.yml +22 -0
- data/spec/dummy/db/migrate/20151024185112_create_posts.rb +10 -0
- data/spec/dummy/db/schema.rb +15 -0
- data/spec/dummy/public/404.html +67 -0
- data/spec/dummy/public/422.html +67 -0
- data/spec/dummy/public/500.html +66 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/factories/posts.rb +6 -0
- data/spec/models/post_spec.rb +5 -0
- data/spec/rails_helper.rb +52 -0
- data/spec/spec_helper.rb +90 -0
- data/spec/support/addons.rb +3 -0
- metadata +688 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/*
|
|
2
|
+
jQuery Redirect v1.0.1
|
|
3
|
+
|
|
4
|
+
Copyright (c) 2013-2015 Miguel Galante
|
|
5
|
+
Copyright (c) 2011-2013 Nemanja Avramovic, www.avramovic.info
|
|
6
|
+
|
|
7
|
+
Licensed under CC BY-SA 4.0 License: http://creativecommons.org/licenses/by-sa/4.0/
|
|
8
|
+
|
|
9
|
+
This means everyone is allowed to:
|
|
10
|
+
|
|
11
|
+
Share - copy and redistribute the material in any medium or format
|
|
12
|
+
Adapt - remix, transform, and build upon the material for any purpose, even commercially.
|
|
13
|
+
Under following conditions:
|
|
14
|
+
|
|
15
|
+
Attribution - You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
|
|
16
|
+
ShareAlike - If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
|
|
17
|
+
|
|
18
|
+
*/
|
|
19
|
+
(function ($) {
|
|
20
|
+
'use strict';
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* jQuery Redirect
|
|
24
|
+
* @param {string} url - Url of the redirection
|
|
25
|
+
* @param {Object} values - (optional) An object with the data to send. If not present will look for values as QueryString in the target url.
|
|
26
|
+
* @param {string} method - (optional) The HTTP verb can be GET or POST (defaults to POST)
|
|
27
|
+
* @param {string} target - (optional) The target of the form. "_blank" will open the url in a new window.
|
|
28
|
+
*/
|
|
29
|
+
$.redirect = function (url, values, method, target) {
|
|
30
|
+
method = (method && method.toUpperCase() === 'GET') ? 'GET' : 'POST';
|
|
31
|
+
|
|
32
|
+
if (!values) {
|
|
33
|
+
var obj = $.parseUrl(url);
|
|
34
|
+
url = obj.url;
|
|
35
|
+
values = obj.params;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
var form = $('<form>')
|
|
39
|
+
.attr("method", method)
|
|
40
|
+
.attr("action", url);
|
|
41
|
+
|
|
42
|
+
if (target) {
|
|
43
|
+
form.attr("target", target);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
iterateValues(values, [], form);
|
|
47
|
+
$('body').append(form);
|
|
48
|
+
form[0].submit();
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
//Utility Functions
|
|
52
|
+
/**
|
|
53
|
+
* Url and QueryString Parser.
|
|
54
|
+
* @param {string} url - a Url to parse.
|
|
55
|
+
* @returns {object} an object with the parsed url with the following structure {url: URL, params:{ KEY: VALUE }}
|
|
56
|
+
*/
|
|
57
|
+
$.parseUrl = function (url) {
|
|
58
|
+
if (url.indexOf('?') === -1) {
|
|
59
|
+
return {
|
|
60
|
+
url: url,
|
|
61
|
+
params: {}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
var parts = url.split('?'),
|
|
65
|
+
query_string = parts[1],
|
|
66
|
+
elems = query_string.split('&');
|
|
67
|
+
url = parts[0];
|
|
68
|
+
|
|
69
|
+
var i, pair, obj = {};
|
|
70
|
+
for (i = 0; i < elems.length; i+= 1) {
|
|
71
|
+
pair = elems[i].split('=');
|
|
72
|
+
obj[pair[0]] = pair[1];
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return {
|
|
76
|
+
url: url,
|
|
77
|
+
params: obj
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
//Private Functions
|
|
82
|
+
var getInput = function (name, value, parent, array) {
|
|
83
|
+
var parentString;
|
|
84
|
+
if (parent.length > 0) {
|
|
85
|
+
parentString = parent[0];
|
|
86
|
+
var i;
|
|
87
|
+
for (i = 1; i < parent.length; i += 1) {
|
|
88
|
+
parentString += "[" + parent[i] + "]";
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if (array) {
|
|
92
|
+
name = parentString + "[]";
|
|
93
|
+
} else {
|
|
94
|
+
name = parentString + "[" + name + "]";
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return $("<input>").attr("type", "hidden")
|
|
99
|
+
.attr("name", name)
|
|
100
|
+
.attr("value", value);
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
var iterateValues = function (values, parent, form, array) {
|
|
104
|
+
var i, iterateParent = [];
|
|
105
|
+
for (i in values) {
|
|
106
|
+
if (typeof values[i] === "object") {
|
|
107
|
+
iterateParent = parent.slice();
|
|
108
|
+
if (array) {
|
|
109
|
+
iterateParent.push('');
|
|
110
|
+
} else {
|
|
111
|
+
iterateParent.push(i);
|
|
112
|
+
}
|
|
113
|
+
iterateValues(values[i], iterateParent, form, Array.isArray(values[i]));
|
|
114
|
+
} else {
|
|
115
|
+
form.append(getInput(i, values[i], parent, array));
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
}(window.jQuery || window.Zepto || window.jqlite));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//= require itsf/backend/application
|
|
@@ -0,0 +1,30 @@
|
|
|
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 any plugin's vendor/assets/stylesheets directory 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 bottom of the
|
|
9
|
+
* compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
|
|
10
|
+
* files in this directory. It is generally better to create a new file per style scope.
|
|
11
|
+
*
|
|
12
|
+
*/
|
|
13
|
+
@import "bootstrap_and_overrides.css.less";
|
|
14
|
+
@import "application/ace.css.less";
|
|
15
|
+
@import "application/basic-page.css.less";
|
|
16
|
+
@import "application/bottom-margin-extension.css.less";
|
|
17
|
+
@import "application/button-responsive.css.less";
|
|
18
|
+
@import "application/check-box-margin-fix.css.less";
|
|
19
|
+
@import "application/code.css.less";
|
|
20
|
+
@import "application/itsf-dashboard-panels.css.less";
|
|
21
|
+
@import "application/itsf-logo.css.less";
|
|
22
|
+
@import "application/form-errors.css.less";
|
|
23
|
+
@import "application/form-inline-margin-fixes.css.less";
|
|
24
|
+
@import "application/bootstrap-extensions.css.less";
|
|
25
|
+
@import "application/navigation-logo.css.less";
|
|
26
|
+
@import "application/panel-footer-pagination.css.less";
|
|
27
|
+
@import "application/panel-with-actions.css.less";
|
|
28
|
+
@import "application/table-actions.css.less";
|
|
29
|
+
@import "application/table-responsive.css.less";
|
|
30
|
+
@import "vendor/timeline.min.css";
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
.btn-container-right {
|
|
2
|
+
direction: rtl;
|
|
3
|
+
|
|
4
|
+
* {
|
|
5
|
+
direction: ltr;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.table-data-centered {
|
|
10
|
+
text-align: center;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.truncate-chars {
|
|
14
|
+
white-space: nowrap;
|
|
15
|
+
overflow: hidden;
|
|
16
|
+
text-overflow: ellipsis;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.truncate-chars-10 { max-width: 10ch; }
|
|
20
|
+
.truncate-chars-20 { max-width: 20ch; }
|
|
21
|
+
.truncate-chars-30 { max-width: 30ch; }
|
|
22
|
+
.truncate-chars-40 { max-width: 40ch; }
|
|
23
|
+
.truncate-chars-50 { max-width: 50ch; }
|
|
24
|
+
.truncate-chars-60 { max-width: 60ch; }
|
|
25
|
+
.truncate-chars-70 { max-width: 70ch; }
|
|
26
|
+
.truncate-chars-80 { max-width: 80ch; }
|
|
27
|
+
.truncate-chars-90 { max-width: 90ch; }
|
|
28
|
+
|
|
29
|
+
.indent {}
|
|
30
|
+
.indent-chars-1 { padding-left: 1ch; }
|
|
31
|
+
.indent-chars-2 { padding-left: 2ch; }
|
|
32
|
+
.indent-chars-3 { padding-left: 3ch; }
|
|
33
|
+
.indent-chars-4 { padding-left: 4ch; }
|
|
34
|
+
.indent-chars-5 { padding-left: 5ch; }
|
|
35
|
+
.indent-chars-6 { padding-left: 6ch; }
|
|
36
|
+
.indent-chars-7 { padding-left: 7ch; }
|
|
37
|
+
.indent-chars-8 { padding-left: 8ch; }
|
|
38
|
+
.indent-chars-9 { padding-left: 9ch; }
|
|
39
|
+
.indent-chars-10 { padding-left: 10ch; }
|
|
40
|
+
.indent-chars-11 { padding-left: 11ch; }
|
|
41
|
+
.indent-chars-12 { padding-left: 12ch; }
|
|
42
|
+
.indent-chars-13 { padding-left: 13ch; }
|
|
43
|
+
.indent-chars-14 { padding-left: 14ch; }
|
|
44
|
+
.indent-chars-15 { padding-left: 15ch; }
|
|
45
|
+
.indent-chars-16 { padding-left: 16ch; }
|
|
46
|
+
.indent-chars-17 { padding-left: 17ch; }
|
|
47
|
+
.indent-chars-18 { padding-left: 18ch; }
|
|
48
|
+
.indent-chars-19 { padding-left: 19ch; }
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
.bottom-margin-1 { margin-bottom: 1em; }
|
|
2
|
+
.bottom-margin-2 { margin-bottom: 2em; }
|
|
3
|
+
.bottom-margin-3 { margin-bottom: 3em; }
|
|
4
|
+
.bottom-margin-4 { margin-bottom: 4em; }
|
|
5
|
+
.bottom-margin-5 { margin-bottom: 5em; }
|
|
6
|
+
.bottom-margin-6 { margin-bottom: 6em; }
|
|
7
|
+
.bottom-margin-7 { margin-bottom: 7em; }
|
|
8
|
+
.bottom-margin-8 { margin-bottom: 8em; }
|
|
9
|
+
.bottom-margin-9 { margin-bottom: 9em; }
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/***************************************************************/
|
|
2
|
+
/* Author: db0 (db0company@gmail.com, http://db0.fr/) */
|
|
3
|
+
/* Sources/Licence: https://github.com/db0company/css-hexagon */
|
|
4
|
+
/***************************************************************/
|
|
5
|
+
|
|
6
|
+
@xxs: 14px;
|
|
7
|
+
@xs: 22px;
|
|
8
|
+
@sm: 44px;
|
|
9
|
+
@md: 64px;
|
|
10
|
+
@lg: 88px;
|
|
11
|
+
@xl: 120px;
|
|
12
|
+
|
|
13
|
+
@default: #ebebeb;
|
|
14
|
+
@default-hover: #cccccc;
|
|
15
|
+
@primary: #428bca;
|
|
16
|
+
@primary-hover: #3276b1;
|
|
17
|
+
@success: #5cb85c;
|
|
18
|
+
@success-hover: #47a447;
|
|
19
|
+
@info: #5bc0de;
|
|
20
|
+
@info-hover: #39b3d7;
|
|
21
|
+
@warning: #f0ad4e;
|
|
22
|
+
@warning-hover: #ed9c28;
|
|
23
|
+
@danger: #d9534f;
|
|
24
|
+
@danger-hover: #d2322d;
|
|
25
|
+
|
|
26
|
+
@fontmultiply: 0.7;
|
|
27
|
+
|
|
28
|
+
// *********************************************************** //
|
|
29
|
+
// Hexagon //
|
|
30
|
+
// *********************************************************** //
|
|
31
|
+
|
|
32
|
+
.hexagon-content(@size, @color: white) {
|
|
33
|
+
color: @color;
|
|
34
|
+
text-align: center;
|
|
35
|
+
font-size: @size * @fontmultiply;
|
|
36
|
+
&:hover {
|
|
37
|
+
color: @color;
|
|
38
|
+
text-decoration: none;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.hexagon(@side : @md, @color : @default) {
|
|
43
|
+
.hexagon-content(@side);
|
|
44
|
+
@radius: @side * 0.86602540378;
|
|
45
|
+
margin: (@side / 2) 0;
|
|
46
|
+
width: @radius * 2;
|
|
47
|
+
height: @side;
|
|
48
|
+
background-color: @color;
|
|
49
|
+
position: relative;
|
|
50
|
+
display: block;
|
|
51
|
+
&:before, &:after {
|
|
52
|
+
content: " ";
|
|
53
|
+
width: 0;
|
|
54
|
+
height: 0;
|
|
55
|
+
position: absolute;
|
|
56
|
+
border-left: @radius solid transparent;
|
|
57
|
+
border-right: @radius solid transparent;
|
|
58
|
+
left: 0;
|
|
59
|
+
}
|
|
60
|
+
&:before {
|
|
61
|
+
border-bottom: (@side / 2) solid @color;
|
|
62
|
+
top: (@side / 2 * -1);
|
|
63
|
+
}
|
|
64
|
+
&:after {
|
|
65
|
+
border-top: (@side / 2) solid @color;
|
|
66
|
+
bottom: (@side / 2 * -1);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.hexagon-changecolor(@color) {
|
|
71
|
+
background-color: @color;
|
|
72
|
+
&:before {
|
|
73
|
+
border-bottom-color: @color;
|
|
74
|
+
}
|
|
75
|
+
&:after {
|
|
76
|
+
border-top-color: @color;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/***************************************************************/
|
|
81
|
+
/* Sizes */
|
|
82
|
+
/***************************************************************/
|
|
83
|
+
|
|
84
|
+
/* Extra Extra Small */
|
|
85
|
+
.hexagon-xxs {
|
|
86
|
+
.hexagon(@xxs);
|
|
87
|
+
}
|
|
88
|
+
/* Extra Small */
|
|
89
|
+
.hexagon-xs {
|
|
90
|
+
.hexagon(@xs);
|
|
91
|
+
}
|
|
92
|
+
/* Small */
|
|
93
|
+
.hexagon-sm {
|
|
94
|
+
.hexagon(@sm);
|
|
95
|
+
}
|
|
96
|
+
/* Medium */
|
|
97
|
+
.hexagon-md {
|
|
98
|
+
.hexagon(@md);
|
|
99
|
+
}
|
|
100
|
+
/* Large */
|
|
101
|
+
.hexagon-lg {
|
|
102
|
+
.hexagon(@lg);
|
|
103
|
+
}
|
|
104
|
+
/* Extra large */
|
|
105
|
+
.hexagon-xl {
|
|
106
|
+
.hexagon(@xl);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/***************************************************************/
|
|
110
|
+
/* Colors */
|
|
111
|
+
/***************************************************************/
|
|
112
|
+
|
|
113
|
+
/* Default */
|
|
114
|
+
.hexagon-default {
|
|
115
|
+
.hexagon-changecolor(@default);
|
|
116
|
+
&.hexagon-hover:hover {
|
|
117
|
+
.hexagon-changecolor(@default-hover);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/* Primary */
|
|
121
|
+
.hexagon-primary {
|
|
122
|
+
.hexagon-changecolor(@primary);
|
|
123
|
+
&.hexagon-hover:hover {
|
|
124
|
+
.hexagon-changecolor(@primary-hover);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/* Success */
|
|
128
|
+
.hexagon-success {
|
|
129
|
+
.hexagon-changecolor(@success);
|
|
130
|
+
&.hexagon-hover:hover {
|
|
131
|
+
.hexagon-changecolor(@success-hover);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/* Info */
|
|
135
|
+
.hexagon-info {
|
|
136
|
+
.hexagon-changecolor(@info);
|
|
137
|
+
&.hexagon-hover:hover {
|
|
138
|
+
.hexagon-changecolor(@info-hover);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/* Warning */
|
|
142
|
+
.hexagon-warning {
|
|
143
|
+
.hexagon-changecolor(@warning);
|
|
144
|
+
&.hexagon-hover:hover {
|
|
145
|
+
.hexagon-changecolor(@warning-hover);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/* Danger */
|
|
149
|
+
.hexagon-danger {
|
|
150
|
+
.hexagon-changecolor(@danger);
|
|
151
|
+
&.hexagon-hover:hover {
|
|
152
|
+
.hexagon-changecolor(@danger-hover);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/***************************************************************/
|
|
157
|
+
/* Inline */
|
|
158
|
+
/***************************************************************/
|
|
159
|
+
.hexagon-inline {
|
|
160
|
+
display: inline-block;
|
|
161
|
+
}
|