anchor.diff:    add_row(Nodes, Channel, User, Text, Node, LastRow, RowsBack, now()).
   
   add_row(Nodes, Channel, User, Text, Node, LastRow, RowsBack, Now) ->
  -  error_logger:info_msg("Adding row to ~p from ~p: ~p (node: ~p, nodes: ~p, from: ~p, back: ~p)~n", [ Channel, User, Text, Node, Nodes, LastRow, RowsBack ]),
     Transaction=fun() ->
       lists:foreach(fun(I) ->
         case mnesia:read({ rows, { last, Channel, I } }) of
  
positive.code:   { Node, _ } = get_node_info(),
    RowData = fetch_rows(Node, Channel, User, list_to_integer(LastRow), list_to_integer(RowsBack)),
    row_renderer(RowData, Req),
    log_rt("Fetch rows", Ctime)
    ;
  handle('POST', ["searchrows"], Req) ->
    Ctime = now(),
  
negative.code:   { Node, _ } = get_node_info(),
    RowData = search_rows(Node, Channel, list_to_integer(RowsBack), Pattern),
    row_renderer(RowData, Req),
    log_rt("Search (channel:" ++ Channel ++ " back:" ++ RowsBack ++ " pattern:" ++ Pattern ++ ")", Ctime)
    ;
  handle('GET', [Static], Req) ->
    Req:file("web/"++Static).
  