TModal mejorada !!!

Esta es una libreria en PHP para desarrollo de aplicaciones WEB
Responder
Avatar de Usuario
administrador
Site Admin
Mensajes: 74
Registrado: Mar Nov 24, 2020 1:56 am
Contactar:

TModal mejorada !!!

Mensaje por administrador »

Hola.

Se agrego a la clase el control AddUploadBase64( <idControl> )
Con este control se pueden subir archivos a una carpeta del servidor definida por el usuario, o tambien
se puede subir un archivo PDF/PNG/JPG/BMP/JPEG en formato Base64 e incluirla en un tabla de MYSQL.

Codigo del ejemplo :

Código: Seleccionar todo

<?php
include( "config.php" );
include( TWEB_PATH . 'core.php' );
include( TWEB_PATH . 'core.pdfview.php' );
include( TWEB_PATH . 'core.modal.php' );

$oWeb = new TWeb('TEST TDATATABLE');
$oWeb->lAwesome = true; 
$oWeb->SetIcon( IMAGE_PATH . 'tweb.png' );
$oWeb->Activate();

  $oWnd = new TWindow( 'main', 10, '10%', '80%', '80%', 'white' );

    $oBar = new TBar( $oWnd );
    $oBar->SetBackColor("#c8e3f8");

    $oBtn = $oBar->AddButton( 'bload', 'base64', 'DoRead()' , IMAGE_PATH . 'cloud-upload-16.png', 'Upload Base64' );
    $oBtn->nWidth = 60;
    $oBtn->SetColor("white", "#007bff");
    $oBtn->SetColorhover("white", "#cbc8df");

    $oBtn = $oBar->AddButton( 'bfile', 'File', 'DoFile()', null, 'Upload File' );
    $oBtn->nWidth = 60;
    $oBtn->cIcon = "fa fa-upload";
    $oBtn->SetColor("white", "#007bff");
    $oBtn->SetColorhover("white", "#cbc8df");

    $oBtn = $oBar->AddButton( 'bPrint', 'Imprimir', 'DoPrint()' , IMAGE_PATH . 'pdf-black-16.png', 'Imprimir' );
    $oBtn->nWidth = 60;
    $oBtn->SetColor("white", "#007bff");
    $oBtn->SetColorhover("white", "#cbc8df");
    
    $oBtn = $oBar->AddButton( 'bSalir', 'Salir', 'DoExit()' , IMAGE_PATH . 'logout-black-16.png', 'Salir' );
    $oBtn->nWidth = 60;
    $oBtn->SetColor("white", "#fa5959");
    $oBtn->SetColorhover("white", "#cbc8df");

    $oTable = new TDataTable( $oWnd, 'myTable' );
    $oTable->AddCol( 'codigo',      'Codigo' );
    $oTable->AddCol( 'descripcion', 'Descripcion' );
    $oTable->AddCol( 'tipo', 'Tipo' );
    $oTable->PageLength( 12 );
    $oTable->Paging( true );
    $oTable->ScrollY( "280px" );
    $oTable->ScrollX( true );
    $oTable->BtnsExportHide();

    PdfView();      // Dialogo para PDF View
    DlgUpload();    // Dialogo para subida  de archivos 
    DlgImage();     // Dialogo para mostrar el archivo subido
    
  $oWnd->Activate();

$oWeb->End();  

//--------------------------------------

function PdfView() {
  $oFrame = new TPDFView( 'xframe', 'TEST TXFRAME TWEB PLUS' );
  $oFrame->nWidth  = 900;
  $oFrame->textBtn = 'Salir';
  $oFrame->Activate();
}

//--------------------------------------

function DlgUpload() {
  $oModal = new TModal( 'myModal', 'Subir Archivo', "white", "#A2A0A0" );
  $oModal->AddInput( 'Codigo', 'idCodi', TYPE_TEXT, LBL_LEFT, "codigo documento" ); 
  $oModal->AddInput( 'Descripcion', 'idName', TYPE_TEXT, LBL_LEFT, "descripcion documento" ); 
  $oModal->AddUploadBase64( 'myFile' );
  $oModal->nWidth = 600;
  $oModal->AddButton( 'bsave', 'grabar', null, 'white', '#1972ee' );
  $oModal->AddButton( '', 'Salir', null, 'white', '#f25c5c', BTN_CANCEL );
  $oModal->Activate();
}

//--------------------------------------

function DlgImage() {
  $oModal = new TModal( 'myImage', 'Upload File Image', "white", "#A2A0A0" );
  $oModal->AddImage( "idimg" );
  $oModal->AddButton( '', 'Salir', null, 'white', '#f25c5c', BTN_CANCEL );
  $oModal->Activate();
}

?>

<!--- CODIGO Javascript TEST-XFRAME2.PHP -->

<script>

  const _PDF = "application/pdf";
  
  var oTable;
  var oFrame;
  var oModal;
  var oImage;
  var fileBase64 = null;
  
  $(function() {
    var oCtrl  = new TControl();
    oTable = oCtrl.GetControl( "myTable" );
    oFrame = oCtrl.GetControl( "xframe" );
    oModal = new TModal( 'myModal' );
    oImage = new TModal( 'myImage' );

    var param = {};
    param.action = "load";
    MsgServer( "./srv_xframe.php", doLoad, param, "Recibiendo Datos" );

    function doLoad( respond, msg ) {
      if ( respond.result ) {
        var oCtrl = new TControl();
    	  var oGrid = oCtrl.GetControl( 'myTable' );
        oGrid.SetData( respond.data );
        MsgNotify( msg, 'success' );
      } else {
        MsgNotify("No se encontraron Registros", "error");
      }
    }

  });

  //------------------------------------------------

  function DoRead() {
    oModal.inifocus( "idCodi" );
    oModal.btnfunction( "bsave", "uploadBase64" );
    oModal.ontitle("Download Base64");
    oModal.show();
  }

  function uploadBase64() {

    if ( oModal.isUploadBase64() ) {

      /* 
      if ( oModal.getUploadType() != _PDF ) {
        MsgNotify("El archivo debe ser de tipo PDF", "error");
        return;
      }
      */

      var codigo = oModal.get("idCodi");
      var nombre = oModal.get("idName");
      var base64 = oModal.getUploadBase64();
      var tipo   = oModal.getUploadType();

      if ( empty(codigo) || empty(nombre) ) {

         MsgNotify("faltan datos por ingresar", "error");  
         return;

      } else {

        var params = {};
        params.action = "save";
        params.codigo = codigo;
        params.nombre = nombre;
        params.base64 = base64;
        params.tipo   = tipo;

        MsgServer( "./srv_xframe.php", doSave, params, [ params, "Registro agregado" ] );

        function doSave( data, args ) {
          if ( data.result ) {
            oTable.InsertRow( { codigo : args[0].codigo, descripcion : args[0].nombre, tipo : args[0].tipo } );
            oModal.hide();
            MsgNotify(args[1], "success");
          } else {
            MsgNotify("Error en el insert", "error");
          }
        }

      }

    } else {
      MsgNotify("Tipo de Archivo debe ser BMP/JPG/JPEG/PNG", "error"); 
    }   
  }

  //------------------------------------------------

  function DoFile() {
    oModal.disabled( "idCodi" );
    oModal.disabled( "idName" );
    oModal.inifocus( "myFile" );
    oModal.btnfunction( "bsave", "UploadFile" );
    oModal.ontitle("Download File");
    oModal.show();
  }

  function UploadFile() {

    var file = oModal.getUploadFile();

    if ( file ) {
       
      var form_data = new FormData();                  
      form_data.append('file', file);
      form_data.append('action', "upload");
      form_data.append('path', "./download");

      oModal.sendFileServer( "./srv_xframe.php", validUpload, form_data );
      
      function validUpload( data ) {
        if ( data.result ) {
          MsgNotify(data.msg, "success");
          fileBase64 = oModal.getUploadBase64();  // asigna a var global el string base64
        } else {
          MsgNotify(data.msg, "error");
        }
        oModal.hide();

        showImage(); // muestra la imagen

      }

    } else {

      MsgNotify("Debe seleccionar un archivo", "error");

    } 
  }

  //------------------------------------------------

  function showImage( cType ) {
    if ( cType ) {
      oImage.setUploadFile( cType );
    }
    oImage.setImageBase64( "idimg", fileBase64 );
    oImage.show(); 
  }

  //------------------------------------------------

  function DoPrint() {
    var oCtrl = new TControl();
    var oTable = oCtrl.GetControl( 'myTable' );
    var data  = oTable.GetRow(); 

    if ( data ) {

      var param = {};
      param.action = 'pdf'; 
      param.codigo = data.codigo;

      if ( data.tipo == _PDF ) {

        oFrame.loadFromBase64( "./srv_xframe.php", param );
        oFrame.show();

      } else {

        MsgServer( './srv_xframe.php', doShowImage, param );

        function doShowImage( data ) {
          fileBase64 = data;
          showImage( data.tipo );
        }

      }  
    } else {
      JMsgInfo("Seleccione una fila");
    }  
  }

  //------------------------------------------------

  function DoExit() {

    JMsgYesNo("Salir del Test ?", doExit, "regresando al foro");

    function doExit( msg ) {
      MsgNotify(msg, "success");
      location.href = 'http://avcsistemas.com/foro';
    }
    
  }

</script>
Link del ejemplo : TEST
Saludos.

Albeiro Valencia
Imagen Bienvenidas las Donaciones Gracias https://www.paypal.me/valenciaim5

Avatar de Usuario
administrador
Site Admin
Mensajes: 74
Registrado: Mar Nov 24, 2020 1:56 am
Contactar:

Re: TModal mejorada !!!

Mensaje por administrador »

Corregida la validacion para subir un archivo base64
Saludos.

Albeiro Valencia
Imagen Bienvenidas las Donaciones Gracias https://www.paypal.me/valenciaim5

Avatar de Usuario
administrador
Site Admin
Mensajes: 74
Registrado: Mar Nov 24, 2020 1:56 am
Contactar:

Re: TModal mejorada !!!

Mensaje por administrador »

Agregado un dialogo modal con la imagen del archivo que se sube al servidor
Saludos.

Albeiro Valencia
Imagen Bienvenidas las Donaciones Gracias https://www.paypal.me/valenciaim5

Avatar de Usuario
administrador
Site Admin
Mensajes: 74
Registrado: Mar Nov 24, 2020 1:56 am
Contactar:

Re: TModal mejorada !!!

Mensaje por administrador »

Ya se pueden grabar en la tabla archivos de imagen a parte de los pdf
Saludos.

Albeiro Valencia
Imagen Bienvenidas las Donaciones Gracias https://www.paypal.me/valenciaim5

Erick Almanza
Mensajes: 2
Registrado: Jue Sep 09, 2021 5:31 am

Re: TModal mejorada !!!

Mensaje por Erick Almanza »

Esta mejoras nos permite crear catalogos de productos

Responder