Code Monkey home page Code Monkey logo

focus4's People

Contributors

ayadio avatar c3dr0x avatar jabx avatar kbuntrock avatar marcbachmann avatar oussony avatar renovate-bot avatar ryu1102 avatar sebez avatar tsj- avatar vit-cos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

focus4's Issues

[Recherche] Gestion avancée des groupes

Dans l'API de recherche existante, la gestion est groupes est très basique : on choisit une clé sur laquelle grouper et le serveur renvoie des groupes.

En particulier, on ne peut pas faire de chargement partiel, c'est à dire qu'on est dépendant de l'implémentation côté serveur pour l'exhaustivité des résultats, qui peut choisir de renvoyer tous les éléments d'un groupe ou pas, ou bien tous les groupes ou pas.

On aimerait bien pouvoir spécifier la taille d'un groupe, le nombre de groupes que l'on veut récupérer, charger les groupes qui nous manquent et plus d'éléments sur un groupe.

Search result style sous IE

La vue mosaic sous IE plante. Le wrapper global devrait avoir une width définie pour que cela fonctionne.

Search & List

  • unifier show more dans la liste (virer de results)
  • virer liststore avec service (on utilise que le searchstore)
  • consolider l'ensemble (ne pas avoir besoin de préciser store + data dans StoreList)

But : pouvoir utiliser StoreList à la place de AdvancedSearch gratos.

[Recherche] Refondre la gestion des actions de ligne et de masse

Les actions que l'on peut effectuer sur les éléments d'une recherche (ou liste) doivent être distinctes entre le type d'action (unitaire, en masse) et le type d'élément (scope dans la recherche).

De plus, il faudrait correctement remonter la gestion des actions unitaires dans la liste (et non dans la ligne, qui est laissée à l'utilisateur) et gérer la liste d'actions comme on gère la case à cocher de sélection. La liste d'actions unitaires doit être une fonction de la donnée, pour pouvoir afficher ou masquer des actions selon un état par exemple.

[EntityStore] Permettre la composition d'EntityStore

On voudrait pouvoir mettre un autre EntityStore en tant que noeud d'EntityStore.
Du style :

const store2 = makeEntityStore({
    node2: {} as Node2,
});

const store1 = makeEntityStore({
    node1: {} as Node1,
    store2
});

Pour faire des accès genre store1.store2.node2 ou du store1.store2.clear(), voire le plus intéressant store1.clear() qui viderait store2 aussi.

[Autocomplete] Mode "recherche rapide"

On veut un autocomplete qui n'est pas lié à une valeur et donc vide l'input après la sélection, par exemple pour une recherche rapide pour sélectionner des choses.

Libellé de traduction dans la liste de recherche avancée (préfixe)

Il faudrait ajouter une propritété à l'AdvancedSearch qui permette d'ajouter cette valeur à tous les libellés d'actions . Par exemple : list.actionbar.filter => myPrefix.list.actionbar.filter

Aussi, lorsque l'on sélectionne un filtre, la clef n'est plus traduite dans l'affichade de la mention "trié par"

[Liste] Ajouter une fonction d'ajout générique

Il faudrait pouvoir ajouter une fonction d'ajout à une liste qui afficherait un bouton dans la liste pour ajouter un élément. A faire après #9. Le bouton serait affiché en haut à droite du bouton de changement d'affichage en mode liste, et en tant que premier bloc en mode mosaïque.

Remplace #8

Correct & Export buttonProps interface

Is it possible toi export the ButtonProps interface located in focus-components?

Furthermore, the shape prop could be null, so we have to add that.

declare module "focus-components/button" {
    export interface ButtonProps {
        className?: string;
        color?: "colored" | "primary" | "accent";
        disabled?: boolean;
        handleOnClick: (e?: React.SyntheticEvent<any>) => void;
        hasRipple?: boolean;
        icon?: string;
        iconLibrary?: "material" | "font-awesome" | "font-custom";
        id?: string;
        isJs?: boolean;
        label?: string;
        shape?: "raised" | "fab" | "icon" | "mini-fab" | null;
        style?: React.CSSProperties;
        type?: "button" | "submit";
    }

    export default class Button extends React.Component<ButtonProps, {}> { }
}

[Field] Gérer des tooltips de manière native

Intégration avec les commentaires du modèle ? Option pour changer et activer/masquer.

A poser à droite du libellé.

Proposer aussi une deuxième tooltip à droite de la valeur pour une aide sur la valeur ?

[Recherche / Liste] Ajouter le mode mosaïque

Idéalement, il faudrait que les listes puissent avoir deux modes d'affichage : liste ou mosaïque. Il y aurait un bouton pour changer de mode d'affichage et on fournirait 2 composants de lignes à la liste, par exemple LineComponent et MosaicComponent.

Le bouton pour changer sera affiché au dessus de la liste à droite et serait propre à une liste (et non dans une action transverse).

[Advanced search] Empty state vs. No results

In the advanced search, the empty state is displayed when a search returns no results

The following search/filter should display the fact that there are no results rather than an empty state saying that you can add objects

image

[Recherche / Liste] Ajouter le filtrage dans l'ActionBar

Il faudrait ajouter une zone de texte pour pour filtrer une liste ou la recherche dans la barre d'actions.

Pour la recherche, c'est directement la zone de recherche textuelle.

Pour une liste, ça serait un filtre configurable simple de recherche à la volée dans la liste chargée. On spécifierait la liste des champs sur lesquels on veut rechercher dans le store, et le texte saisi serait recherché texto dans les champs demandés. L'idée est de fournir une "mini-recherche" pour des petits jeux de données pour lesquels ça ne vaut pas le coup de monter une recherche complète côté serveur.

Notification close button

Following a recent framework update, the server message notification displays a button with a label which is confusing to the user. Certain websites and apps now show a notification "Undo" after an action, allowing the user to under the recet action. If the feature present here is to simply dismiss the notification, I would recommend using a close button rather than a label. A close button's meaning is immediate for a user whereas a label forces him to understand the meaning of the label

Especially if in a future version we implement the "Undo" feature.

Current behavior

image

Expected behavior

image

[DevTools] Explorateur de stores

Ca serait stylé et très pratique d'avoir un explorateur de stores (EntityStore/ViewStore) en tant que DevTools pour pouvoir facilement visualiser ce qu'il se passe (au lieu de la console).

Ca existe dans toutes les versions de Focus sauf le 4 en plus.

Scrollspy ko

La sélection du scrollspy ne fonctionne pas en correspondance avec le scroll de la page

Au click, la page scroll mais la sélection n'est pas affichée sur le scrollspy. Idem quand on scroll, le scrollspy ne suit pas l'affichage à la page.
Ca fonctionnait dans une version antérieure, je ne sais pas depuis laquelle c'est cassé

animation

Advanced Search - scroll manuel

Actuellement, il n'y a que le scroll infini qui est mis en place pour la présentation des items dans l'Advanced Search.
On aimerait avoir la possibilité de choisir entre un scroll manuel et un scroll infini.

[Routeur] Gestion d'un "beforeEnter" et d'un vrai fallback

  • On a besoin de pouvoir spécifier un vraie page de fallback dans le routeur (à la place de rediriger vers home)
  • Cette page doit correspondre à une route précise (par exemple "/error"), et doit prendre au moins un paramètre en plus pour gérer des codes d'erreurs ("/error/notfound", "/error/forbidden", ou encore "/error/customBusinessError")
  • On a besoin d'avoir accès à un hook "beforeEnter", à la fois sur le routeur et en intercepteur sur currentView, pour pouvoir par exemple faire des vérifications et des redirections (au moins vers la page d'erreur).

[Recherche] recherche par critères

J'avais en tête d'adresser la recherche par critères, qui adresse un besoin complémentaire pour l'utilisateur, de cette manière :

image

Coté FOCUS, la mise en place pourrait être faite par fichier de configuration.
Côté Backend, il y a peu de travail à mon sens, à part ouvrir un peu l'API (peut-être).

[Recherche / Listes] Améliorer la gestion de la sélection

Actuellement, il n'est possible de sélectionner que des éléments qui ont effectivement été chargés par le service de recherche/chargement. De même, la sélection de masse va toujours sélectionner l'ensemble des éléments chargés, sans vérifier s'ils sont affichés ou non, et surtout sans consulter le serveur sur les éléments non chargés.

Par exemple, une sélection de masse sur une recherche paginée va seulement sélectionner les éléments dans les pages qu'on a téléchargé.

Cela pose aussi la question sur les actions de masse, qui s'effectuent sur les éléments sélectionnés.

Il manque du coup probablement quelque chose dans l'API de recherche pour sélectionner des éléments sur le serveur, et il faudrait pouvoir bien clarifier les cas d'usages (est-ce-qu'on en a vraiment besoin ? est-ce-que ça a du sens ? dans quels cas la sélection de masse doit-elle effectivement appeler le serveur ?)

Rendre les noms de fichiers CSS uniques

Si un utilisateur ne veut pas utiliser les modules CSS pour le style de son application, il faudrait pouvoir le laisser pouvoir générer des noms de classes déterministes par le build webpack.
Si on nomme les classes focus-[nomFichier]-[nomClasse] dans le css-loader, on devrait pouvoir assurer qu'il n'y ait pas de collision.
Cela marchera si les noms de fichiers sont bien uniques.

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.