feat: rename ThreeFold to Mycelium in copyright, docs, specs, and UI across codebase

This commit is contained in:
mik-tf
2025-09-08 13:45:02 -04:00
parent 8d66810688
commit c054ceb24d
22 changed files with 146 additions and 146 deletions

View File

@@ -4471,7 +4471,7 @@ impl DashboardController {
// Generate text agreement content
let agreement_content = format!(
"SERVICE PROVIDER AGREEMENT\n\n\
ThreeFold Grid Service Provider Agreement\n\
Mycelium Grid Service Provider Agreement\n\
\n\
Service Provider: {}\n\
Agreement Date: January 15, 2025\n\
@@ -4479,7 +4479,7 @@ impl DashboardController {
Status: Active\n\
\n\
This agreement outlines the terms and conditions for providing services\n\
on the ThreeFold Grid platform.\n\
on the Mycelium Grid platform.\n\
\n\
Terms:\n\
1. Service Quality Standards\n\
@@ -6329,7 +6329,7 @@ impl DashboardController {
}
}
/// Sync resource_provider nodes with ThreeFold Grid
/// Sync resource_provider nodes with Mycelium Grid
pub async fn sync_with_grid(session: Session) -> Result<impl Responder> {
// Check authentication
if let Err(response) = Self::check_authentication(&session) {
@@ -6339,7 +6339,7 @@ impl DashboardController {
// Mock sync operation
let sync_result = serde_json::json!({
"success": true,
"message": "Successfully synced with ThreeFold Grid",
"message": "Successfully synced with Mycelium Grid",
"nodes_updated": 3,
"new_nodes_found": 1,
"sync_timestamp": chrono::Utc::now().to_rfc3339()
@@ -6803,7 +6803,7 @@ impl DashboardController {
}
}
/// API endpoint to sync with ThreeFold Grid
/// API endpoint to sync with Mycelium Grid
pub async fn sync_with_grid_api(session: Session) -> Result<impl Responder> {
let user_email = session.get::<String>("user_email")
@@ -6834,13 +6834,13 @@ impl DashboardController {
Ok(ResponseBuilder::ok().json(serde_json::json!({
"success": true,
"message": format!("Successfully synced {} nodes with ThreeFold Grid", synced_nodes),
"message": format!("Successfully synced {} nodes with Mycelium Grid", synced_nodes),
"synced_nodes": synced_nodes
})).build())
}
Err(e) => {
Ok(ResponseBuilder::internal_error().json(serde_json::json!({
"error": "Failed to sync with ThreeFold Grid",
"error": "Failed to sync with Mycelium Grid",
"details": e.to_string()
})).build())
}

View File

@@ -1,4 +1,4 @@
//! Grid service for ThreeFold Grid integration
//! Grid service for Mycelium Grid integration
//! Handles fetching node data from gridproxy API
use crate::models::user::{GridNodeData, NodeCapacity};
@@ -44,7 +44,7 @@ pub struct GridProxyResources {
pub hru: u64, // HDD storage in bytes
}
/// Service for ThreeFold Grid operations
/// Service for Mycelium Grid operations
#[derive(Clone)]
pub struct GridService {
gridproxy_url: String,
@@ -86,7 +86,7 @@ impl GridService {
GridServiceBuilder::new()
}
/// Fetch node data from ThreeFold Grid
/// Fetch node data from Mycelium Grid
pub async fn fetch_node_data(&self, node_id: u32) -> Result<GridNodeData, String> {
// Try to fetch from real API first, fall back to mock data
match self.fetch_real_node_data(node_id).await {

View File

@@ -238,7 +238,7 @@ impl ResourceProviderService {
Ok(node)
}
/// Add a new node from ThreeFold Grid (automatic creation with real data)
/// Add a new node from Mycelium Grid (automatic creation with real data)
pub async fn add_node_from_grid(&self, user_email: &str, grid_node_id: u32) -> Result<FarmNode, String> {
// Load existing data and check for duplicates more thoroughly
let mut persistent_data = UserPersistence::load_user_data(user_email)
@@ -1285,7 +1285,7 @@ impl ResourceProviderService {
// GRID NODE MANAGEMENT
// =============================================================================
/// Add a node from ThreeFold Grid by node ID
/// Add a node from Mycelium Grid by node ID
pub async fn add_grid_node(&self, user_email: &str, grid_node_id: u32, _slice_format: Option<String>, _slice_price: Option<Decimal>) -> Result<FarmNode, String> {
// Check for duplicate grid node IDs first
let existing_nodes = self.get_resource_provider_nodes(user_email);
@@ -1295,7 +1295,7 @@ impl ResourceProviderService {
// Validate node exists on grid
if !self.grid_service.validate_node_exists(grid_node_id).await? {
return Err(format!("Node {} does not exist on ThreeFold Grid", grid_node_id));
return Err(format!("Node {} does not exist on Mycelium Grid", grid_node_id));
}
// Fetch node data from grid
@@ -1352,7 +1352,7 @@ impl ResourceProviderService {
// Validate and fetch grid data
if !self.grid_service.validate_node_exists(grid_node_id).await.map_err(|e| e.to_string())? {
return Err(format!("Node {} does not exist on ThreeFold Grid", grid_node_id));
return Err(format!("Node {} does not exist on Mycelium Grid", grid_node_id));
}
let grid_data = self.grid_service.fetch_node_data(grid_node_id).await.map_err(|e| e.to_string())?;
@@ -2314,7 +2314,7 @@ impl ResourceProviderService {
Ok(())
}
/// Sync all nodes with ThreeFold Grid
/// Sync all nodes with Mycelium Grid
pub fn sync_all_nodes_with_grid(&self, user_email: &str) -> Result<u32, String> {
let mut persistent_data = UserPersistence::load_user_data(user_email)
.ok_or("User data not found")?;
@@ -2479,7 +2479,7 @@ impl ResourceProviderService {
pub async fn fetch_and_validate_grid_node(&self, grid_node_id: u32) -> Result<crate::models::user::GridNodeData, String> {
// Validate node exists on grid
if !self.grid_service.validate_node_exists(grid_node_id).await? {
return Err(format!("Node {} does not exist on ThreeFold Grid", grid_node_id));
return Err(format!("Node {} does not exist on Mycelium Grid", grid_node_id));
}
// Fetch node data from grid
@@ -2852,7 +2852,7 @@ impl ResourceProviderService {
Ok(updated_count)
}
/// Sync all nodes with ThreeFold Grid (async version)
/// Sync all nodes with Mycelium Grid (async version)
pub async fn sync_all_nodes_with_grid_async(&self, user_email: &str) -> Result<u32, String> {
let mut persistent_data = UserPersistence::load_user_data(user_email)
.ok_or("User data not found")?;

View File

@@ -183,8 +183,8 @@
}
function shareCart() {
const shareData = {
title: 'My ThreeFold Cart',
text: 'Check out my ThreeFold marketplace cart',
title: 'My Mycelium Cart',
text: 'Check out my Mycelium marketplace cart',
url: window.location.href
};
if (navigator.share) {

View File

@@ -712,7 +712,7 @@ function monitorDeployment(deploymentId) {
}
function supportDeployment(deploymentId, customerName) {
showThreeFoldSupportModal(deploymentId, customerName);
showMyceliumSupportModal(deploymentId, customerName);
}
// Register New Application Function
@@ -1248,7 +1248,7 @@ function showDeploymentDetailsModal(deployment, appName) {
}
// ThreeFold Support Modal
function showThreeFoldSupportModal(deploymentId, customerName) {
function showMyceliumSupportModal(deploymentId, customerName) {
const modalHtml = `
<div class="modal fade" id="threeFoldSupportModal" tabindex="-1" aria-labelledby="threeFoldSupportModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
@@ -1265,7 +1265,7 @@ function showThreeFoldSupportModal(deploymentId, customerName) {
</style>
<div class="modal-header bg-primary text-white">
<h5 class="modal-title" id="threeFoldSupportModalLabel">
<i class="bi bi-headset me-2"></i>ThreeFold Grid Support
<i class="bi bi-headset me-2"></i>Mycelium Grid Support
</h5>
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
@@ -1275,7 +1275,7 @@ function showThreeFoldSupportModal(deploymentId, customerName) {
<i class="bi bi-grid-3x3-gap-fill text-primary" style="font-size: 2rem;"></i>
</div>
<h4 class="text-primary">Need Help with Your Deployment?</h4>
<p class="text-muted">We're here to support you with any ThreeFold Grid related issues</p>
<p class="text-muted">We're here to support you with any Mycelium Grid related issues</p>
</div>
<div class="row mb-2">
@@ -1357,7 +1357,7 @@ function closeViewAndOpenSupport(deploymentId, customerName) {
// Small delay to ensure the first modal is closed before opening the second
setTimeout(() => {
showThreeFoldSupportModal(deploymentId, customerName);
showMyceliumSupportModal(deploymentId, customerName);
}, 300);
}

View File

@@ -131,10 +131,10 @@ function validateSlicePrice(event) {
}
/**
* Validate nodes by fetching data from ThreeFold Grid
* Validate nodes by fetching data from Mycelium Grid
*/
function validateNodes() {
console.log('🔍 Validating nodes from ThreeFold Grid');
console.log('🔍 Validating nodes from Mycelium Grid');
// Prevent validation if nodes are being added
const addBtn = document.getElementById('addNodesBtn');

View File

@@ -2816,13 +2816,13 @@ function viewAgreement() {
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="viewAgreementModalLabel">ThreeFold Service Provider Agreement</h5>
<h5 class="modal-title" id="viewAgreementModalLabel">Mycelium Service Provider Agreement</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body" style="max-height: 70vh; overflow-y: auto;">
<div class="agreement-content">
<h6>1. Agreement Overview</h6>
<p>This Service Provider Agreement ("Agreement") is entered into between ThreeFold and the Service Provider for the provision of professional services through the ThreeFold marketplace platform.</p>
<p>This Service Provider Agreement ("Agreement") is entered into between Mycelium and the Service Provider for the provision of professional services through the Mycelium marketplace platform.</p>
<h6>2. Service Provider Obligations</h6>
<ul>
@@ -2833,7 +2833,7 @@ function viewAgreement() {
</ul>
<h6>3. Payment Terms</h6>
<p>Payments will be processed through the ThreeFold platform using USD Credits. Service providers will receive payment upon successful completion of services as verified by the client.</p>
<p>Payments will be processed through the Mycelium platform using USD Credits. Service providers will receive payment upon successful completion of services as verified by the client.</p>
<h6>4. Quality Standards</h6>
<p>Service providers must maintain a minimum rating of 4.0 stars and respond to service requests within 24 hours unless otherwise specified in their service offerings.</p>
@@ -2862,7 +2862,7 @@ function downloadAgreement() {
<!DOCTYPE html>
<html>
<head>
<title>Service Provider Agreement - ThreeFold</title>
<title>Service Provider Agreement - Mycelium</title>
<style>
@media print {
.no-print { display: none !important; }
@@ -2889,7 +2889,7 @@ function downloadAgreement() {
<body>
<div class="agreement-content">
<div class="header">
<h1>ThreeFold Service Provider Agreement</h1>
<h1>Mycelium Service Provider Agreement</h1>
<p><strong>Agreement Date:</strong> ${new Date().toLocaleDateString()}</p>
<p><strong>Provider:</strong> Service Provider</p>
<p><strong>Agreement ID:</strong> SPA-${Date.now()}</p>
@@ -2897,7 +2897,7 @@ function downloadAgreement() {
<div class="section">
<h2>1. Service Provider Terms</h2>
<p>This Service Provider Agreement ("Agreement") is entered into between ThreeFold and the Service Provider for the provision of services on the ThreeFold marketplace platform.</p>
<p>This Service Provider Agreement ("Agreement") is entered into between Mycelium and the Service Provider for the provision of services on the Mycelium marketplace platform.</p>
</div>
<div class="section">
@@ -2913,29 +2913,29 @@ function downloadAgreement() {
<div class="section">
<h2>3. Payment Terms</h2>
<p>Payment for services will be processed through the ThreeFold platform using USD Credits. The Service Provider agrees to the platform's payment processing terms and fee structure.</p>
<p>Payment for services will be processed through the Mycelium platform using USD Credits. The Service Provider agrees to the platform's payment processing terms and fee structure.</p>
</div>
<div class="section">
<h2>4. Quality Standards</h2>
<p>All services must meet ThreeFold's quality standards and client expectations. The Service Provider is responsible for maintaining a professional reputation and delivering high-quality work.</p>
<p>All services must meet Mycelium's quality standards and client expectations. The Service Provider is responsible for maintaining a professional reputation and delivering high-quality work.</p>
</div>
<div class="section">
<h2>5. Dispute Resolution</h2>
<p>Any disputes arising from this agreement will be resolved through ThreeFold's dispute resolution process, with mediation as the preferred method.</p>
<p>Any disputes arising from this agreement will be resolved through Mycelium's dispute resolution process, with mediation as the preferred method.</p>
</div>
<div class="section">
<h2>6. Termination</h2>
<p>Either party may terminate this agreement with 30 days written notice. ThreeFold reserves the right to terminate immediately for violations of platform terms.</p>
<p>Either party may terminate this agreement with 30 days written notice. Mycelium reserves the right to terminate immediately for violations of platform terms.</p>
</div>
<div class="signature-section">
<h2>7. Agreement Acceptance</h2>
<p>By using the ThreeFold service provider platform, you acknowledge that you have read, understood, and agree to be bound by the terms of this agreement.</p>
<p>By using the Mycelium service provider platform, you acknowledge that you have read, understood, and agree to be bound by the terms of this agreement.</p>
<br>
<p><strong>ThreeFold Foundation</strong></p>
<p><strong>Mycelium Foundation</strong></p>
<p>Date: ${new Date().toLocaleDateString()}</p>
<br>
<p><strong>Service Provider Signature:</strong> _________________________</p>

View File

@@ -1,13 +1,13 @@
// Demo Workflow JavaScript
// This file provides a comprehensive demo of the ThreeFold Dashboard functionality
// This file provides a comprehensive demo of the Mycelium Dashboard functionality
class DemoWorkflow {
constructor() {
this.currentStep = 0;
this.steps = [
{
title: "Welcome to ThreeFold Dashboard Demo",
description: "This demo will showcase the complete interactive functionality of the ThreeFold ecosystem.",
title: "Welcome to Mycelium Dashboard Demo",
description: "This demo will showcase the complete interactive functionality of the Mycelium ecosystem.",
action: () => this.showWelcome()
},
{
@@ -42,7 +42,7 @@ class DemoWorkflow {
},
{
title: "Demo Complete",
description: "You've seen the complete ThreeFold ecosystem in action!",
description: "You've seen the complete Mycelium ecosystem in action!",
action: () => this.showCompletion()
}
];
@@ -75,14 +75,14 @@ class DemoWorkflow {
demoPanel.innerHTML = `
<div class="demo-header">
<h5 class="mb-2">🚀 ThreeFold Demo</h5>
<h5 class="mb-2">🚀 Mycelium Demo</h5>
<div class="progress mb-3" style="height: 6px;">
<div class="progress-bar bg-primary" id="demo-progress" role="progressbar" style="width: 0%"></div>
</div>
</div>
<div class="demo-content">
<h6 id="demo-title">Welcome to ThreeFold Dashboard Demo</h6>
<p id="demo-description" class="text-muted small">This demo will showcase the complete interactive functionality of the ThreeFold ecosystem.</p>
<h6 id="demo-title">Welcome to Mycelium Dashboard Demo</h6>
<p id="demo-description" class="text-muted small">This demo will showcase the complete interactive functionality of the Mycelium ecosystem.</p>
</div>
<div class="demo-controls mt-3">
<button class="btn btn-primary btn-sm me-2" id="demo-next">Start Demo</button>
@@ -139,7 +139,7 @@ class DemoWorkflow {
}
showWelcome() {
showNotification('Welcome to the ThreeFold Dashboard Demo! 🎉', 'info');
showNotification('Welcome to the Mycelium Dashboard Demo! 🎉', 'info');
}
demoAppRegistration() {
@@ -167,7 +167,7 @@ class DemoWorkflow {
fillAppRegistrationForm() {
const formData = {
appName: 'Demo Secure Chat App',
appDesc: 'A decentralized, end-to-end encrypted chat application built for the ThreeFold Grid',
appDesc: 'A decentralized, end-to-end encrypted chat application built for the Mycelium Grid',
appCategory: 'communication',
appType: 'container',
appRepo: 'https://github.com/demo/secure-chat',
@@ -219,8 +219,8 @@ class DemoWorkflow {
fillServiceCreationForm() {
const formData = {
serviceName: 'Demo ThreeFold Migration Service',
serviceDesc: 'Professional migration service to help businesses move their workloads to the ThreeFold Grid with zero downtime',
serviceName: 'Demo Mycelium Migration Service',
serviceDesc: 'Professional migration service to help businesses move their workloads to the Mycelium Grid with zero downtime',
serviceCategory: 'migration',
serviceDelivery: 'hybrid',
pricingType: 'hourly',
@@ -228,7 +228,7 @@ class DemoWorkflow {
serviceExperience: 'expert',
availableHours: '30',
responseTime: '4',
serviceSkills: 'Docker, Kubernetes, ThreeFold Grid, Cloud Migration, DevOps'
serviceSkills: 'Docker, Kubernetes, Mycelium Grid, Cloud Migration, DevOps'
};
Object.entries(formData).forEach(([key, value]) => {
@@ -307,7 +307,7 @@ class DemoWorkflow {
}
showCompletion() {
showNotification('🎉 Demo completed! You\'ve experienced the full ThreeFold ecosystem.', 'success');
showNotification('🎉 Demo completed! You\'ve experienced the full Mycelium ecosystem.', 'success');
setTimeout(() => {
this.closeDemo();

View File

@@ -390,8 +390,8 @@ class MarketplaceIntegration {
{
id: 'ms-mock-1',
source_service_id: 'service-mock-1',
name: 'ThreeFold Migration Service',
description: 'Professional migration from cloud providers to ThreeFold Grid',
name: 'Mycelium Migration Service',
description: 'Professional migration from cloud providers to Mycelium Grid',
category: 'Migration',
provider_id: mikeUser.id,
provider_name: mikeUser.display_name,

View File

@@ -16,7 +16,7 @@
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
<div class="container">
<a class="navbar-brand d-flex align-items-center" href="/">
<img src="/static/images/logo_dark.png" alt="ThreeFold Logo" height="30" class="me-2">
<img src="/static/images/logo_dark.png" alt="Mycelium Logo" height="30" class="me-2">
<span>Project Mycelium</span>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"

View File

@@ -5,7 +5,7 @@
{% block marketplace_content %}
<div class="my-4">
<h1>Professional Services</h1>
<p class="lead">Expert services to help you succeed with ThreeFold technology and infrastructure.</p>
<p class="lead">Expert services to help you succeed with Mycelium technology and infrastructure.</p>
<!-- Services Introduction -->
<div class="alert alert-info mb-4">
@@ -15,7 +15,7 @@
</div>
<div>
<h5 class="alert-heading">Professional Support & Services</h5>
<p>Our certified experts and trusted community providers offer comprehensive services to help you deploy, manage, and optimize your ThreeFold infrastructure and applications.</p>
<p>Our certified experts and trusted community providers offer comprehensive services to help you deploy, manage, and optimize your Mycelium infrastructure and applications.</p>
<hr>
<p class="mb-0">From initial consultation to ongoing support, we ensure your success with decentralized technology.</p>
</div>
@@ -320,7 +320,7 @@
<div class="card-body text-center">
<i class="bi bi-tools fs-1 text-primary mb-3"></i>
<h5>Deployment & Setup</h5>
<p class="small text-muted">Professional deployment, configuration, and optimization of your ThreeFold infrastructure and applications.</p>
<p class="small text-muted">Professional deployment, configuration, and optimization of your Mycelium infrastructure and applications.</p>
</div>
</div>
</div>