typus 3.1.2 → 3.1.3
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.
- data/CHANGELOG +23 -0
- data/Gemfile +5 -5
- data/README.md +8 -8
- data/app/assets/javascripts/typus/application.js +1 -1
- data/app/assets/javascripts/typus/jquery.application.js +25 -28
- data/app/controllers/admin/resources_controller.rb +1 -1
- data/app/helpers/admin/resources/data_types/belongs_to_helper.rb +3 -1
- data/app/helpers/admin/resources/data_types/dragonfly_helper.rb +1 -1
- data/app/helpers/admin/resources/data_types/has_and_belongs_to_many_helper.rb +3 -3
- data/app/helpers/admin/resources/data_types/has_many_helper.rb +2 -2
- data/app/helpers/admin/resources/data_types/has_one_helper.rb +1 -1
- data/app/helpers/admin/resources/data_types/paperclip_helper.rb +2 -2
- data/app/helpers/admin/resources/form_helper.rb +1 -1
- data/app/helpers/admin/resources/table_helper.rb +2 -2
- data/app/views/admin/dashboard/styles.html.erb +94 -90
- data/app/views/admin/dashboard/widgets/_applications.html.erb +1 -1
- data/app/views/admin/dashboard/widgets/_models.html.erb +1 -1
- data/app/views/admin/dashboard/widgets/_models_extended.html.erb +1 -1
- data/app/views/admin/resources/_form.html.erb +1 -1
- data/app/views/admin/resources/edit.html.erb +7 -5
- data/app/views/admin/templates/_belongs_to.html.erb +8 -2
- data/app/views/admin/templates/_date.html.erb +0 -5
- data/app/views/admin/templates/_datetime.html.erb +0 -5
- data/app/views/admin/templates/_has_and_belongs_to_many.html.erb +14 -12
- data/app/views/admin/templates/_text_with_ckeditor_and_assets.html.erb +1 -1
- data/config/routes.rb +2 -2
- data/lib/generators/typus/config_generator.rb +14 -9
- data/lib/support/string.rb +1 -1
- data/lib/typus.rb +3 -2
- data/lib/typus/configuration.rb +3 -3
- data/lib/typus/controller/autocomplete.rb +13 -0
- data/lib/typus/controller/format.rb +1 -1
- data/lib/typus/controller/headless.rb +3 -1
- data/lib/typus/i18n.rb +3 -4
- data/lib/typus/orm/active_record/class_methods.rb +4 -4
- data/lib/typus/orm/base.rb +2 -2
- data/lib/typus/resources.rb +1 -1
- data/lib/typus/version.rb +1 -1
- data/typus.gemspec +3 -2
- data/vendor/assets/chosen/LICENSE.md +24 -0
- data/vendor/assets/chosen/chosen.css +58 -24
- data/vendor/assets/chosen/chosen.jquery.js +888 -0
- data/vendor/assets/chosen/typus/chosen-sprite.png +0 -0
- metadata +27 -14
- data/vendor/assets/chosen/chosen-sprite.png +0 -0
- data/vendor/assets/chosen/chosen.jquery.min.js +0 -10
data/CHANGELOG
CHANGED
@@ -1,5 +1,28 @@
|
|
1
1
|
= 3.2.0 (unreleased)
|
2
2
|
|
3
|
+
= 3.1.3 (unreleased)
|
4
|
+
|
5
|
+
* [CHANGED] Added `Typus.chosen` so we can disable "Chosen". This will
|
6
|
+
be in Typus until "Chosen" supports remote data calls.
|
7
|
+
|
8
|
+
* [NEW] This is not really new ... I've taken back the autocomplete
|
9
|
+
feature which will be used eventually by "Chosen" once they support
|
10
|
+
remote calls.
|
11
|
+
|
12
|
+
* [CHANGED] Typus::Resources.minute_step is now nil by default.
|
13
|
+
|
14
|
+
* [CHANGED] Date and DateTime selectors should not set current date by default.
|
15
|
+
|
16
|
+
* [CHANGED] Generator now stores model configuration in a file with the
|
17
|
+
name of the model, not the plural.
|
18
|
+
|
19
|
+
* [CHANGED] Generators can be run without setting up a database.
|
20
|
+
|
21
|
+
* [CHANGED] We do not longer hide search boxes on Chosen. Apparently
|
22
|
+
it has been fixed: https://github.com/harvesthq/chosen/commit/d4c7005b5c
|
23
|
+
|
24
|
+
* [FIXED] Detaching a Paperclip was not working.
|
25
|
+
|
3
26
|
= 3.1.2
|
4
27
|
|
5
28
|
* [CHANGED] Images, links and belongs_to associations do not have links
|
data/Gemfile
CHANGED
@@ -42,18 +42,18 @@ gem "jquery-rails"
|
|
42
42
|
gem "ckeditor-rails", "0.0.2"
|
43
43
|
|
44
44
|
# Alternative authentication
|
45
|
-
gem "devise", "~> 1.4.
|
45
|
+
gem "devise", "~> 1.4.7"
|
46
46
|
|
47
47
|
# Asset Management with Dragonfly
|
48
|
-
gem "dragonfly", "~> 0.9"
|
48
|
+
gem "dragonfly", "~> 0.9.8"
|
49
49
|
gem "rack-cache", :require => "rack/cache"
|
50
50
|
|
51
51
|
# Asset Management with Paperclip
|
52
|
-
gem "paperclip", "~> 2.
|
52
|
+
gem "paperclip", "~> 2.4.2"
|
53
53
|
|
54
54
|
# MongoDB
|
55
|
-
gem "mongoid", "~> 2.
|
56
|
-
gem "bson_ext", "~> 1.
|
55
|
+
gem "mongoid", "~> 2.3.0"
|
56
|
+
gem "bson_ext", "~> 1.4.0"
|
57
57
|
|
58
58
|
group :test do
|
59
59
|
gem "shoulda-context", "~> 1.0.0.beta1"
|
data/README.md
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
# Typus: Admin Panel for Ruby on Rails applications
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
[](http://travis-ci.org/typus/typus)
|
4
|
+
|
5
|
+
**Typus** is a control panel for [Ruby on Rails][rails] applications to
|
6
|
+
allow trusted users edit structured content.
|
5
7
|
|
6
8
|
It’s not a CMS with a full working system but it provides a part of the
|
7
9
|
system: authentication, permissions and basic look and feel for your
|
@@ -42,7 +44,7 @@ and go to <http://0.0.0.0:3000/admin>.
|
|
42
44
|
|
43
45
|
## Testing
|
44
46
|
|
45
|
-
To test clone the
|
47
|
+
To test, clone the repo and run the following commands:
|
46
48
|
|
47
49
|
$ git clone git://github.com/typus/typus.git
|
48
50
|
$ bundle install --path vendor/bundle
|
@@ -56,15 +58,13 @@ user to be able to run tests.
|
|
56
58
|
## Links
|
57
59
|
|
58
60
|
- [Documentation](http://docs.typuscmf.com/)
|
59
|
-
- [
|
60
|
-
- [Source Code][typus] and [RubyGems][typus_gem]
|
61
|
+
- [RubyGems][typus_gem]
|
61
62
|
- [Mailing List](http://groups.google.com/group/typus)
|
62
63
|
- [Contributors List](http://github.com/typus/typus/contributors)
|
63
|
-
- [Travis Builds](http://travis-ci.org/#!/typus/typus)
|
64
64
|
|
65
65
|
## License
|
66
66
|
|
67
|
-
Typus is released under the MIT license.
|
67
|
+
**Typus** is released under the MIT license.
|
68
68
|
|
69
69
|
[typus]: http://github.com/typus/typus
|
70
70
|
[typus_demo]: http://demo.typuscmf.com/
|
@@ -72,4 +72,4 @@ Typus is released under the MIT license.
|
|
72
72
|
[typus_gem]: http://rubygems.org/gems/typus
|
73
73
|
[paperclip]: http://rubygems.org/gems/paperclip
|
74
74
|
[dragonfly]: http://rubygems.org/gems/dragonfly
|
75
|
-
[rails]: http://rubyonrails.org/
|
75
|
+
[rails]: http://rubyonrails.org/
|
@@ -2,7 +2,7 @@ $(document).ready(function() {
|
|
2
2
|
|
3
3
|
$("#quicksearch").searchField();
|
4
4
|
|
5
|
-
$(".resource :input", document.myForm).bind("change", function() { setConfirmUnload(true); });
|
5
|
+
$(".resource :input", document.myForm).bind("change", function() { Typus.setConfirmUnload(true); });
|
6
6
|
|
7
7
|
$("a.fancybox").fancybox({
|
8
8
|
'titlePosition': 'over',
|
@@ -11,27 +11,11 @@ $(document).ready(function() {
|
|
11
11
|
'scrolling': false,
|
12
12
|
});
|
13
13
|
|
14
|
-
$(".iframe").fancybox(
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
'transitionOut': 'none',
|
20
|
-
'type': 'iframe',
|
21
|
-
'centerOnScroll': true,
|
22
|
-
'scrolling': false,
|
23
|
-
onClosed: function() {
|
24
|
-
if (Typus.parent_location_reload) {
|
25
|
-
parent.location.reload(true);
|
26
|
-
} else {
|
27
|
-
var attribute = Typus.resource_attribute;
|
28
|
-
var text = Typus.resource_to_label;
|
29
|
-
var value = Typus.resource_id;
|
30
|
-
$(attribute).append(new Option(text, value, true, true));
|
31
|
-
$(".chzn-select").trigger("liszt:updated");
|
32
|
-
}
|
33
|
-
},
|
34
|
-
});
|
14
|
+
$(".iframe").fancybox(Typus.fancyboxDefaults);
|
15
|
+
|
16
|
+
$(".iframe_with_page_reload").fancybox(
|
17
|
+
$.extend(Typus.fancyboxDefaults, { onClosed: Typus.reloadParent })
|
18
|
+
);
|
35
19
|
|
36
20
|
// This method is used by Typus::Controller::Bulk
|
37
21
|
$(".action-toggle").click(function() {
|
@@ -40,16 +24,29 @@ $(document).ready(function() {
|
|
40
24
|
$('.action-toggle').each(function() { this.checked = status; });
|
41
25
|
});
|
42
26
|
|
43
|
-
$(".chzn-select").chosen();
|
44
|
-
|
45
27
|
});
|
46
28
|
|
47
|
-
Typus = {}
|
29
|
+
var Typus = {};
|
30
|
+
|
31
|
+
Typus.fancyboxDefaults = {
|
32
|
+
'width': 720,
|
33
|
+
'height': '90%',
|
34
|
+
'autoScale': false,
|
35
|
+
'transitionIn': 'none',
|
36
|
+
'transitionOut': 'none',
|
37
|
+
'type': 'iframe',
|
38
|
+
'centerOnScroll': true,
|
39
|
+
'scrolling': false,
|
40
|
+
};
|
41
|
+
|
42
|
+
Typus.setConfirmUnload = function(on) {
|
43
|
+
window.onbeforeunload = (on) ? Typus.unloadMessage : null;
|
44
|
+
}
|
48
45
|
|
49
|
-
function
|
50
|
-
|
46
|
+
Typus.reloadParent = function() {
|
47
|
+
if (Typus.parent_location_reload) parent.location.reload(true);
|
51
48
|
}
|
52
49
|
|
53
|
-
function
|
50
|
+
Typus.unloadMessage = function () {
|
54
51
|
return "You have entered new data on this page. If you navigate away from this page without first saving your data, the changes will be lost.";
|
55
52
|
}
|
@@ -190,7 +190,7 @@ class Admin::ResourcesController < Admin::BaseController
|
|
190
190
|
end
|
191
191
|
|
192
192
|
def set_eager_loading
|
193
|
-
if (eager_loading = @resource.reflect_on_all_associations(:belongs_to).reject { |i| i.options[:polymorphic] }.map
|
193
|
+
if (eager_loading = @resource.reflect_on_all_associations(:belongs_to).reject { |i| i.options[:polymorphic] }.map(&:name)).any?
|
194
194
|
@resource = @resource.includes(eager_loading)
|
195
195
|
end
|
196
196
|
end
|
@@ -25,9 +25,11 @@ module Admin::Resources::DataTypes::BelongsToHelper
|
|
25
25
|
related.order(related.typus_order_by).map { |p| [p.to_label, p.id] }
|
26
26
|
end
|
27
27
|
|
28
|
+
attribute_id = "#{@resource.name.underscore}_#{attribute}_id"
|
29
|
+
|
28
30
|
render "admin/templates/belongs_to",
|
29
31
|
:attribute => attribute,
|
30
|
-
:attribute_id =>
|
32
|
+
:attribute_id => attribute_id,
|
31
33
|
:form => form,
|
32
34
|
:related_fk => related_fk,
|
33
35
|
:related => related,
|
@@ -5,7 +5,7 @@ module Admin::Resources::DataTypes::DragonflyHelper
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def link_to_detach_attribute_for_dragonfly(attribute)
|
8
|
-
validators = @item.class.validators.delete_if { |i| i.class != ActiveModel::Validations::PresenceValidator }.map
|
8
|
+
validators = @item.class.validators.delete_if { |i| i.class != ActiveModel::Validations::PresenceValidator }.map(&:attributes).flatten.map(&:to_s)
|
9
9
|
attachment = @item.send(attribute)
|
10
10
|
|
11
11
|
if attachment.present? && !validators.include?(attribute) && attachment
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Admin::Resources::DataTypes::HasAndBelongsToManyHelper
|
2
2
|
|
3
3
|
def table_has_and_belongs_to_many_field(attribute, item)
|
4
|
-
item.send(attribute).map
|
4
|
+
item.send(attribute).map(&:to_label).join(", ")
|
5
5
|
end
|
6
6
|
|
7
7
|
alias_method :table_has_many_field, :table_has_and_belongs_to_many_field
|
@@ -22,9 +22,9 @@ module Admin::Resources::DataTypes::HasAndBelongsToManyHelper
|
|
22
22
|
locals = { :attribute => attribute,
|
23
23
|
:attribute_id => "#{model}_#{attribute}",
|
24
24
|
:related_klass => klass,
|
25
|
-
:related_items =>
|
25
|
+
:related_items => @item.send(attribute),
|
26
26
|
:related_ids => "#{model}[#{resource_ids}][]",
|
27
|
-
:values =>
|
27
|
+
:values => klass,
|
28
28
|
:form => form,
|
29
29
|
:label_text => label_text.html_safe,
|
30
30
|
:html_options => html_options }
|
@@ -37,12 +37,12 @@ module Admin::Resources::DataTypes::HasManyHelper
|
|
37
37
|
:action => "new",
|
38
38
|
:_popup => true }
|
39
39
|
|
40
|
-
link_to Typus::I18n.t("Add New"), default_options.merge(options), { :class => "
|
40
|
+
link_to Typus::I18n.t("Add New"), default_options.merge(options), { :class => "iframe_with_page_reload" }
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
44
|
def set_has_many_resource_actions
|
45
|
-
@resource_actions = [["Edit", { :action => "edit", :_popup => true }, { :class => '
|
45
|
+
@resource_actions = [["Edit", { :action => "edit", :_popup => true }, { :class => 'iframe_with_page_reload' }],
|
46
46
|
["Trash", { :action => "destroy" }, { :confirm => "Trash?" } ]]
|
47
47
|
end
|
48
48
|
|
@@ -24,7 +24,7 @@ module Admin::Resources::DataTypes::HasOneHelper
|
|
24
24
|
:action => "new",
|
25
25
|
:_popup => true }
|
26
26
|
|
27
|
-
link_to Typus::I18n.t("Add New"), default_options.merge(options), { :class => "
|
27
|
+
link_to Typus::I18n.t("Add New"), default_options.merge(options), { :class => "iframe_with_page_reload" }
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
@@ -6,14 +6,14 @@ module Admin::Resources::DataTypes::PaperclipHelper
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def link_to_detach_attribute_for_paperclip(attribute)
|
9
|
-
validators = @item.class.validators.delete_if { |i| i.class != ActiveModel::Validations::PresenceValidator }.map
|
9
|
+
validators = @item.class.validators.delete_if { |i| i.class != ActiveModel::Validations::PresenceValidator }.map(&:attributes).flatten.map(&:to_s)
|
10
10
|
attachment = @item.send(attribute)
|
11
11
|
|
12
12
|
if attachment.exists? && !validators.include?("#{attribute}_file_name") && attachment
|
13
13
|
attribute_i18n = @item.class.human_attribute_name(attribute)
|
14
14
|
label_text = <<-HTML
|
15
15
|
#{attribute_i18n}
|
16
|
-
<small>#{link_to Typus::I18n.t("Remove"), { :action => 'update', :id => @item.id, :
|
16
|
+
<small>#{link_to Typus::I18n.t("Remove"), { :action => 'update', :id => @item.id, :_nullify => attribute, :_continue => true }, :confirm => Typus::I18n.t("Are you sure?")}</small>
|
17
17
|
HTML
|
18
18
|
label_text.html_safe
|
19
19
|
end
|
@@ -21,7 +21,7 @@ module Admin::Resources::TableHelper
|
|
21
21
|
association = model.reflect_on_association(key.to_sym)
|
22
22
|
order_by = association ? association.foreign_key : key
|
23
23
|
|
24
|
-
if (model.model_fields.map(&:first).map
|
24
|
+
if (model.model_fields.map(&:first).map(&:to_s).include?(key) || model.reflect_on_all_associations(:belongs_to).map(&:name).include?(key.to_sym))
|
25
25
|
sort_order = case params[:sort_order]
|
26
26
|
when 'asc' then ['desc', '↓']
|
27
27
|
when 'desc' then ['asc', '↑']
|
@@ -50,7 +50,7 @@ module Admin::Resources::TableHelper
|
|
50
50
|
resource_actions.map do |body, url, options, proc|
|
51
51
|
next if proc && proc.respond_to?(:call) && proc.call(item) == false
|
52
52
|
{ :message => Typus::I18n.t(body),
|
53
|
-
:url => { :controller => "/admin/#{model.to_resource}", :id => item.id }.merge(
|
53
|
+
:url => params.dup.cleanup.merge({ :controller => "/admin/#{model.to_resource}", :id => item.id }).merge(url),
|
54
54
|
:options => options }
|
55
55
|
end
|
56
56
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
<div class="grid_2">
|
2
2
|
|
3
3
|
<h2>Header (h2) <small>Small <a href="#">link</a></small></h2>
|
4
4
|
|
@@ -26,124 +26,128 @@
|
|
26
26
|
<li>Lorem incididunt</li>
|
27
27
|
</ul>
|
28
28
|
|
29
|
-
|
29
|
+
</div>
|
30
30
|
|
31
|
-
<
|
31
|
+
<div class="grid_10">
|
32
32
|
|
33
|
-
<
|
34
|
-
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
|
35
|
-
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
36
|
-
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
|
37
|
-
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
|
38
|
-
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
33
|
+
<h2>Header (h2) <small>Small <a href="#">link</a></small></h2>
|
39
34
|
|
40
|
-
<blockquote>
|
41
35
|
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
|
42
36
|
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
|
43
37
|
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
44
|
-
consequat
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
<h3>Header (h3)</h3>
|
70
|
-
|
71
|
-
<p>
|
72
|
-
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
|
73
|
-
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
|
74
|
-
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
75
|
-
consequat.
|
76
|
-
</p>
|
77
|
-
|
78
|
-
<h2>Boxes</h2>
|
79
|
-
|
80
|
-
<div class="box">
|
38
|
+
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
|
39
|
+
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
|
40
|
+
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
41
|
+
|
42
|
+
<blockquote>
|
43
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
|
44
|
+
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
|
45
|
+
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
46
|
+
consequat.</p>
|
47
|
+
|
48
|
+
<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
|
49
|
+
dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
|
50
|
+
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
|
51
|
+
</blockquote>
|
52
|
+
|
53
|
+
<pre>
|
54
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
|
55
|
+
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
|
56
|
+
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
57
|
+
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
|
58
|
+
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
|
59
|
+
non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
60
|
+
</pre>
|
61
|
+
|
81
62
|
<p>
|
82
63
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
|
83
64
|
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
|
84
65
|
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
85
66
|
consequat.
|
86
67
|
</p>
|
87
|
-
</div>
|
88
68
|
|
89
|
-
<
|
90
|
-
<h3>Header (h3)</h3>
|
91
|
-
<ul>
|
92
|
-
<li>Lorem ipsum dolor sit amet</li>
|
93
|
-
<li>Duis aute irure dolor in reprehenderit in voluptate</li>
|
94
|
-
<li>Laboris nisi ut aliquip ex ea commodo</li>
|
95
|
-
</ul>
|
96
|
-
</div>
|
69
|
+
<p><a href="#">Link to self</a></p>
|
97
70
|
|
98
|
-
<div class="box">
|
99
71
|
<h3>Header (h3)</h3>
|
72
|
+
|
100
73
|
<p>
|
101
74
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
|
102
75
|
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
|
103
76
|
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
104
77
|
consequat.
|
105
78
|
</p>
|
106
|
-
<ul>
|
107
|
-
<li>Lorem ipsum dolor sit amet</li>
|
108
|
-
<li>Duis aute irure dolor in reprehenderit in voluptate</li>
|
109
|
-
<li>Laboris nisi ut aliquip ex ea commodo</li>
|
110
|
-
</ul>
|
111
|
-
</div>
|
112
79
|
|
113
|
-
<
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
80
|
+
<h2>Boxes</h2>
|
81
|
+
|
82
|
+
<div class="box">
|
83
|
+
<p>
|
84
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
|
85
|
+
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
|
86
|
+
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
87
|
+
consequat.
|
88
|
+
</p>
|
89
|
+
</div>
|
90
|
+
|
91
|
+
<div class="box">
|
92
|
+
<h3>Header (h3)</h3>
|
93
|
+
<ul>
|
94
|
+
<li>Lorem ipsum dolor sit amet</li>
|
95
|
+
<li>Duis aute irure dolor in reprehenderit in voluptate</li>
|
96
|
+
<li>Laboris nisi ut aliquip ex ea commodo</li>
|
97
|
+
</ul>
|
98
|
+
</div>
|
99
|
+
|
100
|
+
<div class="box">
|
101
|
+
<h3>Header (h3)</h3>
|
102
|
+
<p>
|
103
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
|
104
|
+
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
|
105
|
+
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
106
|
+
consequat.
|
107
|
+
</p>
|
108
|
+
<ul>
|
109
|
+
<li>Lorem ipsum dolor sit amet</li>
|
110
|
+
<li>Duis aute irure dolor in reprehenderit in voluptate</li>
|
111
|
+
<li>Laboris nisi ut aliquip ex ea commodo</li>
|
112
|
+
</ul>
|
113
|
+
</div>
|
119
114
|
|
120
|
-
<
|
115
|
+
<p>
|
116
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
|
117
|
+
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
|
118
|
+
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
119
|
+
consequat.
|
120
|
+
</p>
|
121
121
|
|
122
|
-
<
|
123
|
-
<strong>Hey!</strong> Sample ui-state-highlight style.
|
124
|
-
</div>
|
122
|
+
<h2>Error Messages (h2)</h2>
|
125
123
|
|
126
|
-
<div id="flash" class="
|
127
|
-
|
128
|
-
</div>
|
124
|
+
<div id="flash" class="notice">
|
125
|
+
<strong>Hey!</strong> Sample ui-state-highlight style.
|
126
|
+
</div>
|
129
127
|
|
130
|
-
<
|
128
|
+
<div id="flash" class="alert">
|
129
|
+
<strong>Alert:</strong> Sample ui-state-error style.
|
130
|
+
</div>
|
131
131
|
|
132
|
-
<
|
132
|
+
<h2>Filters (h2)</h2>
|
133
133
|
|
134
|
-
<
|
135
|
-
<ul>
|
136
|
-
<li>Filter</li>
|
137
|
-
<li>Filter</li>
|
138
|
-
</ul>
|
139
|
-
</div>
|
134
|
+
<h3>Filters with a list inside (h3)</h3>
|
140
135
|
|
141
|
-
<
|
136
|
+
<div class="filters">
|
137
|
+
<ul>
|
138
|
+
<li>Filter</li>
|
139
|
+
<li>Filter</li>
|
140
|
+
</ul>
|
141
|
+
</div>
|
142
142
|
|
143
|
-
<
|
144
|
-
<p>This is a paragraph.</p>
|
145
|
-
</div>
|
143
|
+
<h3>Filters with a paragraph inside (h3)</h3>
|
146
144
|
|
147
|
-
<
|
145
|
+
<div class="filters">
|
146
|
+
<p>This is a paragraph.</p>
|
147
|
+
</div>
|
148
148
|
|
149
|
-
<
|
149
|
+
<h2>Forms (h2)</h2>
|
150
|
+
|
151
|
+
<p>This is how a form looks like.</p>
|
152
|
+
|
153
|
+
</div>
|