mumuki-styles 1.15.0 → 1.15.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b6d21886367a4e8d9a4894a48b17f5ec8e847f37
4
- data.tar.gz: 82be8e353ddb05fe5e5b39f3a58fb86ee7c4bc2f
3
+ metadata.gz: 49b95f8fcec5ef36f11660173d8f730eb66f3a4f
4
+ data.tar.gz: e39c877bc60abca963835abacf1580b774cb1d70
5
5
  SHA512:
6
- metadata.gz: 7463298ea8a430b07bf4674d95a8548673b80679c74d156ef5292fd7e099c770563fb81b5b61842b67d82e6daff7d7ac5ad84c8cf1c4112f0d29a3c7d7e8da6d
7
- data.tar.gz: b9eb1089e641438b00fd503dbeed7a65328ddb021f3a9b1723253891ceb0c52be533fc08d521e5d691ee07d4871feaca51ef2fc292f92b27db47fc2e9aa3639c
6
+ metadata.gz: 35a83efa8f1f7d787d0579570519578fa5d6ddb0861cc858f793425670d19ff3d3b1ea6b379b2afda46fcf961c73fb26c737dc232e1a82992e9679bd75a7317b
7
+ data.tar.gz: d025d168648ad52f245cfc2fcb4d9a1f38002b25bb1851d5a6a4d42c1465d79edfa6824d856c27e11548bb4ecd15d59a3f5842b38995769c9b9b6b36768ba6d7
data/README.md CHANGED
@@ -87,89 +87,94 @@
87
87
 
88
88
  * `data-can-browse`: (Boolean) user can enter into a folder (default `false`).
89
89
  * `data-on-file-open`: (Function) receives 2 params, file name and file content. If no function given user can't open files.
90
- * `data-file`: (Object) object `keys` are the names of the resources and object `values` are theirs contents (sub-object for a folder and a string for a file).
90
+ * `data-file`: (Hash) hash `keys` are the names of the resources and hash `values` are theirs contents (sub-hash for a folder and a string for a file).
91
91
 
92
92
  With jQuery you can use function `$('.mu-file-browser').renderFileBrowser()`;
93
93
 
94
94
  ```html
95
95
  <div
96
96
  class='mu-erd'
97
- data-entities='[
98
- {
99
- "name": "Entity_1",
100
- "columns": [
101
- {
102
- "name": "ent1_id",
103
- "type": "Integer",
104
- "pk": true
105
- },
106
- {
107
- "name": "ent2_id",
108
- "type": "Integer",
109
- "pk": true,
110
- "fk": {
111
- "to": { "entity": "Entity_2", "column": "ent2_id" },
112
- "type": "one_to_one"
113
- }
114
- },
115
- {
116
- "name": "ent1_description",
117
- "type": "Varchar"
97
+ data-entities='{
98
+ "Entity_1": {
99
+ "ent1_id": {
100
+ "type": "Integer",
101
+ "pk": true
102
+ },
103
+ "ent2_id": {
104
+ "type": "Integer",
105
+ "pk": true,
106
+ "fk": {
107
+ "to": { "entity": "Entity_2", "column": "ent2_id" },
108
+ "type": "one_to_one"
118
109
  }
119
- ]
110
+ },
111
+ "ent1_description": {
112
+ "type": "Varchar"
113
+ }
120
114
  },
121
- {
122
- "name": "Entity_2",
123
- "columns": [
124
- {
125
- "name": "ent2_id",
126
- "type": "Integer",
127
- "pk": true
128
- }
129
- ]
115
+ "Entity_2": {
116
+ "ent2_id": {
117
+ "type": "Integer",
118
+ "pk": true
119
+ }
130
120
  },
131
- {
132
- "name": "Entity_3",
133
- "columns": [
134
- {
135
- "name": "ent3_id",
136
- "type": "Integer",
137
- "pk": true
138
- },
139
- {
140
- "name": "ent2_id",
141
- "type": "Integer",
142
- "pk": true,
143
- "fk": {
144
- "to": { "entity": "Entity_2", "column": "ent2_id" },
145
- "type": "many_to_one"
146
- }
147
- },
148
- {
149
- "name": "ent1_description",
150
- "type": "Varchar"
121
+ "Entity_3": {
122
+ "ent3_id": {
123
+ "type": "Integer",
124
+ "pk": true
125
+ },
126
+ "ent2_id": {
127
+ "type": "Integer",
128
+ "pk": true,
129
+ "fk": {
130
+ "to": { "entity": "Entity_2", "column": "ent2_id" },
131
+ "type": "many_to_one"
151
132
  }
152
- ]
133
+ },
134
+ "ent1_description": {
135
+ "type": "Varchar"
136
+ }
153
137
  }
154
- ]'>
138
+ }'>
155
139
  </div>
156
140
  ```
157
141
 
158
142
  #### mu-erd attributes
159
143
 
160
- * `data-entities`: (`Array<Object>`) Every entity object of the array should have:
161
- * `name`: (`String`) Entity name.
162
- * `columns`: (`Array<Object>`) Every column object of the array should have:
163
- * `name`: (`String`) Column field,
164
- * `type`: (`String`) Column type (Char, Number, Integer, Varchar),
165
- * `pk`: (`Boolean` - Optional) True if column es PK or part of one,
166
- * `fk`: (`Object` - Optional) with properties:
167
- * `to`: (`Object`) { entity: (Foreign entity), column: (Foreign column name) }
168
- * `type`: (`String`) one\_to\_one | one\_to\_many | many\_to\_one | many\_to\_many
144
+ * `data-entities`: (`Hash<EntityName, EntityColumns>`)
145
+ * `EntityName`: (`String`).
146
+ * `EntityColumns`: (`Hash<ColumnName, ColumnMetadata>`)
147
+ * `ColumnName`: (`String`)
148
+ * `ColumnMetadata`: (`Hash`)
149
+ * `type`: (`String`) Column type (Char, Number, Integer, Varchar, etc),
150
+ * `pk`: (`Boolean` - Optional) True if column es PK or part of one,
151
+ * `fk`: (`Hash` - Optional) with properties:
152
+ * `to`: (`Object`) { entity: (Foreign entity), column: (Foreign column name) }
153
+ * `type`: (`String`) one\_to\_one | one\_to\_many | many\_to\_one | many\_to\_many
169
154
 
170
155
  With jQuery you can use function `$('.mu-erd').renderERD()`;
171
156
 
172
157
 
158
+ ```html
159
+ <div
160
+ class='mu-browser'
161
+ data-url='https://mi-sitio.mumuki.io'
162
+ data-title='Mumuki - Aprender a programar'
163
+ data-favicon='https://mumuki.io/logo-alt.png'
164
+ data-srcdoc='<p>Hello Mumuki Browser</p>'>
165
+ </div>
166
+ ```
167
+
168
+ #### mu-browser attributes
169
+
170
+ * `data-srcdoc`: HTML of the page to show
171
+ * `data-url`: (Optional) URL of the page (default: `https://mumuki.io`)
172
+ * `data-title`: (Optional) Title of the browser's tab (default: `Mumuki`)
173
+ * `data-favicon`: (Optional) Favicon of the brower's tab (default: `https://mumuki.io/logo-alt.png`)
174
+
175
+ With jQuery you can use function `$('.mu-erd').renderWebBrowser()`;
176
+
177
+
173
178
  ## Installing
174
179
 
175
180
  You usually add `mumuki-styles` to an empty project. First you need to add it to your Gemfile:
@@ -12952,11 +12952,33 @@ mumuki.load(function () {
12952
12952
  return ['<line x1="', x1, '" x2="', x2, '" y1="', y1, '" y2="', y2, '" stroke="black" stroke-width="1"/>'].join('');
12953
12953
  }
12954
12954
 
12955
+ function mapEntityColumns(columnsObject) {
12956
+ var columns = [];
12957
+ for (var key in columnsObject) {
12958
+ var column = columnsObject[key];
12959
+ column.name = key;
12960
+ columns.push(column);
12961
+ }
12962
+ return columns;
12963
+ }
12964
+
12965
+ function mapEntities(entitiesObject) {
12966
+ var entities = [];
12967
+ for (var key in entitiesObject) {
12968
+ var entity = {};
12969
+ entity.name = key;
12970
+ entity.columns = mapEntityColumns(entitiesObject[key]);
12971
+ entities.push(entity);
12972
+ }
12973
+ return entities;
12974
+ }
12975
+
12955
12976
  $.fn.renderERD = function () {
12956
12977
  var self = this;
12978
+ self.empty();
12957
12979
  self.each(function (i) {
12958
12980
  var $diagram = $(self[i]);
12959
- var entities = $diagram.data('entities');
12981
+ var entities = mapEntities($diagram.data('entities'));
12960
12982
  appendEntities($diagram, entities);
12961
12983
  appendConnectors($diagram, entities);
12962
12984
  });
@@ -12964,7 +12986,7 @@ mumuki.load(function () {
12964
12986
  }
12965
12987
 
12966
12988
  window.addEventListener('resize', function () {
12967
- $('.mu-erd').empty().renderERD();
12989
+ $('.mu-erd').renderERD();
12968
12990
  });
12969
12991
 
12970
12992
  $('.mu-erd').renderERD();
@@ -12974,9 +12996,9 @@ mumuki.load(function () {
12974
12996
  mumuki.load(function () {
12975
12997
 
12976
12998
  function getBrowserHeader($browser) {
12977
- var title = $browser.data('title') || 'Mumuki';
12978
- var favicon = $browser.data('favicon') || 'https://mumuki.io/logo-alt-png';
12979
12999
  var url = $browser.data('url') || 'https://mumuki.io';
13000
+ var title = $browser.data('title') || 'Mumuki';
13001
+ var favicon = $browser.data('favicon') || 'https://mumuki.io/logo-alt.png';
12980
13002
  return $([
12981
13003
  '<header>',
12982
13004
  ' <ul class="mu-browser-tabs">',
@@ -12998,10 +13020,24 @@ mumuki.load(function () {
12998
13020
  ].join(''))
12999
13021
  }
13000
13022
 
13023
+ var _htmlEscapes = {
13024
+ '&': '&amp;',
13025
+ '<': '&lt;',
13026
+ '>': '&gt;',
13027
+ '"': '&quot;',
13028
+ "'": '&#39;'
13029
+ }
13030
+
13031
+ function escapeHTML(html) {
13032
+ return html.replace(/[&<>"']/g, function (chr) {
13033
+ return _htmlEscapes[chr];
13034
+ })
13035
+ }
13036
+
13001
13037
  function getBrowserMain($browser) {
13002
13038
  return $([
13003
13039
  '<main>',
13004
- ' <iframe srcdoc="', $browser.data('srcdoc'), '" frameborder="0"></iframe>',
13040
+ ' <iframe srcdoc="', escapeHTML($browser.data('srcdoc')), '" frameborder="0"></iframe>',
13005
13041
  '</main>'
13006
13042
  ].join(''));
13007
13043
  }
@@ -13019,6 +13055,10 @@ mumuki.load(function () {
13019
13055
 
13020
13056
  $browser.append($header);
13021
13057
  $browser.append($main);
13058
+
13059
+ var mainHeight = parseInt($browser.width() / (16/9), 10) - $header.height();
13060
+
13061
+ $main.css({ 'height': mainHeight, 'min-height': mainHeight });
13022
13062
  });
13023
13063
 
13024
13064
  return self;
@@ -5,7 +5,6 @@ $mu-color-browser-inactive-tabs: darken($mu-color-component-title-background, 5%
5
5
  width: 100%;
6
6
  position: relative;
7
7
  header {
8
- margin: 15px;
9
8
  margin-bottom: 0;
10
9
  @include display-flex(column nowrap, flex-start, flex-start);
11
10
  .mu-browser-tabs {
@@ -91,7 +90,6 @@ $mu-color-browser-inactive-tabs: darken($mu-color-component-title-background, 5%
91
90
  position: relative;
92
91
  border: $mu-component-border;
93
92
  border-top: none;
94
- margin: 15px;
95
93
  margin-top: 0;
96
94
  height: 500px;
97
95
  min-height: 500px;
@@ -9408,7 +9408,6 @@ pre code {
9408
9408
  width: 100%;
9409
9409
  position: relative; }
9410
9410
  .mu-browser header {
9411
- margin: 15px;
9412
9411
  margin-bottom: 0;
9413
9412
  display: flex;
9414
9413
  flex-flow: column nowrap;
@@ -9486,7 +9485,6 @@ pre code {
9486
9485
  position: relative;
9487
9486
  border: 2px solid #cfd9db;
9488
9487
  border-top: none;
9489
- margin: 15px;
9490
9488
  margin-top: 0;
9491
9489
  height: 500px;
9492
9490
  min-height: 500px; }
@@ -1,5 +1,5 @@
1
1
  module Mumuki
2
2
  module Styles
3
- VERSION = "1.15.0"
3
+ VERSION = "1.15.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mumuki-styles
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.15.0
4
+ version: 1.15.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Federico Scarpa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-26 00:00:00.000000000 Z
11
+ date: 2017-12-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler