Git Product home page Git Product logo

manager-react's Introduction

ZBox Manager in REACT

Configuration

The is a configuration file under config/config.json with the following structure

{
    "debug": true,
    "zimbraUrl": "http://zimbra.zboxapp.dev:8000/service/admin/soap",
    "zimbraProxy": "https://zimbra.zboxapp.dev:7071",
    "dnsApiUrl": "http://zimbra.zboxapp.dev:3000",
    "plans": {
        "basic": true,
        "premium": true,
        "professional": true,
        "default": false
    },
    "companiesEndPoints": {
        "list": "http://zimbra.zboxapp.dev:8001/list",
        "detail": "http://zimbra.zboxapp.dev:8001/company/{id}",
        "invoices": "http://zimbra.zboxapp.dev:8001/company/{id}/invoices"
    }
}
  • debug: Use in development environmet to recieve messages in the javascript console.
  • zimbraUrl: The URL where the zimbra admin services are running.
  • zimbraProxy: The URL of a proxy server to allow CORS between the webapp and the Zimbra admin service. (Only needed in development environment for the server)
  • dnsApiUrl: URL of the DNS api to get DNS information ( zDNS ).
  • plans: Object with the available mailboxes plans, set to true if enabled or false to disable it.
  • companiesEndPoints: This are the enpoints to get information about companies and invoices. (Checkout the companies endpoint specifications below).
    • list: The Endpoint to get a list of available companies
    • detail: The Endpoint to get information from a specific company. The {id} string paramenter is mandatory.
    • invoices: The Endpoint to get information for the invoices of a specific company. The {id} string paramenter is mandatory.

Companies endpoint specifications

The method of every endpoint should be GET (so far no security is being allowed).

List

REST Service that returns a list of available companies.

  • Content-Type: application/json
  • Method: GET

Response should be a json array with the following structure:

[
  {
    "id": "company-identifier",
    "name": "company name"
  }
]

Detail

REST Service that returns the company specified by the {id} parameter.

  • Content-Type: application/json
  • Method: GET

Response should be a json object with the following structure:

{
  "id": "company-identifier",
  "name": "company name"
}

Invoices

REST Services that returns the invoices for the company specified by the {id} parameter.

  • Content-Type: application/json
  • Method: GET

Response should be a json array with the following structure:

[
  {
    "number": 123,
    "link": "optional url to view the invoice",
    "date": "2016-04-30T19:33:00Z",
    "total": "$ 12.000",
    "status": 0
  }
]

Posible status are:

Status Meaning
0 Pendiente
1 Pagada
2 Vencida
3 Anulada

Deployment

You'll need to build the sources ready for production by running

$ make build

This will generate a folder called dist which holds all the necessary files for deploying the website. This files have to be copied to your server running NGINX.

Copy the files to NGINX html folder and you're done.

A sample for the NGINX configuration can be found here.

TODO

  • Add security to the companies Endpoints
  • test

manager-react's People

Contributors

enahum avatar johuder33 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

manager-react's Issues

Limitar acceso a menu Empresas

Si el usuario es Administrador de Dominio y no Administrador Global, el Link Empresas debería ser reemplazado por uno que se llame Mi Empresa y que le muestre sólo su empresa.

Login debe mostrar Error de autenticación

Si uno ingresa mal la contraseña o el usuario, no se muestra mensaje de error.
Creo que es algo de la librería pero no recuerdo.

@johuder33 si es un problema de la librería me abres un Issue allá y lo relacionas con este.

Página de inicio

No se si podrá ser bug, pero no me queda claro como vuelvo a la pantalla de inicio ¿Dónde dice Dashboard? (que da el error de pagina no encontrada reportado por daniel)

error "auth credentials have expired"

cuando una cuenta es bloqueada, y esta cuenta esta dentro la app esta misma da error pero la api zimbra js no captura el code error de "auth credentials have expired"

link para empresas (dominios) sin límites definidos

Cuando se ingresa a EMPRESAS, aparece un mensaje que dice:
"Hay dominios que no tienen límite asignado"

Ese debería tener un link para que muestre inmediatamente el listado de dominios que no tienen límite

captura de pantalla 2016-05-18 a las 9 23 14 p m

Mostrar botón "Crear Zona DNS"

Ahora se muestra así si el Dominio no tiene Zona DNS
captura de pantalla 2016-05-18 a las 8 58 19 p m

Y se debería mostrar un botón para crear la Zona y que muestre el mismo formulario del tercer paso de crear un dominio.

La API de empresas necesita token

Para poder acceder a la API de Empresas es necesario parar el x-api-token que es el token del usuario Zimbra.

Esto es igual que la API de Zonas DNS.

Por ahora todo sale rechazado.

Columna casillas en dominio

Al ver los dominios que tiene una empresa, está la columna "Casillas", que en realidad creo que debería decir "Casillas Compradas".

captura de pantalla 2016-05-18 a las 9 31 14 p m

Muestra factura en borrador

Al ver la info de una empresa, muestra las facturas, pero si una tiene alguna en borrador, muestra una línea en blanco, y con el valor como pendiente... no debería mostrarse facturas en borrador.

captura de pantalla 2016-05-24 a las 8 17 52 p m

El bundle.js es gigante

El tamaño del archivo bundle.js es demasiado grande, en este momento pesa 17Mb.

[pbruna@nginx-01 manager-react]$ ls -lh dist/
total 60M
-rw-r--r-- 1 pbruna itlinux  17M may 18 13:41 176087bundle.js <---- GIGANTE
-rw-r--r-- 1 pbruna itlinux 6,7M may 18 13:41 819677bundle.js
-rw-r--r-- 1 pbruna itlinux 7,3M may 18 13:41 819677bundle.js.map
-rw-r--r-- 1 pbruna itlinux 6,7M may 18 13:42 986006bundle.js
-rw-r--r-- 1 pbruna itlinux 7,3M may 18 13:42 986006bundle.js.map
-rw-r--r-- 1 pbruna itlinux  15M may 18 13:42 bundle.js
drwxr-xr-x 2 pbruna itlinux 4,0K may 18 14:44 config
drwxr-xr-x 2 pbruna itlinux 4,0K may 18 13:42 files
-rw-r--r-- 1 pbruna itlinux 2,1K may 18 13:42 index.html
[pbruna@nginx-01 manager-react]$

@johuder33 por favor dale una vuelta para ver como disminuir su tamaño, por lo que estuve viendo webpack tiene una opción de optimización.

Firmas masivas no funciona

En el dominio -> tareas masivas -> mensaje fuera de la oficina:

  1. No guarda la operación
  2. Falta un botón para programar la fecha de inicio.

captura de pantalla 2016-05-18 a las 9 21 55 p m

No muestra el nombre de la cuenta

Al listas las cuentas, en la columna de nombre está mostrando el mismo correo, debería mostrar el atributo "displayName", o el "cn" con el "sn".

captura de pantalla 2016-05-18 a las 9 38 37 p m

Notas en dominio

A mi parecer esas notas en el dominio no deberían aparecer...

captura de pantalla 2016-05-18 a las 9 27 32 p m

error al crear una lista de distribución

En el detalle del dominio al intentar crear una lista de dist. me arroja el siguiente error (que no me dice por que sucedió: ya esta creada, hay una cuenta con ese nombre)
captura de pantalla 2016-05-18 a las 9 16 46 p m

No muestra las casillas usadas

Al ver la información del dominio, muestra los límites, pero no la cantidad de casillas usadas por cada clase de servicio. (Están en cero todos).

captura de pantalla 2016-05-24 a las 8 05 36 p m

Se pierde window.manager_config.dns.token al refrescar

El valor del Token se carga sólo al hacer login, según el archivo client.jsx:

zimbra.login((err) => {
        if (err) {
            var e = handleError('login', err);
            return error(e);
        }

        Utils.setCookie('token', zimbra.client.token);
        window.manager_config.dns.token = Utils.getCookie('token');
        return getMe(success, error);
    });

Entonces si ya estoy logueado y refresco la página, se pierde el token y queda con el valor de otto.
Lo anterior no deja ver la Zona DNS en el Dominio.

Como se instala

En el Readme falta indicar cómo se instala en producción.

No muestra las bloqueadas

Al iniciar en maganer, muestra la cantidad total de cuentas (6665), y bloqueadas (0), siendo que tenemos en este minuto 43 cuentas bloqueadas.

captura de pantalla 2016-05-24 a las 7 58 26 p m

MX Record

En todos los dominios dice: No pudimos obtener el registro MX.

Si aún no está esto hecho, mejor dejarlo en blanco, o no mostrar mensaje, pues va a conducir al cliente a que piense que hay un problema.

captura de pantalla 2016-05-24 a las 8 02 07 p m

Bloqueo de propia cuenta

Me quise hacer un candado chino, y bloquié mi propia cuenta de admin. Pero la página queda visualizando así. (debería cerrar la sesión)
En Chrome.

captura de pantalla 2016-05-18 a las 10 16 24 p m

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.