Commit Graph

23 Commits

Author SHA1 Message Date
master3395
5dff70c9e6 Add GitHub README.md and CHANGELOG.md fetching for plugin help pages
- Fetch CHANGELOG.md from GitHub if not found locally (non-blocking, 3s timeout)
- Fetch README.md from GitHub if no local help files found
- Provides version history and documentation for plugins from GitHub
- All GitHub fetches are optional and fail silently to avoid slow page loads
- Enhances plugin-specific help pages with complete information
2026-01-20 01:22:03 +01:00
master3395
5bf3499d6f Fix plugin-specific help pages and examplePlugin version
- Update examplePlugin version from 0 to 1.0 in meta.xml
- Implement proper plugin_help view to show plugin-specific information
- Reads plugin meta.xml for name, version, author, description
- Looks for README.md, HELP.md, CHANGELOG.md files in plugin directory
- Displays plugin information and version history
- Now shows plugin-specific help instead of redirecting to development guide
- Individual plugin Help buttons now show plugin-specific information
2026-01-20 01:19:14 +01:00
master3395
1c1886f4c2 Add proper CSS styling for Plugin Development Guide link button
- Add specific CSS rules for a.view-btn to ensure proper styling
- Help button now displays correctly next to Plugin Store button
- Matches styling of other view toggle buttons (hover effects, colors)
- Button is clearly visible and accessible for users
2026-01-20 01:11:09 +01:00
master3395
efb1a03c53 Add Plugin Development Guide button next to Plugin Store
- Add help button next to CyberPanel Plugin Store button
- Links to /plugins/help/ (Plugin Development Guide)
- Helps users understand how to work with plugins
- Button appears in both view toggle sections (with and without plugins)
- Styled consistently with other view toggle buttons
2026-01-20 01:09:43 +01:00
master3395
8cfe946397 Fix remaining code block in help.html - wrap with verbatim
- Wrap second Django template code example (line 500) with {% verbatim %} tags
- Ensures all Django template syntax in code examples is properly escaped
- Fixes remaining 'Invalid block tag' error on line 660
2026-01-20 01:05:47 +01:00
master3395
1fd893357c Fix help.html template - use verbatim tags for code examples
- Wrap Django template code examples with {% verbatim %} tags
- Prevents Django from parsing template syntax in documentation code blocks
- Fixes 'Invalid block tag' error when displaying code examples
- All code examples now display correctly without syntax errors
2026-01-20 01:05:19 +01:00
master3395
d388e993d5 Fix help.html template - escape Django template tags in code examples
- Replace {% with {%% in code examples to prevent template parsing errors
- Fixes 'block tag with name title appears more than once' error
- Code examples now display correctly without being parsed as actual template blocks
2026-01-20 01:01:40 +01:00
master3395
32561dd9e5 Fix processed_plugins tracking - move add() after successful processing
- Move processed_plugins.add() to after plugin is successfully added to pluginList
- Prevents plugins from being marked as processed if they fail validation
- Ensures pm2Manager and other store-installed plugins show up correctly
2026-01-20 00:55:43 +01:00
master3395
bcc73e4352 Fix installed plugins view to show plugins installed from store - final fix
- Add logic to check installed plugins that don't have source directories
- Fixes issue where PM2 Manager (installed from store) wasn't showing
- Moved processed_plugins.add() to correct location in code flow
- Now shows all 4 installed plugins: testPlugin, discordWebhooks, fail2ban, pm2Manager
2026-01-20 00:55:24 +01:00
master3395
ed84555ddf Fix installed plugins view to show plugins installed from store
- Add logic to check installed plugins that don't have source directories
- Fixes issue where PM2 Manager (installed from store) wasn't showing in installed list
- Now shows all installed plugins regardless of whether they have source in /home/cyberpanel/plugins/
- Prevents duplicate plugin entries by tracking processed plugins
2026-01-20 00:53:18 +01:00
master3395
f2acb8bbfc Fix pluginInstaller encoding issues and installation timing
- Add UTF-8 encoding to all file operations in pluginInstaller
- Fix ASCII codec error in removeFromSettings and removeFromURLs
- Add 2 second delay after installation to allow filesystem sync
- Fix fileinput.input encoding issue in removeFromURLs
- Update uninstall confirmation message to warn about data deletion
- Fixes plugin installation and uninstallation from store
2026-01-20 00:47:49 +01:00
master3395
fa6ce67f24 Fix 500 error and pluginInstaller fileinput encoding issue
- Revert GitHub API fetching in installed() view to use local file modification time (prevents timeouts)
- Fix fileinput.input() encoding issue in pluginInstaller.removeFromURLs()
- Replace fileinput with manual file read/write using utf-8 encoding
- Add missing import re to pluginInstaller
- Fixes 500 Internal Server Error on CyberPanel pages
- Fixes plugin installation from store
2026-01-20 00:38:21 +01:00
master3395
046d5458bd Disable GitHub API calls for modify_date in installed() view
- Use local file modification time by default to prevent timeouts
- GitHub API calls commented out (can be enabled if needed)
- Improves page load performance
- Prevents 500 errors from API timeouts
2026-01-20 00:08:46 +01:00
master3395
271507eff2 Add better error handling for pluginInstaller exceptions
- Catch and re-raise exceptions from pluginInstaller.installPlugin()
- Add logging for installation steps
- Improve error messages for debugging
2026-01-19 23:44:52 +01:00
master3395
d5e8edc9bd Fix plugin ZIP structure for installation
- Add plugin name as directory prefix in ZIP file
- pluginInstaller expects ZIP to contain plugin_name/ directory
- Fixes installation failure where plugin directory was not created
2026-01-19 23:39:48 +01:00
master3395
48e11f19ed Update uninstall confirmation message
- Change message to warn that all data will be deleted
- Apply to both local and store uninstall functions
2026-01-19 23:36:50 +01:00
master3395
336b7001c9 Implement plugin installation from GitHub store
- Download plugin from GitHub repository
- Extract plugin directory from repo ZIP
- Create plugin ZIP file
- Use pluginInstaller to install plugin
- Set plugin to enabled by default after installation
- Add comprehensive error handling and logging
- Fixes 'Plugin store installation not implemented' error
2026-01-19 23:34:28 +01:00
master3395
e359332622 Add cache duration notice to Plugin Store
- Inform users that plugin store data is cached for 1 hour
- Explain that new plugins may take up to 1 hour to appear
- Improve transparency about cache behavior
2026-01-19 23:31:22 +01:00
master3395
82d68ab5a3 Add Modify Date column, GitHub commit date fetching, and plugin store caching
- Added Modify Date column to both Table View and Plugin Store
- Implemented GitHub API integration to fetch last commit dates
- Added caching system for plugin store to prevent rate limit errors
- Enhanced plugin store with installed/enabled status enrichment
- Added comprehensive plugin development guide
- Updated testPlugin meta.xml author to usmannasir
2026-01-19 22:55:59 +01:00
master3395
ba262bdcb1 Refactor: replace url() with path() for Django routes in plugin Installer
- Updated pluginHolder/urls.py to use path() instead of url()
- Added new API routes for plugin installation, uninstallation, enable, and disable
- Compatible with Django 4.x (url() was removed in Django 4.0)

Ref: PR 1644
2026-01-06 19:23:04 +01:00
master3395
ed7d4743b6 Add plugin system enhancements and testPlugin
- Enhanced plugin installer to properly extract and install plugins
- Added security middleware exception for plugin webhook endpoints
- Improved plugin listing with better error handling
- Added testPlugin as example plugin for CyberPanel plugin system
- Updated INSTALLED_APPS and URL routing for plugins

Author: master3395
2026-01-04 21:04:51 +01:00
usmannasir
a369d7ba98 services 2025-08-05 03:04:38 +05:00
usmannasir
6dd7114f6d Initial commit for v2.4.3 2025-08-01 14:56:30 +05:00