Skip to content

Commit 68bed92

Browse files
Alex TharpAlex Tharp
authored andcommitted
Merge pull request #3 from cortex-cms/refactor-get-media-html-and-upgrade
Youtube Responsive, Refactor getMediaHtml and Upgrade
2 parents 2280e5c + 5a2ae27 commit 68bed92

File tree

6 files changed

+86
-35
lines changed

6 files changed

+86
-35
lines changed

bower.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
{
22
"name": "content-snippets-edit",
3-
"version": "0.1.0",
3+
"version": "0.2.0",
44
"ignore": [
55
"**/.*",
66
"node_modules",
77
"components"
88
],
99
"dependencies": {
10-
"riot": "~2.3.12",
10+
"riot": "~2.3.18",
1111
"q": "~1.3.0",
1212
"qajax": "[email protected]:cb-talent-development/qajax#master",
1313
"underscore": "~1.8.3",
14-
"materialize": "~0.97",
14+
"materialize": "~0.97.6",
1515
"normalize-scss": "~3.0"
1616
},
1717
"resolutions": {

package.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "content-snippets-edit",
3-
"version": "0.1.0",
3+
"version": "0.2.0",
44
"description": "A tool to enable in-page editing of elements with Cortex as a backend",
55
"author": "CB Content Enablement Product Team <[email protected]>",
66
"license": "Apache-2.0",
@@ -13,24 +13,24 @@
1313
"edit"
1414
],
1515
"devDependencies": {
16-
"gulp": "~3.9.0",
17-
"gulp-load-plugins": "~1.1.0",
16+
"gulp": "~3.9.1",
17+
"gulp-load-plugins": "~1.2.2",
1818
"gulp-autoprefixer": "~3.1.0",
1919
"gulp-concat": "~2.6.0",
2020
"gulp-ruby-sass": "~2.0.6",
21-
"gulp-riot": "~0.4.2",
22-
"gulp-size": "~2.0.0",
21+
"gulp-riot": "~0.4.9",
22+
"gulp-size": "~2.1.0",
2323
"gulp-util": "~3.0.7",
24-
"gulp-uglify": "~1.5.1",
24+
"gulp-uglify": "~1.5.3",
2525
"gulp-combine-mq": "~0.4.0",
26-
"gulp-minify-css": "~1.2.2",
26+
"gulp-minify-css": "~1.2.4",
2727
"gulp-rename": "~1.2.2",
2828
"gulp-ignore": "~2.0.1",
29-
"main-bower-files": "~2.11.0",
29+
"main-bower-files": "~2.13.0",
3030
"streamqueue": "~1.1.1",
31-
"dotenv": "~1.2.0"
31+
"dotenv": "~2.0.0"
3232
},
3333
"engines": {
34-
"node": ">=4.2.1"
34+
"node": ">=6.0.0"
3535
}
3636
}

src/app/main.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
MediasStore: new MediasStore()
2222
};
2323

24-
for (var k in stores) {
25-
RiotControl.addStore(stores[k]);
26-
}
24+
_.each(stores, function(store) {
25+
RiotControl.addStore(store);
26+
});
2727

2828
global.stores = stores;
2929

src/app/sass/main.scss

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
@import "components/reset";
77

88
// Mixins
9-
@import "materialize/sass/components/prefixer";
109
@import "materialize/sass/components/mixins";
1110
@import "materialize/sass/components/color";
1211

@@ -39,6 +38,8 @@
3938
@import "materialize/sass/components/global";
4039
@import "materialize/sass/components/icons-material-design";
4140
@import "materialize/sass/components/grid";
41+
@import "materialize/sass/components/navbar";
42+
@import "materialize/sass/components/roboto";
4243
@import "materialize/sass/components/typography";
4344
@import "materialize/sass/components/cards";
4445
@import "materialize/sass/components/toast";
@@ -49,8 +50,17 @@
4950
@import "materialize/sass/components/waves";
5051
@import "materialize/sass/components/modal";
5152
@import "materialize/sass/components/collapsible";
53+
@import "materialize/sass/components/chips";
5254
@import "materialize/sass/components/materialbox";
53-
@import "materialize/sass/components/form";
55+
@import "materialize/sass/components/forms/forms";
56+
@import "materialize/sass/components/table_of_contents";
57+
@import "materialize/sass/components/sideNav";
58+
@import "materialize/sass/components/preloader";
59+
@import "materialize/sass/components/slider";
60+
@import "materialize/sass/components/carousel";
61+
@import "materialize/sass/components/date_picker/default";
62+
@import "materialize/sass/components/date_picker/default.date";
63+
@import "materialize/sass/components/date_picker/default.time";
5464

5565
// icons
5666
@import "components/icons";

src/app/stores/MediasStore.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949

5050
MediasStore.prototype._search = function(query) {
5151
this.page.query = query;
52+
this.page.page = 1;
5253
this._fetch();
5354
};
5455

src/app/utility.js

Lines changed: 57 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,70 @@
1-
(function(global) {
1+
(function (global) {
22
'use strict';
33

4-
global.utility = {
5-
currentEditor: {},
6-
mediaLibraryModal: {},
7-
insertMedia: function(media) {
8-
this.currentEditor.insertHtml(getMediaHtml(media));
9-
this.mediaLibraryModal.closeModal();
10-
}
11-
};
4+
var getMediaHtml = function (media) {
5+
// must use setAttribute for non-standard attributes
6+
var getImageMediaElement = function (media) {
7+
var image = document.createElement('img');
8+
image.src = media.url;
9+
image.alt = media.name;
10+
11+
return image;
12+
},
13+
getYoutubeMediaElement = function (media) {
14+
var youtube = document.createElement('iframe');
15+
youtube.setAttribute('type', 'text/html');
16+
youtube.src = 'http://www.youtube.com/embed/' + media.video_id + '?rel=0&amp;enablejsapi=1controls=1&amp;showinfo=0&amp;wmode=transparent';
17+
youtube.setAttribute('frameborder', '0');
18+
youtube.style.position = 'absolute';
19+
youtube.style.top = '0';
20+
youtube.style.left = '0';
21+
youtube.width = '100%';
22+
youtube.height = '100%';
23+
24+
var fluidYoutubeWrap = document.createElement('div');
25+
fluidYoutubeWrap.className = 'video--fluid';
26+
fluidYoutubeWrap.style.height = '0';
27+
fluidYoutubeWrap.style.maxWidth = '100%';
28+
fluidYoutubeWrap.style.position = 'relative';
29+
fluidYoutubeWrap.style.paddingBottom = '56.25%';
30+
fluidYoutubeWrap.style.overflow = 'hidden';
31+
32+
fluidYoutubeWrap.appendChild(youtube);
1233

13-
var getMediaHtml = function(media) {
14-
var media_html;
34+
return fluidYoutubeWrap;
35+
},
36+
getPdfMediaElement = function (media) {
37+
var pdf = document.createElement('a');
38+
pdf.href = media.url;
39+
pdf.innerHTML = media.name;
1540

16-
switch(media.content_type) {
41+
return pdf;
42+
},
43+
mediaElement;
44+
45+
switch (media.content_type) {
1746
case 'image':
18-
media_html = '<img src="' + media.url + '" data-media-id="' + media.id + '" alt="' + media.name + '"></img>';
47+
mediaElement = getImageMediaElement(media);
1948
break;
2049
case 'youtube':
21-
media_html = '<iframe data-media-id="' + media.id + '" type="text/html" src="http://www.youtube.com/embed/' + media.video_id + '" frameborder="0" style="width: 100%; height: auto;" />';
50+
mediaElement = getYoutubeMediaElement(media);
2251
break;
2352
case 'pdf':
24-
media_html = '<a href="' + media.url + '" data-media-id="' + media.id + '">' + media.name + '</a>';
53+
mediaElement = getPdfMediaElement(media);
2554
break;
2655
}
2756

28-
return media_html;
29-
}
57+
mediaElement.setAttribute('data-media-id', media.id);
58+
return mediaElement.outerHTML;
59+
};
60+
61+
global.utility = {
62+
currentEditor: {},
63+
mediaLibraryModal: {},
64+
insertMedia: function (media) {
65+
this.currentEditor.insertHtml(getMediaHtml(media));
66+
this.mediaLibraryModal.closeModal();
67+
},
68+
getMediaHtml: getMediaHtml
69+
};
3070
}(this));

0 commit comments

Comments
 (0)