@nakedcreativity/cee-ms-node 0.3.35 → 0.3.36

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.
Files changed (2) hide show
  1. package/index.js +79 -5
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -541,12 +541,69 @@ ceems.prototype.render = function(req, res, page=null) {
541
541
  console.log('pagination, ', page.pagination)
542
542
 
543
543
  var renderedRegions = {}
544
+ var renderedColumns = {}
545
+ var renderedModules = {}
546
+
544
547
  var jobs = []
545
548
 
546
549
  // load page data
547
550
  _.each(page.regions, function(region, key){
548
551
 
549
552
  renderedRegions[key] = []
553
+ console.log(key)
554
+
555
+ if(region.containers){
556
+
557
+ region.containers.forEach((container, index)=>{
558
+
559
+ console.log(container)
560
+ if(container.module){
561
+
562
+ var html = `{% ${container.module} %}`
563
+
564
+ }else {
565
+
566
+
567
+ if(!container.class) {
568
+ container.class = 'container'
569
+ }
570
+
571
+ var html = ''
572
+ if(container.wrapper){
573
+ html += `<div class="${container.wrapper}">`
574
+ }
575
+
576
+ html += `<div class="${container.class}">`
577
+
578
+ container.rows.forEach(row=>{
579
+
580
+ html += `<div class="row ${row.class}">`
581
+ row.columns.forEach(column=>{
582
+
583
+ var modules = _.reduce(column.modules, (modules, id)=>{
584
+ return modules + '{% '+id+' %}'
585
+ }, '')
586
+ html += `<div class="col ${column.class}">${modules}</div>` // inserts placeholder in format {% id %}
587
+
588
+ })
589
+
590
+ html += `</div>`
591
+
592
+ })
593
+ if(container.wrapper){
594
+ html += `</div>`
595
+ }
596
+ html += `</div>`
597
+
598
+ }
599
+
600
+ renderedRegions[key][index] = html
601
+
602
+ })
603
+ }
604
+
605
+ console.log(renderedRegions)
606
+
550
607
  _.each(region.modules, function(module, index){
551
608
 
552
609
  var moduleTemplate = fs.readFileSync('./views/'+module.type+'.liquid');
@@ -562,7 +619,7 @@ ceems.prototype.render = function(req, res, page=null) {
562
619
  scope.navigation = this.site.navigation
563
620
  }
564
621
  this.engine.parseAndRender(moduleTemplate, scope)
565
- .then(function(html){
622
+ .then(html => {
566
623
 
567
624
  if(req.query.edit != null){
568
625
  var $ = cheerio.load(html);
@@ -572,10 +629,15 @@ ceems.prototype.render = function(req, res, page=null) {
572
629
  $.root().children().attr('data-module-id', module._id);
573
630
  }
574
631
  html = $.html()
575
- }
576
-
577
- renderedRegions[key][index] = html
578
- return resolve();
632
+ }
633
+
634
+ if(region.containers){
635
+ renderedModules[module._id] = html
636
+ }else {
637
+ renderedRegions[key][index] = html
638
+ }
639
+ return resolve();
640
+
579
641
  })
580
642
  .catch(error=>{
581
643
  reject(error)
@@ -583,6 +645,8 @@ ceems.prototype.render = function(req, res, page=null) {
583
645
  }))
584
646
 
585
647
  }, this)
648
+
649
+
586
650
  }, this)
587
651
 
588
652
  // loop through each module not in a region and generate HTML
@@ -628,10 +692,20 @@ ceems.prototype.render = function(req, res, page=null) {
628
692
  _.each(renderedRegions, function(region, key){
629
693
  page.regions[key] = ''
630
694
  _.each(region, function(html){
695
+
696
+ // items in rendered columns to place
697
+ if(Object.keys(renderedModules).length > 0){
698
+ _.each(renderedModules, (moduleHtml, key)=>{
699
+ html = html.replace(new RegExp('{%\\s'+key+'\\s%}','g'), moduleHtml)
700
+ })
701
+
702
+ }
703
+
631
704
  page.regions[key] += html
632
705
  })
633
706
  })
634
707
 
708
+
635
709
  var scope = page
636
710
  if(this.site && this.site.navigation)
637
711
  scope.navigation = this.site.navigation
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nakedcreativity/cee-ms-node",
3
- "version": "0.3.35",
3
+ "version": "0.3.36",
4
4
  "description": "Cee.ms for Node.js",
5
5
  "main": "index.js",
6
6
  "scripts": {