Compare commits
4 Commits
rc
...
version/01.30.00
| Author | SHA1 | Date | |
|---|---|---|---|
| b3d955e1a8 | |||
| f5e8d0fe03 | |||
| 5815a65a39 | |||
| ad1c0cf349 |
@@ -5,7 +5,7 @@
|
|||||||
# FILE INFORMATION
|
# FILE INFORMATION
|
||||||
# DEFGROUP: Gitea.Workflow
|
# DEFGROUP: Gitea.Workflow
|
||||||
# INGROUP: mokocli.Automation
|
# INGROUP: mokocli.Automation
|
||||||
# VERSION: 01.00.00
|
# VERSION: 01.30.00
|
||||||
# BRIEF: Auto-create feature branch when an issue is opened
|
# BRIEF: Auto-create feature branch when an issue is opened
|
||||||
|
|
||||||
name: "Universal: Issue Branch"
|
name: "Universal: Issue Branch"
|
||||||
|
|||||||
+4
-4
@@ -1,6 +1,10 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [01.30.00] --- 2026-06-22
|
||||||
|
|
||||||
|
## [01.30.00] --- 2026-06-22
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Remote upload failure no longer marks the entire backup as failed — local archive is preserved with status 'complete' (#66)
|
- Remote upload failure no longer marks the entire backup as failed — local archive is preserved with status 'complete' (#66)
|
||||||
|
|
||||||
@@ -15,7 +19,3 @@
|
|||||||
## [01.27.00] --- 2026-06-21
|
## [01.27.00] --- 2026-06-21
|
||||||
|
|
||||||
## [01.27.00] --- 2026-06-21
|
## [01.27.00] --- 2026-06-21
|
||||||
|
|
||||||
## [01.27.00] --- 2026-06-21
|
|
||||||
|
|
||||||
## [01.27.00] --- 2026-06-21
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# MokoSuiteBackup
|
# MokoSuiteBackup
|
||||||
|
|
||||||
<!-- VERSION: 01.27.03 -->
|
<!-- VERSION: 01.30.00 -->
|
||||||
|
|
||||||
Full-site backup and restore for Joomla — database, files, and configuration.
|
Full-site backup and restore for Joomla — database, files, and configuration.
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
-->
|
-->
|
||||||
<extension type="component" method="upgrade">
|
<extension type="component" method="upgrade">
|
||||||
<name>MokoSuiteBackup</name>
|
<name>MokoSuiteBackup</name>
|
||||||
<version>01.27.03</version>
|
<version>01.30.00</version>
|
||||||
<creationDate>2026-06-02</creationDate>
|
<creationDate>2026-06-02</creationDate>
|
||||||
<author>Moko Consulting</author>
|
<author>Moko Consulting</author>
|
||||||
<authorEmail>hello@mokoconsulting.tech</authorEmail>
|
<authorEmail>hello@mokoconsulting.tech</authorEmail>
|
||||||
|
|||||||
@@ -128,8 +128,8 @@ class SnapshotEngine
|
|||||||
$data['tables']['#__fields'] = $rows;
|
$data['tables']['#__fields'] = $rows;
|
||||||
$this->log(' #__fields: ' . count($rows) . ' rows');
|
$this->log(' #__fields: ' . count($rows) . ' rows');
|
||||||
|
|
||||||
// Field values — dump all (small, article-scoped)
|
// Field values — only for com_content.article fields (table is shared across extensions)
|
||||||
$rows = $this->dumpTable($db, str_replace('#__', $prefix, '#__fields_values'), '#__fields_values', 'articles');
|
$rows = $this->dumpFieldValues($db, $prefix);
|
||||||
$data['tables']['#__fields_values'] = $rows;
|
$data['tables']['#__fields_values'] = $rows;
|
||||||
$this->log(' #__fields_values: ' . count($rows) . ' rows');
|
$this->log(' #__fields_values: ' . count($rows) . ' rows');
|
||||||
|
|
||||||
@@ -266,6 +266,28 @@ class SnapshotEngine
|
|||||||
*
|
*
|
||||||
* Uses a subquery: field_id IN (SELECT id FROM #__fields WHERE context = 'com_content.article')
|
* Uses a subquery: field_id IN (SELECT id FROM #__fields WHERE context = 'com_content.article')
|
||||||
*/
|
*/
|
||||||
|
/**
|
||||||
|
* Dump field values only for com_content.article fields.
|
||||||
|
*/
|
||||||
|
private function dumpFieldValues(object $db, string $prefix): array
|
||||||
|
{
|
||||||
|
$fvTable = $prefix . 'fields_values';
|
||||||
|
$fTable = $prefix . 'fields';
|
||||||
|
|
||||||
|
$subQuery = $db->getQuery(true)
|
||||||
|
->select($db->quoteName('id'))
|
||||||
|
->from($db->quoteName($fTable))
|
||||||
|
->where($db->quoteName('context') . ' = ' . $db->quote('com_content.article'));
|
||||||
|
|
||||||
|
$query = $db->getQuery(true)
|
||||||
|
->select('*')
|
||||||
|
->from($db->quoteName($fvTable))
|
||||||
|
->where($db->quoteName('field_id') . ' IN (' . $subQuery . ')');
|
||||||
|
$db->setQuery($query);
|
||||||
|
|
||||||
|
return $db->loadAssocList() ?: [];
|
||||||
|
}
|
||||||
|
|
||||||
private function dumpFieldCategories(object $db, string $prefix): array
|
private function dumpFieldCategories(object $db, string $prefix): array
|
||||||
{
|
{
|
||||||
$fcTable = $prefix . 'fields_categories';
|
$fcTable = $prefix . 'fields_categories';
|
||||||
|
|||||||
@@ -304,7 +304,15 @@ class SnapshotRestoreEngine
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case '#__fields_values':
|
case '#__fields_values':
|
||||||
// Delete all field values — they are article-scoped
|
// Only delete field values for com_content.article fields
|
||||||
|
$prefix = $db->getPrefix();
|
||||||
|
$fTable = $prefix . 'fields';
|
||||||
|
|
||||||
|
$subQuery = $db->getQuery(true)
|
||||||
|
->select($db->quoteName('id'))
|
||||||
|
->from($db->quoteName($fTable))
|
||||||
|
->where($db->quoteName('context') . ' = ' . $db->quote('com_content.article'));
|
||||||
|
$query->where($db->quoteName('field_id') . ' IN (' . $subQuery . ')');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '#__fields_categories':
|
case '#__fields_categories':
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
-->
|
-->
|
||||||
<extension type="plugin" group="actionlog" method="upgrade">
|
<extension type="plugin" group="actionlog" method="upgrade">
|
||||||
<name>Action Log - MokoSuiteBackup</name>
|
<name>Action Log - MokoSuiteBackup</name>
|
||||||
<version>01.27.03</version>
|
<version>01.30.00</version>
|
||||||
<creationDate>2026-06-04</creationDate>
|
<creationDate>2026-06-04</creationDate>
|
||||||
<author>Moko Consulting</author>
|
<author>Moko Consulting</author>
|
||||||
<authorEmail>hello@mokoconsulting.tech</authorEmail>
|
<authorEmail>hello@mokoconsulting.tech</authorEmail>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
-->
|
-->
|
||||||
<extension type="plugin" group="console" method="upgrade">
|
<extension type="plugin" group="console" method="upgrade">
|
||||||
<name>Console - MokoSuiteBackup</name>
|
<name>Console - MokoSuiteBackup</name>
|
||||||
<version>01.27.03</version>
|
<version>01.30.00</version>
|
||||||
<creationDate>2026-06-04</creationDate>
|
<creationDate>2026-06-04</creationDate>
|
||||||
<author>Moko Consulting</author>
|
<author>Moko Consulting</author>
|
||||||
<authorEmail>hello@mokoconsulting.tech</authorEmail>
|
<authorEmail>hello@mokoconsulting.tech</authorEmail>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
-->
|
-->
|
||||||
<extension type="plugin" group="content" method="upgrade">
|
<extension type="plugin" group="content" method="upgrade">
|
||||||
<name>Content - MokoSuiteBackup</name>
|
<name>Content - MokoSuiteBackup</name>
|
||||||
<version>01.27.03</version>
|
<version>01.30.00</version>
|
||||||
<creationDate>2026-06-04</creationDate>
|
<creationDate>2026-06-04</creationDate>
|
||||||
<author>Moko Consulting</author>
|
<author>Moko Consulting</author>
|
||||||
<authorEmail>hello@mokoconsulting.tech</authorEmail>
|
<authorEmail>hello@mokoconsulting.tech</authorEmail>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<extension type="plugin" group="quickicon" method="upgrade">
|
<extension type="plugin" group="quickicon" method="upgrade">
|
||||||
<name>Quick Icon - MokoSuiteBackup</name>
|
<name>Quick Icon - MokoSuiteBackup</name>
|
||||||
<version>01.27.03</version>
|
<version>01.30.00</version>
|
||||||
<creationDate>2026-06-02</creationDate>
|
<creationDate>2026-06-02</creationDate>
|
||||||
<author>Moko Consulting</author>
|
<author>Moko Consulting</author>
|
||||||
<authorEmail>hello@mokoconsulting.tech</authorEmail>
|
<authorEmail>hello@mokoconsulting.tech</authorEmail>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
-->
|
-->
|
||||||
<extension type="plugin" group="system" method="upgrade">
|
<extension type="plugin" group="system" method="upgrade">
|
||||||
<name>System - MokoSuiteBackup</name>
|
<name>System - MokoSuiteBackup</name>
|
||||||
<version>01.27.03</version>
|
<version>01.30.00</version>
|
||||||
<creationDate>2026-06-02</creationDate>
|
<creationDate>2026-06-02</creationDate>
|
||||||
<author>Moko Consulting</author>
|
<author>Moko Consulting</author>
|
||||||
<authorEmail>hello@mokoconsulting.tech</authorEmail>
|
<authorEmail>hello@mokoconsulting.tech</authorEmail>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
-->
|
-->
|
||||||
<extension type="plugin" group="task" method="upgrade">
|
<extension type="plugin" group="task" method="upgrade">
|
||||||
<name>Task - MokoSuiteBackup</name>
|
<name>Task - MokoSuiteBackup</name>
|
||||||
<version>01.27.03</version>
|
<version>01.30.00</version>
|
||||||
<creationDate>2026-06-02</creationDate>
|
<creationDate>2026-06-02</creationDate>
|
||||||
<author>Moko Consulting</author>
|
<author>Moko Consulting</author>
|
||||||
<authorEmail>hello@mokoconsulting.tech</authorEmail>
|
<authorEmail>hello@mokoconsulting.tech</authorEmail>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
-->
|
-->
|
||||||
<extension type="plugin" group="webservices" method="upgrade">
|
<extension type="plugin" group="webservices" method="upgrade">
|
||||||
<name>Web Services - MokoSuiteBackup</name>
|
<name>Web Services - MokoSuiteBackup</name>
|
||||||
<version>01.27.03</version>
|
<version>01.30.00</version>
|
||||||
<creationDate>2026-06-02</creationDate>
|
<creationDate>2026-06-02</creationDate>
|
||||||
<author>Moko Consulting</author>
|
<author>Moko Consulting</author>
|
||||||
<authorEmail>hello@mokoconsulting.tech</authorEmail>
|
<authorEmail>hello@mokoconsulting.tech</authorEmail>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<extension type="package" method="upgrade">
|
<extension type="package" method="upgrade">
|
||||||
<name>Package - MokoSuiteBackup</name>
|
<name>Package - MokoSuiteBackup</name>
|
||||||
<packagename>mokosuitebackup</packagename>
|
<packagename>mokosuitebackup</packagename>
|
||||||
<version>01.27.03</version>
|
<version>01.30.00</version>
|
||||||
<creationDate>2026-06-02</creationDate>
|
<creationDate>2026-06-02</creationDate>
|
||||||
<author>Moko Consulting</author>
|
<author>Moko Consulting</author>
|
||||||
<authorEmail>hello@mokoconsulting.tech</authorEmail>
|
<authorEmail>hello@mokoconsulting.tech</authorEmail>
|
||||||
|
|||||||
Reference in New Issue
Block a user