View Javadoc
1   /*
2    * To change this license header, choose License Headers in Project Properties.
3    * To change this template file, choose Tools | Templates
4    * and open the template in the editor.
5    */
6   package fr.paris.lutece.plugins.adminwall.web;
7   
8   import fr.paris.lutece.plugins.adminwall.business.Post;
9   import fr.paris.lutece.plugins.adminwall.business.PostHome;
10  import fr.paris.lutece.plugins.adminwall.service.AdminWallService;
11  import fr.paris.lutece.portal.business.right.Right;
12  import fr.paris.lutece.portal.business.right.RightHome;
13  import fr.paris.lutece.portal.business.user.AdminUser;
14  import fr.paris.lutece.portal.service.admin.AdminUserService;
15  import fr.paris.lutece.portal.service.dashboard.DashboardComponent;
16  import fr.paris.lutece.portal.service.plugin.Plugin;
17  import fr.paris.lutece.portal.service.plugin.PluginService;
18  import fr.paris.lutece.portal.service.template.AppTemplateService;
19  import fr.paris.lutece.util.html.HtmlTemplate;
20  import fr.paris.lutece.util.url.UrlItem;
21  
22  import java.util.HashMap;
23  import java.util.List;
24  import java.util.Map;
25  
26  import javax.servlet.http.HttpServletRequest;
27  
28  
29  /**
30   *
31   * @author Brasya
32   */
33  public class AdminWallDashboardComponent extends DashboardComponent
34  {
35      // PARAMETERS
36      private static final String PARAMETER_PLUGIN_NAME = "plugin_name";
37  
38      // MARKS
39      private static final String MARK_URL = "url";
40      private static final String MARK_ICON = "icon";
41      private static final String MARK_POST_LIST = "post_list";
42      private static final String MARK_USERID = "userId";
43  
44      // TEMPLATES
45      private static final String TEMPLATE_DASHBOARD = "/admin/plugins/adminwall/dashboard/adminwall_dashboard.html";
46  
47      @Override
48      public String getDashboardData( AdminUser user, HttpServletRequest request )
49      {
50          Right right = RightHome.findByPrimaryKey( getRight(  ) );
51          Plugin plugin = PluginService.getPlugin( right.getPluginName(  ) );
52  
53          UrlItem url = new UrlItem( right.getUrl(  ) );
54          url.addParameter( PARAMETER_PLUGIN_NAME, right.getPluginName(  ) );
55  
56          List<Post> listPosts = (List<Post>) PostHome.getPostsList(  );
57  
58          for ( Post pos : listPosts )
59          {
60              //Insertion des URL
61              AdminWallService.activateURL( pos );
62              //Insertion des liens de filtrages sur les hashtags
63              AdminWallService.activateHashtag( pos );
64          }
65  
66          //Infos User
67          AdminUser currentUser = AdminUserService.getAdminUser( request );
68          int userId = currentUser.getUserId(  );
69  
70          Map<String, Object> model = new HashMap<String, Object>(  );
71          model.put( MARK_USERID, userId );
72          model.put( MARK_URL, url.getUrl(  ) );
73          model.put( MARK_ICON, plugin.getIconUrl(  ) );
74          model.put( MARK_POST_LIST, listPosts );
75  
76          HtmlTemplate t = AppTemplateService.getTemplate( TEMPLATE_DASHBOARD, user.getLocale(  ), model );
77  
78          return t.getHtml(  );
79      }
80  }