diff --git a/src/lib/helpers/files.ts b/src/lib/helpers/files.ts new file mode 100644 index 000000000..97a3b8939 --- /dev/null +++ b/src/lib/helpers/files.ts @@ -0,0 +1,186 @@ +import ignore from 'ignore'; + +export interface FileData { + path: string; + buffer: ArrayBuffer; +} + +export async function processFileList(files: FileList): Promise { + const fileArray = Array.from(files); + const ignorer = ignore(); + + // Check for .gitignore file + const gitignoreFile = fileArray.find( + (file) => file.webkitRelativePath.endsWith('.gitignore') || file.name === '.gitignore' + ); + + if (gitignoreFile) { + const gitignoreContent = await gitignoreFile.text(); + ignorer.add(gitignoreContent); + } else { + ignorer.add(defaultIgnore); + } + + // Filter files using ignorer + const filteredFiles = fileArray.filter((file) => { + const path = file.webkitRelativePath || file.name; + return !ignorer.ignores(path); + }); + const filePromises = filteredFiles.map(async (file) => { + try { + const buffer = await file.arrayBuffer(); + return { + path: file?.webkitRelativePath || file.name, + buffer: buffer + }; + } catch (e) { + // console.log(file); + return null; + } + }); + + return Promise.all(filePromises); +} + +export const defaultIgnore = ` +### Node ### +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +### Node Patch ### +# Serverless Webpack directories +.webpack/ + +# Optional stylelint cache + +# SvelteKit build / generate output +.svelte-kit + +`; diff --git a/src/routes/(console)/project-[project]/sites/create-site/repositories/repository-[repository]/importSiteVariablesModal.svelte b/src/routes/(console)/project-[project]/sites/create-site/importSiteVariablesModal.svelte similarity index 100% rename from src/routes/(console)/project-[project]/sites/create-site/repositories/repository-[repository]/importSiteVariablesModal.svelte rename to src/routes/(console)/project-[project]/sites/create-site/importSiteVariablesModal.svelte diff --git a/src/routes/(console)/project-[project]/sites/create-site/manual/+page.svelte b/src/routes/(console)/project-[project]/sites/create-site/manual/+page.svelte new file mode 100644 index 000000000..19fbd8ca6 --- /dev/null +++ b/src/routes/(console)/project-[project]/sites/create-site/manual/+page.svelte @@ -0,0 +1,181 @@ + + + + Create site - Appwrite + + + +
+ + + + + + Drag and drop files here or click to upload + + + + + Only PNG, JPEG, PDF files allowed + + + + Max file size: 10MB + + +
+ + + + + + + +