Wittyshare  0.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
WsModZip.h
Go to the documentation of this file.
1 /*
2  *
3  * Filename: WsModZip.h
4  *
5  * Description: Zip Wittyshare plugin
6  *
7  * Created: 03/07/12 11:07:15
8  *
9  * Author: Benoit Daccache, ben.daccache@gmail.com
10  *
11  */
12 #ifndef WS_MOD_ZIP_H__
13 #define WS_MOD_ZIP_H__
14 
15 #include <Wt/WContainerWidget>
16 
17 #include <WsModule/WsModule.h>
18 
20 #include <User/WsUser.h>
21 #include <Main/WsApplication.h>
22 #include <dlfcn.h>
23 #include <stdlib.h>
24 #include <archive.h>
25 #include <archive_entry.h>
26 #include <stdio.h>
27 #include <fcntl.h>
28 #include <unistd.h>
29 
30 #include <iostream>
31 
32 #include <Wt/WApplication>
33 #include <Wt/WLogger>
34 #include <Wt/WText>
35 #include <Wt/WPushButton>
36 #include <Wt/WRadioButton>
37 #include <Wt/WButtonGroup>
38 #include <Wt/WDialog>
39 #include <Wt/WGroupBox>
40 #include <Wt/WLabel>
41 #include <Wt/WImage>
42 #include <Wt/WMessageBox>
43 #include <Wt/WCheckBox>
44 
45 #include <vector>
46 using namespace std;
47 
48 using namespace Wt;
49 
50 #define ZIP 1
51 #define TAR 2
52 
53 #define WSMODZIP "wsmodzip"
54 #define ALLOW_ZIP "allow_zip"
55 #define ALLOW_ZIP_ALL "allow_zip_all"
56 
58 public :
59 
65  WsZipEditorWidget(Wt::WContainerWidget* parent = 0);
66 
71 
75  virtual void load();
76 
77  virtual bool saveEditor() const;
78 
79 private :
80  Wt::WCheckBox* m_cb;
81  bool m_bState;
82 };
83 
84 
85 class WsModZip : public WsModule {
86 
87 public :
88  WsModZip();
89  ~WsModZip();
90  Wt::WWidget* createContentsMenuBar(Wt::WContainerWidget* parent = 0) const;
91  virtual void destroyContentsMenuBar();
92  Wt::WWidget* createContents(Wt::WContainerWidget* parent = 0) const;
93  WsEditorWidget* createEditor(Wt::WContainerWidget* parent = 0) const;
94  Wt::WWidget* createAdmin(Wt::WContainerWidget* parent = 0) const;
95  std::string description() const;
96 
97 private :
98  Wt::WWidget* buildEditor(Wt::WContainerWidget* parent);
99  Wt::WWidget* buildMenuBar();
100 
106  void appendToZip(const string& path);
107 
113  void appendSubDir(const string& path);
114  int writeAndCloseZip(int format);
115 
116  int handleAll(int t);
117  int handleFiles(int t);
118 
119  vector<string> m_paths;
120 
121  Wt::WDialog* m_dialog;
122  Wt::WRadioButton* m_all;
123  Wt::WRadioButton* m_fonly;
124  Wt::WRadioButton* m_tar;
125  Wt::WRadioButton* m_zip;
126  Wt::WGroupBox* m_container;
127  Wt::WGroupBox* m_container2;
128  Wt::WButtonGroup* m_archiveType;
129  Wt::WButtonGroup* m_fileType;
130  Wt::WPushButton* m_ok;
131  Wt::WPushButton* m_cancel;
132  Wt::WLabel* m_loading;
133  Wt::WLabel* m_label;
134 
135  string m_errmsg;
136 
137 public slots:
138  void handleZipClick();
139  void handleAccept();
140  void handleReject();
141 
142 
143 };
144 
145 extern "C" {
146  void WsModZipInit(void) __attribute__((constructor));
147 
149  {
150  return new WsModZip();
151  }
152 }
153 
154 #endif
155 
Wt::WRadioButton * m_tar
Definition: WsModZip.h:124
Wt::WButtonGroup * m_archiveType
Definition: WsModZip.h:128
Wt::WRadioButton * m_all
Definition: WsModZip.h:122
Wt::WCheckBox * m_cb
Definition: WsModZip.h:80
Wt::WPushButton * m_cancel
Definition: WsModZip.h:131
void WsModZipInit(void) __attribute__((constructor))
Definition: WsModZip.cpp:23
Wt::WPushButton * m_ok
Definition: WsModZip.h:130
Wt::WRadioButton * m_zip
Definition: WsModZip.h:125
Wt::WDialog * m_dialog
Definition: WsModZip.h:121
Wt::WGroupBox * m_container
Definition: WsModZip.h:126
vector< string > m_paths
Definition: WsModZip.h:119
Wt::WRadioButton * m_fonly
Definition: WsModZip.h:123
WsModZip * buildModule()
Definition: WsModZip.h:148
Wt::WButtonGroup * m_fileType
Definition: WsModZip.h:129
Wt::WLabel * m_label
Definition: WsModZip.h:133
Wt::WGroupBox * m_container2
Definition: WsModZip.h:127
Wt::WLabel * m_loading
Definition: WsModZip.h:132
string m_errmsg
Definition: WsModZip.h:135
Abstract Node class.
User class.