Index: XIOS/dev/dev_trunk_graph/src/filter/pass_through_filter.cpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/filter/pass_through_filter.cpp	(revision 2027)
+++ XIOS/dev/dev_trunk_graph/src/filter/pass_through_filter.cpp	(revision 2028)
@@ -36,7 +36,7 @@
       for(int i=0; i<this->graphPackage->filterId; i++)
       {
-        if(  (*CWorkflowGraph::vectorOfNodes_)[i].label_field_id == this->label_field_id  
+        if(CXios::isClient 
+          &&  (*CWorkflowGraph::vectorOfNodes_)[i].label_field_id == this->label_field_id  
           && (*CWorkflowGraph::vectorOfNodes_)[i].timestamp == data[0]->timestamp
-          && CXios::isClient
           && (*CWorkflowGraph::vectorOfNodes_)[i].filter_name == "Pass through filter" )
         {
Index: XIOS/dev/dev_trunk_graph/src/filter/temporal_filter.cpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/filter/temporal_filter.cpp	(revision 2027)
+++ XIOS/dev/dev_trunk_graph/src/filter/temporal_filter.cpp	(revision 2028)
@@ -47,4 +47,7 @@
         graphCycleCompleted = false;
       }
+      
+      data[0]->graphPackage->currentField = this->graphPackage->inFields[0];
+      std::rotate(this->graphPackage->inFields.begin(), this->graphPackage->inFields.begin() + 1, this->graphPackage->inFields.end());
       
       CWorkflowGraph::addEdge(data[0]->graphPackage->fromFilter, this->graphPackage->filterId, data[0]);
Index: XIOS/dev/dev_trunk_graph/src/filter/transform_filter.cpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/filter/transform_filter.cpp	(revision 2027)
+++ XIOS/dev/dev_trunk_graph/src/filter/transform_filter.cpp	(revision 2028)
@@ -53,5 +53,6 @@
       if(this->graphPackage->show)
       {
-        packet->graphPackage->currentField = data[0]->graphPackage->currentField->getDirectFieldReference();//this->graphPackage->inFields[0];
+        //packet->graphPackage->currentField = data[0]->graphPackage->currentField->getDirectFieldReference();//this->graphPackage->inFields[0];
+        packet->graphPackage->currentField = this->graphPackage->inFields[0];
         CWorkflowGraph::addNode("Spatial transform filter "+algorithm->getAlgoName(), 4, false, 1, packet);
         CWorkflowGraph::addEdge(packet->graphPackage->fromFilter, this->graphPackage->filterId, packet);
Index: XIOS/dev/dev_trunk_graph/src/node/field.hpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/node/field.hpp	(revision 2027)
+++ XIOS/dev/dev_trunk_graph/src/node/field.hpp	(revision 2028)
@@ -236,5 +236,5 @@
           bool isGridCompleted_ = true ;
       public:
-          bool isGridCompleted() { } 
+          bool isGridCompleted() ; 
           void setGridCompleted(void) { isGridCompleted_= true; }
           void unsetGridCompleted(void) { isGridCompleted_ = false ;}
Index: XIOS/dev/dev_trunk_graph/src/transformation/domain_algorithm/domain_algorithm_generate_rectilinear.hpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/transformation/domain_algorithm/domain_algorithm_generate_rectilinear.hpp	(revision 2027)
+++ XIOS/dev/dev_trunk_graph/src/transformation/domain_algorithm/domain_algorithm_generate_rectilinear.hpp	(revision 2028)
@@ -35,5 +35,5 @@
   static bool registerTrans();
   virtual bool isGenerateTransformation(void) { return true ;}
-
+  virtual StdString getAlgoName() {return "\\ngenerate_rectilinear_domain";}
 protected:
   void computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs);
Index: XIOS/dev/dev_trunk_graph/src/transformation/domain_algorithm/domain_algorithm_interpolate.hpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/transformation/domain_algorithm/domain_algorithm_interpolate.hpp	(revision 2027)
+++ XIOS/dev/dev_trunk_graph/src/transformation/domain_algorithm/domain_algorithm_interpolate.hpp	(revision 2028)
@@ -39,4 +39,5 @@
 
   static bool registerTrans();
+  virtual StdString getAlgoName() {return "\\ninterpolate_domain";}
 
 private:
Index: XIOS/dev/dev_trunk_graph/src/workflow_graph.cpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/workflow_graph.cpp	(revision 2027)
+++ XIOS/dev/dev_trunk_graph/src/workflow_graph.cpp	(revision 2028)
@@ -4,12 +4,8 @@
 namespace xios
 {
-
-  
-
 
   std::vector<graph_node_object> *CWorkflowGraph::vectorOfNodes_ = 0;
   std::vector<graph_edge_object> *CWorkflowGraph::vectorOfEdges_ = 0;
   std::vector<StdString> *CWorkflowGraph::vectorOfContexts_ = 0;
-  
 
   std::vector<graph_node_object> *CWorkflowGraph::vectorOfNodes_srv_ = 0;
@@ -19,7 +15,4 @@
   bool CWorkflowGraph::clientGraphBuilt = false;
   bool CWorkflowGraph::serverGraphBuilt = false;
-
-
-
   bool CWorkflowGraph::build_begin = false;
 
@@ -105,4 +98,10 @@
       edge_obj.field = packet->graphPackage->currentField;
       edge_obj.show = true;
+      
+      if(vectorOfNodes_->at(from).filter_class == 2) // from pass through filter
+      {
+        edge_obj.label_info = vectorOfNodes_->at(from).label_field_id;
+      }
+      
       for(int i=0; i<vectorOfContexts_->size(); i++)
       {
@@ -273,6 +272,14 @@
       outfiles[ctx] << "\"from\":"<<vectorOfEdges_->at(i).from<<","<<std::endl;
       outfiles[ctx] << "\"to\":"<<vectorOfEdges_->at(i).to<<","<<std::endl;
-      if(vectorOfEdges_->at(i).show) outfiles[ctx] << "\"label\":"<<"\""<<vectorOfEdges_->at(i).field->getId()<<"\\n"<<vectorOfEdges_->at(i).date<<"\","<<std::endl;
-      else outfiles[ctx] << "\"label\":"<<"\"\\n"<<vectorOfEdges_->at(i).date<<"\","<<std::endl;
+      if(vectorOfEdges_->at(i).label_info != "none")
+      {
+        if(vectorOfEdges_->at(i).show) outfiles[ctx] << "\"label\":"<<"\""<<vectorOfEdges_->at(i).label_info<<"\\n"<<vectorOfEdges_->at(i).date<<"\","<<std::endl;
+        else outfiles[ctx] << "\"label\":"<<"\"\\n"<<vectorOfEdges_->at(i).date<<"\","<<std::endl;
+      }
+      else
+      {
+        if(vectorOfEdges_->at(i).show) outfiles[ctx] << "\"label\":"<<"\""<<vectorOfEdges_->at(i).field->getId()<<"\\n"<<vectorOfEdges_->at(i).date<<"\","<<std::endl;
+        else outfiles[ctx] << "\"label\":"<<"\"\\n"<<vectorOfEdges_->at(i).date<<"\","<<std::endl;
+      }
       outfiles[ctx] << "\"context\":"<<"\""<<vectorOfEdges_->at(i).context_id<<"\","<<std::endl;
       outfiles[ctx] << "\"attributes\":"<<"\""<<vectorOfEdges_->at(i).attributes<<"\","<<std::endl;
Index: XIOS/dev/dev_trunk_graph/src/workflow_graph.hpp
===================================================================
--- XIOS/dev/dev_trunk_graph/src/workflow_graph.hpp	(revision 2027)
+++ XIOS/dev/dev_trunk_graph/src/workflow_graph.hpp	(revision 2028)
@@ -55,6 +55,7 @@
     int context;
     bool show;
+    StdString label_info;
     
-    graph_edge_object():show(true){}
+    graph_edge_object():show(true), label_info("none"){}
   };
 
@@ -100,24 +101,4 @@
       static int  getNodeSize();
 
-
-
-      
-
-
-    private:
-
-      //! List of fields marked for visualizing of their workflow
-      static vector <StdString> fields;
-
-      //! List of connected filters for fields for visualizing of their workflow
-      static vector <StdString> filters;
-
-      //! Fields to filters connectivity
-      static vector <pair<int, int> > fieldsToFilters;
-
-      static void buildStaticWorkflow();
-
-
-
   };
 
