sistema/painel/paginas/simulador.php
Tela principal do simulador com cadastro, AJAX, geração por IA, canvas e envio da imagem conforme o código enviado.
Tela principal do simulador com cadastro, AJAX, geração por IA, canvas e envio da imagem conforme o código enviado.
Fonte conferida: sistema/painel/paginas/simulador.php
SHA-256: 279be211dfedaca05faa6bdb0f5ccace519fc002fe83eedd6e3be49f88cc6b36
Dependências extraídas do arquivo:
Include: __DIR__ . "/../verificar.php"Include: __DIR__ . "/../../conexao.php"Tabela: clientesTabela: proteses
Bytes inválidos em UTF-8 são exibidos como \xNN, sem alterar o arquivo original.
Tela principal do painel
Simulador
747
| Linha | Código | Explicação técnica |
|---|---|---|
| 1 | <?php | Abre um bloco PHP executado no servidor. |
| 2 | @session_start(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 3 | require_once(__DIR__ . "/../verificar.php"); | Carrega o arquivo ou a dependência indicada na própria linha. |
| 4 | require_once(__DIR__ . "/../../conexao.php"); | Carrega o arquivo ou a dependência indicada na própria linha. |
| 5 | Linha em branco usada para separar blocos do arquivo. | |
| 6 | $pag = 'simulador'; | Atribui o valor ou resultado exibido à variável. |
| 7 | Linha em branco usada para separar blocos do arquivo. | |
| 8 | //verificar se ele tem a permissão de estar nessa página | Comentário existente no código-fonte. |
| 9 | if(@$simulador == 'ocultar'){ | Avalia a condição escrita nesta linha. |
| 10 | echo "<script>window.location='../index.php'</script>"; | Envia conteúdo para a saída da requisição. |
| 11 | exit(); | Interrompe a execução neste ponto. |
| 12 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 13 | Linha em branco usada para separar blocos do arquivo. | |
| 14 | if(@$_POST['acao'] == 'enviar_whatsapp_imagem'){ | Avalia a condição escrita nesta linha. |
| 15 | $telefone = preg_replace('/\D+/', '', (string) @$_POST['telefone']); | Atribui o valor ou resultado exibido à variável. |
| 16 | $cliente = trim((string) @$_POST['cliente']); | Atribui o valor ou resultado exibido à variável. |
| 17 | $nome_imagem = basename((string) @$_POST['imagem']); | Atribui o valor ou resultado exibido à variável. |
| 18 | Linha em branco usada para separar blocos do arquivo. | |
| 19 | if($telefone == ''){ | Avalia a condição escrita nesta linha. |
| 20 | echo 'Telefone do cliente inválido.'; | Envia conteúdo para a saída da requisição. |
| 21 | exit(); | Interrompe a execução neste ponto. |
| 22 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 23 | Linha em branco usada para separar blocos do arquivo. | |
| 24 | if(strlen($telefone) <= 11 && substr($telefone, 0, 2) != '55'){ | Avalia a condição escrita nesta linha. |
| 25 | $telefone = '55' . $telefone; | Atribui o valor ou resultado exibido à variável. |
| 26 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 27 | Linha em branco usada para separar blocos do arquivo. | |
| 28 | if($nome_imagem == ''){ | Avalia a condição escrita nesta linha. |
| 29 | echo 'Nenhuma imagem simulada disponível.'; | Envia conteúdo para a saída da requisição. |
| 30 | exit(); | Interrompe a execução neste ponto. |
| 31 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 32 | Linha em branco usada para separar blocos do arquivo. | |
| 33 | $caminho_imagem = __DIR__ . '/../images/simulacoes/' . $nome_imagem; | Atribui o valor ou resultado exibido à variável. |
| 34 | Linha em branco usada para separar blocos do arquivo. | |
| 35 | if(!is_file($caminho_imagem)){ | Avalia a condição escrita nesta linha. |
| 36 | echo 'Imagem simulada não encontrada no servidor.'; | Envia conteúdo para a saída da requisição. |
| 37 | exit(); | Interrompe a execução neste ponto. |
| 38 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 39 | Linha em branco usada para separar blocos do arquivo. | |
| 40 | $base_sistema = rtrim($url_sistema, '/') . '/'; | Atribui o valor ou resultado exibido à variável. |
| 41 | $url_imagem = $base_sistema . 'sistema/painel/images/simulacoes/' . rawurlencode($nome_imagem); | Atribui o valor ou resultado exibido à variável. |
| 42 | Linha em branco usada para separar blocos do arquivo. | |
| 43 | if($cliente == ''){ | Avalia a condição escrita nesta linha. |
| 44 | $cliente = 'cliente'; | Atribui o valor ou resultado exibido à variável. |
| 45 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 46 | Linha em branco usada para separar blocos do arquivo. | |
| 47 | $mensagem = 'Olá ' . $cliente . ', segue sua simulação de prótese capilar.'; | Atribui o valor ou resultado exibido à variável. |
| 48 | $response = ''; | Atribui o valor ou resultado exibido à variável. |
| 49 | $erro_curl = ''; | Atribui o valor ou resultado exibido à variável. |
| 50 | $http_code = 0; | Atribui o valor ou resultado exibido à variável. |
| 51 | Linha em branco usada para separar blocos do arquivo. | |
| 52 | if($api == 'menuia'){ | Avalia a condição escrita nesta linha. |
| 53 | $curl = curl_init(); | Inicializa uma requisição HTTP com cURL. |
| 54 | curl_setopt_array($curl, array( | Configura uma opção da requisição cURL. |
| 55 | CURLOPT_URL => 'https://chatbot.menuia.com/api/create-message', | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 56 | CURLOPT_RETURNTRANSFER => true, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 57 | CURLOPT_ENCODING => '', | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 58 | CURLOPT_MAXREDIRS => 10, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 59 | CURLOPT_TIMEOUT => 30, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 60 | CURLOPT_FOLLOWLOCATION => true, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 61 | CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 62 | CURLOPT_CUSTOMREQUEST => 'POST', | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 63 | CURLOPT_POSTFIELDS => array( | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 64 | 'appkey' => $token, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 65 | 'authkey' => $instancia, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 66 | 'to' => $telefone, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 67 | 'licence' => 'hugocursos', | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 68 | 'message' => $mensagem, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 69 | 'file' => $url_imagem, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 70 | 'sandbox' => 'false' | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 71 | ), | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 72 | )); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 73 | Linha em branco usada para separar blocos do arquivo. | |
| 74 | $response = curl_exec($curl); | Executa a requisição cURL. |
| 75 | $erro_curl = curl_error($curl); | Atribui o valor ou resultado exibido à variável. |
| 76 | $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); | Atribui o valor ou resultado exibido à variável. |
| 77 | curl_close($curl); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 78 | Linha em branco usada para separar blocos do arquivo. | |
| 79 | }else{ | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 80 | $curl = curl_init(); | Inicializa uma requisição HTTP com cURL. |
| 81 | curl_setopt_array($curl, array( | Configura uma opção da requisição cURL. |
| 82 | CURLOPT_URL => 'http://api.wordmensagens.com.br/send-docnew', | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 83 | CURLOPT_RETURNTRANSFER => true, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 84 | CURLOPT_ENCODING => '', | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 85 | CURLOPT_MAXREDIRS => 10, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 86 | CURLOPT_TIMEOUT => 30, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 87 | CURLOPT_FOLLOWLOCATION => true, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 88 | CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 89 | CURLOPT_CUSTOMREQUEST => 'POST', | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 90 | CURLOPT_POSTFIELDS => array( | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 91 | 'instance' => $instancia, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 92 | 'to' => $telefone, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 93 | 'token' => $token, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 94 | 'message' => $mensagem, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 95 | 'url' => $url_imagem | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 96 | ), | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 97 | )); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 98 | Linha em branco usada para separar blocos do arquivo. | |
| 99 | $response = curl_exec($curl); | Executa a requisição cURL. |
| 100 | $erro_curl = curl_error($curl); | Atribui o valor ou resultado exibido à variável. |
| 101 | $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); | Atribui o valor ou resultado exibido à variável. |
| 102 | curl_close($curl); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 103 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 104 | Linha em branco usada para separar blocos do arquivo. | |
| 105 | if($erro_curl != ''){ | Avalia a condição escrita nesta linha. |
| 106 | echo 'Erro ao enviar imagem no WhatsApp: ' . $erro_curl; | Envia conteúdo para a saída da requisição. |
| 107 | exit(); | Interrompe a execução neste ponto. |
| 108 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 109 | Linha em branco usada para separar blocos do arquivo. | |
| 110 | $resposta_api = json_decode((string) $response, true); | Converte JSON para uma estrutura usada pelo código. |
| 111 | Linha em branco usada para separar blocos do arquivo. | |
| 112 | if(is_array($resposta_api) && isset($resposta_api['erro']) && ($resposta_api['erro'] === true || $resposta_api['erro'] === 'true' || $resposta_api['erro'] == 1)){ | Avalia a condição escrita nesta linha. |
| 113 | $mensagem_erro = $resposta_api['message'] ?? $resposta_api['mensagem'] ?? 'API retornou erro no envio.'; | Atribui o valor ou resultado exibido à variável. |
| 114 | echo $mensagem_erro; | Envia conteúdo para a saída da requisição. |
| 115 | exit(); | Interrompe a execução neste ponto. |
| 116 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 117 | Linha em branco usada para separar blocos do arquivo. | |
| 118 | if($http_code >= 400){ | Avalia a condição escrita nesta linha. |
| 119 | echo 'Erro ao enviar imagem no WhatsApp. Código HTTP: ' . $http_code; | Envia conteúdo para a saída da requisição. |
| 120 | exit(); | Interrompe a execução neste ponto. |
| 121 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 122 | Linha em branco usada para separar blocos do arquivo. | |
| 123 | echo 'Imagem enviada com sucesso'; | Envia conteúdo para a saída da requisição. |
| 124 | exit(); | Interrompe a execução neste ponto. |
| 125 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 126 | Linha em branco usada para separar blocos do arquivo. | |
| 127 | ?> | Fecha o bloco PHP. |
| 128 | Linha em branco usada para separar blocos do arquivo. | |
| 129 | <div class="row top-50"> | Marca HTML presente na saída da página. |
| 130 | <div class="col-md-8 float-esq"> | Marca HTML presente na saída da página. |
| 131 | <a class="btn btn-primary" onclick="inserir()" class="btn btn-primary btn-flat btn-pri"> | Marca HTML presente na saída da página. |
| 132 | <i class="fa fa-plus" aria-hidden="true"></i> <span class="esc">Nova Simulação</span> | Marca HTML presente na saída da página. |
| 133 | </a> | Marca HTML presente na saída da página. |
| 134 | </div> | Marca HTML presente na saída da página. |
| 135 | <div class="col-md-3 float-esq"> | Marca HTML presente na saída da página. |
| 136 | <input onkeyup="listarSimulacoes()" class="form-control" type="text" name="buscar" id="buscar" placeholder="Buscar por Cliente ou Prótese" style="border-radius: 5px"> | Marca HTML presente na saída da página. |
| 137 | <input type="hidden" id="pagina"> | Marca HTML presente na saída da página. |
| 138 | </div> | Marca HTML presente na saída da página. |
| 139 | <div class="col-md-1 float-esq"> | Marca HTML presente na saída da página. |
| 140 | <button onclick="listarSimulacoes()" id="btn-buscar" class="btn btn-primary"><i class="fa fa-search"></i></button> | Marca HTML presente na saída da página. |
| 141 | </div> | Marca HTML presente na saída da página. |
| 142 | </div> | Marca HTML presente na saída da página. |
| 143 | Linha em branco usada para separar blocos do arquivo. | |
| 144 | <div class="bs-example widget-shadow" style="padding:15px" id="listar"> | Marca HTML presente na saída da página. |
| 145 | Linha em branco usada para separar blocos do arquivo. | |
| 146 | </div> | Marca HTML presente na saída da página. |
| 147 | Linha em branco usada para separar blocos do arquivo. | |
| 148 | <div class="modal fade" id="modalForm" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> | Marca HTML presente na saída da página. |
| 149 | <div class="modal-dialog modal-lg" role="document"> | Marca HTML presente na saída da página. |
| 150 | <div class="modal-content"> | Marca HTML presente na saída da página. |
| 151 | <div class="modal-header"> | Marca HTML presente na saída da página. |
| 152 | <h4 class="modal-title"><span id="titulo_inserir"></span></h4> | Marca HTML presente na saída da página. |
| 153 | <button id="btn-fechar" type="button" class="close" data-dismiss="modal" aria-label="Close" style="margin-top: -20px"> | Marca HTML presente na saída da página. |
| 154 | <span aria-hidden="true">×</span> | Marca HTML presente na saída da página. |
| 155 | </button> | Marca HTML presente na saída da página. |
| 156 | </div> | Marca HTML presente na saída da página. |
| 157 | Linha em branco usada para separar blocos do arquivo. | |
| 158 | <form id="form_simulacao" method="post" enctype="multipart/form-data"> | Marca HTML presente na saída da página. |
| 159 | <div class="modal-body"> | Marca HTML presente na saída da página. |
| 160 | Linha em branco usada para separar blocos do arquivo. | |
| 161 | <div class="row"> | Marca HTML presente na saída da página. |
| 162 | <div class="col-md-6"> | Marca HTML presente na saída da página. |
| 163 | <div class="form-group"> | Marca HTML presente na saída da página. |
| 164 | <label>Cliente</label> | Marca HTML presente na saída da página. |
| 165 | <select class="form-control sel2" name="cliente" id="cliente" style="width:100%" required> | Marca HTML presente na saída da página. |
| 166 | <option value="">Selecione um Cliente</option> | Marca HTML presente na saída da página. |
| 167 | <?php | Abre um bloco PHP executado no servidor. |
| 168 | $query = $pdo->query("SELECT * FROM clientes order by nome asc"); | Executa uma consulta pelo objeto PDO. |
| 169 | $res = $query->fetchAll(PDO::FETCH_ASSOC); | Lê dados retornados pela consulta. |
| 170 | $linhas = @count($res); | Atribui o valor ou resultado exibido à variável. |
| 171 | if($linhas > 0){ | Avalia a condição escrita nesta linha. |
| 172 | for($i=0; $i<$linhas; $i++){ | Controla uma repetição conforme a expressão exibida. |
| 173 | ?> | Fecha o bloco PHP. |
| 174 | <option value="<?php echo $res[$i]['id'] ?>"><?php echo $res[$i]['nome'] ?></option> | Marca HTML presente na saída da página. |
| 175 | <?php } } ?> | Abre um bloco PHP executado no servidor. |
| 176 | </select> | Marca HTML presente na saída da página. |
| 177 | </div> | Marca HTML presente na saída da página. |
| 178 | </div> | Marca HTML presente na saída da página. |
| 179 | Linha em branco usada para separar blocos do arquivo. | |
| 180 | <div class="col-md-6"> | Marca HTML presente na saída da página. |
| 181 | <div class="form-group"> | Marca HTML presente na saída da página. |
| 182 | <label>Prótese</label> | Marca HTML presente na saída da página. |
| 183 | <select class="form-control sel2" name="id_protese" id="id_protese" style="width:100%" required> | Marca HTML presente na saída da página. |
| 184 | <option value="">Selecione uma Prótese</option> | Marca HTML presente na saída da página. |
| 185 | <?php | Abre um bloco PHP executado no servidor. |
| 186 | $query = $pdo->query("SELECT p.*, c.nome as nome_cliente FROM proteses p INNER JOIN clientes c ON p.cliente = c.id order by p.id desc"); | Executa uma consulta pelo objeto PDO. |
| 187 | $res = $query->fetchAll(PDO::FETCH_ASSOC); | Lê dados retornados pela consulta. |
| 188 | $linhas = @count($res); | Atribui o valor ou resultado exibido à variável. |
| 189 | if($linhas > 0){ | Avalia a condição escrita nesta linha. |
| 190 | for($i=0; $i<$linhas; $i++){ | Controla uma repetição conforme a expressão exibida. |
| 191 | $descricao = $res[$i]['nome_cliente'].' - '.$res[$i]['modelo']; | Atribui o valor ou resultado exibido à variável. |
| 192 | ?> | Fecha o bloco PHP. |
| 193 | <option value="<?php echo $res[$i]['id'] ?>"><?php echo $descricao ?></option> | Marca HTML presente na saída da página. |
| 194 | <?php } } ?> | Abre um bloco PHP executado no servidor. |
| 195 | </select> | Marca HTML presente na saída da página. |
| 196 | </div> | Marca HTML presente na saída da página. |
| 197 | </div> | Marca HTML presente na saída da página. |
| 198 | </div> | Marca HTML presente na saída da página. |
| 199 | Linha em branco usada para separar blocos do arquivo. | |
| 200 | <div class="row"> | Marca HTML presente na saída da página. |
| 201 | <div class="col-md-6"> | Marca HTML presente na saída da página. |
| 202 | <div class="form-group"> | Marca HTML presente na saída da página. |
| 203 | <label>Foto Original</label> | Marca HTML presente na saída da página. |
| 204 | <input type="file" class="form-control" id="foto_original" name="foto_original"> | Marca HTML presente na saída da página. |
| 205 | <small id="nome_foto_original_atual" class="text-muted"></small> | Marca HTML presente na saída da página. |
| 206 | <div id="area_preview_foto_original" style="margin-top: 8px; display:none;"> | Marca HTML presente na saída da página. |
| 207 | <img id="preview_foto_original" src="" style="max-width:100%; max-height:160px; border:1px solid #ddd; padding:3px; border-radius:4px;"> | Marca HTML presente na saída da página. |
| 208 | </div> | Marca HTML presente na saída da página. |
| 209 | </div> | Marca HTML presente na saída da página. |
| 210 | </div> | Marca HTML presente na saída da página. |
| 211 | Linha em branco usada para separar blocos do arquivo. | |
| 212 | <div class="col-md-6"> | Marca HTML presente na saída da página. |
| 213 | <div class="form-group"> | Marca HTML presente na saída da página. |
| 214 | <label>Imagem Simulada</label> | Marca HTML presente na saída da página. |
| 215 | <input type="file" class="form-control" id="imagem_simulada" name="imagem_simulada"> | Marca HTML presente na saída da página. |
| 216 | <small id="nome_imagem_simulada_atual" class="text-muted"></small> | Marca HTML presente na saída da página. |
| 217 | <div id="area_preview_imagem_simulada" style="margin-top: 8px; display:none;"> | Marca HTML presente na saída da página. |
| 218 | <img id="preview_imagem_simulada" src="" style="max-width:100%; max-height:160px; border:1px solid #ddd; padding:3px; border-radius:4px;"> | Marca HTML presente na saída da página. |
| 219 | </div> | Marca HTML presente na saída da página. |
| 220 | </div> | Marca HTML presente na saída da página. |
| 221 | </div> | Marca HTML presente na saída da página. |
| 222 | </div> | Marca HTML presente na saída da página. |
| 223 | Linha em branco usada para separar blocos do arquivo. | |
| 224 | <div class="row"> | Marca HTML presente na saída da página. |
| 225 | <div class="col-md-6"> | Marca HTML presente na saída da página. |
| 226 | <div class="form-group"> | Marca HTML presente na saída da página. |
| 227 | <label>Data da Simulação</label> | Marca HTML presente na saída da página. |
| 228 | <input type="date" class="form-control" id="data_simulacao" name="data_simulacao" value="<?php echo date('Y-m-d') ?>" required> | Marca HTML presente na saída da página. |
| 229 | </div> | Marca HTML presente na saída da página. |
| 230 | </div> | Marca HTML presente na saída da página. |
| 231 | Linha em branco usada para separar blocos do arquivo. | |
| 232 | <div class="col-md-6"> | Marca HTML presente na saída da página. |
| 233 | <div class="form-group"> | Marca HTML presente na saída da página. |
| 234 | <label>Observações</label> | Marca HTML presente na saída da página. |
| 235 | <input type="text" class="form-control" id="observacoes" name="observacoes" placeholder="Observações"> | Marca HTML presente na saída da página. |
| 236 | </div> | Marca HTML presente na saída da página. |
| 237 | </div> | Marca HTML presente na saída da página. |
| 238 | </div> | Marca HTML presente na saída da página. |
| 239 | Linha em branco usada para separar blocos do arquivo. | |
| 240 | <input type="hidden" name="id" id="id"> | Marca HTML presente na saída da página. |
| 241 | <input type="hidden" name="foto_original_atual" id="foto_original_atual"> | Marca HTML presente na saída da página. |
| 242 | <input type="hidden" name="imagem_simulada_atual" id="imagem_simulada_atual"> | Marca HTML presente na saída da página. |
| 243 | Linha em branco usada para separar blocos do arquivo. | |
| 244 | <hr> | Marca HTML presente na saída da página. |
| 245 | Linha em branco usada para separar blocos do arquivo. | |
| 246 | <div class="row"> | Marca HTML presente na saída da página. |
| 247 | <div class="col-md-6"> | Marca HTML presente na saída da página. |
| 248 | <button id="btnGerarIA" type="button" class="btn btn-warning btn-block" onclick="gerarIAmodal()"> | Marca HTML presente na saída da página. |
| 249 | <i id="iconGerarIA" class="fa fa-magic"></i> Gerar com IA | Marca HTML presente na saída da página. |
| 250 | </button> | Marca HTML presente na saída da página. |
| 251 | </div> | Marca HTML presente na saída da página. |
| 252 | Linha em branco usada para separar blocos do arquivo. | |
| 253 | <div class="col-md-6"> | Marca HTML presente na saída da página. |
| 254 | <button type="button" class="btn btn-info btn-block" onclick="abrirCanvas()"> | Marca HTML presente na saída da página. |
| 255 | <i class="fa fa-image"></i> Abrir Canvas | Marca HTML presente na saída da página. |
| 256 | </button> | Marca HTML presente na saída da página. |
| 257 | </div> | Marca HTML presente na saída da página. |
| 258 | </div> | Marca HTML presente na saída da página. |
| 259 | Linha em branco usada para separar blocos do arquivo. | |
| 260 | <br> | Marca HTML presente na saída da página. |
| 261 | <small><div id="mensagem_ia" align="center"></div></small> | Marca HTML presente na saída da página. |
| 262 | <small><div id="mensagem" align="center"></div></small> | Marca HTML presente na saída da página. |
| 263 | </div> | Marca HTML presente na saída da página. |
| 264 | Linha em branco usada para separar blocos do arquivo. | |
| 265 | <div class="modal-footer"> | Marca HTML presente na saída da página. |
| 266 | <button type="submit" class="btn btn-primary">Salvar</button> | Marca HTML presente na saída da página. |
| 267 | </div> | Marca HTML presente na saída da página. |
| 268 | </form> | Marca HTML presente na saída da página. |
| 269 | Linha em branco usada para separar blocos do arquivo. | |
| 270 | </div> | Marca HTML presente na saída da página. |
| 271 | </div> | Marca HTML presente na saída da página. |
| 272 | </div> | Marca HTML presente na saída da página. |
| 273 | Linha em branco usada para separar blocos do arquivo. | |
| 274 | <div class="modal fade" id="modalDados" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> | Marca HTML presente na saída da página. |
| 275 | <div class="modal-dialog modal-lg" role="document"> | Marca HTML presente na saída da página. |
| 276 | <div class="modal-content"> | Marca HTML presente na saída da página. |
| 277 | <div class="modal-header"> | Marca HTML presente na saída da página. |
| 278 | <h4 class="modal-title" id="exampleModalLabel"><span id="nome_dados"></span></h4> | Marca HTML presente na saída da página. |
| 279 | <button id="btn-fechar-perfil" type="button" class="close" data-dismiss="modal" aria-label="Close" style="margin-top: -20px"> | Marca HTML presente na saída da página. |
| 280 | <span aria-hidden="true" >×</span> | Marca HTML presente na saída da página. |
| 281 | </button> | Marca HTML presente na saída da página. |
| 282 | </div> | Marca HTML presente na saída da página. |
| 283 | Linha em branco usada para separar blocos do arquivo. | |
| 284 | <div class="modal-body"> | Marca HTML presente na saída da página. |
| 285 | Linha em branco usada para separar blocos do arquivo. | |
| 286 | <input type="hidden" id="telefone_whatsapp_cliente"> | Marca HTML presente na saída da página. |
| 287 | Linha em branco usada para separar blocos do arquivo. | |
| 288 | <div class="row" style="margin-bottom: 15px"> | Marca HTML presente na saída da página. |
| 289 | <div class="col-md-6" align="center"> | Marca HTML presente na saída da página. |
| 290 | <label>Foto Original</label><br> | Marca HTML presente na saída da página. |
| 291 | <img id="foto_original_dados" src="" width="220px"> | Marca HTML presente na saída da página. |
| 292 | </div> | Marca HTML presente na saída da página. |
| 293 | <div class="col-md-6" align="center"> | Marca HTML presente na saída da página. |
| 294 | <label>Imagem Simulada</label><br> | Marca HTML presente na saída da página. |
| 295 | <img id="imagem_simulada_dados" src="" width="220px"> | Marca HTML presente na saída da página. |
| 296 | <div style="margin-top: 10px;"> | Marca HTML presente na saída da página. |
| 297 | <a href="javascript:void(0)" onclick="enviarImagemWhatsapp(this)" class="btn btn-success btn-sm"> | Marca HTML presente na saída da página. |
| 298 | <i class="fa fa-whatsapp"></i> Enviar no WhatsApp | Marca HTML presente na saída da página. |
| 299 | </a> | Marca HTML presente na saída da página. |
| 300 | </div> | Marca HTML presente na saída da página. |
| 301 | </div> | Marca HTML presente na saída da página. |
| 302 | </div> | Marca HTML presente na saída da página. |
| 303 | Linha em branco usada para separar blocos do arquivo. | |
| 304 | <div class="row" style="border-bottom: 1px solid #cac7c7;"> | Marca HTML presente na saída da página. |
| 305 | <div class="col-md-4"> | Marca HTML presente na saída da página. |
| 306 | <span><b>Cliente: </b></span> | Marca HTML presente na saída da página. |
| 307 | <span id="cliente_dados"></span> | Marca HTML presente na saída da página. |
| 308 | </div> | Marca HTML presente na saída da página. |
| 309 | Linha em branco usada para separar blocos do arquivo. | |
| 310 | <div class="col-md-4"> | Marca HTML presente na saída da página. |
| 311 | <span><b>Prótese: </b></span> | Marca HTML presente na saída da página. |
| 312 | <span id="protese_dados"></span> | Marca HTML presente na saída da página. |
| 313 | </div> | Marca HTML presente na saída da página. |
| 314 | Linha em branco usada para separar blocos do arquivo. | |
| 315 | <div class="col-md-4"> | Marca HTML presente na saída da página. |
| 316 | <span><b>Data: </b></span> | Marca HTML presente na saída da página. |
| 317 | <span id="data_simulacao_dados"></span> | Marca HTML presente na saída da página. |
| 318 | </div> | Marca HTML presente na saída da página. |
| 319 | </div> | Marca HTML presente na saída da página. |
| 320 | Linha em branco usada para separar blocos do arquivo. | |
| 321 | <div class="row" style="border-bottom: 1px solid #cac7c7;"> | Marca HTML presente na saída da página. |
| 322 | <div class="col-md-12"> | Marca HTML presente na saída da página. |
| 323 | <span><b>Observações: </b></span> | Marca HTML presente na saída da página. |
| 324 | <span id="observacoes_dados"></span> | Marca HTML presente na saída da página. |
| 325 | </div> | Marca HTML presente na saída da página. |
| 326 | </div> | Marca HTML presente na saída da página. |
| 327 | Linha em branco usada para separar blocos do arquivo. | |
| 328 | </div> | Marca HTML presente na saída da página. |
| 329 | </div> | Marca HTML presente na saída da página. |
| 330 | </div> | Marca HTML presente na saída da página. |
| 331 | </div> | Marca HTML presente na saída da página. |
| 332 | Linha em branco usada para separar blocos do arquivo. | |
| 333 | <script type="text/javascript"> | Marca HTML presente na saída da página. |
| 334 | var pag = "<?=$pag?>"; | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 335 | var urlBaseSimulacoesWhatsapp = "<?=rtrim($url_sistema, '/')?>/sistema/painel/images/simulacoes/"; | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 336 | </script> | Marca HTML presente na saída da página. |
| 337 | <script src="js/ajax.js"></script> | Marca HTML presente na saída da página. |
| 338 | Linha em branco usada para separar blocos do arquivo. | |
| 339 | <script type="text/javascript"> | Marca HTML presente na saída da página. |
| 340 | $(document).ready( function () { | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 341 | listarSimulacoes(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 342 | Linha em branco usada para separar blocos do arquivo. | |
| 343 | $('.sel2').select2({ | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 344 | dropdownParent: $('#modalForm') | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 345 | }); | Fecha ou delimita a estrutura iniciada anteriormente. |
| 346 | } ); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 347 | </script> | Marca HTML presente na saída da página. |
| 348 | Linha em branco usada para separar blocos do arquivo. | |
| 349 | <script type="text/javascript"> | Marca HTML presente na saída da página. |
| 350 | function listarSimulacoes(pagina){ | Declara a função e os parâmetros mostrados. |
| 351 | Linha em branco usada para separar blocos do arquivo. | |
| 352 | $("#pagina").val(pagina); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 353 | Linha em branco usada para separar blocos do arquivo. | |
| 354 | var busca = $("#buscar").val(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 355 | $.ajax({ | Inicia ou configura uma requisição assíncrona no navegador. |
| 356 | url: 'paginas/' + pag + "/listar.php", | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 357 | method: 'POST', | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 358 | data: {busca, pagina}, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 359 | dataType: "html", | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 360 | Linha em branco usada para separar blocos do arquivo. | |
| 361 | success:function(result){ | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 362 | $("#listar").html(result); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 363 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 364 | }); | Fecha ou delimita a estrutura iniciada anteriormente. |
| 365 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 366 | </script> | Marca HTML presente na saída da página. |
| 367 | Linha em branco usada para separar blocos do arquivo. | |
| 368 | <script type="text/javascript"> | Marca HTML presente na saída da página. |
| 369 | function mostrarNomeArquivosAtuais(){ | Declara a função e os parâmetros mostrados. |
| 370 | var foto_original_atual = $('#foto_original_atual').val(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 371 | var imagem_simulada_atual = $('#imagem_simulada_atual').val(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 372 | Linha em branco usada para separar blocos do arquivo. | |
| 373 | if(foto_original_atual != ""){ | Avalia a condição escrita nesta linha. |
| 374 | $('#nome_foto_original_atual').text('Arquivo atual: ' + foto_original_atual); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 375 | }else{ | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 376 | $('#nome_foto_original_atual').text(''); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 377 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 378 | Linha em branco usada para separar blocos do arquivo. | |
| 379 | if(imagem_simulada_atual != ""){ | Avalia a condição escrita nesta linha. |
| 380 | $('#nome_imagem_simulada_atual').text('Arquivo atual: ' + imagem_simulada_atual); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 381 | }else{ | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 382 | $('#nome_imagem_simulada_atual').text(''); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 383 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 384 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 385 | </script> | Marca HTML presente na saída da página. |
| 386 | Linha em branco usada para separar blocos do arquivo. | |
| 387 | <script type="text/javascript"> | Marca HTML presente na saída da página. |
| 388 | function mostrarPreviewAtual(){ | Declara a função e os parâmetros mostrados. |
| 389 | var foto_original_atual = $('#foto_original_atual').val(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 390 | var imagem_simulada_atual = $('#imagem_simulada_atual').val(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 391 | Linha em branco usada para separar blocos do arquivo. | |
| 392 | if(foto_original_atual != ""){ | Avalia a condição escrita nesta linha. |
| 393 | $('#preview_foto_original').attr('src', 'images/simulacoes/' + foto_original_atual + '?v=' + new Date().getTime()); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 394 | $('#area_preview_foto_original').show(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 395 | }else{ | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 396 | $('#preview_foto_original').attr('src', ''); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 397 | $('#area_preview_foto_original').hide(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 398 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 399 | Linha em branco usada para separar blocos do arquivo. | |
| 400 | if(imagem_simulada_atual != ""){ | Avalia a condição escrita nesta linha. |
| 401 | $('#preview_imagem_simulada').attr('src', 'images/simulacoes/' + imagem_simulada_atual + '?v=' + new Date().getTime()); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 402 | $('#area_preview_imagem_simulada').show(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 403 | }else{ | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 404 | $('#preview_imagem_simulada').attr('src', ''); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 405 | $('#area_preview_imagem_simulada').hide(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 406 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 407 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 408 | </script> | Marca HTML presente na saída da página. |
| 409 | Linha em branco usada para separar blocos do arquivo. | |
| 410 | <script type="text/javascript"> | Marca HTML presente na saída da página. |
| 411 | function mostrarPreviewArquivo(input, idImagem, idArea){ | Declara a função e os parâmetros mostrados. |
| 412 | if(input.files && input.files[0]){ | Avalia a condição escrita nesta linha. |
| 413 | var reader = new FileReader(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 414 | Linha em branco usada para separar blocos do arquivo. | |
| 415 | reader.onload = function(e){ | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 416 | $(idImagem).attr('src', e.target.result); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 417 | $(idArea).show(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 418 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 419 | Linha em branco usada para separar blocos do arquivo. | |
| 420 | reader.readAsDataURL(input.files[0]); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 421 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 422 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 423 | </script> | Marca HTML presente na saída da página. |
| 424 | Linha em branco usada para separar blocos do arquivo. | |
| 425 | <script type="text/javascript"> | Marca HTML presente na saída da página. |
| 426 | $('#foto_original').change(function(){ | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 427 | var arquivo = $(this).val().split('\\').pop(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 428 | Linha em branco usada para separar blocos do arquivo. | |
| 429 | if(arquivo != ""){ | Avalia a condição escrita nesta linha. |
| 430 | $('#nome_foto_original_atual').text('Novo arquivo: ' + arquivo); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 431 | mostrarPreviewArquivo(this, '#preview_foto_original', '#area_preview_foto_original'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 432 | }else{ | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 433 | mostrarNomeArquivosAtuais(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 434 | mostrarPreviewAtual(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 435 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 436 | }); | Fecha ou delimita a estrutura iniciada anteriormente. |
| 437 | </script> | Marca HTML presente na saída da página. |
| 438 | Linha em branco usada para separar blocos do arquivo. | |
| 439 | <script type="text/javascript"> | Marca HTML presente na saída da página. |
| 440 | $('#imagem_simulada').change(function(){ | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 441 | var arquivo = $(this).val().split('\\').pop(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 442 | Linha em branco usada para separar blocos do arquivo. | |
| 443 | if(arquivo != ""){ | Avalia a condição escrita nesta linha. |
| 444 | $('#nome_imagem_simulada_atual').text('Novo arquivo: ' + arquivo); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 445 | mostrarPreviewArquivo(this, '#preview_imagem_simulada', '#area_preview_imagem_simulada'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 446 | }else{ | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 447 | mostrarNomeArquivosAtuais(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 448 | mostrarPreviewAtual(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 449 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 450 | }); | Fecha ou delimita a estrutura iniciada anteriormente. |
| 451 | </script> | Marca HTML presente na saída da página. |
| 452 | Linha em branco usada para separar blocos do arquivo. | |
| 453 | <script type="text/javascript"> | Marca HTML presente na saída da página. |
| 454 | $('#modalForm').on('shown.bs.modal', function () { | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 455 | mostrarNomeArquivosAtuais(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 456 | mostrarPreviewAtual(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 457 | }); | Fecha ou delimita a estrutura iniciada anteriormente. |
| 458 | </script> | Marca HTML presente na saída da página. |
| 459 | Linha em branco usada para separar blocos do arquivo. | |
| 460 | <script type="text/javascript"> | Marca HTML presente na saída da página. |
| 461 | $('#modalForm').on('hidden.bs.modal', function () { | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 462 | $('#nome_foto_original_atual').text(''); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 463 | $('#nome_imagem_simulada_atual').text(''); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 464 | $('#preview_foto_original').attr('src', ''); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 465 | $('#preview_imagem_simulada').attr('src', ''); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 466 | $('#area_preview_foto_original').hide(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 467 | $('#area_preview_imagem_simulada').hide(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 468 | $('#foto_original').val(''); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 469 | $('#imagem_simulada').val(''); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 470 | $('#mensagem').text(''); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 471 | $('#mensagem_ia').text(''); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 472 | $('#mensagem').removeClass(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 473 | $('#mensagem_ia').removeClass(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 474 | $('#btnGerarIA').data('processando', false); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 475 | $('#btnGerarIA').prop('disabled', false); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 476 | $('#iconGerarIA').removeClass(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 477 | $('#iconGerarIA').addClass('fa fa-magic'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 478 | }); | Fecha ou delimita a estrutura iniciada anteriormente. |
| 479 | </script> | Marca HTML presente na saída da página. |
| 480 | Linha em branco usada para separar blocos do arquivo. | |
| 481 | <script type="text/javascript"> | Marca HTML presente na saída da página. |
| 482 | $("#form_simulacao").submit(function () { | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 483 | Linha em branco usada para separar blocos do arquivo. | |
| 484 | event.preventDefault(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 485 | var formData = new FormData(this); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 486 | Linha em branco usada para separar blocos do arquivo. | |
| 487 | $.ajax({ | Inicia ou configura uma requisição assíncrona no navegador. |
| 488 | url: 'paginas/' + pag + "/salvar.php", | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 489 | type: 'POST', | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 490 | data: formData, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 491 | Linha em branco usada para separar blocos do arquivo. | |
| 492 | success: function (mensagem) { | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 493 | $('#mensagem').text(''); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 494 | $('#mensagem').removeClass() | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 495 | if (mensagem.trim() == "Salvo com Sucesso") { | Avalia a condição escrita nesta linha. |
| 496 | Linha em branco usada para separar blocos do arquivo. | |
| 497 | $('#btn-fechar').click(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 498 | Linha em branco usada para separar blocos do arquivo. | |
| 499 | var pagina = $("#pagina").val(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 500 | listarSimulacoes(pagina); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 501 | Linha em branco usada para separar blocos do arquivo. | |
| 502 | } else { | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 503 | $('#mensagem').addClass('text-danger') | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 504 | $('#mensagem').text(mensagem) | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 505 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 506 | Linha em branco usada para separar blocos do arquivo. | |
| 507 | }, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 508 | Linha em branco usada para separar blocos do arquivo. | |
| 509 | cache: false, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 510 | contentType: false, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 511 | processData: false, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 512 | Linha em branco usada para separar blocos do arquivo. | |
| 513 | }); | Fecha ou delimita a estrutura iniciada anteriormente. |
| 514 | Linha em branco usada para separar blocos do arquivo. | |
| 515 | }); | Fecha ou delimita a estrutura iniciada anteriormente. |
| 516 | </script> | Marca HTML presente na saída da página. |
| 517 | Linha em branco usada para separar blocos do arquivo. | |
| 518 | <script type="text/javascript"> | Marca HTML presente na saída da página. |
| 519 | function excluir(id){ | Declara a função e os parâmetros mostrados. |
| 520 | $.ajax({ | Inicia ou configura uma requisição assíncrona no navegador. |
| 521 | url: 'paginas/' + pag + "/excluir.php", | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 522 | method: 'POST', | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 523 | data: {id}, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 524 | dataType: "text", | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 525 | Linha em branco usada para separar blocos do arquivo. | |
| 526 | success: function (mensagem) { | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 527 | if (mensagem.trim() == "Excluído com Sucesso") { | Avalia a condição escrita nesta linha. |
| 528 | var pagina = $("#pagina").val(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 529 | listarSimulacoes(pagina); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 530 | } else { | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 531 | $('#mensagem-excluir').addClass('text-danger') | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 532 | $('#mensagem-excluir').text(mensagem) | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 533 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 534 | Linha em branco usada para separar blocos do arquivo. | |
| 535 | }, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 536 | Linha em branco usada para separar blocos do arquivo. | |
| 537 | }); | Fecha ou delimita a estrutura iniciada anteriormente. |
| 538 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 539 | </script> | Marca HTML presente na saída da página. |
| 540 | Linha em branco usada para separar blocos do arquivo. | |
| 541 | <script type="text/javascript"> | Marca HTML presente na saída da página. |
| 542 | function gerarIAmodal(){ | Declara a função e os parâmetros mostrados. |
| 543 | Linha em branco usada para separar blocos do arquivo. | |
| 544 | var id = $('#id').val(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 545 | var botao = $('#btnGerarIA'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 546 | var icone = $('#iconGerarIA'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 547 | Linha em branco usada para separar blocos do arquivo. | |
| 548 | $('#mensagem_ia').text(''); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 549 | $('#mensagem_ia').removeClass(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 550 | Linha em branco usada para separar blocos do arquivo. | |
| 551 | if(id == ""){ | Avalia a condição escrita nesta linha. |
| 552 | $('#mensagem_ia').addClass('text-danger'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 553 | $('#mensagem_ia').text('Primeiro salve o registro para gerar a simulação com IA'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 554 | return; | Retorna o valor indicado pela linha. |
| 555 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 556 | Linha em branco usada para separar blocos do arquivo. | |
| 557 | if(botao.data('processando') == true){ | Avalia a condição escrita nesta linha. |
| 558 | return; | Retorna o valor indicado pela linha. |
| 559 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 560 | Linha em branco usada para separar blocos do arquivo. | |
| 561 | botao.data('processando', true); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 562 | botao.prop('disabled', true); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 563 | Linha em branco usada para separar blocos do arquivo. | |
| 564 | icone.removeClass(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 565 | icone.addClass('fa fa-spinner fa-spin'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 566 | Linha em branco usada para separar blocos do arquivo. | |
| 567 | $('#mensagem_ia').addClass('text-info'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 568 | $('#mensagem_ia').text('Gerando simulação com IA...'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 569 | Linha em branco usada para separar blocos do arquivo. | |
| 570 | $.ajax({ | Inicia ou configura uma requisição assíncrona no navegador. |
| 571 | url: 'paginas/simulador/gerar_ia.php', | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 572 | method: 'POST', | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 573 | data: {id}, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 574 | dataType: "text", | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 575 | Linha em branco usada para separar blocos do arquivo. | |
| 576 | success: function (mensagem) { | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 577 | Linha em branco usada para separar blocos do arquivo. | |
| 578 | botao.data('processando', false); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 579 | botao.prop('disabled', false); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 580 | Linha em branco usada para separar blocos do arquivo. | |
| 581 | icone.removeClass(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 582 | icone.addClass('fa fa-magic'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 583 | Linha em branco usada para separar blocos do arquivo. | |
| 584 | $('#mensagem_ia').removeClass(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 585 | Linha em branco usada para separar blocos do arquivo. | |
| 586 | if (mensagem.trim() == "Salvo com Sucesso") { | Avalia a condição escrita nesta linha. |
| 587 | Linha em branco usada para separar blocos do arquivo. | |
| 588 | $('#mensagem_ia').addClass('text-success'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 589 | $('#mensagem_ia').text('Simulação gerada com sucesso'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 590 | Linha em branco usada para separar blocos do arquivo. | |
| 591 | var pagina = $("#pagina").val(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 592 | listarSimulacoes(pagina); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 593 | Linha em branco usada para separar blocos do arquivo. | |
| 594 | $.ajax({ | Inicia ou configura uma requisição assíncrona no navegador. |
| 595 | url: 'paginas/simulador/buscar.php', | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 596 | method: 'POST', | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 597 | data: {id}, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 598 | dataType: "json", | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 599 | Linha em branco usada para separar blocos do arquivo. | |
| 600 | success: function (dados) { | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 601 | Linha em branco usada para separar blocos do arquivo. | |
| 602 | if(dados.foto_original != undefined){ | Avalia a condição escrita nesta linha. |
| 603 | $('#foto_original_atual').val(dados.foto_original); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 604 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 605 | Linha em branco usada para separar blocos do arquivo. | |
| 606 | if(dados.imagem_simulada != undefined){ | Avalia a condição escrita nesta linha. |
| 607 | $('#imagem_simulada_atual').val(dados.imagem_simulada); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 608 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 609 | Linha em branco usada para separar blocos do arquivo. | |
| 610 | if(typeof mostrarNomeArquivosAtuais === 'function'){ | Avalia a condição escrita nesta linha. |
| 611 | mostrarNomeArquivosAtuais(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 612 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 613 | Linha em branco usada para separar blocos do arquivo. | |
| 614 | if(typeof mostrarPreviewAtual === 'function'){ | Avalia a condição escrita nesta linha. |
| 615 | mostrarPreviewAtual(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 616 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 617 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 618 | }); | Fecha ou delimita a estrutura iniciada anteriormente. |
| 619 | Linha em branco usada para separar blocos do arquivo. | |
| 620 | }else{ | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 621 | Linha em branco usada para separar blocos do arquivo. | |
| 622 | $('#mensagem_ia').addClass('text-danger'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 623 | $('#mensagem_ia').text(mensagem); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 624 | Linha em branco usada para separar blocos do arquivo. | |
| 625 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 626 | }, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 627 | Linha em branco usada para separar blocos do arquivo. | |
| 628 | error: function () { | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 629 | Linha em branco usada para separar blocos do arquivo. | |
| 630 | botao.data('processando', false); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 631 | botao.prop('disabled', false); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 632 | Linha em branco usada para separar blocos do arquivo. | |
| 633 | icone.removeClass(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 634 | icone.addClass('fa fa-magic'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 635 | Linha em branco usada para separar blocos do arquivo. | |
| 636 | $('#mensagem_ia').removeClass(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 637 | $('#mensagem_ia').addClass('text-danger'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 638 | $('#mensagem_ia').text('Erro ao processar a simulação com IA'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 639 | Linha em branco usada para separar blocos do arquivo. | |
| 640 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 641 | }); | Fecha ou delimita a estrutura iniciada anteriormente. |
| 642 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 643 | </script> | Marca HTML presente na saída da página. |
| 644 | Linha em branco usada para separar blocos do arquivo. | |
| 645 | <script type="text/javascript"> | Marca HTML presente na saída da página. |
| 646 | function abrirCanvas(){ | Declara a função e os parâmetros mostrados. |
| 647 | var id = $('#id').val(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 648 | Linha em branco usada para separar blocos do arquivo. | |
| 649 | if(id == ""){ | Avalia a condição escrita nesta linha. |
| 650 | $('#mensagem_ia').removeClass(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 651 | $('#mensagem_ia').addClass('text-danger'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 652 | $('#mensagem_ia').text('Primeiro salve o registro para abrir o canvas'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 653 | return; | Retorna o valor indicado pela linha. |
| 654 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 655 | Linha em branco usada para separar blocos do arquivo. | |
| 656 | window.open('paginas/simulador/canvas.php?id=' + id, '_blank'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 657 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 658 | </script> | Marca HTML presente na saída da página. |
| 659 | Linha em branco usada para separar blocos do arquivo. | |
| 660 | <script type="text/javascript"> | Marca HTML presente na saída da página. |
| 661 | function enviarImagemWhatsapp(botao){ | Declara a função e os parâmetros mostrados. |
| 662 | var telefone = $('#telefone_whatsapp_cliente').val(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 663 | var imagem = $('#imagem_simulada_dados').attr('src'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 664 | var cliente = $('#cliente_dados').text(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 665 | var btn = $(botao); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 666 | var htmlBotao = btn.html(); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 667 | Linha em branco usada para separar blocos do arquivo. | |
| 668 | if(telefone == ""){ | Avalia a condição escrita nesta linha. |
| 669 | alert('Cliente não possui telefone cadastrado.'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 670 | return; | Retorna o valor indicado pela linha. |
| 671 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 672 | Linha em branco usada para separar blocos do arquivo. | |
| 673 | if(imagem == ""){ | Avalia a condição escrita nesta linha. |
| 674 | alert('Nenhuma imagem simulada disponível.'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 675 | return; | Retorna o valor indicado pela linha. |
| 676 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 677 | Linha em branco usada para separar blocos do arquivo. | |
| 678 | telefone = telefone.replace(/\D/g, ''); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 679 | Linha em branco usada para separar blocos do arquivo. | |
| 680 | if(telefone == ""){ | Avalia a condição escrita nesta linha. |
| 681 | alert('Telefone do cliente inválido.'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 682 | return; | Retorna o valor indicado pela linha. |
| 683 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 684 | Linha em branco usada para separar blocos do arquivo. | |
| 685 | var nome_imagem = imagem.split('/').pop().split('?')[0]; | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 686 | Linha em branco usada para separar blocos do arquivo. | |
| 687 | if(nome_imagem == ""){ | Avalia a condição escrita nesta linha. |
| 688 | alert('Nenhuma imagem simulada disponível.'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 689 | return; | Retorna o valor indicado pela linha. |
| 690 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 691 | Linha em branco usada para separar blocos do arquivo. | |
| 692 | btn.html('<i class="fa fa-spinner fa-spin"></i> Enviando...'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 693 | btn.css('pointer-events', 'none'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 694 | Linha em branco usada para separar blocos do arquivo. | |
| 695 | $.ajax({ | Inicia ou configura uma requisição assíncrona no navegador. |
| 696 | url: 'paginas/' + pag + '.php', | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 697 | method: 'POST', | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 698 | data: { | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 699 | acao: 'enviar_whatsapp_imagem', | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 700 | telefone: telefone, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 701 | imagem: nome_imagem, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 702 | cliente: cliente | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 703 | }, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 704 | dataType: "text", | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 705 | Linha em branco usada para separar blocos do arquivo. | |
| 706 | success: function (mensagem) { | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 707 | btn.html(htmlBotao); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 708 | btn.css('pointer-events', 'auto'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 709 | Linha em branco usada para separar blocos do arquivo. | |
| 710 | if (mensagem.trim() == "Imagem enviada com sucesso") { | Avalia a condição escrita nesta linha. |
| 711 | alert('Imagem enviada com sucesso para o cliente.'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 712 | } else { | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 713 | var url_imagem = urlBaseSimulacoesWhatsapp + encodeURIComponent(nome_imagem); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 714 | var texto = 'Olá ' + cliente + ', segue sua simulação de prótese capilar: ' + url_imagem; | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 715 | var url = ''; | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 716 | Linha em branco usada para separar blocos do arquivo. | |
| 717 | if(/Android|iPhone|iPad|iPod/i.test(navigator.userAgent)){ | Avalia a condição escrita nesta linha. |
| 718 | url = 'https://api.whatsapp.com/send?phone=' + telefone + '&text=' + encodeURIComponent(texto); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 719 | }else{ | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 720 | url = 'https://web.whatsapp.com/send?phone=' + telefone + '&text=' + encodeURIComponent(texto); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 721 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 722 | Linha em branco usada para separar blocos do arquivo. | |
| 723 | alert(mensagem + '\n\nAbrindo WhatsApp com o link da imagem como alternativa.'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 724 | window.open(url, '_blank'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 725 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 726 | }, | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 727 | Linha em branco usada para separar blocos do arquivo. | |
| 728 | error: function () { | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 729 | btn.html(htmlBotao); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 730 | btn.css('pointer-events', 'auto'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 731 | Linha em branco usada para separar blocos do arquivo. | |
| 732 | var url_imagem = urlBaseSimulacoesWhatsapp + encodeURIComponent(nome_imagem); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 733 | var texto = 'Olá ' + cliente + ', segue sua simulação de prótese capilar: ' + url_imagem; | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 734 | var url = ''; | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 735 | Linha em branco usada para separar blocos do arquivo. | |
| 736 | if(/Android|iPhone|iPad|iPod/i.test(navigator.userAgent)){ | Avalia a condição escrita nesta linha. |
| 737 | url = 'https://api.whatsapp.com/send?phone=' + telefone + '&text=' + encodeURIComponent(texto); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 738 | }else{ | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 739 | url = 'https://web.whatsapp.com/send?phone=' + telefone + '&text=' + encodeURIComponent(texto); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 740 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 741 | Linha em branco usada para separar blocos do arquivo. | |
| 742 | alert('Erro ao enviar a imagem pela API. Abrindo WhatsApp com o link da imagem como alternativa.'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 743 | window.open(url, '_blank'); | Linha do arquivo original; deve ser lida junto com o bloco em que está inserida. |
| 744 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 745 | }); | Fecha ou delimita a estrutura iniciada anteriormente. |
| 746 | } | Fecha ou delimita a estrutura iniciada anteriormente. |
| 747 | </script> | Marca HTML presente na saída da página. |