-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #30 from SOFTLIMA/JHONATAN-TEXTO-DINAMICO-HOME
Alteração do painel de administração
- Loading branch information
Showing
11 changed files
with
226 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
<?php | ||
|
||
// Permitir requisições de outras origens | ||
header("Access-Control-Allow-Origin: *"); | ||
header("Access-Control-Allow-Methods: POST"); | ||
header("Access-Control-Allow-Headers: Content-Type"); | ||
header('Content-Type: application/json; charset=utf-8'); | ||
|
||
// Verifica se o método de requisição é POST | ||
if ($_SERVER['REQUEST_METHOD'] !== 'POST') { | ||
http_response_code(405); | ||
echo json_encode(["error" => "Método não permitido"]); | ||
exit; | ||
} | ||
|
||
// Verifica se o arquivo foi enviado e não teve erro no upload | ||
if (!isset($_FILES['imagem']) || $_FILES['imagem']['error'] !== UPLOAD_ERR_OK) { | ||
http_response_code(400); | ||
echo json_encode(["error" => "Erro ao enviar a imagem", "error_code" => $_FILES['imagem']['error']]); | ||
exit; | ||
} | ||
|
||
// Definindo o caminho para o diretório de destino (uma pasta antes da raiz da API) | ||
$uploadDir = dirname(__DIR__) . '/Galeria/Noticias/'; // Caminho antes da raiz da API | ||
if (!is_dir($uploadDir)) { | ||
if (!mkdir($uploadDir, 0777, true)) { | ||
http_response_code(500); | ||
echo json_encode(["error" => "Falha ao criar diretório de upload"]); | ||
exit; | ||
} | ||
} | ||
|
||
// Define um nome único para o arquivo, usando o nome original e evitando sobrescritas | ||
$filename = basename($_FILES['imagem']['name']); | ||
$targetFile = $uploadDir . $filename; | ||
|
||
// Verifica se o arquivo já existe no diretório | ||
if (file_exists($targetFile)) { | ||
// Se o arquivo já existe, retorna o caminho absoluto | ||
http_response_code(200); | ||
echo json_encode([ | ||
"success" => true, | ||
"message" => "Arquivo já existe", | ||
"file_path" => realpath($targetFile) // Caminho absoluto do arquivo existente | ||
]); | ||
exit; | ||
} | ||
|
||
// Move o arquivo para o diretório de destino | ||
if (move_uploaded_file($_FILES['imagem']['tmp_name'], $targetFile)) { | ||
// Gera o caminho do arquivo que será retornado | ||
$filePath = 'Galeria/Noticias/' . $filename; | ||
|
||
// Retorna resposta de sucesso com o caminho do arquivo | ||
http_response_code(200); | ||
echo json_encode([ | ||
"success" => true, | ||
"message" => "Imagem enviada com sucesso", | ||
"file_path" => $filePath, | ||
"file_name" => $filename | ||
]); | ||
} else { | ||
http_response_code(500); | ||
echo json_encode(["error" => "Falha ao mover o arquivo", "details" => error_get_last()]); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,54 @@ | ||
import { Component } from '@angular/core'; | ||
import { CampoPainel } from '../../../Model/PainelADM'; | ||
import { DynamoDBService } from '../../../aws/DynamoDBService'; | ||
import { CommonModule } from '@angular/common'; | ||
|
||
@Component({ | ||
selector: 'app-noticia', | ||
standalone: true, | ||
imports: [], | ||
imports: [CommonModule], | ||
templateUrl: './noticia.component.html', | ||
styleUrl: './noticia.component.css' | ||
}) | ||
export class NoticiaComponent { | ||
descricao: string = ' A ABICCA e a ABNT selaram um acordo histórico que promete revolucionar a normalização de cabos de aço e acessórios no Brasil. Marcos Antonio Piccoli, presidente da ABICCA, e líderes da ABNT uniram forças com um objetivo claro: elevar os padrões de qualidade e segurança na indústria. Este compromisso não só reforça a competitividade do setor, mas também traz benefícios diretos para consumidores e toda a cadeia produtiva. O que mais essa parceria pode trazer para o futuro da indústria brasileira?'; | ||
} | ||
DATA : CampoPainel[] = []; | ||
|
||
constructor( private ddb : DynamoDBService){} | ||
|
||
async ngOnInit(): Promise<void> { | ||
await this.ddb.readAllItens().subscribe(result => { | ||
if (result) { | ||
result.forEach(item => { | ||
this.DATA.push({ | ||
id: item['id'], | ||
titulo: item['titulo'], | ||
data: item['data'], | ||
descricao: item['descricao'], | ||
link_Imgs: item['link_Imgs'], | ||
}); | ||
}); | ||
// Ordenar a lista DATA pelo campo 'data' no formato DD/MM/YYYY | ||
this.DATA.sort((a: CampoPainel, b: CampoPainel) => { | ||
const dateA = this.convertToDate(a.data); | ||
const dateB = this.convertToDate(b.data); | ||
return dateB.getTime() - dateA.getTime(); // Para crescente (mais antiga para mais recente) | ||
}); | ||
} | ||
}); | ||
} | ||
|
||
|
||
private convertToDate(dateString: string): Date { | ||
const parts = dateString.split('/'); | ||
// Verifique se o formato está correto | ||
if (parts.length === 3) { | ||
const day = parseInt(parts[0], 10); | ||
const month = parseInt(parts[1], 10) - 1; // Mês começa do zero | ||
const year = parseInt(parts[2], 10); | ||
return new Date(year, month, day); | ||
} | ||
return new Date(); // Retorna uma data padrão se o formato estiver errado | ||
} | ||
|
||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
src/app/Components/noticias/popup-noticia/popup-noticia.component.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
import { Injectable } from '@angular/core'; | ||
import { HttpClient, HttpHeaders } from '@angular/common/http'; | ||
import { Observable, of } from 'rxjs'; | ||
|
||
@Injectable({ | ||
providedIn: 'root' | ||
}) | ||
export class SalvarFotoService { | ||
|
||
private apiUrl = 'https://abicca.com.br/API/salvarfoto.php'; | ||
|
||
constructor(private http: HttpClient) {} | ||
|
||
uploadImagem(imagem: File): Observable<any> { | ||
// Cria um formulário de dados para enviar a imagem | ||
const formData = new FormData(); | ||
formData.append('imagem', imagem); | ||
|
||
const headers = new HttpHeaders({ | ||
// Outros cabeçalhos, se necessário | ||
}); | ||
|
||
// Verifica se está rodando localmente | ||
if (window.location.hostname === 'localhost') { | ||
const response = { | ||
file_path: `${imagem.name}` | ||
}; | ||
return of(response); | ||
} else { | ||
// Se não for localhost, envia para a API remota | ||
return this.http.post<any>(this.apiUrl, formData, { | ||
headers: new HttpHeaders({ | ||
'Accept': 'application/json' | ||
}) | ||
}); | ||
} | ||
} | ||
} |