jsharmony-cms 1.5.0 → 1.5.4
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.
- package/doc/deployment_target.json +6 -0
- package/models/Branch_Clone.js +1 -3
- package/models/Branch_Clone.json +3 -1
- package/models/Branch_Diff.json +1 -1
- package/models/Branch_Summary.js +1 -1
- package/models/Menu_Tree_Info.js +5 -12
- package/models/Menu_Tree_Info.json +9 -1
- package/models/Sitemap_Tree_Info.js +5 -12
- package/models/Sitemap_Tree_Info.json +9 -1
- package/models/_funcs.deploy.js +11 -20
- package/models/_funcs.page.js +1 -1
- package/models/_funcs.template.js +49 -28
- package/package.json +2 -2
- package/views/jsh_cms_editor.ejs +1 -0
|
@@ -101,6 +101,12 @@
|
|
|
101
101
|
"onDeploy": true, //true (all), false (none), or array of items, ex: ["page","media"]
|
|
102
102
|
"onDeploy_PostBuild": true, //true (all), false (none), or array of items, ex: ["page","media"]
|
|
103
103
|
},
|
|
104
|
+
//Remote folders or files to ignore when deleting excess files on publish
|
|
105
|
+
//Use with FTP, FTPS, SFTP, S3, and Local File System deployments
|
|
106
|
+
"ignore_remote": [
|
|
107
|
+
"path/to/folder",
|
|
108
|
+
"path/to/file"
|
|
109
|
+
]
|
|
104
110
|
}
|
|
105
111
|
|
|
106
112
|
//Template Variables
|
package/models/Branch_Clone.js
CHANGED
|
@@ -9,9 +9,7 @@ jsh.App[modelid] = new (function(){
|
|
|
9
9
|
jChangeStatus.html(XExt.renderClientEJS(tmpl, { _: _, jsh: jsh }));
|
|
10
10
|
}
|
|
11
11
|
else {
|
|
12
|
-
|
|
13
|
-
jChangeStatus.prev('.xform_caption').hide(); //Caption
|
|
14
|
-
jChangeStatus.prev().prev('br').hide(); //Newline
|
|
12
|
+
jsh.$root('.'+xmodel.class+'_change_status_group').hide();
|
|
15
13
|
}
|
|
16
14
|
};
|
|
17
15
|
|
package/models/Branch_Clone.json
CHANGED
|
@@ -28,7 +28,9 @@
|
|
|
28
28
|
"lov":{ "sql": "select 'PUBLIC' code_val, 'Release' code_txt where ({schema}.my_user_is_publisher({schema}.my_current_site_id()) = 1) union all select 'USER' code_val, (select concat(sys_user_fname,' ',sys_user_lname) from jsharmony.sys_user where jsharmony.sys_user.sys_user_id=jsharmony.my_sys_user_id()) code_txt" } },
|
|
29
29
|
{"control":"html","value":" / ","nl":false},
|
|
30
30
|
{"name":"new_branch_name","actions":"BU","type":"varchar","control":"textbox","caption":"","nl":false,"validate":["Required"],"caption_ext":"New Revision Name","focus":true,"controlparams":{"placeholder":"New Revision Name"}},
|
|
31
|
-
{"control":"html","value":"<
|
|
31
|
+
{"control":"html","value":"<span class='<%=model.class%>_change_status_group'>"},
|
|
32
|
+
{"control":"html","value":"<div class='<%=model.class%>_Change_Status'></div>","caption":"Change Status","captionclass":"Change_Status_caption","captionstyle":"vertical-align:top;font-weight:bold;padding-top:3px;"},
|
|
33
|
+
{"control":"html","value":"</span>"},
|
|
32
34
|
{"name":"new_branch_changes","control":"hidden","type":"varchar","length":8,"actions":"BU","ongetvalue":"return _this.Change_Status_getvalue(val,field,xmodel);"},
|
|
33
35
|
{"control":"button","value":"Clone","controlstyle": "padding:3px 8px;margin-top:6px;","onclick": "if(!xmodel.controller.form.Data.Commit()) return; XForm.prototype.XExecutePost(xmodel.id+'/?branch_id='+xmodel.get('branch_id'), { new_branch_type: xmodel.get('new_branch_type'), new_branch_name: xmodel.get('new_branch_name'), new_branch_changes: xmodel.get('new_branch_changes') }, function(rslt){ xmodel.controller.form.ResetDirty(); XExt.navTo(jsh._BASEURL+xmodel.module_namespace+'Sitemap_Listing_Redirect'); });"}
|
|
34
36
|
]
|
package/models/Branch_Diff.json
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
{"name":"branch_user_id_fmt","caption":"Author","control":"label","sqlselect":"(jsharmony.get_sys_user_name(branch_user_id))"},
|
|
18
18
|
{"name":"branch_sts","caption":"Status","control":"label"},
|
|
19
19
|
{"name":"branch_data_mtstmp_fmt","type":"datetime","caption":"Last Modified","sqlselect":"$ifnull(branch_data_mtstmp,branch_mtstmp)","control":"label","format":["date","MM/DD/YYYY h:mm a"]},
|
|
20
|
-
{"caption":"Actions","control":"html","captionstyle":"display:none;vertical-align:top;padding-top:5px;font-weight:bold;text-align:right;",
|
|
20
|
+
{"caption":"Actions","control":"html","captionstyle":"display:none;vertical-align:top;padding-top:5px;font-weight:bold;text-align:right;","captionclass":"actions_bar_caption",
|
|
21
21
|
"value":"<div class='<%=model.class%>_actions_bar jsHarmonyCms_Branch_Summary_Actions_Bar'></div>"},
|
|
22
22
|
{"name":"branch_merge_desc","caption":"Merge In Progress","control":"label","captionstyle":"font-weight:bold;text-align:right;","block":true,"blockclass":"branch_merge_desc","sqlselect":"(select branch_desc from {schema}.branch merge_branch inner join {schema}.v_my_branch_desc merge_branch_desc on (merge_branch.branch_id=v_my_branch_desc.branch_id and merge_branch.branch_merge_id=merge_branch_desc.branch_id))"},
|
|
23
23
|
{"name":"branch_type","control":"hidden"},
|
package/models/Branch_Summary.js
CHANGED
|
@@ -19,7 +19,7 @@ jsh.App[modelid] = new (function(){
|
|
|
19
19
|
}
|
|
20
20
|
var diffModel = jsh.XModels[jsh.$root('.xform'+xmodel.class+' .xsubform_diff .xpanel .xform').first().data('id')];
|
|
21
21
|
var actionsBar = jsh.$root('.'+diffModel.class+'_actions_bar');
|
|
22
|
-
|
|
22
|
+
jsh.$root('.xform'+diffModel.class+' .actions_bar_caption').show();
|
|
23
23
|
var buttonGroup = jsh.$root('.xactions_group.xelem'+xmodel.class+'[data-group="Actions"]');
|
|
24
24
|
actionsBar.html(buttonGroup.html());
|
|
25
25
|
}
|
package/models/Menu_Tree_Info.js
CHANGED
|
@@ -61,18 +61,11 @@ jsh.App[modelid] = new (function(){
|
|
|
61
61
|
this.updateEnabledState = function(){
|
|
62
62
|
var menu_item_link_type = xmodel.get('menu_item_link_type');
|
|
63
63
|
|
|
64
|
-
var
|
|
65
|
-
var
|
|
66
|
-
|
|
67
|
-
var
|
|
68
|
-
var
|
|
69
|
-
var jdest_group = jdest.add(jdest.prevUntil('.xelem'+xmodel.class));
|
|
70
|
-
|
|
71
|
-
var jdest_page = $('.menu_item_link_page.xelem'+xmodel.class);
|
|
72
|
-
var jdest_page_group = jdest_page.add(jdest_page.prevUntil('.xelem'+xmodel.class)).add(jdest_page.next('.xelem'+xmodel.class));
|
|
73
|
-
|
|
74
|
-
var jdest_media = $('.menu_item_link_media.xelem'+xmodel.class);
|
|
75
|
-
var jdest_media_group = jdest_media.add(jdest_media.prevUntil('.xelem'+xmodel.class)).add(jdest_media.next('.xelem'+xmodel.class));
|
|
64
|
+
var jtarget_group = $('.'+xmodel.class+'_link_target_group');
|
|
65
|
+
var jdestcaption = $('.sitemap_item_link_dest_caption');
|
|
66
|
+
var jdest_group = $('.'+xmodel.class+'_link_dest_group');
|
|
67
|
+
var jdest_page_group = $('.'+xmodel.class+'_link_page_group');
|
|
68
|
+
var jdest_media_group = $('.'+xmodel.class+'_link_media_group');
|
|
76
69
|
|
|
77
70
|
var enable_target = true;
|
|
78
71
|
var enable_dest = false;
|
|
@@ -20,18 +20,26 @@
|
|
|
20
20
|
{"name":"menu_item_path","control":"hidden"},
|
|
21
21
|
{"name":"menu_item_text","control":"textbox_M","caption":"Text","controlstyle":"width:300px;","validate":["Required"],"nl":true,"onchange":"_this.menu_item_text_onchange(obj,newval);", "captionstyle":"width:68px;"},
|
|
22
22
|
{"name":"menu_item_link_type","control":"dropdown","caption":"Link Type","lov":{ "blank": "(No Link)", "values": { "JS": "JavaScript", "MEDIA": "Media", "PAGE": "Page", "URL": "URL" } }, "onchange":"_this.menu_item_link_type_onchange(obj, newval, undoChange);","nl":true},
|
|
23
|
+
{"control":"html","value":"<span class='<%=model.class%>_link_target_group'>"},
|
|
23
24
|
{"name":"menu_item_link_target","control":"dropdown","caption":"Target","lov":{ "blank": "Same Window", "values": { "NEWWIN": "New Window" } }},
|
|
25
|
+
{"control":"html","value":"</span>"},
|
|
24
26
|
|
|
25
|
-
{"
|
|
27
|
+
{"control":"html","value":"<span class='<%=model.class%>_link_dest_group'>"},
|
|
28
|
+
{"name":"menu_item_link_dest","control":"textbox_L","caption":"Destination","captionclass":"menu_item_link_dest_caption","controlstyle":"width:300px;","nl":true,
|
|
26
29
|
"validate":[{"function":"js:if((_obj.menu_item_link_type=='URL') && !_obj.menu_item_link_dest) return 'URL is required'; if((_obj.menu_item_link_type=='JS') && !_obj.menu_item_link_dest) return 'JS is required';"}]},
|
|
30
|
+
{"control":"html","value":"</span>"},
|
|
27
31
|
|
|
32
|
+
{"control":"html","value":"<span class='<%=model.class%>_link_page_group'>"},
|
|
28
33
|
{"name":"menu_item_link_page","control":"textbox_M","caption":"Page","controlstyle":"margin-right:4px;","readonly":true,"nl":true,
|
|
29
34
|
"validate":[{"function":"js:if((_obj.menu_item_link_type=='PAGE') && !_obj.menu_item_link_dest) return 'Page is required';"}]},
|
|
30
35
|
{"name":"menu_item_link_page_browse","control":"button","value":"Browse","onclick":"js:_this.browsePage();","actions":"IU"},
|
|
36
|
+
{"control":"html","value":"</span>"},
|
|
31
37
|
|
|
38
|
+
{"control":"html","value":"<span class='<%=model.class%>_link_media_group'>"},
|
|
32
39
|
{"name":"menu_item_link_media","control":"textbox_M","caption":"Media","controlstyle":"margin-right:4px;","readonly":true,"nl":true,
|
|
33
40
|
"validate":[{"function":"js:if((_obj.menu_item_link_type=='MEDIA') && !_obj.menu_item_link_dest) return 'Media is required';"}]},
|
|
34
41
|
{"name":"menu_item_link_media_browse","control":"button","value":"Browse","onclick":"js:_this.browseMedia();","actions":"IU"},
|
|
42
|
+
{"control":"html","value":"</span>"},
|
|
35
43
|
|
|
36
44
|
{"control":"html","value":"<div class='<%=model.class%>_divider'>:: Advanced Options</div>","nl":true},
|
|
37
45
|
{"name":"menu_item_type","control":"dropdown","caption":"Render As","default":"TEXT","lov":{ "blank": false, "values": { "TEXT": "Text", "HTML": "HTML" } }, "captionstyle":"width:130px;"},
|
|
@@ -113,18 +113,11 @@ jsh.App[modelid] = new (function(){
|
|
|
113
113
|
this.render = function(){
|
|
114
114
|
var sitemap_item_link_type = xmodel.get('sitemap_item_link_type');
|
|
115
115
|
|
|
116
|
-
var
|
|
117
|
-
var
|
|
118
|
-
|
|
119
|
-
var
|
|
120
|
-
var
|
|
121
|
-
var jdest_group = jdest.add(jdest.prevUntil('.xelem'+xmodel.class));
|
|
122
|
-
|
|
123
|
-
var jdest_page = $('.sitemap_item_link_page.xelem'+xmodel.class);
|
|
124
|
-
var jdest_page_group = jdest_page.add(jdest_page.prevUntil('.xelem'+xmodel.class)).add(jdest_page.next('.xelem'+xmodel.class));
|
|
125
|
-
|
|
126
|
-
var jdest_media = $('.sitemap_item_link_media.xelem'+xmodel.class);
|
|
127
|
-
var jdest_media_group = jdest_media.add(jdest_media.prevUntil('.xelem'+xmodel.class)).add(jdest_media.next('.xelem'+xmodel.class));
|
|
116
|
+
var jtarget_group = $('.'+xmodel.class+'_link_target_group');
|
|
117
|
+
var jdestcaption = $('.sitemap_item_link_dest_caption');
|
|
118
|
+
var jdest_group = $('.'+xmodel.class+'_link_dest_group');
|
|
119
|
+
var jdest_page_group = $('.'+xmodel.class+'_link_page_group');
|
|
120
|
+
var jdest_media_group = $('.'+xmodel.class+'_link_media_group');
|
|
128
121
|
|
|
129
122
|
var enable_target = true;
|
|
130
123
|
var enable_dest = false;
|
|
@@ -30,18 +30,26 @@
|
|
|
30
30
|
{"name":"sitemap_item_path","control":"hidden"},
|
|
31
31
|
{"name":"sitemap_item_text","control":"textbox_M","controlstyle":"width:300px;","caption":"Link Text","validate":["Required"],"nl":true,"onchange":"_this.sitemap_item_text_onchange(obj,newval);", "captionstyle":"width:68px;"},
|
|
32
32
|
{"name":"sitemap_item_link_type","control":"dropdown","caption":"Link Type","lov":{ "blank": "(No Link)", "values": { "JS": "JavaScript", "MEDIA": "Media", "PAGE": "Page", "URL": "URL" } }, "onchange":"_this.sitemap_item_link_type_onchange(obj, newval, undoChange);","nl":true},
|
|
33
|
+
{"control":"html","value":"<span class='<%=model.class%>_link_target_group'>"},
|
|
33
34
|
{"name":"sitemap_item_link_target","control":"dropdown","caption":"Target","lov":{ "blank": "Same Window", "values": { "NEWWIN": "New Window" } }},
|
|
35
|
+
{"control":"html","value":"</span>"},
|
|
34
36
|
|
|
35
|
-
{"
|
|
37
|
+
{"control":"html","value":"<span class='<%=model.class%>_link_dest_group'>"},
|
|
38
|
+
{"name":"sitemap_item_link_dest","control":"textbox_L","caption":"Destination","captionclass":"sitemap_item_link_dest_caption","controlstyle":"width:300px;","nl":true,
|
|
36
39
|
"validate":[{"function":"js:if((_obj.sitemap_item_link_type=='URL') && !_obj.sitemap_item_link_dest) return 'URL is required'; if((_obj.sitemap_item_link_type=='JS') && !_obj.sitemap_item_link_dest) return 'JS is required';"}]},
|
|
40
|
+
{"control":"html","value":"</span>"},
|
|
37
41
|
|
|
42
|
+
{"control":"html","value":"<span class='<%=model.class%>_link_page_group'>"},
|
|
38
43
|
{"name":"sitemap_item_link_page","control":"textbox_M","caption":"Page","controlstyle":"margin-right:4px;","readonly":true,"nl":true,
|
|
39
44
|
"validate":[{"function":"js:if((_obj.sitemap_item_link_type=='PAGE') && !_obj.sitemap_item_link_dest) return 'Page is required';"}]},
|
|
40
45
|
{"name":"sitemap_item_link_page_browse","control":"button","value":"Browse","onclick":"js:_this.browsePage();","actions":"IU"},
|
|
46
|
+
{"control":"html","value":"</span>"},
|
|
41
47
|
|
|
48
|
+
{"control":"html","value":"<span class='<%=model.class%>_link_media_group'>"},
|
|
42
49
|
{"name":"sitemap_item_link_media","control":"textbox_M","caption":"Media","controlstyle":"margin-right:4px;","readonly":true,"nl":true,
|
|
43
50
|
"validate":[{"function":"js:if((_obj.sitemap_item_link_type=='MEDIA') && !_obj.sitemap_item_link_dest) return 'Media is required';"}]},
|
|
44
51
|
{"name":"sitemap_item_link_media_browse","control":"button","value":"Browse","onclick":"js:_this.browseMedia();","actions":"IU"},
|
|
52
|
+
{"control":"html","value":"</span>"},
|
|
45
53
|
|
|
46
54
|
{"control":"html","value":"<div class='<%=model.class%>_page_options'>"},
|
|
47
55
|
{"control":"html","value":"<div class='<%=model.class%>_divider'>:: Page</div>"},
|
package/models/_funcs.deploy.js
CHANGED
|
@@ -1835,7 +1835,7 @@ module.exports = exports = function(module, funcs){
|
|
|
1835
1835
|
function(generate_cb){
|
|
1836
1836
|
async.eachOfSeries(branchData.site_config.media_thumbnails, function(thumbnail_config, thumbnail_id, thumbnail_cb){
|
|
1837
1837
|
if(!thumbnail_config || !thumbnail_config.export) return thumbnail_cb();
|
|
1838
|
-
if(!_.includes(['.jpg','.jpeg','.tif','.tiff','.png','.gif','.svg'], media.media_ext)) return
|
|
1838
|
+
if(!_.includes(['.jpg','.jpeg','.tif','.tiff','.png','.gif','.svg'], media.media_ext)) return thumbnail_cb();
|
|
1839
1839
|
|
|
1840
1840
|
funcs.getMediaFile(media.media_file_id, media.media_filename, media.media_ext, thumbnail_id, thumbnail_config, function(err, thumbnail_srcpath, thumbnail_fname, stat){
|
|
1841
1841
|
if(err) return thumbnail_cb('Error getting thumbnail for '+media_fpath+':'+thumbnail_id+' - '+err.toString());
|
|
@@ -2011,27 +2011,16 @@ module.exports = exports = function(module, funcs){
|
|
|
2011
2011
|
|
|
2012
2012
|
exports.deploy_ignore_remote = function(publish_params, fpath){
|
|
2013
2013
|
if(fpath=='.git') return true;
|
|
2014
|
-
return false;
|
|
2015
|
-
/*
|
|
2016
2014
|
if(!publish_params || !publish_params.ignore_remote) return false;
|
|
2017
|
-
var origpath = fpath;
|
|
2018
2015
|
fpath = HelperFS.convertWindowsToPosix(fpath);
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
else {
|
|
2026
|
-
if(ignore_expr == fpath) return true;
|
|
2027
|
-
}
|
|
2028
|
-
}
|
|
2029
|
-
fpath = path.dirname(fpath);
|
|
2030
|
-
if(fpath=='.') fpath = '';
|
|
2031
|
-
if(fpath=='..') fpath = '';
|
|
2016
|
+
for(var i=0;i<publish_params.ignore_remote.length;i++){
|
|
2017
|
+
var ignore_expr = publish_params.ignore_remote[i];
|
|
2018
|
+
if(!ignore_expr) continue;
|
|
2019
|
+
var ignore_path = HelperFS.convertWindowsToPosix(ignore_expr.toString());
|
|
2020
|
+
if(ignore_path == fpath) return true;
|
|
2021
|
+
if(fpath.indexOf(ignore_path+'/')==0) return true;
|
|
2032
2022
|
}
|
|
2033
|
-
return
|
|
2034
|
-
*/
|
|
2023
|
+
return false;
|
|
2035
2024
|
}
|
|
2036
2025
|
|
|
2037
2026
|
exports.deploy_fs = function(deployment, publish_path, deploy_path, site_files, cb){
|
|
@@ -2613,7 +2602,9 @@ module.exports = exports = function(module, funcs){
|
|
|
2613
2602
|
if(site_md5 != s3_md5) s3_upload.push(fname);
|
|
2614
2603
|
}
|
|
2615
2604
|
else {
|
|
2616
|
-
|
|
2605
|
+
if(!funcs.deploy_ignore_remote(deployment.publish_params, fname)){
|
|
2606
|
+
s3_delete.push(fname);
|
|
2607
|
+
}
|
|
2617
2608
|
}
|
|
2618
2609
|
}
|
|
2619
2610
|
for(var fname in site_files){
|
package/models/_funcs.page.js
CHANGED
|
@@ -447,7 +447,7 @@ module.exports = exports = function(module, funcs){
|
|
|
447
447
|
var rslt = funcs.replaceBranchURLs(content, _.extend({ replaceComponents: true }, options, {
|
|
448
448
|
getMediaURL: function(media_key, thumbnail_id, branchData, getLinkContent, urlparts){
|
|
449
449
|
if(!media_files){
|
|
450
|
-
return baseurl + urlparts.
|
|
450
|
+
return baseurl + urlparts.pathname.substr(1) + '#@JSHCMS';
|
|
451
451
|
}
|
|
452
452
|
return baseurl+'_funcs/media/'+media_key+(thumbnail_id?'/'+thumbnail_id:'')+'/?media_id='+media_files[media_key].media_id+'#@JSHCMS';
|
|
453
453
|
},
|
|
@@ -1693,7 +1693,8 @@ module.exports = exports = function(module, funcs){
|
|
|
1693
1693
|
if(thumbnails[key].responsive) responsiveThumbnails[key] = thumbnails[key];
|
|
1694
1694
|
}
|
|
1695
1695
|
|
|
1696
|
-
|
|
1696
|
+
var lcontent = content.toLowerCase();
|
|
1697
|
+
if(_.isEmpty(responsiveThumbnails) && (lcontent.indexOf('cms-image-dimensions') < 0)) return content;
|
|
1697
1698
|
|
|
1698
1699
|
//If no img tags, return
|
|
1699
1700
|
if(content.toLowerCase().indexOf('img') < 0) return content;
|
|
@@ -1705,7 +1706,7 @@ module.exports = exports = function(module, funcs){
|
|
|
1705
1706
|
exec: function(node){
|
|
1706
1707
|
var src = (htdoc.getAttr(node, 'src')||'').toString();
|
|
1707
1708
|
if(!src) return;
|
|
1708
|
-
if(htdoc.hasAttr(node, 'srcset')) return;
|
|
1709
|
+
if(htdoc.hasAttr(node, 'srcset') && !htdoc.hasAttr(node, 'cms-image-dimensions')) return;
|
|
1709
1710
|
|
|
1710
1711
|
//Check for #@JSHCMS
|
|
1711
1712
|
var urlparts = null;
|
|
@@ -1727,42 +1728,62 @@ module.exports = exports = function(module, funcs){
|
|
|
1727
1728
|
//Check if media_key is valid
|
|
1728
1729
|
var media_item = media_items[media_key];
|
|
1729
1730
|
var media_width = 0;
|
|
1730
|
-
|
|
1731
|
+
var media_height = 0;
|
|
1732
|
+
if(media_item){
|
|
1733
|
+
if(media_item.media_width) media_width = media_item.media_width;
|
|
1734
|
+
if(media_item.media_height) media_height = media_item.media_height;
|
|
1735
|
+
}
|
|
1731
1736
|
if(media_thumbnail && (media_thumbnail in thumbnails)){
|
|
1732
1737
|
var tgtThumbnail = thumbnails[media_thumbnail];
|
|
1733
|
-
if(tgtThumbnail.resize && tgtThumbnail.resize.length)
|
|
1734
|
-
|
|
1738
|
+
if(tgtThumbnail.resize && tgtThumbnail.resize.length){
|
|
1739
|
+
media_width = tgtThumbnail.resize[0];
|
|
1740
|
+
media_height = tgtThumbnail.resize[1];
|
|
1741
|
+
}
|
|
1742
|
+
else if(tgtThumbnail.crop && tgtThumbnail.crop.length){
|
|
1743
|
+
media_width = tgtThumbnail.crop[0];
|
|
1744
|
+
media_height = tgtThumbnail.crop[1];
|
|
1745
|
+
}
|
|
1735
1746
|
}
|
|
1736
1747
|
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
var
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1748
|
+
if(!htdoc.hasAttr(node, 'srcset')){
|
|
1749
|
+
var srcsets = [];
|
|
1750
|
+
var max_width = media_width;
|
|
1751
|
+
for(var thumbnail_id in responsiveThumbnails){
|
|
1752
|
+
var thumbnail = responsiveThumbnails[thumbnail_id];
|
|
1753
|
+
var srcsetCondition = '';
|
|
1754
|
+
if(_.isString(thumbnail.responsive)) srcsetCondition = thumbnail.responsive;
|
|
1755
|
+
else {
|
|
1756
|
+
var thumbnail_width = 0;
|
|
1757
|
+
if(media_item && media_item.media_width) thumbnail_width = media_item.media_width;
|
|
1758
|
+
if(thumbnail.resize && thumbnail.resize.length) thumbnail_width = thumbnail.resize[0];
|
|
1759
|
+
else if(thumbnail.crop && thumbnail.crop.length) thumbnail_width = thumbnail.crop[0];
|
|
1760
|
+
|
|
1761
|
+
if(thumbnail_width && (!media_width || (thumbnail_width < media_width))){
|
|
1762
|
+
srcsetCondition = thumbnail_width + 'w';
|
|
1763
|
+
if(thumbnail_width >= max_width) max_width = thumbnail_width + 1;
|
|
1764
|
+
}
|
|
1765
|
+
}
|
|
1766
|
+
|
|
1767
|
+
if(srcsetCondition){
|
|
1768
|
+
//Generate srcset
|
|
1769
|
+
var srcsetUrl = urlparts.protocol+'//'+urlparts.host+'/_funcs/media/'+media_key+'/'+thumbnail_id+'/#@JSHCMS'+urlparts.hash.substr(('#@JSHCMS').length);
|
|
1770
|
+
srcsets.push(srcsetUrl+' '+srcsetCondition);
|
|
1752
1771
|
}
|
|
1753
1772
|
}
|
|
1754
1773
|
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
srcsets.
|
|
1774
|
+
//Update img tag
|
|
1775
|
+
if(srcsets.length){
|
|
1776
|
+
srcsets.unshift(src + ' ' + max_width + 'w');
|
|
1777
|
+
htdoc.appendAttr(node, 'srcset', srcsets.join(', '), 'srcset');
|
|
1759
1778
|
}
|
|
1760
1779
|
}
|
|
1761
1780
|
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1781
|
+
if(media_width && media_height && htdoc.hasAttr(node, 'cms-image-dimensions')){
|
|
1782
|
+
if(!htdoc.hasAttr(node, 'width') && !htdoc.hasAttr(node, 'height')){
|
|
1783
|
+
htdoc.appendAttr(node, 'width', media_width.toString());
|
|
1784
|
+
htdoc.appendAttr(node, 'height', media_height.toString());
|
|
1785
|
+
htdoc.removeAttr(node, 'cms-image-dimensions');
|
|
1786
|
+
}
|
|
1766
1787
|
}
|
|
1767
1788
|
}
|
|
1768
1789
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jsharmony-cms",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.4",
|
|
4
4
|
"description": "jsHarmony CMS",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"diff2html": "3.4.1",
|
|
31
31
|
"ejs": "2.7.4",
|
|
32
32
|
"js-beautify": "^1.11.0",
|
|
33
|
-
"jsharmony": "^1.
|
|
33
|
+
"jsharmony": "^1.5.2",
|
|
34
34
|
"jsharmony-factory": "^1.2.0",
|
|
35
35
|
"lodash": "^4.17.19",
|
|
36
36
|
"node-forge": "^0.10.0",
|