jsharmony-cms 1.12.2 → 1.13.0

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.
@@ -221,6 +221,11 @@ exports = module.exports = function(componentId, element, cms, jsh, componentCon
221
221
  jsh.async.each(
222
222
  $element.find('[data-component]'),
223
223
  function(el, el_cb) {
224
+ var $el = jsh.$(el);
225
+ if(!$el.hasClass('initialized')){
226
+ $el.addClass('initialized');
227
+ $el.attr('data-component-id', cms.componentManager.getNextComponentId());
228
+ }
224
229
  cms.componentManager.renderContentComponent(el, undefined, el_cb);
225
230
  },
226
231
  callback
@@ -898,6 +898,17 @@ exports = module.exports = function(jsh, cms, editor){
898
898
  continue;
899
899
  }
900
900
  node.attr('data-component-id', null);
901
+ if(node.attr('class')){
902
+ var cls = node.attr('class').toString().trim().split(' ');
903
+ var newcls = '';
904
+ if(cls.indexOf('initialized')>=0){
905
+ for(var j=0;j<cls.length;j++){
906
+ if(!cls[j] || (cls[j]=='initialized')) continue;
907
+ newcls += cls[j] + ' ';
908
+ }
909
+ node.attr('class', newcls.trim() || null);
910
+ }
911
+ }
901
912
  node.empty();
902
913
  var newNode = tinymce.html.Node.create('#text');
903
914
  newNode.value = String.fromCharCode(0x00A0);
package/jsHarmonyCMS.js CHANGED
@@ -126,7 +126,7 @@ jsHarmonyCMS.prototype.Init = function(cb){
126
126
  function(ready_cb){
127
127
  var sql = 'update '+(_this.schema?_this.schema+'.':'')+"deployment set deployment_sts='FAILED' where deployment_sts='RUNNING';";
128
128
  if(_this.Config.debug_params.auto_restart_failed_publish){
129
- sql = 'insert into '+(_this.schema?_this.schema+'.':'')+"deployment(deployment_tag, branch_id, deployment_date, deployment_target_id) select concat(deployment_tag,'#'), branch_id, deployment_date, deployment_target_id from "+(_this.schema?_this.schema+'.':'')+"deployment where deployment_sts='RUNNING';" + sql;
129
+ sql = 'insert into '+(_this.schema?_this.schema+'.':'')+"deployment(deployment_tag, branch_id, deployment_date, deployment_target_id, deployment_params) select concat(deployment_tag,'#'), branch_id, deployment_date, deployment_target_id, deployment_params from "+(_this.schema?_this.schema+'.':'')+"deployment where deployment_sts='RUNNING';" + sql;
130
130
  }
131
131
  jsh.AppSrv.ExecCommand('system', sql, [], { }, function (err, rslt) {
132
132
  if (err) { jsh.Log.error(err); }
@@ -797,10 +797,9 @@ jsHarmonyCMS.prototype.getFactoryConfig = function(){
797
797
  configFactory.scheduled_tasks['deploy'] = {
798
798
  action: configFactory.Helper.JobProc.ExecuteSQL('jsHarmonyCMS_GetNextDeployment', function(rslt){
799
799
  if(_this.funcs.deploymentQueue.length()) return;
800
- if(rslt && rslt.length && rslt[0] && rslt[0].length){
801
- var deployment = rslt[0][0];
800
+ _.each(rslt && rslt.length && rslt[0], function(deployment){
802
801
  _this.funcs.deploy.call(_this.jsh.AppSrv, deployment.deployment_id);
803
- }
802
+ });
804
803
  }),
805
804
  options: {
806
805
  quiet: true
@@ -142,6 +142,7 @@ function jsHarmonyCMSConfig(){
142
142
  this.onRender = null; //function(target, content, callback){ return callback(new_content); } //target = 'editor', 'publish'
143
143
  this.onRouteLinkBrowser = null; //function(jsh, req, res, model, callback){ return callback(); } //callback(false) to stop further processing
144
144
  this.onReplaceBranchURL = null; //function(url, branchData, getLinkContent, addUrlSuffix, options){ return url; } //return a value (not undefined) to stop processing
145
+ this.onDeploy_Init = null; //function(jsh, deployment_id, deployment, callback(err, stopDeployment)){ return callback(err); }
145
146
  this.onDeploy_LoadData = null; //function(jsh, branchData, template_variables, callback){ return callback(err); }
146
147
  this.onValidate_LoadData = null; //function(jsh, branchData, template_variables, callback){ return callback(err); }
147
148
  this.onDeploy_GenerateRedirects = null; //function(jsh, branchData, template_variables, callback){ return callback(err, generated_redirect_files); }
@@ -6,6 +6,8 @@ jsh.App[modelid] = new (function(){
6
6
  var sleepsWithoutUpdate = 0;
7
7
  var lastLog = '';
8
8
 
9
+ this.onPublishComplete = null;
10
+
9
11
  this.onload = function(){
10
12
  this.updateButtons(xmodel.get('deployment_sts'));
11
13
  //Load API Data
@@ -71,6 +73,9 @@ jsh.App[modelid] = new (function(){
71
73
  }
72
74
  //Auto-refresh
73
75
  if(_.includes(['PENDING','RUNNING'], deployment_sts)) setTimeout(function(){ _this.loadData(); }, _this.getSleepTime());
76
+ else{
77
+ if(_this.onPublishComplete) _this.onPublishComplete();
78
+ }
74
79
 
75
80
  initialized = true;
76
81
  }
@@ -535,7 +535,7 @@ module.exports = exports = function(module, funcs){
535
535
 
536
536
  //Update deployment to running status
537
537
  var sql = "select \
538
- deployment_id, dt.site_id, deployment_tag, deployment_target_name, deployment_target_publish_path, deployment_target_template_variables, deployment_target_publish_config, deployment_target_sts, deployment_git_revision, \
538
+ deployment_id, dt.site_id, deployment_tag, deployment_params, deployment_target_name, deployment_target_publish_path, deployment_target_template_variables, deployment_target_publish_config, deployment_target_sts, deployment_git_revision, \
539
539
  d.deployment_target_id, \
540
540
  (select param_cur_val from jsharmony.v_param_cur where param_cur_process='CMS' and param_cur_attrib='PUBLISH_TGT') publish_tgt, \
541
541
  site.site_default_page_filename site_default_page_filename \
@@ -554,6 +554,15 @@ module.exports = exports = function(module, funcs){
554
554
  if(!deployment) { let err = 'Invalid Deployment ID'; funcs.deploy_log_error(deployment_id, err); return onComplete(err); }
555
555
 
556
556
  async.waterfall([
557
+
558
+ function(deploy_cb){
559
+ if(!module.Config.onDeploy_Init) return deploy_cb();
560
+ module.Config.onDeploy_Init(jsh, deployment_id, deployment, function(err, stopDeployment){
561
+ if(err){ funcs.deploy_log_error(deployment_id, err); return onComplete(err); }
562
+ if(stopDeployment) return onComplete();
563
+ return deploy_cb();
564
+ });
565
+ },
557
566
 
558
567
  //Change status to RUNNING
559
568
  function(deploy_cb){
@@ -60,15 +60,15 @@
60
60
  ]
61
61
  },
62
62
  "{schema}.insert_deployment":{
63
- "params": ["site_id", "deployment_target_id", "branch_id", "deployment_date", "deployment_tag"],
63
+ "params": ["site_id", "deployment_target_id", "branch_id", "deployment_date", "deployment_tag", { "name": "deployment_params", "default": null }],
64
64
  "sql": [
65
- "insert into {schema}.v_my_deployment(site_id, deployment_target_id, branch_id, deployment_date, deployment_tag) values(%%%site_id%%%, %%%deployment_target_id%%%, %%%branch_id%%%, %%%deployment_date%%%, %%%deployment_tag%%%);"
65
+ "insert into {schema}.v_my_deployment(site_id, deployment_target_id, branch_id, deployment_date, deployment_tag, deployment_params) values(%%%site_id%%%, %%%deployment_target_id%%%, %%%branch_id%%%, %%%deployment_date%%%, %%%deployment_tag%%%, %%%deployment_params%%%);"
66
66
  ]
67
67
  },
68
68
  "{schema}.insert_redeployment":{
69
- "params": ["src_deployment_id", "deployment_target_id", "deployment_date", "deployment_tag"],
69
+ "params": ["src_deployment_id", "deployment_target_id", "deployment_date", "deployment_tag", { "name": "deployment_params", "default": null }],
70
70
  "sql": [
71
- "insert into {schema}.v_my_deployment(site_id, deployment_target_id, branch_id, deployment_date, deployment_tag, deployment_git_revision) select site_id, %%%deployment_target_id%%%, branch_id, %%%deployment_date%%%, %%%deployment_tag%%%, deployment_git_revision from {schema}.v_my_deployment where deployment_id=%%%src_deployment_id%%%;"
71
+ "insert into {schema}.v_my_deployment(site_id, deployment_target_id, branch_id, deployment_date, deployment_tag, deployment_params, deployment_git_revision) select site_id, %%%deployment_target_id%%%, branch_id, %%%deployment_date%%%, %%%deployment_tag%%%, %%%deployment_params%%%, deployment_git_revision from {schema}.v_my_deployment where deployment_id=%%%src_deployment_id%%%;"
72
72
  ]
73
73
  },
74
74
  "jsHarmonyCMS_Upload": "insert into {tgtschema}.v_my_{item}({columns}) values ({values});",
@@ -60,15 +60,15 @@
60
60
  ]
61
61
  },
62
62
  "{schema}.insert_deployment":{
63
- "params": ["site_id", "deployment_target_id", "branch_id", "deployment_date", "deployment_tag"],
63
+ "params": ["site_id", "deployment_target_id", "branch_id", "deployment_date", "deployment_tag", { "name": "deployment_params", "default": null }],
64
64
  "sql": [
65
- "insert into {schema}.v_my_deployment(site_id, deployment_target_id, branch_id, deployment_date, deployment_tag) values(%%%site_id%%%, %%%deployment_target_id%%%, %%%branch_id%%%, %%%deployment_date%%%, %%%deployment_tag%%%) returning deployment_id;"
65
+ "insert into {schema}.v_my_deployment(site_id, deployment_target_id, branch_id, deployment_date, deployment_tag, deployment_params) values(%%%site_id%%%, %%%deployment_target_id%%%, %%%branch_id%%%, %%%deployment_date%%%, %%%deployment_tag%%%, %%%deployment_params%%%) returning deployment_id;"
66
66
  ]
67
67
  },
68
68
  "{schema}.insert_redeployment":{
69
- "params": ["src_deployment_id", "deployment_target_id", "deployment_date", "deployment_tag"],
69
+ "params": ["src_deployment_id", "deployment_target_id", "deployment_date", "deployment_tag", { "name": "deployment_params", "default": null }],
70
70
  "sql": [
71
- "insert into {schema}.v_my_deployment(site_id, deployment_target_id, branch_id, deployment_date, deployment_tag, deployment_git_revision) select site_id, %%%deployment_target_id%%%, branch_id, %%%deployment_date%%%, %%%deployment_tag%%%, deployment_git_revision from {schema}.v_my_deployment where deployment_id=%%%src_deployment_id%%% returning deployment_id;"
71
+ "insert into {schema}.v_my_deployment(site_id, deployment_target_id, branch_id, deployment_date, deployment_tag, deployment_params, deployment_git_revision) select site_id, %%%deployment_target_id%%%, branch_id, %%%deployment_date%%%, %%%deployment_tag%%%, %%%deployment_params%%%, deployment_git_revision from {schema}.v_my_deployment where deployment_id=%%%src_deployment_id%%% returning deployment_id;"
72
72
  ]
73
73
  },
74
74
  "jsHarmonyCMS_Upload": "insert into {tgtschema}.v_my_{item}({columns}) values ({values}) returning {item}_key;",
@@ -60,15 +60,15 @@
60
60
  ]
61
61
  },
62
62
  "{schema}.insert_deployment":{
63
- "params": ["site_id", "deployment_target_id", "branch_id", "deployment_date", "deployment_tag"],
63
+ "params": ["site_id", "deployment_target_id", "branch_id", "deployment_date", "deployment_tag", { "name": "deployment_params", "default": null }],
64
64
  "sql": [
65
- "insert into {schema}.v_my_deployment(site_id, deployment_target_id, branch_id, deployment_date, deployment_tag) values(%%%site_id%%%, %%%deployment_target_id%%%, %%%branch_id%%%, %%%deployment_date%%%, %%%deployment_tag%%%);select last_insert_rowid_override deployment_id from jsharmony_meta;"
65
+ "insert into {schema}.v_my_deployment(site_id, deployment_target_id, branch_id, deployment_date, deployment_tag, deployment_params) values(%%%site_id%%%, %%%deployment_target_id%%%, %%%branch_id%%%, %%%deployment_date%%%, %%%deployment_tag%%%, %%%deployment_params%%%);select last_insert_rowid_override deployment_id from jsharmony_meta;"
66
66
  ]
67
67
  },
68
68
  "{schema}.insert_redeployment":{
69
- "params": ["src_deployment_id", "deployment_target_id", "deployment_date", "deployment_tag"],
69
+ "params": ["src_deployment_id", "deployment_target_id", "deployment_date", "deployment_tag", { "name": "deployment_params", "default": null }],
70
70
  "sql": [
71
- "insert into {schema}.v_my_deployment(site_id, deployment_target_id, branch_id, deployment_date, deployment_tag, deployment_git_revision) select site_id, %%%deployment_target_id%%%, branch_id, %%%deployment_date%%%, %%%deployment_tag%%%, deployment_git_revision from {schema}.v_my_deployment where deployment_id=%%%src_deployment_id%%%;select last_insert_rowid_override deployment_id from jsharmony_meta;"
71
+ "insert into {schema}.v_my_deployment(site_id, deployment_target_id, branch_id, deployment_date, deployment_tag, deployment_params, deployment_git_revision) select site_id, %%%deployment_target_id%%%, branch_id, %%%deployment_date%%%, %%%deployment_tag%%%, %%%deployment_params%%%, deployment_git_revision from {schema}.v_my_deployment where deployment_id=%%%src_deployment_id%%%;select last_insert_rowid_override deployment_id from jsharmony_meta;"
72
72
  ]
73
73
  },
74
74
  "jsHarmonyCMS_Upload": "insert into {tgtschema}.v_my_{item}({columns}) values ({values}); select last_insert_rowid_override {item}_key from jsharmony_meta;",
@@ -96,6 +96,7 @@
96
96
  { "name": "deployment_sts", "type": "varchar", "length": 32, "foreignkey": { "code_deployment_sts": "code_val" }, "null": false, "default": "PENDING" },
97
97
  { "name": "deployment_target_id", "type": "bigint", "null": false, "foreignkey": { "deployment_target": "deployment_target_id" }, "actions": ["prevent_update"] },
98
98
  { "name": "deployment_git_revision", "type": "varchar", "length": 1024 },
99
+ { "name": "deployment_params", "type": "varchar", "length": -1 },
99
100
 
100
101
  { "name": "deployment_sts_tstmp", "type": "datetime", "length": 7 },
101
102
  { "name": "deployment_sts_user", "type": "varchar", "length": 20 },
@@ -189,6 +190,7 @@
189
190
  "deployment_sts",
190
191
  "deployment_target_id",
191
192
  "deployment_git_revision",
193
+ "deployment_params",
192
194
 
193
195
  "deployment_etstmp",
194
196
  "deployment_euser",
@@ -220,7 +222,7 @@
220
222
  "with_insert_identity(branch, branch_id, ",
221
223
  " insert into {schema}.branch(branch_parent_id, branch_type, branch_name, branch_sts, site_id, branch_user_id) values(inserted(branch_id), 'DEPLOYMENT', inserted(deployment_tag), 'ARCHIVE', (select site_id from {schema}.branch where branch_id=inserted(branch_id)), null),",
222
224
  ////Insert deployment
223
- " insert into {schema}.deployment(deployment_tag, branch_id, deployment_date, deployment_target_id, deployment_sts, deployment_git_revision) values(inserted(deployment_tag), @@INSERT_ID, inserted(deployment_date), inserted(deployment_target_id), 'PENDING', inserted(deployment_git_revision))",
225
+ " insert into {schema}.deployment(deployment_tag, branch_id, deployment_date, deployment_target_id, deployment_sts, deployment_git_revision, deployment_params) values(inserted(deployment_tag), @@INSERT_ID, inserted(deployment_date), inserted(deployment_target_id), 'PENDING', inserted(deployment_git_revision), inserted(deployment_params))",
224
226
  " return_insert_key(deployment, deployment_id, (deployment_target_id=inserted(deployment_target_id) and deployment_tag=inserted(deployment_tag)));",
225
227
  ////Add all menu / pages / media / redirect / sitemap from other branch
226
228
  " foreach(%%%{schema}.branch_items%%%, %%%TRIGGER_EOL%%%, \"insert into {tbl_branch_item}(branch_id, {item}_key, {item}_id, {item}_orig_id) select (select deployment.branch_id from {schema}.deployment inner join {schema}.branch on {schema}.branch.branch_id={schema}.deployment.branch_id where deployment_tag=inserted(deployment_tag) and site_id=inserted(site_id)), {item}_key, {item}_id, {item}_id from {tbl_branch_item} where branch_id=inserted(branch_id) and {item}_id is not null\")",
@@ -0,0 +1,3 @@
1
+ alter table {schema}.deployment add deployment_params nvarchar(max) null;
2
+
3
+ jsharmony.version_increment('jsHarmonyCMS',1,13,0,0);
@@ -0,0 +1,3 @@
1
+ alter table {schema}.deployment add column deployment_params text null;
2
+
3
+ jsharmony.version_increment('jsHarmonyCMS',1,13,0,0);
@@ -0,0 +1,3 @@
1
+ alter table {schema}.deployment add column deployment_params text;
2
+
3
+ jsharmony.version_increment('jsHarmonyCMS',1,13,0,0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jsharmony-cms",
3
- "version": "1.12.2",
3
+ "version": "1.13.0",
4
4
  "description": "jsHarmony CMS",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -4262,6 +4262,11 @@ exports = module.exports = function(componentId, element, cms, jsh, componentCon
4262
4262
  jsh.async.each(
4263
4263
  $element.find('[data-component]'),
4264
4264
  function(el, el_cb) {
4265
+ var $el = jsh.$(el);
4266
+ if(!$el.hasClass('initialized')){
4267
+ $el.addClass('initialized');
4268
+ $el.attr('data-component-id', cms.componentManager.getNextComponentId());
4269
+ }
4265
4270
  cms.componentManager.renderContentComponent(el, undefined, el_cb);
4266
4271
  },
4267
4272
  callback
@@ -6079,6 +6084,17 @@ exports = module.exports = function(jsh, cms, editor){
6079
6084
  continue;
6080
6085
  }
6081
6086
  node.attr('data-component-id', null);
6087
+ if(node.attr('class')){
6088
+ var cls = node.attr('class').toString().trim().split(' ');
6089
+ var newcls = '';
6090
+ if(cls.indexOf('initialized')>=0){
6091
+ for(var j=0;j<cls.length;j++){
6092
+ if(!cls[j] || (cls[j]=='initialized')) continue;
6093
+ newcls += cls[j] + ' ';
6094
+ }
6095
+ node.attr('class', newcls.trim() || null);
6096
+ }
6097
+ }
6082
6098
  node.empty();
6083
6099
  var newNode = tinymce.html.Node.create('#text');
6084
6100
  newNode.value = String.fromCharCode(0x00A0);