Merveilles du web 2.0

13 juin 2008

Communication grille extjs vers WCF ou WebService ASMX “Ajax” via JSON , Atteint de JavaScriptite Aiguë [Cyril Durand]

Classé dans : ExtJS — Rémi SOUBEYRAND @ 16:46
Communication grille extjs vers WCF ou WebService ASMX “Ajax” via JSON

Je suis actuellement en train d’utiliser le framework extjs.com. Parmi les contrôles de ce framework il existe un contrôle Ext.grid.GridPanel qui, comme son nom l’indique affiche une grille coté client (démo grid extjs).
Pour ceux qui ne connaissent pas extjs, je vous conseille vivement de faire un tour sur la page de démos de ce framework : démos des contrôles extjs, vous risquez d’être étonné.

Comment binder le contrôle grid avec un service WCF ou ASMX “Ajax Enabled” ?

Pour binder un contrôle à une source de donnée, extjs a un mécanisme de “store“, celui-ci s’occupe de rechercher les données, les transformer en une donnée utilisable par les contrôles, etc…
Puisqu’un service WCF est capable de nous générer du JSON, le store qui nous intéresse est le JsonStore. Ce “store” permet de faire une requête XMLHttpRequest vers une url nous retournant du JSON. Le JsonStore effectue une requête GET, par défaut WCF n’autorise pas les requêtes GET, il faut donc rajouter l’attribut [WebGet] au niveau du service WCF afin d’autoriser ce verbe.

Voici à quoi ressemble notre service WCF.

[WebGet] [OperationContract] public List<Person> GetPersons() { return new List<Person>() { new Person(){FirstName = "Cyril", LastName = "Durand", BirthDate = new DateTime(1986, 1, 31), Company = "Freelance"}, new Person(){FirstName = "Toto", LastName="Pouet", BirthDate = new DateTime(1900, 1, 1), Company="Student"} }; }

Si vous utilisez un WebService ASMX classique il faut rajouter le paramètre UseHttpGet=true dans l’attribut ScriptMethod.

[WebMethod] [ScriptMethod(UseHttpGet = true)] public List<Person> GetPersons()

Au niveau du client, il n’y a rien de spécial à configurer, nous n’avons même pas besoin d’utiliser le framework Microsoft Ajax Library ou d’inclure le proxy autogénéré du service WCF (service1.svc/js).
Voici le code nécessaire.

var store = new Ext.data.JsonStore({ url : 'service.svc/GetPersons', root : 'd', // anti CSRF attack fields: [ 'FirstName', 'LastName', 'Company', {name:'BirthDate', type:'date', dateFormat: 'atlas'} ] }); var grid = new Ext.grid.GridPanel({ store: store, columns: [ {header: "Prenom", width: 75, sortable: true, dataIndex: 'FirstName'}, {header: "Nom", width: 75, sortable: true, dataIndex: 'LastName'}, {header: "Date de naissance", width: 155, sortable: true, dataIndex: 'BirthDate', renderer: Ext.util.Format.dateRenderer('m/d/Y')}, {id:'company',header: "Nom de la companie", width: 100, sortable: true, dataIndex: 'Company'} ], loadMask : true, autoExpandColumn: 'company', height:350, width:800 }); grid.render(document.body); store.load();

Si vous voulez renvoyer des données de type DateTime voici une petite astuce permettant de déserializer une Date “WCF” avec extjs.

// petite bidouille pour deserialiser les dates atlas avec extjs Date.parseFunctions['atlas'] = '_parseAtlas'; Date._parseAtlas = function(input){ input = input.replace( new RegExp('/Date\\((-?[0-9]+)(?:[a-zA-Z]|(?:\\+|-)[0-9]{4})?\\)/', 'g'), '(new Date($1))'); return eval(input); }

Cette astuce est à exécuter qu’une seule fois au lancement de votre application.

Communication grille extjs vers WCF ou WebService ASMX “Ajax” via JSON , Atteint de JavaScriptite Aiguë [Cyril Durand]

Blogged with the Flock Browser

18 avril 2008

Ext JS WordPress Blog

Classé dans : ExtJS — Rémi SOUBEYRAND @ 16:45

Ext JS WordPress Theme

The release of Ext JS WordPress Theme v. 1.0.1 contains distribution of Ext JS library 1.1.1. Both, the theme and the library are distributed under LGPL v.3 license. To apply the theme to your WordPress installation do what you usually do with themes: unpack it to wp-content/themes/ directory, and activate it using WordPress administration interface. This should be enough.

http://extjswordpress.net/wp-content/uploads/2007/11/extjswp101.zip

Ext JS WordPress Blog

Blogged with the Flock Browser

Tags: ,

10 avril 2008

J’ai testé pour vous : Omemo le méga serveur de fichiers p2p

Classé dans : ExtJS — Rémi SOUBEYRAND @ 8:15

A lire :

J’ai testé pour vous : Omemo le méga serveur de fichiers p2p

image14.png

Aujourd’hui, j’ai eu la chance de recevoir une invitation pour tester la bêta de Omemo, un nouveau genre de réseau p2p.

Omemo, c’est donc un logiciel qui crée un réseau p2p et qui partage l’espace disque de chacun afin de créer un seul et unique disque dur sans limite de taille.

Chaque utilisateur peut créer ses propres dossiers et y mettre ses propres fichiers. Tout est géré par les utilisateurs eux même. Ensuite, cela rejoint le pot commun et on se retrouve avec un espèce de méga-serveur de fichiers. En pratique, Omemo rajoute un disque réseau virtuel sur votre PC Windows (marche pas sous Linux) et fournit même un petit moteur de recherche pour se retrouver dans tout ce bazar.

Voici quelques captures accompagnés d’explications.

Première image, le moteur de recherche de Omemo. Ca utilise le framework ExtJs et ca permet d’avoir un joli arbre de fichiers à gauche pour naviguer dans l’arborescence.

page d’acceuil Omemo

Après avoir lancé une recherche, on se retrouve avec la liste des résultats.

search omemo

On peut attribuer un classement à ces fichier comme par exemple dire que c’est un content violent ou alors pour adulte…Etc

omemo note

Une fois que vous avez trouvé le fichier qui vous interresse, vous pouvez le télécharger. Mais vous pouvez aussi créer vos propres répertoires et y uploader vos propres fichiers.

transfert omemo

Voici la vue via l’explorateur de fichier Windows. Omemo crée un disque virtuel O: dans lequel vous retrouverez exactement la même arborescence que dans la version web ci-dessus. Vous pouvez aussi télécharger ou uploader des fichiers directement à partir d’ici.

explorer windows omemo

Bon, j’ai encore quelques tests à faire surtout pour voir si les données sont bien cryptées. En tout cas, les taux de transfert ne sont pas trop mauvais compte tenu qu’il n’y a pour le moment pas beaucoup de monde sur ce réseau.

Sur le concept ce que j’aime surtout c’est cette notion de gros disque dur que tout le monde se partage et que chacun peut gérer comme il l’entend. Pratique. Il manque quand même à mon gout la possibilité de mettre des fichiers en accès personnel ou protégés avec un mot de passe, mais bon, c’est encore une béta donc qui sait ce que va nous reserver pour la suite l’équipe d’Omemo.

Je ne sais pas si vous aurez besoin de vous identifier mais au cas ou, je passe outre l’invitation béta et je vous donne le lien ou télécharger l’executable directement. Dites moi si ça fonctionne. Cliquez ici.

Et si vous voulez scruter les sources (car oui, Omemo est open source) tentez votre chance ici.

N’hésitez pas a me faire vos retours !

+ d’infos sur Omemo.com

Blogged with the Flock Browser

7 mars 2008

Nexen.net : portail PHP et MySQL - ExtJS pour PHP : ExtPHP, ou PHP-Ext?

Classé dans : ExtJS, php — Rémi SOUBEYRAND @ 21:32
Image pour le titre du contenu
Sur le site Ajaxian, on découvre 2 interfaces PHP pour extJS. ExtJS est un framework Javascript, qui permet de produire nombre de widget utiles : onglets, fenêtres d’outils, arbres, grilles, formulaires, etc. ExtJS est écrit en JavaScript, et les bibliothèques ExtPHP et PHP-Ext (notez la variété de noms…) permettent de produire les instructions JS en notation objet PHP.

J’ai découvert ExtJS ce matin, et la bibliothèque à l’air particulièrement utile et efficace. Les bibliothèques PHP se présentent à point pour faire le relais depuis du code PHP vers cette bibliothèque. A suivre…

Nexen.net : portail PHP et MySQL - ExtJS pour PHP : ExtPHP, ou PHP-Ext?

Blogged with the Flock Browser

Tags: ,

To ExtPHP, or to PHP-Ext?

Classé dans : ExtJS, php — Rémi SOUBEYRAND @ 21:32

To ExtPHP, or to PHP-Ext?

Category: JavaScript, PHP, Ext

I got emails on the same day from two developers letting me know about ExtJS wrappers for PHP.

PHP-Ext

First, Sergei Walter Guerra told me about PHP-Ext “an open source widget library written for PHP 4 and 5 to empower the UI Layer.”

Blogged with the Flock Browser

Tags: ,

ExtPHP: An ExtJS Converter/Wrapper for PHP Developers

Classé dans : ExtJS — Rémi SOUBEYRAND @ 21:31

ExtPHP LogoIt is something that I had to think about in my day job, because my team is migrating to PHP for web development and I believe that we simply do not have enough time for them to learn JavaScript’s intricacies, I needed to be the one person who would have to wrestle JavaScript when problems happened. I therefore needed a way to insulate them from the gory details, which is why I created ExtPHP.
As you may have guessed from subtle hints, such as this entry’s 12-feet tall header, ExtPHP creates a PHP wrapper for ExtJS.

ExtPHP In ActionI noticed, at dzone.com, that the last time someone created a wrapper for JavaScript, many readers complained about how intrusive his approach was. Well, be assured that ExtPHP does not foil ExtJS’ non-intrusive take. Of course, with ExtJS itself, it’s up to the developer to decide what kind of style they wish to adopt, and ExtPHP follows suit.

Blogged with the Flock Browser

The PHP-Ext Open Source Project

Classé dans : ExtJS — Rémi SOUBEYRAND @ 21:30

PHP-ExtThe Web 2.0 PHP Widget Library using Ext JS

The PHP-Ext Open Source Project

Blogged with the Flock Browser

Tags: ,

6 mars 2008

Ext.ux.UploadDialog user extension.

Classé dans : ExtJS, Web 2.0 — Rémi SOUBEYRAND @ 16:20

Ext.ux.UploadDialog (for ExtJS 2.0) demo page.

Usage example.

This is the code taken from upload-dialog.js.

Ext.ux.UploadDialog user extension.

Blogged with Flock

8 février 2008

Extjs - exemples en ligne

Classé dans : ExtJS, Web 2.0 — Rémi SOUBEYRAND @ 10:34
Tags: , ,

Exemples EXTJS 1.1

accordion

http://aariadne.com/accordion-preview/

Map

http://ongmap.com/

multiselect : drag and drop

http://www.figtreesystems.com/ext/ext-ux/1.1/Multiselect/Multiselect.html

Quick Search

http://ido.nl.eu.org/static/ext-1.0-alpha3/examples/grid/quicksearch-grid.html

page et appercu de page

http://demo.pagebakery.org/cms/#

Column Tree

http://ryanpetrello.com/ext-ux/ColumnTree/

Exemples EXTJS 2.0

Tutorial :

Tous : http://extjs.com/learn/Tutorials
Combobox with flags : http://extjs.com/learn/Tutorial:Extending_Ext_Class
Migration : 1 vers 2 : http://extjs.com/learn/Ext_1_to_2_Migration_Guide
Utilisation avancée des composants : http://www.extendersamples.qsh.eu/

Office en ligne :

Qwiki  : http://qwikioffice.com/desktop-demo/
Qwiki+ : http://extjs.keliglia.com/  (http://www.keliglia.com/categorie/extjs/)
Feyasoft : http://www.feyasoft.com/home.htm
Filespots : http://www.filespots.com/index3.html => myelrems-extjs1@yahoo.fr => olpuw
Desktop : http://extjs.com/deploy/dev/examples/desktop/desktop.html

Extension :

Ext.ux.Multiselect/ItemSelector : http://members.cox.net/vtswingkid/ext-ux/multiselect/Multiselect2.html

GUI builder :

http://tof2k.com/ext/formbuilder/

Extplorateur :

http://portail/extplorer/ => http://extplorer.sourceforge.net/

Spinner : +1 -1

http://members.upc.nl/j.chim/ext/spinner2/ext-spinner.html

Back office de gestion de pieces avec Filtres :

http://backoffice.kaffill.de/index.html

Grid :

filtre sur les colonnes : http://ccinct.com/lab/filter-grid/
Grid and editing : http://extjs.com/learn/Tutorial:Using_Ext_grid_form_dialog_to_achieve_paging_list%2C_create%2C_edit%2C_delete_function
filtre et filtre avancés : http://www.sk-typo3.de/index.php?id=345

Solution de remplacement pour le paging :

http://www.siteartwork.de/livegrid_demo/

Partage de sources :

http://ido.nl.eu.org/extpaste/
http://www.extpaste.com/

Application en ligne :

http://dowjonesindexes.com/

Upload de fichiers :

http://www.max-bazhenov.com/dev/upload-dialog-2.0/index.php

Autre : (en cours de developpement)

http://extjs.com/deploy/dev/examples/simple-widgets/progress-bar.html
http://www.fortunatur.com/v3/

Blogged with Flock

Tags:

Publié sur WordPress.