bleblond commited on
Commit
41af726
·
verified ·
1 Parent(s): f10b7d0

Add 3 files

Browse files
Files changed (3) hide show
  1. README.md +6 -4
  2. index.html +748 -19
  3. prompts.txt +1 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Drupal11
3
- emoji: 🚀
4
- colorFrom: gray
5
  colorTo: yellow
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: drupal11
3
+ emoji: 🐳
4
+ colorFrom: purple
5
  colorTo: yellow
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,748 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Drupal Migration Assistant | D7 to D11</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <style>
10
+ .progress-bar {
11
+ height: 6px;
12
+ transition: width 0.3s ease;
13
+ }
14
+ .file-drop-area {
15
+ border: 2px dashed #cbd5e0;
16
+ transition: all 0.3s ease;
17
+ }
18
+ .file-drop-area.active {
19
+ border-color: #4f46e5;
20
+ background-color: #eef2ff;
21
+ }
22
+ .step-indicator {
23
+ width: 40px;
24
+ height: 40px;
25
+ }
26
+ .module-card:hover {
27
+ transform: translateY(-2px);
28
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
29
+ }
30
+ .migration-log {
31
+ max-height: 300px;
32
+ overflow-y: auto;
33
+ }
34
+ </style>
35
+ </head>
36
+ <body class="bg-gray-50">
37
+ <div class="container mx-auto px-4 py-8 max-w-6xl">
38
+ <!-- Header -->
39
+ <header class="mb-10 text-center">
40
+ <h1 class="text-4xl font-bold text-indigo-800 mb-2">Drupal Migration Assistant</h1>
41
+ <p class="text-xl text-gray-600">Migrate from Drupal 7 to Drupal 11 using your .sitearchive.tar.zip file</p>
42
+ <div class="mt-4">
43
+ <span class="inline-block px-3 py-1 bg-indigo-100 text-indigo-800 rounded-full text-sm font-medium">
44
+ <i class="fas fa-exclamation-triangle mr-1"></i> Experimental
45
+ </span>
46
+ </div>
47
+ </header>
48
+
49
+ <!-- Progress Steps -->
50
+ <div class="flex justify-between items-center mb-12 relative">
51
+ <div class="absolute top-1/2 left-0 right-0 h-1 bg-gray-200 -z-10"></div>
52
+ <div class="absolute top-1/2 left-0 h-1 bg-indigo-600 -z-10 transition-all duration-500" id="progress-line" style="width: 0%"></div>
53
+
54
+ <div class="step-group flex flex-col items-center" data-step="1">
55
+ <div class="step-indicator bg-indigo-600 text-white rounded-full flex items-center justify-center mb-2">
56
+ <span>1</span>
57
+ </div>
58
+ <span class="text-sm font-medium text-indigo-600">Upload Archive</span>
59
+ </div>
60
+
61
+ <div class="step-group flex flex-col items-center" data-step="2">
62
+ <div class="step-indicator bg-gray-200 text-gray-500 rounded-full flex items-center justify-center mb-2">
63
+ <span>2</span>
64
+ </div>
65
+ <span class="text-sm font-medium text-gray-500">Analyze</span>
66
+ </div>
67
+
68
+ <div class="step-group flex flex-col items-center" data-step="3">
69
+ <div class="step-indicator bg-gray-200 text-gray-500 rounded-full flex items-center justify-center mb-2">
70
+ <span>3</span>
71
+ </div>
72
+ <span class="text-sm font-medium text-gray-500">Configure</span>
73
+ </div>
74
+
75
+ <div class="step-group flex flex-col items-center" data-step="4">
76
+ <div class="step-indicator bg-gray-200 text-gray-500 rounded-full flex items-center justify-center mb-2">
77
+ <span>4</span>
78
+ </div>
79
+ <span class="text-sm font-medium text-gray-500">Migrate</span>
80
+ </div>
81
+
82
+ <div class="step-group flex flex-col items-center" data-step="5">
83
+ <div class="step-indicator bg-gray-200 text-gray-500 rounded-full flex items-center justify-center mb-2">
84
+ <span>5</span>
85
+ </div>
86
+ <span class="text-sm font-medium text-gray-500">Complete</span>
87
+ </div>
88
+ </div>
89
+
90
+ <!-- Step 1: Upload Archive -->
91
+ <div id="step-1" class="step-content">
92
+ <div class="bg-white rounded-xl shadow-md overflow-hidden p-6 mb-8">
93
+ <h2 class="text-2xl font-semibold text-gray-800 mb-4">Upload Your Drupal 7 Site Archive</h2>
94
+ <p class="text-gray-600 mb-6">Please upload your Drupal 7 site archive file (.sitearchive.tar.zip) to begin the migration process. This file should contain your database dump and all site files.</p>
95
+
96
+ <div id="file-drop-area" class="file-drop-area rounded-lg p-8 text-center cursor-pointer">
97
+ <div class="flex flex-col items-center justify-center">
98
+ <i class="fas fa-file-archive text-5xl text-indigo-400 mb-4"></i>
99
+ <p class="text-lg font-medium text-gray-700 mb-2">Drag & drop your .sitearchive.tar.zip file here</p>
100
+ <p class="text-gray-500 mb-4">or</p>
101
+ <label for="file-input" class="px-6 py-3 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 transition cursor-pointer">
102
+ <i class="fas fa-upload mr-2"></i> Select File
103
+ </label>
104
+ <input type="file" id="file-input" class="hidden" accept=".zip,.tar.gz,.sitearchive.tar.zip">
105
+ </div>
106
+ </div>
107
+
108
+ <div id="file-info" class="hidden mt-6 p-4 bg-indigo-50 rounded-lg">
109
+ <div class="flex items-center">
110
+ <i class="fas fa-file-archive text-indigo-500 text-2xl mr-4"></i>
111
+ <div>
112
+ <p class="font-medium text-gray-800" id="file-name">filename.sitearchive.tar.zip</p>
113
+ <p class="text-sm text-gray-600" id="file-size">25.4 MB</p>
114
+ </div>
115
+ <button id="remove-file" class="ml-auto text-red-500 hover:text-red-700">
116
+ <i class="fas fa-times"></i>
117
+ </button>
118
+ </div>
119
+ </div>
120
+
121
+ <div class="mt-8">
122
+ <button id="next-step-1" class="px-6 py-3 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 transition disabled:opacity-50 disabled:cursor-not-allowed" disabled>
123
+ Analyze Archive <i class="fas fa-arrow-right ml-2"></i>
124
+ </button>
125
+ </div>
126
+ </div>
127
+
128
+ <div class="bg-white rounded-xl shadow-md overflow-hidden p-6">
129
+ <h3 class="text-xl font-semibold text-gray-800 mb-4">Migration Requirements</h3>
130
+ <ul class="space-y-3">
131
+ <li class="flex items-start">
132
+ <i class="fas fa-check-circle text-green-500 mt-1 mr-3"></i>
133
+ <span>Drupal 7 site archive must include both database and files</span>
134
+ </li>
135
+ <li class="flex items-start">
136
+ <i class="fas fa-check-circle text-green-500 mt-1 mr-3"></i>
137
+ <span>Archive should be created using Backup and Migrate module or Drush</span>
138
+ </li>
139
+ <li class="flex items-start">
140
+ <i class="fas fa-exclamation-triangle text-yellow-500 mt-1 mr-3"></i>
141
+ <span>Large sites (>500MB) may take longer to process</span>
142
+ </li>
143
+ <li class="flex items-start">
144
+ <i class="fas fa-info-circle text-blue-500 mt-1 mr-3"></i>
145
+ <span>Ensure you have a complete backup before proceeding</span>
146
+ </li>
147
+ </ul>
148
+ </div>
149
+ </div>
150
+
151
+ <!-- Step 2: Analyze -->
152
+ <div id="step-2" class="step-content hidden">
153
+ <div class="bg-white rounded-xl shadow-md overflow-hidden p-6 mb-8">
154
+ <h2 class="text-2xl font-semibold text-gray-800 mb-4">Analyzing Your Drupal 7 Site</h2>
155
+ <p class="text-gray-600 mb-6">We're examining your site archive to identify all components that need to be migrated to Drupal 11.</p>
156
+
157
+ <div class="mb-6">
158
+ <div class="flex justify-between mb-2">
159
+ <span class="text-sm font-medium text-gray-700">Analysis Progress</span>
160
+ <span class="text-sm font-medium text-indigo-600" id="progress-percent">0%</span>
161
+ </div>
162
+ <div class="w-full bg-gray-200 rounded-full h-2.5">
163
+ <div id="analysis-progress" class="progress-bar bg-indigo-600 rounded-full" style="width: 0%"></div>
164
+ </div>
165
+ </div>
166
+
167
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-4 mb-6">
168
+ <div class="bg-blue-50 p-4 rounded-lg">
169
+ <div class="flex items-center mb-2">
170
+ <i class="fas fa-database text-blue-500 mr-2"></i>
171
+ <span class="font-medium">Database</span>
172
+ </div>
173
+ <p class="text-sm text-gray-600" id="db-status">Waiting to analyze...</p>
174
+ </div>
175
+ <div class="bg-purple-50 p-4 rounded-lg">
176
+ <div class="flex items-center mb-2">
177
+ <i class="fas fa-file-code text-purple-500 mr-2"></i>
178
+ <span class="font-medium">Modules</span>
179
+ </div>
180
+ <p class="text-sm text-gray-600" id="modules-status">Waiting to analyze...</p>
181
+ </div>
182
+ <div class="bg-green-50 p-4 rounded-lg">
183
+ <div class="flex items-center mb-2">
184
+ <i class="fas fa-image text-green-500 mr-2"></i>
185
+ <span class="font-medium">Files</span>
186
+ </div>
187
+ <p class="text-sm text-gray-600" id="files-status">Waiting to analyze...</p>
188
+ </div>
189
+ </div>
190
+
191
+ <div class="bg-gray-50 p-4 rounded-lg mb-6">
192
+ <h4 class="font-medium text-gray-800 mb-3">Analysis Log</h4>
193
+ <div id="analysis-log" class="migration-log text-sm text-gray-700 font-mono bg-white p-3 rounded">
194
+ <div class="log-entry text-gray-500">Starting analysis process...</div>
195
+ </div>
196
+ </div>
197
+
198
+ <div class="flex justify-between">
199
+ <button class="step-back px-6 py-3 bg-gray-200 text-gray-700 rounded-lg hover:bg-gray-300 transition">
200
+ <i class="fas fa-arrow-left mr-2"></i> Back
201
+ </button>
202
+ <button id="next-step-2" class="px-6 py-3 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 transition disabled:opacity-50 disabled:cursor-not-allowed" disabled>
203
+ Configure Migration <i class="fas fa-arrow-right ml-2"></i>
204
+ </button>
205
+ </div>
206
+ </div>
207
+ </div>
208
+
209
+ <!-- Step 3: Configure -->
210
+ <div id="step-3" class="step-content hidden">
211
+ <div class="bg-white rounded-xl shadow-md overflow-hidden p-6 mb-8">
212
+ <h2 class="text-2xl font-semibold text-gray-800 mb-6">Migration Configuration</h2>
213
+
214
+ <div class="mb-8">
215
+ <h3 class="text-xl font-medium text-gray-800 mb-4">Site Information</h3>
216
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
217
+ <div>
218
+ <label class="block text-gray-700 mb-2">Site Name</label>
219
+ <input type="text" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500" value="My Drupal Site">
220
+ </div>
221
+ <div>
222
+ <label class="block text-gray-700 mb-2">Site Email</label>
223
+ <input type="email" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500" value="admin@example.com">
224
+ </div>
225
+ </div>
226
+ </div>
227
+
228
+ <div class="mb-8">
229
+ <h3 class="text-xl font-medium text-gray-800 mb-4">Content Migration</h3>
230
+ <div class="space-y-4">
231
+ <div class="flex items-center">
232
+ <input type="checkbox" id="migrate-content" class="h-5 w-5 text-indigo-600 rounded" checked>
233
+ <label for="migrate-content" class="ml-3 text-gray-700">Migrate all content (nodes, taxonomy, etc.)</label>
234
+ </div>
235
+ <div class="flex items-center">
236
+ <input type="checkbox" id="migrate-users" class="h-5 w-5 text-indigo-600 rounded" checked>
237
+ <label for="migrate-users" class="ml-3 text-gray-700">Migrate users and roles</label>
238
+ </div>
239
+ <div class="flex items-center">
240
+ <input type="checkbox" id="migrate-files" class="h-5 w-5 text-indigo-600 rounded" checked>
241
+ <label for="migrate-files" class="ml-3 text-gray-700">Migrate files and media</label>
242
+ </div>
243
+ </div>
244
+ </div>
245
+
246
+ <div class="mb-8">
247
+ <h3 class="text-xl font-medium text-gray-800 mb-4">Module Migration</h3>
248
+ <p class="text-gray-600 mb-4">Select which modules to migrate to their Drupal 11 equivalents.</p>
249
+
250
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
251
+ <div class="module-card bg-white border border-gray-200 rounded-lg p-4 hover:shadow-md transition">
252
+ <div class="flex items-center mb-3">
253
+ <input type="checkbox" id="module-views" class="h-5 w-5 text-indigo-600 rounded" checked>
254
+ <label for="module-views" class="ml-2 font-medium">Views</label>
255
+ </div>
256
+ <p class="text-sm text-gray-600">Will be migrated to Drupal 11 Views</p>
257
+ </div>
258
+
259
+ <div class="module-card bg-white border border-gray-200 rounded-lg p-4 hover:shadow-md transition">
260
+ <div class="flex items-center mb-3">
261
+ <input type="checkbox" id="module-ctools" class="h-5 w-5 text-indigo-600 rounded" checked>
262
+ <label for="module-ctools" class="ml-2 font-medium">CTools</label>
263
+ </div>
264
+ <p class="text-sm text-gray-600">Functionality included in core</p>
265
+ </div>
266
+
267
+ <div class="module-card bg-white border border-gray-200 rounded-lg p-4 hover:shadow-md transition">
268
+ <div class="flex items-center mb-3">
269
+ <input type="checkbox" id="module-pathauto" class="h-5 w-5 text-indigo-600 rounded" checked>
270
+ <label for="module-pathauto" class="ml-2 font-medium">Pathauto</label>
271
+ </div>
272
+ <p class="text-sm text-gray-600">Will be migrated to Drupal 11 Pathauto</p>
273
+ </div>
274
+
275
+ <div class="module-card bg-white border border-gray-200 rounded-lg p-4 hover:shadow-md transition">
276
+ <div class="flex items-center mb-3">
277
+ <input type="checkbox" id="module-token" class="h-5 w-5 text-indigo-600 rounded" checked>
278
+ <label for="module-token" class="ml-2 font-medium">Token</label>
279
+ </div>
280
+ <p class="text-sm text-gray-600">Functionality included in core</p>
281
+ </div>
282
+
283
+ <div class="module-card bg-white border border-gray-200 rounded-lg p-4 hover:shadow-md transition">
284
+ <div class="flex items-center mb-3">
285
+ <input type="checkbox" id="module-webform" class="h-5 w-5 text-indigo-600 rounded" checked>
286
+ <label for="module-webform" class="ml-2 font-medium">Webform</label>
287
+ </div>
288
+ <p class="text-sm text-gray-600">Will be migrated to Drupal 11 Webform</p>
289
+ </div>
290
+
291
+ <div class="module-card bg-white border border-gray-200 rounded-lg p-4 hover:shadow-md transition">
292
+ <div class="flex items-center mb-3">
293
+ <input type="checkbox" id="module-panels" class="h-5 w-5 text-indigo-600 rounded" checked>
294
+ <label for="module-panels" class="ml-2 font-medium">Panels</label>
295
+ </div>
296
+ <p class="text-sm text-gray-600">Consider migrating to Layout Builder</p>
297
+ </div>
298
+ </div>
299
+ </div>
300
+
301
+ <div class="mb-8">
302
+ <h3 class="text-xl font-medium text-gray-800 mb-4">Advanced Options</h3>
303
+ <div class="space-y-4">
304
+ <div>
305
+ <label class="block text-gray-700 mb-2">Content Language</label>
306
+ <select class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500">
307
+ <option>English (en)</option>
308
+ <option>French (fr)</option>
309
+ <option>Spanish (es)</option>
310
+ <option>German (de)</option>
311
+ </select>
312
+ </div>
313
+ <div class="flex items-center">
314
+ <input type="checkbox" id="preserve-ids" class="h-5 w-5 text-indigo-600 rounded">
315
+ <label for="preserve-ids" class="ml-3 text-gray-700">Preserve original content IDs</label>
316
+ </div>
317
+ <div class="flex items-center">
318
+ <input type="checkbox" id="generate-report" class="h-5 w-5 text-indigo-600 rounded" checked>
319
+ <label for="generate-report" class="ml-3 text-gray-700">Generate migration report</label>
320
+ </div>
321
+ </div>
322
+ </div>
323
+
324
+ <div class="flex justify-between">
325
+ <button class="step-back px-6 py-3 bg-gray-200 text-gray-700 rounded-lg hover:bg-gray-300 transition">
326
+ <i class="fas fa-arrow-left mr-2"></i> Back
327
+ </button>
328
+ <button id="next-step-3" class="px-6 py-3 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 transition">
329
+ Start Migration <i class="fas fa-arrow-right ml-2"></i>
330
+ </button>
331
+ </div>
332
+ </div>
333
+ </div>
334
+
335
+ <!-- Step 4: Migrate -->
336
+ <div id="step-4" class="step-content hidden">
337
+ <div class="bg-white rounded-xl shadow-md overflow-hidden p-6 mb-8">
338
+ <h2 class="text-2xl font-semibold text-gray-800 mb-4">Migrating to Drupal 11</h2>
339
+ <p class="text-gray-600 mb-6">We're now migrating your Drupal 7 site to Drupal 11. This process may take several minutes depending on your site size.</p>
340
+
341
+ <div class="mb-6">
342
+ <div class="flex justify-between mb-2">
343
+ <span class="text-sm font-medium text-gray-700">Migration Progress</span>
344
+ <span class="text-sm font-medium text-indigo-600" id="migration-percent">0%</span>
345
+ </div>
346
+ <div class="w-full bg-gray-200 rounded-full h-2.5">
347
+ <div id="migration-progress" class="progress-bar bg-indigo-600 rounded-full" style="width: 0%"></div>
348
+ </div>
349
+ </div>
350
+
351
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-4 mb-6">
352
+ <div class="bg-blue-50 p-4 rounded-lg">
353
+ <div class="flex items-center mb-2">
354
+ <i class="fas fa-database text-blue-500 mr-2"></i>
355
+ <span class="font-medium">Database</span>
356
+ </div>
357
+ <p class="text-sm text-gray-600" id="migrate-db-status">Waiting to migrate...</p>
358
+ </div>
359
+ <div class="bg-purple-50 p-4 rounded-lg">
360
+ <div class="flex items-center mb-2">
361
+ <i class="fas fa-file-code text-purple-500 mr-2"></i>
362
+ <span class="font-medium">Content</span>
363
+ </div>
364
+ <p class="text-sm text-gray-600" id="migrate-content-status">Waiting to migrate...</p>
365
+ </div>
366
+ <div class="bg-green-50 p-4 rounded-lg">
367
+ <div class="flex items-center mb-2">
368
+ <i class="fas fa-image text-green-500 mr-2"></i>
369
+ <span class="font-medium">Configuration</span>
370
+ </div>
371
+ <p class="text-sm text-gray-600" id="migrate-config-status">Waiting to migrate...</p>
372
+ </div>
373
+ </div>
374
+
375
+ <div class="bg-gray-50 p-4 rounded-lg mb-6">
376
+ <h4 class="font-medium text-gray-800 mb-3">Migration Log</h4>
377
+ <div id="migration-log" class="migration-log text-sm text-gray-700 font-mono bg-white p-3 rounded">
378
+ <div class="log-entry text-gray-500">Preparing migration environment...</div>
379
+ </div>
380
+ </div>
381
+
382
+ <div class="flex justify-between">
383
+ <button class="step-back px-6 py-3 bg-gray-200 text-gray-700 rounded-lg hover:bg-gray-300 transition">
384
+ <i class="fas fa-arrow-left mr-2"></i> Back
385
+ </button>
386
+ <button id="next-step-4" class="px-6 py-3 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 transition disabled:opacity-50 disabled:cursor-not-allowed" disabled>
387
+ Complete <i class="fas fa-arrow-right ml-2"></i>
388
+ </button>
389
+ </div>
390
+ </div>
391
+ </div>
392
+
393
+ <!-- Step 5: Complete -->
394
+ <div id="step-5" class="step-content hidden">
395
+ <div class="bg-white rounded-xl shadow-md overflow-hidden p-6 mb-8 text-center">
396
+ <div class="mb-8">
397
+ <div class="inline-flex items-center justify-center w-20 h-20 bg-green-100 rounded-full mb-4">
398
+ <i class="fas fa-check-circle text-green-500 text-4xl"></i>
399
+ </div>
400
+ <h2 class="text-2xl font-semibold text-gray-800 mb-2">Migration Complete!</h2>
401
+ <p class="text-gray-600 mb-6">Your Drupal 7 site has been successfully migrated to Drupal 11.</p>
402
+ </div>
403
+
404
+ <div class="max-w-2xl mx-auto mb-8">
405
+ <div class="bg-green-50 border-l-4 border-green-500 p-4 mb-6">
406
+ <div class="flex">
407
+ <div class="flex-shrink-0">
408
+ <i class="fas fa-info-circle text-green-500 mt-1 mr-3"></i>
409
+ </div>
410
+ <div>
411
+ <p class="text-sm text-green-700">
412
+ Your new Drupal 11 site is ready. You can now log in with your Drupal 7 credentials.
413
+ </p>
414
+ </div>
415
+ </div>
416
+ </div>
417
+
418
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-8">
419
+ <div class="bg-white border border-gray-200 rounded-lg p-6">
420
+ <h3 class="text-lg font-medium text-gray-800 mb-3">Migration Summary</h3>
421
+ <ul class="space-y-2 text-left text-sm text-gray-600">
422
+ <li class="flex items-start">
423
+ <i class="fas fa-check-circle text-green-500 mt-1 mr-2"></i>
424
+ <span><span class="font-medium">142</span> content items migrated</span>
425
+ </li>
426
+ <li class="flex items-start">
427
+ <i class="fas fa-check-circle text-green-500 mt-1 mr-2"></i>
428
+ <span><span class="font-medium">28</span> users migrated</span>
429
+ </li>
430
+ <li class="flex items-start">
431
+ <i class="fas fa-check-circle text-green-500 mt-1 mr-2"></i>
432
+ <span><span class="font-medium">15</span> taxonomy terms migrated</span>
433
+ </li>
434
+ <li class="flex items-start">
435
+ <i class="fas fa-check-circle text-green-500 mt-1 mr-2"></i>
436
+ <span><span class="font-medium">326</span> files migrated</span>
437
+ </li>
438
+ </ul>
439
+ </div>
440
+
441
+ <div class="bg-white border border-gray-200 rounded-lg p-6">
442
+ <h3 class="text-lg font-medium text-gray-800 mb-3">Next Steps</h3>
443
+ <ul class="space-y-3 text-left text-sm text-gray-600">
444
+ <li class="flex items-start">
445
+ <i class="fas fa-lightbulb text-yellow-500 mt-1 mr-2"></i>
446
+ <span>Review your site content and configuration</span>
447
+ </li>
448
+ <li class="flex items-start">
449
+ <i class="fas fa-lightbulb text-yellow-500 mt-1 mr-2"></i>
450
+ <span>Update any custom themes for Drupal 11</span>
451
+ </li>
452
+ <li class="flex items-start">
453
+ <i class="fas fa-lightbulb text-yellow-500 mt-1 mr-2"></i>
454
+ <span>Test all critical site functionality</span>
455
+ </li>
456
+ <li class="flex items-start">
457
+ <i class="fas fa-lightbulb text-yellow-500 mt-1 mr-2"></i>
458
+ <span>Consider implementing a new Drupal 11 theme</span>
459
+ </li>
460
+ </ul>
461
+ </div>
462
+ </div>
463
+
464
+ <div class="flex flex-col sm:flex-row justify-center gap-4">
465
+ <a href="#" class="px-6 py-3 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 transition">
466
+ <i class="fas fa-external-link-alt mr-2"></i> Visit Your New Site
467
+ </a>
468
+ <a href="#" class="px-6 py-3 bg-white border border-gray-300 text-gray-700 rounded-lg hover:bg-gray-50 transition">
469
+ <i class="fas fa-download mr-2"></i> Download Migration Report
470
+ </a>
471
+ </div>
472
+ </div>
473
+ </div>
474
+ </div>
475
+ </div>
476
+
477
+ <script>
478
+ // Current step tracking
479
+ let currentStep = 1;
480
+
481
+ // DOM elements
482
+ const stepContents = document.querySelectorAll('.step-content');
483
+ const stepGroups = document.querySelectorAll('.step-group');
484
+ const progressLine = document.getElementById('progress-line');
485
+ const fileDropArea = document.getElementById('file-drop-area');
486
+ const fileInput = document.getElementById('file-input');
487
+ const fileInfo = document.getElementById('file-info');
488
+ const fileName = document.getElementById('file-name');
489
+ const fileSize = document.getElementById('file-size');
490
+ const removeFileBtn = document.getElementById('remove-file');
491
+ const nextStep1Btn = document.getElementById('next-step-1');
492
+
493
+ // File upload handling
494
+ fileDropArea.addEventListener('click', () => fileInput.click());
495
+
496
+ fileDropArea.addEventListener('dragover', (e) => {
497
+ e.preventDefault();
498
+ fileDropArea.classList.add('active');
499
+ });
500
+
501
+ fileDropArea.addEventListener('dragleave', () => {
502
+ fileDropArea.classList.remove('active');
503
+ });
504
+
505
+ fileDropArea.addEventListener('drop', (e) => {
506
+ e.preventDefault();
507
+ fileDropArea.classList.remove('active');
508
+ if (e.dataTransfer.files.length) {
509
+ handleFileUpload(e.dataTransfer.files[0]);
510
+ }
511
+ });
512
+
513
+ fileInput.addEventListener('change', () => {
514
+ if (fileInput.files.length) {
515
+ handleFileUpload(fileInput.files[0]);
516
+ }
517
+ });
518
+
519
+ removeFileBtn.addEventListener('click', (e) => {
520
+ e.stopPropagation();
521
+ fileInput.value = '';
522
+ fileInfo.classList.add('hidden');
523
+ nextStep1Btn.disabled = true;
524
+ });
525
+
526
+ function handleFileUpload(file) {
527
+ if (!file.name.endsWith('.sitearchive.tar.zip') && !file.name.endsWith('.zip') && !file.name.endsWith('.tar.gz')) {
528
+ alert('Please upload a valid Drupal site archive file (.sitearchive.tar.zip, .zip, or .tar.gz)');
529
+ return;
530
+ }
531
+
532
+ fileName.textContent = file.name;
533
+ fileSize.textContent = formatFileSize(file.size);
534
+ fileInfo.classList.remove('hidden');
535
+ nextStep1Btn.disabled = false;
536
+ }
537
+
538
+ function formatFileSize(bytes) {
539
+ if (bytes === 0) return '0 Bytes';
540
+ const k = 1024;
541
+ const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
542
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
543
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
544
+ }
545
+
546
+ // Step navigation
547
+ document.querySelectorAll('.step-back').forEach(btn => {
548
+ btn.addEventListener('click', () => navigateToStep(currentStep - 1));
549
+ });
550
+
551
+ document.getElementById('next-step-1').addEventListener('click', () => {
552
+ navigateToStep(2);
553
+ simulateAnalysis();
554
+ });
555
+
556
+ document.getElementById('next-step-2').addEventListener('click', () => {
557
+ navigateToStep(3);
558
+ });
559
+
560
+ document.getElementById('next-step-3').addEventListener('click', () => {
561
+ navigateToStep(4);
562
+ simulateMigration();
563
+ });
564
+
565
+ document.getElementById('next-step-4').addEventListener('click', () => {
566
+ navigateToStep(5);
567
+ });
568
+
569
+ function navigateToStep(step) {
570
+ // Hide current step
571
+ document.getElementById(`step-${currentStep}`).classList.add('hidden');
572
+
573
+ // Update step indicators
574
+ stepGroups.forEach(group => {
575
+ const groupStep = parseInt(group.dataset.step);
576
+ const indicator = group.querySelector('.step-indicator');
577
+ const text = group.querySelector('span:last-child');
578
+
579
+ if (groupStep === step) {
580
+ indicator.classList.remove('bg-gray-200', 'text-gray-500');
581
+ indicator.classList.add('bg-indigo-600', 'text-white');
582
+ text.classList.remove('text-gray-500');
583
+ text.classList.add('text-indigo-600');
584
+ } else if (groupStep < step) {
585
+ indicator.classList.remove('bg-gray-200', 'text-gray-500');
586
+ indicator.classList.add('bg-green-500', 'text-white');
587
+ text.classList.remove('text-gray-500');
588
+ text.classList.add('text-green-600');
589
+ } else {
590
+ indicator.classList.remove('bg-indigo-600', 'text-white', 'bg-green-500');
591
+ indicator.classList.add('bg-gray-200', 'text-gray-500');
592
+ text.classList.remove('text-indigo-600', 'text-green-600');
593
+ text.classList.add('text-gray-500');
594
+ }
595
+ });
596
+
597
+ // Update progress line
598
+ const progressPercent = ((step - 1) / 4) * 100;
599
+ progressLine.style.width = `${progressPercent}%`;
600
+
601
+ // Show new step
602
+ document.getElementById(`step-${step}`).classList.remove('hidden');
603
+ currentStep = step;
604
+
605
+ // Scroll to top
606
+ window.scrollTo({ top: 0, behavior: 'smooth' });
607
+ }
608
+
609
+ // Simulation functions for demo purposes
610
+ function simulateAnalysis() {
611
+ const progressBar = document.getElementById('analysis-progress');
612
+ const percentText = document.getElementById('progress-percent');
613
+ const analysisLog = document.getElementById('analysis-log');
614
+ const nextStep2Btn = document.getElementById('next-step-2');
615
+
616
+ const statusElements = {
617
+ db: document.getElementById('db-status'),
618
+ modules: document.getElementById('modules-status'),
619
+ files: document.getElementById('files-status')
620
+ };
621
+
622
+ let progress = 0;
623
+ const interval = setInterval(() => {
624
+ progress += Math.random() * 5;
625
+ if (progress > 100) progress = 100;
626
+
627
+ progressBar.style.width = `${progress}%`;
628
+ percentText.textContent = `${Math.round(progress)}%`;
629
+
630
+ // Update status messages at certain intervals
631
+ if (progress > 10 && progress < 20) {
632
+ statusElements.db.textContent = 'Extracting database...';
633
+ addLogEntry(analysisLog, 'Extracting database from archive...');
634
+ }
635
+
636
+ if (progress > 25 && progress < 35) {
637
+ statusElements.db.textContent = 'Analyzing database structure...';
638
+ addLogEntry(analysisLog, 'Found 28 content types in database');
639
+ }
640
+
641
+ if (progress > 35 && progress < 45) {
642
+ statusElements.modules.textContent = 'Scanning for modules...';
643
+ addLogEntry(analysisLog, 'Scanning for contributed modules...');
644
+ }
645
+
646
+ if (progress > 50 && progress < 60) {
647
+ statusElements.modules.textContent = '32 modules detected';
648
+ statusElements.files.textContent = 'Scanning files directory...';
649
+ addLogEntry(analysisLog, 'Found 32 enabled modules');
650
+ }
651
+
652
+ if (progress > 70 && progress < 80) {
653
+ statusElements.files.textContent = '1,248 files detected';
654
+ addLogEntry(analysisLog, 'Found 1,248 files in sites/default/files');
655
+ }
656
+
657
+ if (progress > 85 && progress < 95) {
658
+ statusElements.db.textContent = 'Database analysis complete';
659
+ statusElements.modules.textContent = 'Module analysis complete';
660
+ statusElements.files.textContent = 'File analysis complete';
661
+ addLogEntry(analysisLog, 'Generating migration plan...');
662
+ }
663
+
664
+ if (progress === 100) {
665
+ clearInterval(interval);
666
+ addLogEntry(analysisLog, 'Analysis complete. Ready for migration configuration.', 'text-green-600');
667
+ nextStep2Btn.disabled = false;
668
+ }
669
+ }, 300);
670
+ }
671
+
672
+ function simulateMigration() {
673
+ const progressBar = document.getElementById('migration-progress');
674
+ const percentText = document.getElementById('migration-percent');
675
+ const migrationLog = document.getElementById('migration-log');
676
+ const nextStep4Btn = document.getElementById('next-step-4');
677
+
678
+ const statusElements = {
679
+ db: document.getElementById('migrate-db-status'),
680
+ content: document.getElementById('migrate-content-status'),
681
+ config: document.getElementById('migrate-config-status')
682
+ };
683
+
684
+ let progress = 0;
685
+ const interval = setInterval(() => {
686
+ progress += Math.random() * 3;
687
+ if (progress > 100) progress = 100;
688
+
689
+ progressBar.style.width = `${progress}%`;
690
+ percentText.textContent = `${Math.round(progress)}%`;
691
+
692
+ // Update status messages at certain intervals
693
+ if (progress > 5 && progress < 15) {
694
+ statusElements.db.textContent = 'Creating Drupal 11 database...';
695
+ addLogEntry(migrationLog, 'Initializing Drupal 11 environment...');
696
+ }
697
+
698
+ if (progress > 20 && progress < 30) {
699
+ statusElements.db.textContent = 'Database created';
700
+ statusElements.config.textContent = 'Migrating configuration...';
701
+ addLogEntry(migrationLog, 'Created Drupal 11 database structure');
702
+ }
703
+
704
+ if (progress > 35 && progress < 45) {
705
+ statusElements.config.textContent = '42 configuration items migrated';
706
+ statusElements.content.textContent = 'Preparing content migration...';
707
+ addLogEntry(migrationLog, 'Migrated site configuration');
708
+ }
709
+
710
+ if (progress > 50 && progress < 60) {
711
+ statusElements.content.textContent = 'Migrating content (12/142)...';
712
+ addLogEntry(migrationLog, 'Started content migration process');
713
+ }
714
+
715
+ if (progress > 65 && progress < 75) {
716
+ statusElements.content.textContent = 'Migrating content (87/142)...';
717
+ addLogEntry(migrationLog, 'Migrating taxonomy terms...');
718
+ }
719
+
720
+ if (progress > 80 && progress < 90) {
721
+ statusElements.content.textContent = 'Migrating content (142/142)';
722
+ addLogEntry(migrationLog, 'Content migration complete');
723
+ }
724
+
725
+ if (progress > 92 && progress < 98) {
726
+ statusElements.content.textContent = 'Content migration complete';
727
+ statusElements.config.textContent = 'Configuration migration complete';
728
+ addLogEntry(migrationLog, 'Finalizing migration...');
729
+ }
730
+
731
+ if (progress === 100) {
732
+ clearInterval(interval);
733
+ addLogEntry(migrationLog, 'Migration completed successfully!', 'text-green-600');
734
+ nextStep4Btn.disabled = false;
735
+ }
736
+ }, 300);
737
+ }
738
+
739
+ function addLogEntry(logElement, message, colorClass = '') {
740
+ const entry = document.createElement('div');
741
+ entry.className = `log-entry ${colorClass}`;
742
+ entry.textContent = `[${new Date().toLocaleTimeString()}] ${message}`;
743
+ logElement.appendChild(entry);
744
+ logElement.scrollTop = logElement.scrollHeight;
745
+ }
746
+ </script>
747
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=bleblond/drupal11" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
748
+ </html>
prompts.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ migrration drupal 7 vers drupal 11 a partir dun fichier .sitearchive.tar.zip