diff --git a/assets/components/quickstartbuttons/js/mgr/widgets/sets.grid.js b/assets/components/quickstartbuttons/js/mgr/widgets/sets.grid.js index fca504b..a62d1c6 100755 --- a/assets/components/quickstartbuttons/js/mgr/widgets/sets.grid.js +++ b/assets/components/quickstartbuttons/js/mgr/widgets/sets.grid.js @@ -86,6 +86,9 @@ Ext.extend(QuickstartButtons.grid.Sets, MODx.grid.Grid, { var m = [{ text: _('quickstartbuttons.sets.update') ,handler: this.updateSet + },{ + text: _('quickstartbuttons.sets.duplicate') + ,handler: this.duplicateSet },'-',{ text: _('quickstartbuttons.sets.remove') ,handler: this.removeSet @@ -110,6 +113,21 @@ Ext.extend(QuickstartButtons.grid.Sets, MODx.grid.Grid, { Ext.isSafari ? w.setPosition(null,30) : w.center(); }, this); } + ,duplicateSet: function(btn, e) { + MODx.Ajax.request({ + url: QuickstartButtons.config.connector_url + ,params: { + action: 'mgr/sets/duplicate' + ,id: this.menu.record.id + } + ,listeners: { + 'success':{ fn: function() { + this.refresh(); + } + ,scope:this } + } + }); + } ,removeSet: function(btn, e) { MODx.msg.confirm({ title: _('quickstartbuttons.sets.remove'), diff --git a/core/components/quickstartbuttons/lexicon/en/default.inc.php b/core/components/quickstartbuttons/lexicon/en/default.inc.php index 1cf04c5..adaa519 100755 --- a/core/components/quickstartbuttons/lexicon/en/default.inc.php +++ b/core/components/quickstartbuttons/lexicon/en/default.inc.php @@ -24,6 +24,7 @@ $_lang['quickstartbuttons.sets.buttonsperrow.five'] = "Five buttons"; $_lang['quickstartbuttons.sets.update'] = "Update set"; +$_lang['quickstartbuttons.sets.duplicate'] = "Duplicate set"; $_lang['quickstartbuttons.sets.remove'] = "Remove set"; $_lang['quickstartbuttons.sets.remove_confirm'] = "Are you sure you want to remove this set and it's buttons? This is irreversible!"; diff --git a/core/components/quickstartbuttons/processors/mgr/sets/duplicate.class.php b/core/components/quickstartbuttons/processors/mgr/sets/duplicate.class.php new file mode 100755 index 0000000..18894ce --- /dev/null +++ b/core/components/quickstartbuttons/processors/mgr/sets/duplicate.class.php @@ -0,0 +1,27 @@ +object->getMany('Button'); + + /** @var qsbButton $button */ + foreach($buttons as $button) { + $buttonArray = $button->toArray(); + unset($buttonArray['id']); + + /** @var qsbButton $newButton */ + $newButton = $this->modx->newObject('qsbButton'); + $newButton->fromArray($buttonArray); + $newButton->set('set', $this->newObject->get('id')); + $newButton->save(); + } + return parent::afterSave(); + } +} + +return 'QuickstartButtonsDuplicateSetProcessor'; \ No newline at end of file