diff options
Diffstat (limited to 'src/Wallabag')
36 files changed, 2314 insertions, 1 deletions
diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php new file mode 100644 index 00000000..2ebb416c --- /dev/null +++ b/src/Wallabag/CoreBundle/Controller/EntryController.php | |||
@@ -0,0 +1,184 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\CoreBundle\Controller; | ||
4 | |||
5 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; | ||
6 | use Symfony\Bundle\FrameworkBundle\Controller\Controller; | ||
7 | use Symfony\Component\HttpFoundation\Request; | ||
8 | use Wallabag\CoreBundle\Repository; | ||
9 | use Wallabag\CoreBundle\Entity\Entries; | ||
10 | use Wallabag\Wallabag\Tools; | ||
11 | use Wallabag\Wallabag\Url; | ||
12 | |||
13 | class EntryController extends Controller | ||
14 | { | ||
15 | |||
16 | /** | ||
17 | * @param Request $request | ||
18 | * @Route("/new", name="new_entry") | ||
19 | * @return \Symfony\Component\HttpFoundation\Response | ||
20 | */ | ||
21 | public function addEntryAction(Request $request) | ||
22 | { | ||
23 | $entry = new Entries(); | ||
24 | $entry->setUserId(1); | ||
25 | |||
26 | $form = $this->createFormBuilder($entry) | ||
27 | ->add('url', 'url') | ||
28 | ->add('save', 'submit') | ||
29 | ->getForm(); | ||
30 | |||
31 | $form->handleRequest($request); | ||
32 | |||
33 | if ($form->isValid()) { | ||
34 | |||
35 | $content = Tools::getPageContent(new Url($entry->getUrl())); | ||
36 | var_dump($content);die; | ||
37 | |||
38 | $em = $this->getDoctrine()->getEntityManager(); | ||
39 | $em->persist($entry); | ||
40 | $em->flush(); | ||
41 | |||
42 | $this->get('session')->getFlashBag()->add( | ||
43 | 'notice', | ||
44 | 'Entry saved' | ||
45 | ); | ||
46 | |||
47 | return $this->redirect($this->generateUrl('homepage')); | ||
48 | } | ||
49 | |||
50 | return $this->render('WallabagCoreBundle:Entry:new.html.twig', array( | ||
51 | 'form' => $form->createView(), | ||
52 | )); | ||
53 | } | ||
54 | |||
55 | /** | ||
56 | * Shows unread entries for current user | ||
57 | * | ||
58 | * @Route("/unread", name="unread") | ||
59 | * @return \Symfony\Component\HttpFoundation\Response | ||
60 | */ | ||
61 | public function showUnreadAction() | ||
62 | { | ||
63 | $repository = $this->getDoctrine()->getRepository('WallabagCoreBundle:Entries'); | ||
64 | $entries = $repository->findUnreadByUser(1, 0); | ||
65 | |||
66 | return $this->render( | ||
67 | 'WallabagCoreBundle:Entry:entries.html.twig', | ||
68 | array('entries' => $entries) | ||
69 | ); | ||
70 | } | ||
71 | |||
72 | /** | ||
73 | * Shows read entries for current user | ||
74 | * | ||
75 | * @Route("/archive", name="archive") | ||
76 | * @return \Symfony\Component\HttpFoundation\Response | ||
77 | */ | ||
78 | public function showArchiveAction() | ||
79 | { | ||
80 | $repository = $this->getDoctrine()->getRepository('WallabagCoreBundle:Entries'); | ||
81 | $entries = $repository->findArchiveByUser(1, 0); | ||
82 | |||
83 | return $this->render( | ||
84 | 'WallabagCoreBundle:Entry:entries.html.twig', | ||
85 | array('entries' => $entries) | ||
86 | ); | ||
87 | } | ||
88 | |||
89 | /** | ||
90 | * Shows starred entries for current user | ||
91 | * | ||
92 | * @Route("/starred", name="starred") | ||
93 | * @return \Symfony\Component\HttpFoundation\Response | ||
94 | */ | ||
95 | public function showStarredAction() | ||
96 | { | ||
97 | $repository = $this->getDoctrine()->getRepository('WallabagCoreBundle:Entries'); | ||
98 | $entries = $repository->findStarredByUser(1, 0); | ||
99 | |||
100 | return $this->render( | ||
101 | 'WallabagCoreBundle:Entry:entries.html.twig', | ||
102 | array('entries' => $entries) | ||
103 | ); | ||
104 | } | ||
105 | |||
106 | /** | ||
107 | * Shows entry content | ||
108 | * | ||
109 | * @param Entries $entry | ||
110 | * @Route("/view/{id}", requirements={"id" = "\d+"}, name="view") | ||
111 | * @return \Symfony\Component\HttpFoundation\Response | ||
112 | */ | ||
113 | public function viewAction(Entries $entry) | ||
114 | { | ||
115 | return $this->render( | ||
116 | 'WallabagCoreBundle:Entry:entry.html.twig', | ||
117 | array('entry' => $entry) | ||
118 | ); | ||
119 | } | ||
120 | |||
121 | /** | ||
122 | * Changes read status for an entry | ||
123 | * | ||
124 | * @param Request $request | ||
125 | * @param Entries $entry | ||
126 | * @Route("/archive/{id}", requirements={"id" = "\d+"}, name="archive_entry") | ||
127 | * @return \Symfony\Component\HttpFoundation\RedirectResponse | ||
128 | */ | ||
129 | public function toggleArchiveAction(Request $request, Entries $entry) | ||
130 | { | ||
131 | $entry->toggleArchive(); | ||
132 | $this->getDoctrine()->getManager()->flush(); | ||
133 | |||
134 | $this->get('session')->getFlashBag()->add( | ||
135 | 'notice', | ||
136 | 'Entry archived' | ||
137 | ); | ||
138 | |||
139 | return $this->redirect($request->headers->get('referer')); | ||
140 | } | ||
141 | |||
142 | /** | ||
143 | * Changes favorite status for an entry | ||
144 | * | ||
145 | * @param Request $request | ||
146 | * @param Entries $entry | ||
147 | * @Route("/star/{id}", requirements={"id" = "\d+"}, name="star_entry") | ||
148 | * @return \Symfony\Component\HttpFoundation\RedirectResponse | ||
149 | */ | ||
150 | public function toggleStarAction(Request $request, Entries $entry) | ||
151 | { | ||
152 | $entry->toggleStar(); | ||
153 | $this->getDoctrine()->getManager()->flush(); | ||
154 | |||
155 | $this->get('session')->getFlashBag()->add( | ||
156 | 'notice', | ||
157 | 'Entry starred' | ||
158 | ); | ||
159 | |||
160 | return $this->redirect($request->headers->get('referer')); | ||
161 | } | ||
162 | |||
163 | /** | ||
164 | * Deletes entry | ||
165 | * | ||
166 | * @param Request $request | ||
167 | * @param Entries $entry | ||
168 | * @Route("/delete/{id}", requirements={"id" = "\d+"}, name="delete_entry") | ||
169 | * @return \Symfony\Component\HttpFoundation\RedirectResponse | ||
170 | */ | ||
171 | public function deleteEntryAction(Request $request, Entries $entry) | ||
172 | { | ||
173 | $em = $this->getDoctrine()->getEntityManager(); | ||
174 | $em->remove($entry); | ||
175 | $em->flush(); | ||
176 | |||
177 | $this->get('session')->getFlashBag()->add( | ||
178 | 'notice', | ||
179 | 'Entry deleted' | ||
180 | ); | ||
181 | |||
182 | return $this->redirect($request->headers->get('referer')); | ||
183 | } | ||
184 | } | ||
diff --git a/src/Wallabag/CoreBundle/Controller/StaticController.php b/src/Wallabag/CoreBundle/Controller/StaticController.php new file mode 100644 index 00000000..0fd19d65 --- /dev/null +++ b/src/Wallabag/CoreBundle/Controller/StaticController.php | |||
@@ -0,0 +1,20 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\CoreBundle\Controller; | ||
4 | |||
5 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; | ||
6 | use Symfony\Bundle\FrameworkBundle\Controller\Controller; | ||
7 | |||
8 | class StaticController extends Controller | ||
9 | { | ||
10 | /** | ||
11 | * @Route("/about", name="about") | ||
12 | */ | ||
13 | public function aboutAction() | ||
14 | { | ||
15 | return $this->render( | ||
16 | 'WallabagCoreBundle:Static:about.html.twig', | ||
17 | array() | ||
18 | ); | ||
19 | } | ||
20 | } | ||
diff --git a/src/Wallabag/CoreBundle/DependencyInjection/WallabagCoreExtension.php b/src/Wallabag/CoreBundle/DependencyInjection/WallabagCoreExtension.php new file mode 100644 index 00000000..7cc4165e --- /dev/null +++ b/src/Wallabag/CoreBundle/DependencyInjection/WallabagCoreExtension.php | |||
@@ -0,0 +1,22 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\CoreBundle\DependencyInjection; | ||
4 | |||
5 | use Symfony\Component\DependencyInjection\ContainerBuilder; | ||
6 | use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; | ||
7 | use Symfony\Component\HttpKernel\DependencyInjection\Extension; | ||
8 | use Symfony\Component\Config\FileLocator; | ||
9 | |||
10 | class WallabagCoreExtension extends Extension | ||
11 | { | ||
12 | public function load(array $configs, ContainerBuilder $container) | ||
13 | { | ||
14 | $loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); | ||
15 | $loader->load('services.xml'); | ||
16 | } | ||
17 | |||
18 | public function getAlias() | ||
19 | { | ||
20 | return 'wallabag_core'; | ||
21 | } | ||
22 | } | ||
diff --git a/src/Wallabag/CoreBundle/Entity/Config.php b/src/Wallabag/CoreBundle/Entity/Config.php new file mode 100644 index 00000000..d60b2df0 --- /dev/null +++ b/src/Wallabag/CoreBundle/Entity/Config.php | |||
@@ -0,0 +1,95 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\CoreBundle\Entity; | ||
4 | |||
5 | use Doctrine\ORM\Mapping as ORM; | ||
6 | |||
7 | /** | ||
8 | * Config | ||
9 | * | ||
10 | * @ORM\Table(name="config") | ||
11 | * @ORM\Entity | ||
12 | */ | ||
13 | class Config | ||
14 | { | ||
15 | /** | ||
16 | * @var integer | ||
17 | * | ||
18 | * @ORM\Column(name="id", type="integer", nullable=false) | ||
19 | * @ORM\Id | ||
20 | * @ORM\GeneratedValue(strategy="IDENTITY") | ||
21 | */ | ||
22 | private $id; | ||
23 | |||
24 | /** | ||
25 | * @var string | ||
26 | * | ||
27 | * @ORM\Column(name="name", type="string", nullable=true) | ||
28 | */ | ||
29 | private $name; | ||
30 | |||
31 | /** | ||
32 | * @var string | ||
33 | * | ||
34 | * @ORM\Column(name="value", type="blob", nullable=true) | ||
35 | */ | ||
36 | private $value; | ||
37 | |||
38 | |||
39 | |||
40 | /** | ||
41 | * Get id | ||
42 | * | ||
43 | * @return integer | ||
44 | */ | ||
45 | public function getId() | ||
46 | { | ||
47 | return $this->id; | ||
48 | } | ||
49 | |||
50 | /** | ||
51 | * Set name | ||
52 | * | ||
53 | * @param string $name | ||
54 | * @return Config | ||
55 | */ | ||
56 | public function setName($name) | ||
57 | { | ||
58 | $this->name = $name; | ||
59 | |||
60 | return $this; | ||
61 | } | ||
62 | |||
63 | /** | ||
64 | * Get name | ||
65 | * | ||
66 | * @return string | ||
67 | */ | ||
68 | public function getName() | ||
69 | { | ||
70 | return $this->name; | ||
71 | } | ||
72 | |||
73 | /** | ||
74 | * Set value | ||
75 | * | ||
76 | * @param string $value | ||
77 | * @return Config | ||
78 | */ | ||
79 | public function setValue($value) | ||
80 | { | ||
81 | $this->value = $value; | ||
82 | |||
83 | return $this; | ||
84 | } | ||
85 | |||
86 | /** | ||
87 | * Get value | ||
88 | * | ||
89 | * @return string | ||
90 | */ | ||
91 | public function getValue() | ||
92 | { | ||
93 | return $this->value; | ||
94 | } | ||
95 | } | ||
diff --git a/src/Wallabag/CoreBundle/Entity/Config.php~ b/src/Wallabag/CoreBundle/Entity/Config.php~ new file mode 100644 index 00000000..8b692cef --- /dev/null +++ b/src/Wallabag/CoreBundle/Entity/Config.php~ | |||
@@ -0,0 +1,95 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace WallabagBundle\Entity; | ||
4 | |||
5 | use Doctrine\ORM\Mapping as ORM; | ||
6 | |||
7 | /** | ||
8 | * Config | ||
9 | * | ||
10 | * @ORM\Table(name="config") | ||
11 | * @ORM\Entity | ||
12 | */ | ||
13 | class Config | ||
14 | { | ||
15 | /** | ||
16 | * @var integer | ||
17 | * | ||
18 | * @ORM\Column(name="id", type="integer", nullable=false) | ||
19 | * @ORM\Id | ||
20 | * @ORM\GeneratedValue(strategy="IDENTITY") | ||
21 | */ | ||
22 | private $id; | ||
23 | |||
24 | /** | ||
25 | * @var string | ||
26 | * | ||
27 | * @ORM\Column(name="name", type="string", nullable=true) | ||
28 | */ | ||
29 | private $name; | ||
30 | |||
31 | /** | ||
32 | * @var string | ||
33 | * | ||
34 | * @ORM\Column(name="value", type="blob", nullable=true) | ||
35 | */ | ||
36 | private $value; | ||
37 | |||
38 | |||
39 | |||
40 | /** | ||
41 | * Get id | ||
42 | * | ||
43 | * @return integer | ||
44 | */ | ||
45 | public function getId() | ||
46 | { | ||
47 | return $this->id; | ||
48 | } | ||
49 | |||
50 | /** | ||
51 | * Set name | ||
52 | * | ||
53 | * @param string $name | ||
54 | * @return Config | ||
55 | */ | ||
56 | public function setName($name) | ||
57 | { | ||
58 | $this->name = $name; | ||
59 | |||
60 | return $this; | ||
61 | } | ||
62 | |||
63 | /** | ||
64 | * Get name | ||
65 | * | ||
66 | * @return string | ||
67 | */ | ||
68 | public function getName() | ||
69 | { | ||
70 | return $this->name; | ||
71 | } | ||
72 | |||
73 | /** | ||
74 | * Set value | ||
75 | * | ||
76 | * @param string $value | ||
77 | * @return Config | ||
78 | */ | ||
79 | public function setValue($value) | ||
80 | { | ||
81 | $this->value = $value; | ||
82 | |||
83 | return $this; | ||
84 | } | ||
85 | |||
86 | /** | ||
87 | * Get value | ||
88 | * | ||
89 | * @return string | ||
90 | */ | ||
91 | public function getValue() | ||
92 | { | ||
93 | return $this->value; | ||
94 | } | ||
95 | } | ||
diff --git a/src/Wallabag/CoreBundle/Entity/Entries.php b/src/Wallabag/CoreBundle/Entity/Entries.php new file mode 100644 index 00000000..712ff126 --- /dev/null +++ b/src/Wallabag/CoreBundle/Entity/Entries.php | |||
@@ -0,0 +1,230 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\CoreBundle\Entity; | ||
4 | |||
5 | use Doctrine\ORM\Mapping as ORM; | ||
6 | use Symfony\Component\Validator\Constraints as Assert; | ||
7 | |||
8 | /** | ||
9 | * Entries | ||
10 | * | ||
11 | * @ORM\Entity(repositoryClass="Wallabag\CoreBundle\Repository\EntriesRepository") | ||
12 | * @ORM\Table(name="entries") | ||
13 | */ | ||
14 | class Entries | ||
15 | { | ||
16 | /** | ||
17 | * @var integer | ||
18 | * | ||
19 | * @ORM\Column(name="id", type="integer", nullable=true) | ||
20 | * @ORM\Id | ||
21 | * @ORM\GeneratedValue(strategy="IDENTITY") | ||
22 | */ | ||
23 | private $id; | ||
24 | |||
25 | /** | ||
26 | * @var string | ||
27 | * | ||
28 | * @ORM\Column(name="title", type="text", nullable=true) | ||
29 | */ | ||
30 | private $title; | ||
31 | |||
32 | /** | ||
33 | * @var string | ||
34 | * | ||
35 | * @Assert\NotBlank() | ||
36 | * @ORM\Column(name="url", type="text", nullable=true) | ||
37 | */ | ||
38 | private $url; | ||
39 | |||
40 | /** | ||
41 | * @var string | ||
42 | * | ||
43 | * @ORM\Column(name="is_read", type="decimal", precision=10, scale=0, nullable=true) | ||
44 | */ | ||
45 | private $isRead = '0'; | ||
46 | |||
47 | /** | ||
48 | * @var string | ||
49 | * | ||
50 | * @ORM\Column(name="is_fav", type="decimal", precision=10, scale=0, nullable=true) | ||
51 | */ | ||
52 | private $isFav = '0'; | ||
53 | |||
54 | /** | ||
55 | * @var string | ||
56 | * | ||
57 | * @ORM\Column(name="content", type="text", nullable=true) | ||
58 | */ | ||
59 | private $content; | ||
60 | |||
61 | /** | ||
62 | * @var string | ||
63 | * | ||
64 | * @ORM\Column(name="user_id", type="decimal", precision=10, scale=0, nullable=true) | ||
65 | */ | ||
66 | private $userId; | ||
67 | |||
68 | |||
69 | |||
70 | /** | ||
71 | * Get id | ||
72 | * | ||
73 | * @return integer | ||
74 | */ | ||
75 | public function getId() | ||
76 | { | ||
77 | return $this->id; | ||
78 | } | ||
79 | |||
80 | /** | ||
81 | * Set title | ||
82 | * | ||
83 | * @param string $title | ||
84 | * @return Entries | ||
85 | */ | ||
86 | public function setTitle($title) | ||
87 | { | ||
88 | $this->title = $title; | ||
89 | |||
90 | return $this; | ||
91 | } | ||
92 | |||
93 | /** | ||
94 | * Get title | ||
95 | * | ||
96 | * @return string | ||
97 | */ | ||
98 | public function getTitle() | ||
99 | { | ||
100 | return $this->title; | ||
101 | } | ||
102 | |||
103 | /** | ||
104 | * Set url | ||
105 | * | ||
106 | * @param string $url | ||
107 | * @return Entries | ||
108 | */ | ||
109 | public function setUrl($url) | ||
110 | { | ||
111 | $this->url = $url; | ||
112 | |||
113 | return $this; | ||
114 | } | ||
115 | |||
116 | /** | ||
117 | * Get url | ||
118 | * | ||
119 | * @return string | ||
120 | */ | ||
121 | public function getUrl() | ||
122 | { | ||
123 | return $this->url; | ||
124 | } | ||
125 | |||
126 | /** | ||
127 | * Set isRead | ||
128 | * | ||
129 | * @param string $isRead | ||
130 | * @return Entries | ||
131 | */ | ||
132 | public function setIsRead($isRead) | ||
133 | { | ||
134 | $this->isRead = $isRead; | ||
135 | |||
136 | return $this; | ||
137 | } | ||
138 | |||
139 | /** | ||
140 | * Get isRead | ||
141 | * | ||
142 | * @return string | ||
143 | */ | ||
144 | public function getIsRead() | ||
145 | { | ||
146 | return $this->isRead; | ||
147 | } | ||
148 | |||
149 | public function toggleArchive() | ||
150 | { | ||
151 | $this->isRead = $this->getIsRead() ^ 1; | ||
152 | return $this; | ||
153 | } | ||
154 | |||
155 | /** | ||
156 | * Set isFav | ||
157 | * | ||
158 | * @param string $isFav | ||
159 | * @return Entries | ||
160 | */ | ||
161 | public function setIsFav($isFav) | ||
162 | { | ||
163 | $this->isFav = $isFav; | ||
164 | |||
165 | return $this; | ||
166 | } | ||
167 | |||
168 | /** | ||
169 | * Get isFav | ||
170 | * | ||
171 | * @return string | ||
172 | */ | ||
173 | public function getIsFav() | ||
174 | { | ||
175 | return $this->isFav; | ||
176 | } | ||
177 | |||
178 | public function toggleStar() | ||
179 | { | ||
180 | $this->isFav = $this->getIsFav() ^ 1; | ||
181 | |||
182 | return $this; | ||
183 | } | ||
184 | |||
185 | /** | ||
186 | * Set content | ||
187 | * | ||
188 | * @param string $content | ||
189 | * @return Entries | ||
190 | */ | ||
191 | public function setContent($content) | ||
192 | { | ||
193 | $this->content = $content; | ||
194 | |||
195 | return $this; | ||
196 | } | ||
197 | |||
198 | /** | ||
199 | * Get content | ||
200 | * | ||
201 | * @return string | ||
202 | */ | ||
203 | public function getContent() | ||
204 | { | ||
205 | return $this->content; | ||
206 | } | ||
207 | |||
208 | /** | ||
209 | * Set userId | ||
210 | * | ||
211 | * @param string $userId | ||
212 | * @return Entries | ||
213 | */ | ||
214 | public function setUserId($userId) | ||
215 | { | ||
216 | $this->userId = $userId; | ||
217 | |||
218 | return $this; | ||
219 | } | ||
220 | |||
221 | /** | ||
222 | * Get userId | ||
223 | * | ||
224 | * @return string | ||
225 | */ | ||
226 | public function getUserId() | ||
227 | { | ||
228 | return $this->userId; | ||
229 | } | ||
230 | } | ||
diff --git a/src/Wallabag/CoreBundle/Entity/Entries.php~ b/src/Wallabag/CoreBundle/Entity/Entries.php~ new file mode 100644 index 00000000..69c6be0d --- /dev/null +++ b/src/Wallabag/CoreBundle/Entity/Entries.php~ | |||
@@ -0,0 +1,215 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace WallabagBundle\Entity; | ||
4 | |||
5 | use Doctrine\ORM\Mapping as ORM; | ||
6 | |||
7 | /** | ||
8 | * Entries | ||
9 | * | ||
10 | * @ORM\Entity(repositoryClass="WallabagBundle\Repository\EntriesRepository") | ||
11 | * @ORM\Table(name="entries") | ||
12 | */ | ||
13 | class Entries | ||
14 | { | ||
15 | /** | ||
16 | * @var integer | ||
17 | * | ||
18 | * @ORM\Column(name="id", type="integer", nullable=true) | ||
19 | * @ORM\Id | ||
20 | * @ORM\GeneratedValue(strategy="IDENTITY") | ||
21 | */ | ||
22 | private $id; | ||
23 | |||
24 | /** | ||
25 | * @var string | ||
26 | * | ||
27 | * @ORM\Column(name="title", type="text", nullable=true) | ||
28 | */ | ||
29 | private $title; | ||
30 | |||
31 | /** | ||
32 | * @var string | ||
33 | * | ||
34 | * @ORM\Column(name="url", type="text", nullable=true) | ||
35 | */ | ||
36 | private $url; | ||
37 | |||
38 | /** | ||
39 | * @var string | ||
40 | * | ||
41 | * @ORM\Column(name="is_read", type="decimal", precision=10, scale=0, nullable=true) | ||
42 | */ | ||
43 | private $isRead = '0'; | ||
44 | |||
45 | /** | ||
46 | * @var string | ||
47 | * | ||
48 | * @ORM\Column(name="is_fav", type="decimal", precision=10, scale=0, nullable=true) | ||
49 | */ | ||
50 | private $isFav = '0'; | ||
51 | |||
52 | /** | ||
53 | * @var string | ||
54 | * | ||
55 | * @ORM\Column(name="content", type="text", nullable=true) | ||
56 | */ | ||
57 | private $content; | ||
58 | |||
59 | /** | ||
60 | * @var string | ||
61 | * | ||
62 | * @ORM\Column(name="user_id", type="decimal", precision=10, scale=0, nullable=true) | ||
63 | */ | ||
64 | private $userId; | ||
65 | |||
66 | |||
67 | |||
68 | /** | ||
69 | * Get id | ||
70 | * | ||
71 | * @return integer | ||
72 | */ | ||
73 | public function getId() | ||
74 | { | ||
75 | return $this->id; | ||
76 | } | ||
77 | |||
78 | /** | ||
79 | * Set title | ||
80 | * | ||
81 | * @param string $title | ||
82 | * @return Entries | ||
83 | */ | ||
84 | public function setTitle($title) | ||
85 | { | ||
86 | $this->title = $title; | ||
87 | |||
88 | return $this; | ||
89 | } | ||
90 | |||
91 | /** | ||
92 | * Get title | ||
93 | * | ||
94 | * @return string | ||
95 | */ | ||
96 | public function getTitle() | ||
97 | { | ||
98 | return $this->title; | ||
99 | } | ||
100 | |||
101 | /** | ||
102 | * Set url | ||
103 | * | ||
104 | * @param string $url | ||
105 | * @return Entries | ||
106 | */ | ||
107 | public function setUrl($url) | ||
108 | { | ||
109 | $this->url = $url; | ||
110 | |||
111 | return $this; | ||
112 | } | ||
113 | |||
114 | /** | ||
115 | * Get url | ||
116 | * | ||
117 | * @return string | ||
118 | */ | ||
119 | public function getUrl() | ||
120 | { | ||
121 | return $this->url; | ||
122 | } | ||
123 | |||
124 | /** | ||
125 | * Set isRead | ||
126 | * | ||
127 | * @param string $isRead | ||
128 | * @return Entries | ||
129 | */ | ||
130 | public function setIsRead($isRead) | ||
131 | { | ||
132 | $this->isRead = $isRead; | ||
133 | |||
134 | return $this; | ||
135 | } | ||
136 | |||
137 | /** | ||
138 | * Get isRead | ||
139 | * | ||
140 | * @return string | ||
141 | */ | ||
142 | public function getIsRead() | ||
143 | { | ||
144 | return $this->isRead; | ||
145 | } | ||
146 | |||
147 | /** | ||
148 | * Set isFav | ||
149 | * | ||
150 | * @param string $isFav | ||
151 | * @return Entries | ||
152 | */ | ||
153 | public function setIsFav($isFav) | ||
154 | { | ||
155 | $this->isFav = $isFav; | ||
156 | |||
157 | return $this; | ||
158 | } | ||
159 | |||
160 | /** | ||
161 | * Get isFav | ||
162 | * | ||
163 | * @return string | ||
164 | */ | ||
165 | public function getIsFav() | ||
166 | { | ||
167 | return $this->isFav; | ||
168 | } | ||
169 | |||
170 | /** | ||
171 | * Set content | ||
172 | * | ||
173 | * @param string $content | ||
174 | * @return Entries | ||
175 | */ | ||
176 | public function setContent($content) | ||
177 | { | ||
178 | $this->content = $content; | ||
179 | |||
180 | return $this; | ||
181 | } | ||
182 | |||
183 | /** | ||
184 | * Get content | ||
185 | * | ||
186 | * @return string | ||
187 | */ | ||
188 | public function getContent() | ||
189 | { | ||
190 | return $this->content; | ||
191 | } | ||
192 | |||
193 | /** | ||
194 | * Set userId | ||
195 | * | ||
196 | * @param string $userId | ||
197 | * @return Entries | ||
198 | */ | ||
199 | public function setUserId($userId) | ||
200 | { | ||
201 | $this->userId = $userId; | ||
202 | |||
203 | return $this; | ||
204 | } | ||
205 | |||
206 | /** | ||
207 | * Get userId | ||
208 | * | ||
209 | * @return string | ||
210 | */ | ||
211 | public function getUserId() | ||
212 | { | ||
213 | return $this->userId; | ||
214 | } | ||
215 | } | ||
diff --git a/src/Wallabag/CoreBundle/Entity/Entry.php~ b/src/Wallabag/CoreBundle/Entity/Entry.php~ new file mode 100644 index 00000000..ebcdf53a --- /dev/null +++ b/src/Wallabag/CoreBundle/Entity/Entry.php~ | |||
@@ -0,0 +1,74 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace WallabagBundle\Entity; | ||
4 | |||
5 | use Doctrine\ORM\Mapping as ORM; | ||
6 | |||
7 | /** | ||
8 | * Entry | ||
9 | * | ||
10 | * @ORM\Table(name="Entry") | ||
11 | * @ORM\Entity | ||
12 | */ | ||
13 | class Entry | ||
14 | { | ||
15 | /** | ||
16 | * @var integer | ||
17 | * | ||
18 | * @ORM\Column(name="id", type="integer", nullable=false) | ||
19 | * @ORM\Id | ||
20 | * @ORM\GeneratedValue(strategy="IDENTITY") | ||
21 | */ | ||
22 | private $id; | ||
23 | |||
24 | /** | ||
25 | * @var string | ||
26 | * | ||
27 | * @ORM\Column(name="title", type="string", length=255, nullable=false) | ||
28 | */ | ||
29 | private $title; | ||
30 | |||
31 | /** | ||
32 | * @var string | ||
33 | * | ||
34 | * @ORM\Column(name="url", type="text", nullable=false) | ||
35 | */ | ||
36 | private $url; | ||
37 | |||
38 | /** | ||
39 | * @var string | ||
40 | * | ||
41 | * @ORM\Column(name="content", type="text", nullable=false) | ||
42 | */ | ||
43 | private $content; | ||
44 | |||
45 | /** | ||
46 | * @var boolean | ||
47 | * | ||
48 | * @ORM\Column(name="is_read", type="boolean", nullable=false) | ||
49 | */ | ||
50 | private $isRead; | ||
51 | |||
52 | /** | ||
53 | * @var boolean | ||
54 | * | ||
55 | * @ORM\Column(name="is_fav", type="boolean", nullable=false) | ||
56 | */ | ||
57 | private $isFav; | ||
58 | |||
59 | /** | ||
60 | * @var \DateTime | ||
61 | * | ||
62 | * @ORM\Column(name="created_at", type="datetime", nullable=false) | ||
63 | */ | ||
64 | private $createdAt; | ||
65 | |||
66 | /** | ||
67 | * @var \DateTime | ||
68 | * | ||
69 | * @ORM\Column(name="edited_at", type="datetime", nullable=false) | ||
70 | */ | ||
71 | private $editedAt; | ||
72 | |||
73 | |||
74 | } | ||
diff --git a/src/Wallabag/CoreBundle/Entity/Tags.php b/src/Wallabag/CoreBundle/Entity/Tags.php new file mode 100644 index 00000000..6fe16a53 --- /dev/null +++ b/src/Wallabag/CoreBundle/Entity/Tags.php | |||
@@ -0,0 +1,65 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\CoreBundle\Entity; | ||
4 | |||
5 | use Doctrine\ORM\Mapping as ORM; | ||
6 | |||
7 | /** | ||
8 | * Tags | ||
9 | * | ||
10 | * @ORM\Table(name="tags") | ||
11 | * @ORM\Entity | ||
12 | */ | ||
13 | class Tags | ||
14 | { | ||
15 | /** | ||
16 | * @var integer | ||
17 | * | ||
18 | * @ORM\Column(name="id", type="integer", nullable=false) | ||
19 | * @ORM\Id | ||
20 | * @ORM\GeneratedValue(strategy="IDENTITY") | ||
21 | */ | ||
22 | private $id; | ||
23 | |||
24 | /** | ||
25 | * @var string | ||
26 | * | ||
27 | * @ORM\Column(name="value", type="text", nullable=true) | ||
28 | */ | ||
29 | private $value; | ||
30 | |||
31 | |||
32 | |||
33 | /** | ||
34 | * Get id | ||
35 | * | ||
36 | * @return integer | ||
37 | */ | ||
38 | public function getId() | ||
39 | { | ||
40 | return $this->id; | ||
41 | } | ||
42 | |||
43 | /** | ||
44 | * Set value | ||
45 | * | ||
46 | * @param string $value | ||
47 | * @return Tags | ||
48 | */ | ||
49 | public function setValue($value) | ||
50 | { | ||
51 | $this->value = $value; | ||
52 | |||
53 | return $this; | ||
54 | } | ||
55 | |||
56 | /** | ||
57 | * Get value | ||
58 | * | ||
59 | * @return string | ||
60 | */ | ||
61 | public function getValue() | ||
62 | { | ||
63 | return $this->value; | ||
64 | } | ||
65 | } | ||
diff --git a/src/Wallabag/CoreBundle/Entity/Tags.php~ b/src/Wallabag/CoreBundle/Entity/Tags.php~ new file mode 100644 index 00000000..c0c78ee5 --- /dev/null +++ b/src/Wallabag/CoreBundle/Entity/Tags.php~ | |||
@@ -0,0 +1,65 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace WallabagBundle\Entity; | ||
4 | |||
5 | use Doctrine\ORM\Mapping as ORM; | ||
6 | |||
7 | /** | ||
8 | * Tags | ||
9 | * | ||
10 | * @ORM\Table(name="tags") | ||
11 | * @ORM\Entity | ||
12 | */ | ||
13 | class Tags | ||
14 | { | ||
15 | /** | ||
16 | * @var integer | ||
17 | * | ||
18 | * @ORM\Column(name="id", type="integer", nullable=false) | ||
19 | * @ORM\Id | ||
20 | * @ORM\GeneratedValue(strategy="IDENTITY") | ||
21 | */ | ||
22 | private $id; | ||
23 | |||
24 | /** | ||
25 | * @var string | ||
26 | * | ||
27 | * @ORM\Column(name="value", type="text", nullable=true) | ||
28 | */ | ||
29 | private $value; | ||
30 | |||
31 | |||
32 | |||
33 | /** | ||
34 | * Get id | ||
35 | * | ||
36 | * @return integer | ||
37 | */ | ||
38 | public function getId() | ||
39 | { | ||
40 | return $this->id; | ||
41 | } | ||
42 | |||
43 | /** | ||
44 | * Set value | ||
45 | * | ||
46 | * @param string $value | ||
47 | * @return Tags | ||
48 | */ | ||
49 | public function setValue($value) | ||
50 | { | ||
51 | $this->value = $value; | ||
52 | |||
53 | return $this; | ||
54 | } | ||
55 | |||
56 | /** | ||
57 | * Get value | ||
58 | * | ||
59 | * @return string | ||
60 | */ | ||
61 | public function getValue() | ||
62 | { | ||
63 | return $this->value; | ||
64 | } | ||
65 | } | ||
diff --git a/src/Wallabag/CoreBundle/Entity/TagsEntries.php b/src/Wallabag/CoreBundle/Entity/TagsEntries.php new file mode 100644 index 00000000..ad01cf57 --- /dev/null +++ b/src/Wallabag/CoreBundle/Entity/TagsEntries.php | |||
@@ -0,0 +1,95 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\CoreBundle\Entity; | ||
4 | |||
5 | use Doctrine\ORM\Mapping as ORM; | ||
6 | |||
7 | /** | ||
8 | * TagsEntries | ||
9 | * | ||
10 | * @ORM\Table(name="tags_entries") | ||
11 | * @ORM\Entity | ||
12 | */ | ||
13 | class TagsEntries | ||
14 | { | ||
15 | /** | ||
16 | * @var integer | ||
17 | * | ||
18 | * @ORM\Column(name="id", type="integer", nullable=false) | ||
19 | * @ORM\Id | ||
20 | * @ORM\GeneratedValue(strategy="IDENTITY") | ||
21 | */ | ||
22 | private $id; | ||
23 | |||
24 | /** | ||
25 | * @var integer | ||
26 | * | ||
27 | * @ORM\Column(name="entry_id", type="integer", nullable=true) | ||
28 | */ | ||
29 | private $entryId; | ||
30 | |||
31 | /** | ||
32 | * @var integer | ||
33 | * | ||
34 | * @ORM\Column(name="tag_id", type="integer", nullable=true) | ||
35 | */ | ||
36 | private $tagId; | ||
37 | |||
38 | |||
39 | |||
40 | /** | ||
41 | * Get id | ||
42 | * | ||
43 | * @return integer | ||
44 | */ | ||
45 | public function getId() | ||
46 | { | ||
47 | return $this->id; | ||
48 | } | ||
49 | |||
50 | /** | ||
51 | * Set entryId | ||
52 | * | ||
53 | * @param integer $entryId | ||
54 | * @return TagsEntries | ||
55 | */ | ||
56 | public function setEntryId($entryId) | ||
57 | { | ||
58 | $this->entryId = $entryId; | ||
59 | |||
60 | return $this; | ||
61 | } | ||
62 | |||
63 | /** | ||
64 | * Get entryId | ||
65 | * | ||
66 | * @return integer | ||
67 | */ | ||
68 | public function getEntryId() | ||
69 | { | ||
70 | return $this->entryId; | ||
71 | } | ||
72 | |||
73 | /** | ||
74 | * Set tagId | ||
75 | * | ||
76 | * @param integer $tagId | ||
77 | * @return TagsEntries | ||
78 | */ | ||
79 | public function setTagId($tagId) | ||
80 | { | ||
81 | $this->tagId = $tagId; | ||
82 | |||
83 | return $this; | ||
84 | } | ||
85 | |||
86 | /** | ||
87 | * Get tagId | ||
88 | * | ||
89 | * @return integer | ||
90 | */ | ||
91 | public function getTagId() | ||
92 | { | ||
93 | return $this->tagId; | ||
94 | } | ||
95 | } | ||
diff --git a/src/Wallabag/CoreBundle/Entity/TagsEntries.php~ b/src/Wallabag/CoreBundle/Entity/TagsEntries.php~ new file mode 100644 index 00000000..448c54fa --- /dev/null +++ b/src/Wallabag/CoreBundle/Entity/TagsEntries.php~ | |||
@@ -0,0 +1,95 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace WallabagBundle\Entity; | ||
4 | |||
5 | use Doctrine\ORM\Mapping as ORM; | ||
6 | |||
7 | /** | ||
8 | * TagsEntries | ||
9 | * | ||
10 | * @ORM\Table(name="tags_entries") | ||
11 | * @ORM\Entity | ||
12 | */ | ||
13 | class TagsEntries | ||
14 | { | ||
15 | /** | ||
16 | * @var integer | ||
17 | * | ||
18 | * @ORM\Column(name="id", type="integer", nullable=false) | ||
19 | * @ORM\Id | ||
20 | * @ORM\GeneratedValue(strategy="IDENTITY") | ||
21 | */ | ||
22 | private $id; | ||
23 | |||
24 | /** | ||
25 | * @var integer | ||
26 | * | ||
27 | * @ORM\Column(name="entry_id", type="integer", nullable=true) | ||
28 | */ | ||
29 | private $entryId; | ||
30 | |||
31 | /** | ||
32 | * @var integer | ||
33 | * | ||
34 | * @ORM\Column(name="tag_id", type="integer", nullable=true) | ||
35 | */ | ||
36 | private $tagId; | ||
37 | |||
38 | |||
39 | |||
40 | /** | ||
41 | * Get id | ||
42 | * | ||
43 | * @return integer | ||
44 | */ | ||
45 | public function getId() | ||
46 | { | ||
47 | return $this->id; | ||
48 | } | ||
49 | |||
50 | /** | ||
51 | * Set entryId | ||
52 | * | ||
53 | * @param integer $entryId | ||
54 | * @return TagsEntries | ||
55 | */ | ||
56 | public function setEntryId($entryId) | ||
57 | { | ||
58 | $this->entryId = $entryId; | ||
59 | |||
60 | return $this; | ||
61 | } | ||
62 | |||
63 | /** | ||
64 | * Get entryId | ||
65 | * | ||
66 | * @return integer | ||
67 | */ | ||
68 | public function getEntryId() | ||
69 | { | ||
70 | return $this->entryId; | ||
71 | } | ||
72 | |||
73 | /** | ||
74 | * Set tagId | ||
75 | * | ||
76 | * @param integer $tagId | ||
77 | * @return TagsEntries | ||
78 | */ | ||
79 | public function setTagId($tagId) | ||
80 | { | ||
81 | $this->tagId = $tagId; | ||
82 | |||
83 | return $this; | ||
84 | } | ||
85 | |||
86 | /** | ||
87 | * Get tagId | ||
88 | * | ||
89 | * @return integer | ||
90 | */ | ||
91 | public function getTagId() | ||
92 | { | ||
93 | return $this->tagId; | ||
94 | } | ||
95 | } | ||
diff --git a/src/Wallabag/CoreBundle/Entity/Users.php b/src/Wallabag/CoreBundle/Entity/Users.php new file mode 100644 index 00000000..3db4a3fd --- /dev/null +++ b/src/Wallabag/CoreBundle/Entity/Users.php | |||
@@ -0,0 +1,155 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\CoreBundle\Entity; | ||
4 | |||
5 | use Doctrine\ORM\Mapping as ORM; | ||
6 | |||
7 | /** | ||
8 | * Users | ||
9 | * | ||
10 | * @ORM\Table(name="users") | ||
11 | * @ORM\Entity | ||
12 | */ | ||
13 | class Users | ||
14 | { | ||
15 | /** | ||
16 | * @var integer | ||
17 | * | ||
18 | * @ORM\Column(name="id", type="integer", nullable=true) | ||
19 | * @ORM\Id | ||
20 | * @ORM\GeneratedValue(strategy="IDENTITY") | ||
21 | */ | ||
22 | private $id; | ||
23 | |||
24 | /** | ||
25 | * @var string | ||
26 | * | ||
27 | * @ORM\Column(name="username", type="text", nullable=true) | ||
28 | */ | ||
29 | private $username; | ||
30 | |||
31 | /** | ||
32 | * @var string | ||
33 | * | ||
34 | * @ORM\Column(name="password", type="text", nullable=true) | ||
35 | */ | ||
36 | private $password; | ||
37 | |||
38 | /** | ||
39 | * @var string | ||
40 | * | ||
41 | * @ORM\Column(name="name", type="text", nullable=true) | ||
42 | */ | ||
43 | private $name; | ||
44 | |||
45 | /** | ||
46 | * @var string | ||
47 | * | ||
48 | * @ORM\Column(name="email", type="text", nullable=true) | ||
49 | */ | ||
50 | private $email; | ||
51 | |||
52 | |||
53 | |||
54 | /** | ||
55 | * Get id | ||
56 | * | ||
57 | * @return integer | ||
58 | */ | ||
59 | public function getId() | ||
60 | { | ||
61 | return $this->id; | ||
62 | } | ||
63 | |||
64 | /** | ||
65 | * Set username | ||
66 | * | ||
67 | * @param string $username | ||
68 | * @return Users | ||
69 | */ | ||
70 | public function setUsername($username) | ||
71 | { | ||
72 | $this->username = $username; | ||
73 | |||
74 | return $this; | ||
75 | } | ||
76 | |||
77 | /** | ||
78 | * Get username | ||
79 | * | ||
80 | * @return string | ||
81 | */ | ||
82 | public function getUsername() | ||
83 | { | ||
84 | return $this->username; | ||
85 | } | ||
86 | |||
87 | /** | ||
88 | * Set password | ||
89 | * | ||
90 | * @param string $password | ||
91 | * @return Users | ||
92 | */ | ||
93 | public function setPassword($password) | ||
94 | { | ||
95 | $this->password = $password; | ||
96 | |||
97 | return $this; | ||
98 | } | ||
99 | |||
100 | /** | ||
101 | * Get password | ||
102 | * | ||
103 | * @return string | ||
104 | */ | ||
105 | public function getPassword() | ||
106 | { | ||
107 | return $this->password; | ||
108 | } | ||
109 | |||
110 | /** | ||
111 | * Set name | ||
112 | * | ||
113 | * @param string $name | ||
114 | * @return Users | ||
115 | */ | ||
116 | public function setName($name) | ||
117 | { | ||
118 | $this->name = $name; | ||
119 | |||
120 | return $this; | ||
121 | } | ||
122 | |||
123 | /** | ||
124 | * Get name | ||
125 | * | ||
126 | * @return string | ||
127 | */ | ||
128 | public function getName() | ||
129 | { | ||
130 | return $this->name; | ||
131 | } | ||
132 | |||
133 | /** | ||
134 | * Set email | ||
135 | * | ||
136 | * @param string $email | ||
137 | * @return Users | ||
138 | */ | ||
139 | public function setEmail($email) | ||
140 | { | ||
141 | $this->email = $email; | ||
142 | |||
143 | return $this; | ||
144 | } | ||
145 | |||
146 | /** | ||
147 | * Get email | ||
148 | * | ||
149 | * @return string | ||
150 | */ | ||
151 | public function getEmail() | ||
152 | { | ||
153 | return $this->email; | ||
154 | } | ||
155 | } | ||
diff --git a/src/Wallabag/CoreBundle/Entity/Users.php~ b/src/Wallabag/CoreBundle/Entity/Users.php~ new file mode 100644 index 00000000..a48f2240 --- /dev/null +++ b/src/Wallabag/CoreBundle/Entity/Users.php~ | |||
@@ -0,0 +1,155 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace WallabagBundle\Entity; | ||
4 | |||
5 | use Doctrine\ORM\Mapping as ORM; | ||
6 | |||
7 | /** | ||
8 | * Users | ||
9 | * | ||
10 | * @ORM\Table(name="users") | ||
11 | * @ORM\Entity | ||
12 | */ | ||
13 | class Users | ||
14 | { | ||
15 | /** | ||
16 | * @var integer | ||
17 | * | ||
18 | * @ORM\Column(name="id", type="integer", nullable=true) | ||
19 | * @ORM\Id | ||
20 | * @ORM\GeneratedValue(strategy="IDENTITY") | ||
21 | */ | ||
22 | private $id; | ||
23 | |||
24 | /** | ||
25 | * @var string | ||
26 | * | ||
27 | * @ORM\Column(name="username", type="text", nullable=true) | ||
28 | */ | ||
29 | private $username; | ||
30 | |||
31 | /** | ||
32 | * @var string | ||
33 | * | ||
34 | * @ORM\Column(name="password", type="text", nullable=true) | ||
35 | */ | ||
36 | private $password; | ||
37 | |||
38 | /** | ||
39 | * @var string | ||
40 | * | ||
41 | * @ORM\Column(name="name", type="text", nullable=true) | ||
42 | */ | ||
43 | private $name; | ||
44 | |||
45 | /** | ||
46 | * @var string | ||
47 | * | ||
48 | * @ORM\Column(name="email", type="text", nullable=true) | ||
49 | */ | ||
50 | private $email; | ||
51 | |||
52 | |||
53 | |||
54 | /** | ||
55 | * Get id | ||
56 | * | ||
57 | * @return integer | ||
58 | */ | ||
59 | public function getId() | ||
60 | { | ||
61 | return $this->id; | ||
62 | } | ||
63 | |||
64 | /** | ||
65 | * Set username | ||
66 | * | ||
67 | * @param string $username | ||
68 | * @return Users | ||
69 | */ | ||
70 | public function setUsername($username) | ||
71 | { | ||
72 | $this->username = $username; | ||
73 | |||
74 | return $this; | ||
75 | } | ||
76 | |||
77 | /** | ||
78 | * Get username | ||
79 | * | ||
80 | * @return string | ||
81 | */ | ||
82 | public function getUsername() | ||
83 | { | ||
84 | return $this->username; | ||
85 | } | ||
86 | |||
87 | /** | ||
88 | * Set password | ||
89 | * | ||
90 | * @param string $password | ||
91 | * @return Users | ||
92 | */ | ||
93 | public function setPassword($password) | ||
94 | { | ||
95 | $this->password = $password; | ||
96 | |||
97 | return $this; | ||
98 | } | ||
99 | |||
100 | /** | ||
101 | * Get password | ||
102 | * | ||
103 | * @return string | ||
104 | */ | ||
105 | public function getPassword() | ||
106 | { | ||
107 | return $this->password; | ||
108 | } | ||
109 | |||
110 | /** | ||
111 | * Set name | ||
112 | * | ||
113 | * @param string $name | ||
114 | * @return Users | ||
115 | */ | ||
116 | public function setName($name) | ||
117 | { | ||
118 | $this->name = $name; | ||
119 | |||
120 | return $this; | ||
121 | } | ||
122 | |||
123 | /** | ||
124 | * Get name | ||
125 | * | ||
126 | * @return string | ||
127 | */ | ||
128 | public function getName() | ||
129 | { | ||
130 | return $this->name; | ||
131 | } | ||
132 | |||
133 | /** | ||
134 | * Set email | ||
135 | * | ||
136 | * @param string $email | ||
137 | * @return Users | ||
138 | */ | ||
139 | public function setEmail($email) | ||
140 | { | ||
141 | $this->email = $email; | ||
142 | |||
143 | return $this; | ||
144 | } | ||
145 | |||
146 | /** | ||
147 | * Get email | ||
148 | * | ||
149 | * @return string | ||
150 | */ | ||
151 | public function getEmail() | ||
152 | { | ||
153 | return $this->email; | ||
154 | } | ||
155 | } | ||
diff --git a/src/Wallabag/CoreBundle/Entity/UsersConfig.php b/src/Wallabag/CoreBundle/Entity/UsersConfig.php new file mode 100644 index 00000000..26fb44ee --- /dev/null +++ b/src/Wallabag/CoreBundle/Entity/UsersConfig.php | |||
@@ -0,0 +1,125 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\CoreBundle\Entity; | ||
4 | |||
5 | use Doctrine\ORM\Mapping as ORM; | ||
6 | |||
7 | /** | ||
8 | * UsersConfig | ||
9 | * | ||
10 | * @ORM\Table(name="users_config") | ||
11 | * @ORM\Entity | ||
12 | */ | ||
13 | class UsersConfig | ||
14 | { | ||
15 | /** | ||
16 | * @var integer | ||
17 | * | ||
18 | * @ORM\Column(name="id", type="integer", nullable=true) | ||
19 | * @ORM\Id | ||
20 | * @ORM\GeneratedValue(strategy="IDENTITY") | ||
21 | */ | ||
22 | private $id; | ||
23 | |||
24 | /** | ||
25 | * @var string | ||
26 | * | ||
27 | * @ORM\Column(name="user_id", type="decimal", precision=10, scale=0, nullable=true) | ||
28 | */ | ||
29 | private $userId; | ||
30 | |||
31 | /** | ||
32 | * @var string | ||
33 | * | ||
34 | * @ORM\Column(name="name", type="text", nullable=true) | ||
35 | */ | ||
36 | private $name; | ||
37 | |||
38 | /** | ||
39 | * @var string | ||
40 | * | ||
41 | * @ORM\Column(name="value", type="text", nullable=true) | ||
42 | */ | ||
43 | private $value; | ||
44 | |||
45 | |||
46 | |||
47 | /** | ||
48 | * Get id | ||
49 | * | ||
50 | * @return integer | ||
51 | */ | ||
52 | public function getId() | ||
53 | { | ||
54 | return $this->id; | ||
55 | } | ||
56 | |||
57 | /** | ||
58 | * Set userId | ||
59 | * | ||
60 | * @param string $userId | ||
61 | * @return UsersConfig | ||
62 | */ | ||
63 | public function setUserId($userId) | ||
64 | { | ||
65 | $this->userId = $userId; | ||
66 | |||
67 | return $this; | ||
68 | } | ||
69 | |||
70 | /** | ||
71 | * Get userId | ||
72 | * | ||
73 | * @return string | ||
74 | */ | ||
75 | public function getUserId() | ||
76 | { | ||
77 | return $this->userId; | ||
78 | } | ||
79 | |||
80 | /** | ||
81 | * Set name | ||
82 | * | ||
83 | * @param string $name | ||
84 | * @return UsersConfig | ||
85 | */ | ||
86 | public function setName($name) | ||
87 | { | ||
88 | $this->name = $name; | ||
89 | |||
90 | return $this; | ||
91 | } | ||
92 | |||
93 | /** | ||
94 | * Get name | ||
95 | * | ||
96 | * @return string | ||
97 | */ | ||
98 | public function getName() | ||
99 | { | ||
100 | return $this->name; | ||
101 | } | ||
102 | |||
103 | /** | ||
104 | * Set value | ||
105 | * | ||
106 | * @param string $value | ||
107 | * @return UsersConfig | ||
108 | */ | ||
109 | public function setValue($value) | ||
110 | { | ||
111 | $this->value = $value; | ||
112 | |||
113 | return $this; | ||
114 | } | ||
115 | |||
116 | /** | ||
117 | * Get value | ||
118 | * | ||
119 | * @return string | ||
120 | */ | ||
121 | public function getValue() | ||
122 | { | ||
123 | return $this->value; | ||
124 | } | ||
125 | } | ||
diff --git a/src/Wallabag/CoreBundle/Entity/UsersConfig.php~ b/src/Wallabag/CoreBundle/Entity/UsersConfig.php~ new file mode 100644 index 00000000..8af283cc --- /dev/null +++ b/src/Wallabag/CoreBundle/Entity/UsersConfig.php~ | |||
@@ -0,0 +1,125 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace WallabagBundle\Entity; | ||
4 | |||
5 | use Doctrine\ORM\Mapping as ORM; | ||
6 | |||
7 | /** | ||
8 | * UsersConfig | ||
9 | * | ||
10 | * @ORM\Table(name="users_config") | ||
11 | * @ORM\Entity | ||
12 | */ | ||
13 | class UsersConfig | ||
14 | { | ||
15 | /** | ||
16 | * @var integer | ||
17 | * | ||
18 | * @ORM\Column(name="id", type="integer", nullable=true) | ||
19 | * @ORM\Id | ||
20 | * @ORM\GeneratedValue(strategy="IDENTITY") | ||
21 | */ | ||
22 | private $id; | ||
23 | |||
24 | /** | ||
25 | * @var string | ||
26 | * | ||
27 | * @ORM\Column(name="user_id", type="decimal", precision=10, scale=0, nullable=true) | ||
28 | */ | ||
29 | private $userId; | ||
30 | |||
31 | /** | ||
32 | * @var string | ||
33 | * | ||
34 | * @ORM\Column(name="name", type="text", nullable=true) | ||
35 | */ | ||
36 | private $name; | ||
37 | |||
38 | /** | ||
39 | * @var string | ||
40 | * | ||
41 | * @ORM\Column(name="value", type="text", nullable=true) | ||
42 | */ | ||
43 | private $value; | ||
44 | |||
45 | |||
46 | |||
47 | /** | ||
48 | * Get id | ||
49 | * | ||
50 | * @return integer | ||
51 | */ | ||
52 | public function getId() | ||
53 | { | ||
54 | return $this->id; | ||
55 | } | ||
56 | |||
57 | /** | ||
58 | * Set userId | ||
59 | * | ||
60 | * @param string $userId | ||
61 | * @return UsersConfig | ||
62 | */ | ||
63 | public function setUserId($userId) | ||
64 | { | ||
65 | $this->userId = $userId; | ||
66 | |||
67 | return $this; | ||
68 | } | ||
69 | |||
70 | /** | ||
71 | * Get userId | ||
72 | * | ||
73 | * @return string | ||
74 | */ | ||
75 | public function getUserId() | ||
76 | { | ||
77 | return $this->userId; | ||
78 | } | ||
79 | |||
80 | /** | ||
81 | * Set name | ||
82 | * | ||
83 | * @param string $name | ||
84 | * @return UsersConfig | ||
85 | */ | ||
86 | public function setName($name) | ||
87 | { | ||
88 | $this->name = $name; | ||
89 | |||
90 | return $this; | ||
91 | } | ||
92 | |||
93 | /** | ||
94 | * Get name | ||
95 | * | ||
96 | * @return string | ||
97 | */ | ||
98 | public function getName() | ||
99 | { | ||
100 | return $this->name; | ||
101 | } | ||
102 | |||
103 | /** | ||
104 | * Set value | ||
105 | * | ||
106 | * @param string $value | ||
107 | * @return UsersConfig | ||
108 | */ | ||
109 | public function setValue($value) | ||
110 | { | ||
111 | $this->value = $value; | ||
112 | |||
113 | return $this; | ||
114 | } | ||
115 | |||
116 | /** | ||
117 | * Get value | ||
118 | * | ||
119 | * @return string | ||
120 | */ | ||
121 | public function getValue() | ||
122 | { | ||
123 | return $this->value; | ||
124 | } | ||
125 | } | ||
diff --git a/src/Wallabag/CoreBundle/Repository/EntriesRepository.php b/src/Wallabag/CoreBundle/Repository/EntriesRepository.php new file mode 100644 index 00000000..5a71b9ef --- /dev/null +++ b/src/Wallabag/CoreBundle/Repository/EntriesRepository.php | |||
@@ -0,0 +1,79 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\CoreBundle\Repository; | ||
4 | |||
5 | use Doctrine\ORM\Query; | ||
6 | use Doctrine\ORM\EntityRepository; | ||
7 | use Doctrine\ORM\Tools\Pagination\Paginator; | ||
8 | |||
9 | class EntriesRepository extends EntityRepository | ||
10 | { | ||
11 | /** | ||
12 | * Retrieves unread entries for a user | ||
13 | * | ||
14 | * @param $userId | ||
15 | * @param $firstResult | ||
16 | * @param int $maxResults | ||
17 | * @return Paginator | ||
18 | */ | ||
19 | public function findUnreadByUser($userId, $firstResult, $maxResults = 12) | ||
20 | { | ||
21 | $qb = $this->createQueryBuilder('e') | ||
22 | ->select('e') | ||
23 | ->setFirstResult($firstResult) | ||
24 | ->setMaxResults($maxResults) | ||
25 | ->where('e.isRead = 0') | ||
26 | ->andWhere('e.userId =:userId')->setParameter('userId', $userId) | ||
27 | ->getQuery(); | ||
28 | |||
29 | $paginator = new Paginator($qb); | ||
30 | |||
31 | return $paginator; | ||
32 | } | ||
33 | |||
34 | /** | ||
35 | * Retrieves read entries for a user | ||
36 | * | ||
37 | * @param $userId | ||
38 | * @param $firstResult | ||
39 | * @param int $maxResults | ||
40 | * @return Paginator | ||
41 | */ | ||
42 | public function findArchiveByUser($userId, $firstResult, $maxResults = 12) | ||
43 | { | ||
44 | $qb = $this->createQueryBuilder('e') | ||
45 | ->select('e') | ||
46 | ->setFirstResult($firstResult) | ||
47 | ->setMaxResults($maxResults) | ||
48 | ->where('e.isRead = 1') | ||
49 | ->andWhere('e.userId =:userId')->setParameter('userId', $userId) | ||
50 | ->getQuery(); | ||
51 | |||
52 | $paginator = new Paginator($qb); | ||
53 | |||
54 | return $paginator; | ||
55 | } | ||
56 | |||
57 | /** | ||
58 | * Retrieves starred entries for a user | ||
59 | * | ||
60 | * @param $userId | ||
61 | * @param $firstResult | ||
62 | * @param int $maxResults | ||
63 | * @return Paginator | ||
64 | */ | ||
65 | public function findStarredByUser($userId, $firstResult, $maxResults = 12) | ||
66 | { | ||
67 | $qb = $this->createQueryBuilder('e') | ||
68 | ->select('e') | ||
69 | ->setFirstResult($firstResult) | ||
70 | ->setMaxResults($maxResults) | ||
71 | ->where('e.isFav = 1') | ||
72 | ->andWhere('e.userId =:userId')->setParameter('userId', $userId) | ||
73 | ->getQuery(); | ||
74 | |||
75 | $paginator = new Paginator($qb); | ||
76 | |||
77 | return $paginator; | ||
78 | } | ||
79 | } | ||
diff --git a/src/Wallabag/CoreBundle/Resources/config/routing.yml b/src/Wallabag/CoreBundle/Resources/config/routing.yml new file mode 100644 index 00000000..327d49d8 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/config/routing.yml | |||
@@ -0,0 +1,3 @@ | |||
1 | _wllbg: | ||
2 | resource: "@WallabagCoreBundle/Controller/EntryController.php" | ||
3 | type: annotation \ No newline at end of file | ||
diff --git a/src/Wallabag/CoreBundle/Resources/config/services.xml b/src/Wallabag/CoreBundle/Resources/config/services.xml new file mode 100644 index 00000000..02308e6a --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/config/services.xml | |||
@@ -0,0 +1,17 @@ | |||
1 | <?xml version="1.0" ?> | ||
2 | |||
3 | <container xmlns="http://symfony.com/schema/dic/services" | ||
4 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
5 | xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> | ||
6 | |||
7 | <services> | ||
8 | <service id="wallabag_core.twig.wallabag" class="Wallabag\CoreBundle\Twig\Extension\WallabagExtension"> | ||
9 | <tag name="twig.extension" /> | ||
10 | </service> | ||
11 | </services> | ||
12 | |||
13 | |||
14 | |||
15 | </container> | ||
16 | |||
17 | |||
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/entries.html.twig b/src/Wallabag/CoreBundle/Resources/views/Entry/entries.html.twig new file mode 100644 index 00000000..2f8423d7 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/Entry/entries.html.twig | |||
@@ -0,0 +1,47 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title "Unread" %} | ||
4 | |||
5 | {% block menu %} | ||
6 | {% include "WallabagCoreBundle::_menu.html.twig" %} | ||
7 | {% endblock %} | ||
8 | |||
9 | {% block content %} | ||
10 | {% block pager %} | ||
11 | {% if entries is not empty %} | ||
12 | <div class="results"> | ||
13 | <div class="nb-results">{{ entries.count }} {% trans %}entries{% endtrans %}</div> | ||
14 | <div class="pagination"> | ||
15 | {% for p in range(1, entries.count) %} | ||
16 | <li> | ||
17 | <a href="{{ path(app.request.attributes.get('_route'), {'page': p}) }}">{{ p }}</a> | ||
18 | </li> | ||
19 | {% endfor %} | ||
20 | </div> | ||
21 | </div> | ||
22 | {% endif %} | ||
23 | {% endblock %} | ||
24 | |||
25 | {% if entries is empty %} | ||
26 | <div class="messages warning"><p>{% trans %}No articles found.{% endtrans %}</p></div> | ||
27 | {% else %} | ||
28 | {% for entry in entries %} | ||
29 | <div id="entry-{{ entry.id|e }}" class="entrie"> | ||
30 | <h2><a href="{{ path('view', { 'id': entry.id }) }}">{{ entry.title|raw }}</a></h2> | ||
31 | {% if entry.content| readingTime > 0 %} | ||
32 | <div class="estimatedTime"><span class="tool reading-time">{% trans %}estimated reading time :{% endtrans %} {{ entry.content| readingTime }} min</span></div> | ||
33 | {% else %} | ||
34 | <div class="estimatedTime"><span class="tool reading-time">{% trans %}estimated reading time :{% endtrans %} <small class="inferieur"><</small> 1 min</span></div> | ||
35 | {% endif %} | ||
36 | |||
37 | <ul class="tools links"> | ||
38 | <li><a title="{% trans %}Toggle mark as read{% endtrans %}" class="tool icon-check icon {% if entry.isRead == 0 %}archive-off{% else %}archive{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"><span>{% trans %}Toggle mark as read{% endtrans %}</span></a></li> | ||
39 | <li><a title="{% trans %}toggle favorite{% endtrans %}" class="tool icon-star icon {% if entry.isFav == 0 %}fav-off{% else %}fav{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"><span>{% trans %}toggle favorite{% endtrans %}</span></a></li> | ||
40 | <li><a title="{% trans %}delete{% endtrans %}" class="tool delete icon-trash icon" href="{{ path('delete_entry', { 'id': entry.id }) }}"><span>{% trans %}delete{% endtrans %}</span></a></li> | ||
41 | <li><a href="{{ entry.url|e }}" target="_blank" title="{% trans %}original{% endtrans %} : {{ entry.title|e }}" class="tool link icon-link icon"><span>{{ entry.url | e | domainName }}</span></a></li> | ||
42 | </ul> | ||
43 | <p>{{ entry.content|striptags|slice(0, 300) }}...</p> | ||
44 | </div> | ||
45 | {% endfor %} | ||
46 | {% endif %} | ||
47 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/entry.html.twig b/src/Wallabag/CoreBundle/Resources/views/Entry/entry.html.twig new file mode 100644 index 00000000..78dfa7c0 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/Entry/entry.html.twig | |||
@@ -0,0 +1,104 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{{ entry.title|raw }} ({{ entry.url | e | domainName }}){% endblock %} | ||
4 | |||
5 | {% block menu %} | ||
6 | {% include "WallabagCoreBundle::_menu.html.twig" %} | ||
7 | {% endblock %} | ||
8 | |||
9 | {% block content %} | ||
10 | <div id="article_toolbar"> | ||
11 | <ul class="links"> | ||
12 | <li class="topPosF"><a href="#top" title="{% trans %}Back to top{% endtrans %}" class="tool top icon icon-arrow-up-thick"><span>{% trans %}Back to top{% endtrans %}</span></a></li> | ||
13 | <li><a href="{{ entry.url|e }}" target="_blank" title="{% trans %}original{% endtrans %} : {{ entry.title|e }}" class="tool link icon icon-link"><span>{{ entry.url | e | domainName }}</span></a></li> | ||
14 | <li><a title="{% trans %}Mark as read{% endtrans %}" class="tool icon icon-check {% if entry.isRead == 0 %}archive-off{% else %}archive{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"><span>{% trans %}Toggle mark as read{% endtrans %}</span></a></li> | ||
15 | <li><a title="{% trans %}Favorite{% endtrans %}" class="tool icon icon-star {% if entry.isFav == 0 %}fav-off{% else %}fav{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"><span>{% trans %}Toggle favorite{% endtrans %}</span></a></li> | ||
16 | <li><a title="{% trans %}Delete{% endtrans %}" class="tool delete icon icon-trash" href="{{ path('delete_entry', { 'id': entry.id }) }}"><span>{% trans %}Delete{% endtrans %}</span></a></li> | ||
17 | {% if share_twitter %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter icon icon-twitter" title="{% trans %}Tweet{% endtrans %}"><span>{% trans %}Tweet{% endtrans %}</span></a></li>{% endif %} | ||
18 | {% if share_mail %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="{% trans %}Email{% endtrans %}"><span>{% trans %}Email{% endtrans %}</span></a></li>{% endif %} | ||
19 | {% if share_shaarli %}<li><a href="{{ shaarli_url }}/index.php?post={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="{% trans %}shaarli{% endtrans %}"><span>{% trans %}shaarli{% endtrans %}</span></a></li>{% endif %} | ||
20 | {% if share_diaspora %}<li><a href="{{ diaspora_url }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}¬es=&v=1&noui=1&jump=doclose" target="_blank" class="tool diaspora icon-image icon-image--diaspora" title="{% trans %}diaspora{% endtrans %}"><span>{% trans %}diaspora{% endtrans %}</span></a></li>{% endif %} | ||
21 | {# {% if flattr %}{% if flattr.status == flattrable %}<li><a href="http://flattr.com/submit/auto?url={{ entry.url }}" class="tool flattr icon icon-flattr" target="_blank" title="{% trans %}flattr{% endtrans %}"><span>{% trans %}flattr{% endtrans %}</span></a></li>{% elseif flattr.status == flattred %}<li><a href="{{ flattr.flattrItemURL }}" class="tool flattr icon icon-flattr" target="_blank" title="{% trans %}flattr{% endtrans %}><span>{% trans %}flattr{% endtrans %}</span> ({{ flattr.numFlattrs }})</a></li>{% endif %}{% endif %} #} | ||
22 | {% if carrot %}<li><a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" class="tool carrot icon-image icon-image--carrot" target="_blank" title="{% trans %}carrot{% endtrans %}"><span>Carrot</span></a></li>{% endif %} | ||
23 | {% if show_printlink %}<li><a title="{% trans %}Print{% endtrans %}" class="tool icon icon-print" href="javascript: window.print();"><span>{% trans %}Print{% endtrans %}</span></a></li>{% endif %} | ||
24 | {% if export_epub %}<li><a href="?epub&method=id&value={{ entry.id|e }}" title="Generate ePub file">EPUB</a></li>{% endif %} | ||
25 | {% if export_mobi %}<li><a href="?mobi&method=id&value={{ entry.id|e }}" title="Generate Mobi file">MOBI</a></li>{% endif %} | ||
26 | {% if export_pdf %}<li><a href="?pdf&method=id&value={{ entry.id|e }}" title="Generate PDF file">PDF</a></li>{% endif %} | ||
27 | <li><a href="mailto:hello@wallabag.org?subject=Wrong%20display%20in%20wallabag&body={{ entry.url|url_encode }}" title="{% trans %}Does this article appear wrong?{% endtrans %}" class="tool bad-display icon icon-delete"><span>{% trans %}Does this article appear wrong?{% endtrans %}</span></a></li> | ||
28 | </ul> | ||
29 | </div> | ||
30 | <div id="article"> | ||
31 | <header class="mbm"> | ||
32 | <h1>{{ entry.title|raw }}</h1> | ||
33 | </header> | ||
34 | <aside class="tags"> | ||
35 | tags: {# {% for tag in tags %}<a href="./?view=tag&id={{ tag.id }}">{{ tag.value }}</a> {% endfor %}<a href="./?view=edit-tags&id={{ entry.id|e }}" title="{% trans %}Edit tags{% endtrans %}">✎</a> #} | ||
36 | </aside> | ||
37 | <article> | ||
38 | {{ entry.content | raw }} | ||
39 | </article> | ||
40 | </div> | ||
41 | <script src="{{ asset('themes/_global/js/restoreScroll.js')}}"></script> | ||
42 | <script type="text/javascript"> | ||
43 | $(document).ready(function() { | ||
44 | |||
45 | // toggle read property of current article | ||
46 | /* $('#markAsRead').click(function(){ | ||
47 | $("body").css("cursor", "wait"); | ||
48 | $.ajax( { url: '{{ path('archive_entry', { 'id': entry.id }) }}' }).done( | ||
49 | function( data ) { | ||
50 | if ( data == '1' ) { | ||
51 | if ( $('#markAsRead').hasClass("archive-off") ) { | ||
52 | $('#markAsRead').removeClass("archive-off"); | ||
53 | $('#markAsRead').addClass("archive"); | ||
54 | } | ||
55 | else { | ||
56 | $('#markAsRead').removeClass("archive"); | ||
57 | $('#markAsRead').addClass("archive-off"); | ||
58 | } | ||
59 | } | ||
60 | else { | ||
61 | alert('Error! Pls check if you are logged in.'); | ||
62 | } | ||
63 | }); | ||
64 | $("body").css("cursor", "auto"); | ||
65 | });*/ | ||
66 | |||
67 | // toggle favorite property of current article | ||
68 | /* $('#setFav').click(function(){ | ||
69 | $("body").css("cursor", "wait"); | ||
70 | $.ajax( { url: '{{ path('star_entry', { 'id': entry.id }) }}' }).done( | ||
71 | function( data ) { | ||
72 | if ( data == '1' ) { | ||
73 | if ( $('#setFav').hasClass("fav-off") ) { | ||
74 | $('#setFav').removeClass("fav-off"); | ||
75 | $('#setFav').addClass("fav"); | ||
76 | } | ||
77 | else { | ||
78 | $('#setFav').removeClass("fav"); | ||
79 | $('#setFav').addClass("fav-off"); | ||
80 | } | ||
81 | } | ||
82 | else { | ||
83 | alert('Error! Pls check if you are logged in.'); | ||
84 | } | ||
85 | }); | ||
86 | $("body").css("cursor", "auto"); | ||
87 | });*/ | ||
88 | |||
89 | $(window).scroll(function(e){ | ||
90 | var scrollTop = $(window).scrollTop(); | ||
91 | var docHeight = $(document).height(); | ||
92 | var scrollPercent = (scrollTop) / (docHeight); | ||
93 | var scrollPercentRounded = Math.round(scrollPercent*100)/100; | ||
94 | savePercent({{ entry.id|e }}, scrollPercentRounded); | ||
95 | }); | ||
96 | |||
97 | retrievePercent({{ entry.id|e }}); | ||
98 | |||
99 | $(window).resize(function(){ | ||
100 | retrievePercent({{ entry.id|e }}); | ||
101 | }); | ||
102 | }); | ||
103 | </script> | ||
104 | {% endblock %} \ No newline at end of file | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/Entry/new.html.twig b/src/Wallabag/CoreBundle/Resources/views/Entry/new.html.twig new file mode 100644 index 00000000..df6926a0 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/Entry/new.html.twig | |||
@@ -0,0 +1,11 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{% trans %}Save new entry{% endtrans %}{% endblock %} | ||
4 | |||
5 | {% block menu %} | ||
6 | {% include "WallabagCoreBundle::_menu.html.twig" %} | ||
7 | {% endblock %} | ||
8 | |||
9 | {% block content %} | ||
10 | {{ form(form) }} | ||
11 | {% endblock %} \ No newline at end of file | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/Static/about.html.twig b/src/Wallabag/CoreBundle/Resources/views/Static/about.html.twig new file mode 100755 index 00000000..0585ecca --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/Static/about.html.twig | |||
@@ -0,0 +1,51 @@ | |||
1 | {% extends "WallabagCoreBundle::layout.html.twig" %} | ||
2 | |||
3 | {% block title %}{% trans %}About{% endtrans %}{% endblock %} | ||
4 | {% block menu %} | ||
5 | {% include "WallabagCoreBundle::_menu.html.twig" %} | ||
6 | {% endblock %} | ||
7 | {% block content %} | ||
8 | <h2>{% trans %}About wallabag{% endtrans %}</h2> | ||
9 | |||
10 | <dl> | ||
11 | <dt>{% trans %}Project website{% endtrans %}</dt> | ||
12 | <dd><a href="https://www.wallabag.org">https://www.wallabag.org</a></dd> | ||
13 | |||
14 | <dt>{% trans %}Main developer{% endtrans %}</dt> | ||
15 | <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{% trans %}website{% endtrans %}</a></dd> | ||
16 | |||
17 | <dt>{% trans %}Contributors ♥:{% endtrans %}</dt> | ||
18 | <dd><a href="https://github.com/wallabag/wallabag/graphs/contributors">{% trans %}on Github{% endtrans %}</a></dd> | ||
19 | |||
20 | <dt>{% trans %}Bug reports{% endtrans %}</dt> | ||
21 | <dd><a href="https://support.wallabag.org">{% trans %}On our support website{% endtrans %}</a> {% trans %}or{% endtrans %} <a href="https://github.com/wallabag/wallabag/issues">{% trans %}on Github{% endtrans %}</a></dd> | ||
22 | |||
23 | <dt>{% trans %}License{% endtrans %}</dt> | ||
24 | <dd><a href="http://en.wikipedia.org/wiki/MIT_License">MIT</a></dd> | ||
25 | |||
26 | <dt>{% trans %}Version{% endtrans %}</dt> | ||
27 | <dd>{{ version }}</dd> | ||
28 | </dl> | ||
29 | |||
30 | <p>{% trans %}wallabag is a read-it-later application: you can save a web page by keeping only content. Elements like ads or menus are deleted.{% endtrans %}</p> | ||
31 | |||
32 | <h2>{% trans %}Getting help{% endtrans %}</h2> | ||
33 | |||
34 | <dl> | ||
35 | <dt>{% trans %}Documentation{% endtrans %}</dt> | ||
36 | <dd><a href="https://doc.wallabag.org/">Online documentation</a></dd> | ||
37 | |||
38 | <dt>{% trans %}Support{% endtrans %}</dt> | ||
39 | <dd><a href="http://support.wallabag.org/">http://support.wallabag.org/</a></dd> | ||
40 | </dl> | ||
41 | |||
42 | <h2>{% trans %}Helping wallabag{% endtrans %}</h2> | ||
43 | |||
44 | <p>{% trans %}wallabag is free and opensource. You can help us:{% endtrans %}</p> | ||
45 | |||
46 | <dl> | ||
47 | <dt><a href="{{ paypal_url }}">{% trans %}via Paypal{% endtrans %}</a></dt> | ||
48 | |||
49 | <dt><a href="{{ flattr_url }}">{% trans %}via Flattr{% endtrans %}</a></dt> | ||
50 | </dl> | ||
51 | {% endblock %} | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/_bookmarklet.html.twig b/src/Wallabag/CoreBundle/Resources/views/_bookmarklet.html.twig new file mode 100644 index 00000000..d432909a --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/_bookmarklet.html.twig | |||
@@ -0,0 +1,3 @@ | |||
1 | <script type="text/javascript"> | ||
2 | top["bookmarklet-url@wallabag.org"]=""+"<!DOCTYPE html>"+"<html>"+"<head>"+"<title>bag it!</title>"+'<link rel="icon" href="tpl/img/favicon.ico" />'+"</head>"+"<body>"+"<script>"+"window.onload=function(){"+"window.setTimeout(function(){"+"history.back();"+"},250);"+"};"+"</scr"+"ipt>"+"</body>"+"</html>" | ||
3 | </script> \ No newline at end of file | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/_footer.html.twig b/src/Wallabag/CoreBundle/Resources/views/_footer.html.twig new file mode 100644 index 00000000..c897a97e --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/_footer.html.twig | |||
@@ -0,0 +1,3 @@ | |||
1 | <footer class="w600p center mt3 mb3 smaller txtright"> | ||
2 | <p>{% trans %}powered by{% endtrans %} <a href="http://wallabag.org">wallabag</a></p> | ||
3 | </footer> \ No newline at end of file | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/_head.html.twig b/src/Wallabag/CoreBundle/Resources/views/_head.html.twig new file mode 100755 index 00000000..7ef79a2f --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/_head.html.twig | |||
@@ -0,0 +1,40 @@ | |||
1 | <link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-152.png') }}" sizes="152x152"> | ||
2 | <link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-152.png') }}" sizes="152x152"> | ||
3 | |||
4 | <link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-144.png') }}" sizes="144x144"> | ||
5 | <link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-144.png') }}" sizes="144x144"> | ||
6 | |||
7 | <link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-120.png') }}" sizes="120x120"> | ||
8 | <link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-120.png') }}" sizes="120x120"> | ||
9 | |||
10 | <link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-114.png') }}" sizes="114x114"> | ||
11 | <link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-114.png') }}" sizes="114x114"> | ||
12 | |||
13 | <link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-76.png') }}" sizes="76x76"> | ||
14 | <link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-76.png') }}" sizes="76x76"> | ||
15 | |||
16 | <link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-72.png') }}" sizes="72x72"> | ||
17 | <link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-72.png') }}" sizes="72x72"> | ||
18 | |||
19 | <link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-57.png') }}" sizes="57x57"> | ||
20 | <link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon-57.png') }}" sizes="57x57"> | ||
21 | |||
22 | <link rel="apple-touch-icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon.png') }}"> | ||
23 | <link rel="icon" type="image/png" href="{{ asset('themes/_global/img/appicon/apple-touch-icon.png') }}"> | ||
24 | |||
25 | <link rel="shortcut icon" type="image/x-icon" href="{{ asset('themes/_global/img/appicon/favicon.ico') }}"> | ||
26 | |||
27 | <link rel="stylesheet" href="{{ asset('themes/baggy/css/ratatouille.css') }}" media="all"> | ||
28 | <link rel="stylesheet" href="{{ asset('themes/baggy/css/font.css') }}" media="all"> | ||
29 | <link rel="stylesheet" href="{{ asset('themes/baggy/css/main.css') }}" media="all"> | ||
30 | <link rel="stylesheet" href="{{ asset('themes/baggy/css/messages.css') }}" media="all"> | ||
31 | <link rel="stylesheet" href="{{ asset('themes/baggy/css/print.css') }}" media="print"> | ||
32 | |||
33 | <script src="{{ asset('themes/_global/js/jquery-2.0.3.min.js') }}"></script> | ||
34 | <script src="{{ asset('themes/_global/js/autoClose.js') }}"></script> | ||
35 | <script src="{{ asset('themes/baggy/js/jquery.cookie.js') }}"></script> | ||
36 | <script src="{{ asset('themes/baggy/js/init.js') }}"></script> | ||
37 | <script src="{{ asset('themes/_global/js/saveLink.js') }}"></script> | ||
38 | <script src="{{ asset('themes/_global/js/popupForm.js') }}"></script> | ||
39 | <script src="{{ asset('themes/baggy/js/closeMessage.js') }}"></script> | ||
40 | |||
diff --git a/src/Wallabag/CoreBundle/Resources/views/_menu.html.twig b/src/Wallabag/CoreBundle/Resources/views/_menu.html.twig new file mode 100644 index 00000000..d4560e84 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/_menu.html.twig | |||
@@ -0,0 +1,15 @@ | |||
1 | <button id="menu" class="icon icon-menu desktopHide"><span>Menu</span></button> | ||
2 | <ul id="links" class="links"> | ||
3 | <li><a href="{{ path('unread') }}">{% trans %}unread{% endtrans %}</a></li> | ||
4 | <li><a href="{{ path('starred') }}">{% trans %}favorites{% endtrans %}</a></li> | ||
5 | <li><a href="{{ path('archive') }}"}>{% trans %}archive{% endtrans %}</a></li> | ||
6 | <li><a href="?view=tags">{% trans %}tags{% endtrans %}</a></li> | ||
7 | <li><a href="{{ path('new_entry') }}">{% trans %}save a link{% endtrans %}</a></li> | ||
8 | <li style="position: relative;"><a href="javascript: void(null);" id="search">{% trans %}search{% endtrans %}</a> | ||
9 | {% include "WallabagCoreBundle::_search_form.html.twig" %} | ||
10 | </li> | ||
11 | <li><a href="?view=config">{% trans %}config{% endtrans %}</a></li> | ||
12 | <li><a href={{ path('about') }}>{% trans %}about{% endtrans %}</a></li> | ||
13 | <li><a class="icon icon-power" href="?logout" title="{% trans %}logout{% endtrans %}">{% trans %}logout{% endtrans %}</a></li> | ||
14 | </ul> | ||
15 | |||
diff --git a/src/Wallabag/CoreBundle/Resources/views/_messages.html.twig b/src/Wallabag/CoreBundle/Resources/views/_messages.html.twig new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/_messages.html.twig | |||
diff --git a/src/Wallabag/CoreBundle/Resources/views/_save_form.html.twig b/src/Wallabag/CoreBundle/Resources/views/_save_form.html.twig new file mode 100755 index 00000000..acaa5dbc --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/_save_form.html.twig | |||
@@ -0,0 +1,10 @@ | |||
1 | <div id="bagit-form" class="messages info popup-form"> | ||
2 | <form method="get" action="index.php" target="_blank" id="bagit-form-form"> | ||
3 | <h2>{% trans %}Save a link{% endtrans %}</h2> | ||
4 | <a href="javascript: void(null);" id="bagit-form-close" class="close-button--popup close-button">×</a> | ||
5 | <input type="hidden" name="autoclose" value="1" /> | ||
6 | <input required placeholder="example.com/article" class="addurl" id="plainurl" name="plainurl" type="url" /> | ||
7 | <span id="add-link-result"></span> | ||
8 | <input type="submit" value="{% trans %}save link!"{% endtrans %} /> | ||
9 | </form> | ||
10 | </div> | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/_search_form.html.twig b/src/Wallabag/CoreBundle/Resources/views/_search_form.html.twig new file mode 100644 index 00000000..7eb1b67d --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/_search_form.html.twig | |||
@@ -0,0 +1,9 @@ | |||
1 | <div id="search-form" class="messages info popup-form"> | ||
2 | <form method="get" action="index.php"> | ||
3 | <h2>{% trans %}Search{% endtrans %}</h2> | ||
4 | <a href="javascript: void(null);" id="search-form-close" class="close-button--popup close-button">×</a> | ||
5 | <input type="hidden" name="view" value="search"></input> | ||
6 | <input required placeholder="{% trans %}Enter your search here{% endtrans %}" type="text" name="search" id="searchfield"><br> | ||
7 | <input id="submit-search" type="submit" value="{% trans %}Search{% endtrans %}"></input> | ||
8 | </form> | ||
9 | </div> | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/_top.html.twig b/src/Wallabag/CoreBundle/Resources/views/_top.html.twig new file mode 100755 index 00000000..34d925df --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/_top.html.twig | |||
@@ -0,0 +1,5 @@ | |||
1 | <header class="w600p center mbm"> | ||
2 | <h1> | ||
3 | {% block logo %}<img width="100" height="100" src="{{ asset('themes/baggy/img/logo-w.png') }}" alt="wallabag logo" />{% endblock %} | ||
4 | </h1> | ||
5 | </header> | ||
diff --git a/src/Wallabag/CoreBundle/Resources/views/layout.html.twig b/src/Wallabag/CoreBundle/Resources/views/layout.html.twig new file mode 100644 index 00000000..83830a4a --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/layout.html.twig | |||
@@ -0,0 +1,33 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <!--[if lte IE 6]><html class="no-js ie6 ie67 ie678" lang="en"><![endif]--> | ||
3 | <!--[if lte IE 7]><html class="no-js ie7 ie67 ie678" lang="en"><![endif]--> | ||
4 | <!--[if IE 8]><html class="no-js ie8 ie678" lang="en"><![endif]--> | ||
5 | <!--[if gt IE 8]><html class="no-js" lang="en"><![endif]--> | ||
6 | <html lang="en"> | ||
7 | <head> | ||
8 | <meta name="viewport" content="initial-scale=1.0"> | ||
9 | <meta charset="utf-8"> | ||
10 | <!--[if IE]> | ||
11 | <meta http-equiv="X-UA-Compatible" content="IE=10"> | ||
12 | <![endif]--> | ||
13 | <title>{% block title %}{% endblock %} - wallabag</title> | ||
14 | {% include "WallabagCoreBundle::_head.html.twig" %} | ||
15 | {% include "WallabagCoreBundle::_bookmarklet.html.twig" %} | ||
16 | </head> | ||
17 | <body> | ||
18 | {% include "WallabagCoreBundle::_top.html.twig" %} | ||
19 | <div id="main"> | ||
20 | {% block menu %}{% endblock %} | ||
21 | {% block precontent %}{% endblock %} | ||
22 | {% for flashMessage in app.session.flashbag.get('notice') %} | ||
23 | <div class="flash-notice"> | ||
24 | {{ flashMessage }} | ||
25 | </div> | ||
26 | {% endfor %} | ||
27 | <div id="content" class="w600p center"> | ||
28 | {% block content %}{% endblock %} | ||
29 | </div> | ||
30 | </div> | ||
31 | {% include "WallabagCoreBundle::_footer.html.twig" %} | ||
32 | </body> | ||
33 | </html> \ No newline at end of file | ||
diff --git a/src/Wallabag/CoreBundle/Tests/Controller/DefaultControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/DefaultControllerTest.php new file mode 100644 index 00000000..af20f31f --- /dev/null +++ b/src/Wallabag/CoreBundle/Tests/Controller/DefaultControllerTest.php | |||
@@ -0,0 +1,18 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\CoreBundle\Tests\Controller; | ||
4 | |||
5 | use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; | ||
6 | |||
7 | class EntryControllerTest extends WebTestCase | ||
8 | { | ||
9 | public function testIndex() | ||
10 | { | ||
11 | $client = static::createClient(); | ||
12 | |||
13 | $crawler = $client->request('GET', '/app/index'); | ||
14 | |||
15 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); | ||
16 | $this->assertTrue($crawler->filter('html:contains("Homepage")')->count() > 0); | ||
17 | } | ||
18 | } | ||
diff --git a/src/Wallabag/CoreBundle/Twig/Extension/WallabagExtension.php b/src/Wallabag/CoreBundle/Twig/Extension/WallabagExtension.php new file mode 100644 index 00000000..0b004a30 --- /dev/null +++ b/src/Wallabag/CoreBundle/Twig/Extension/WallabagExtension.php | |||
@@ -0,0 +1,41 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\CoreBundle\Twig\Extension; | ||
4 | |||
5 | class WallabagExtension extends \Twig_Extension | ||
6 | { | ||
7 | public function getFilters() | ||
8 | { | ||
9 | return array( | ||
10 | new \Twig_SimpleFilter('readingTime', array($this, 'getReadingTime')), | ||
11 | new \Twig_SimpleFilter('domainName', array($this, 'getDomainName')), | ||
12 | ); | ||
13 | } | ||
14 | |||
15 | /** | ||
16 | * Returns the domain name for a URL | ||
17 | * | ||
18 | * @param $url | ||
19 | * @return string | ||
20 | */ | ||
21 | public static function getDomainName($url) | ||
22 | { | ||
23 | return parse_url($url, PHP_URL_HOST); | ||
24 | } | ||
25 | |||
26 | /** | ||
27 | * For a given text, we calculate reading time for an article | ||
28 | * | ||
29 | * @param $text | ||
30 | * @return float | ||
31 | */ | ||
32 | public static function getReadingTime($text) | ||
33 | { | ||
34 | return floor(str_word_count(strip_tags($text)) / 200); | ||
35 | } | ||
36 | |||
37 | public function getName() | ||
38 | { | ||
39 | return 'wallabag_extension'; | ||
40 | } | ||
41 | } \ No newline at end of file | ||
diff --git a/src/Wallabag/CoreBundle/WallabagCoreBundle.php b/src/Wallabag/CoreBundle/WallabagCoreBundle.php new file mode 100644 index 00000000..f5899e39 --- /dev/null +++ b/src/Wallabag/CoreBundle/WallabagCoreBundle.php | |||
@@ -0,0 +1,9 @@ | |||
1 | <?php | ||
2 | |||
3 | namespace Wallabag\CoreBundle; | ||
4 | |||
5 | use Symfony\Component\HttpKernel\Bundle\Bundle; | ||
6 | |||
7 | class WallabagCoreBundle extends Bundle | ||
8 | { | ||
9 | } | ||
diff --git a/src/Wallabag/Wallabag/Database.php b/src/Wallabag/Wallabag/Database.php index 47fa99aa..29073108 100755 --- a/src/Wallabag/Wallabag/Database.php +++ b/src/Wallabag/Wallabag/Database.php | |||
@@ -11,7 +11,7 @@ | |||
11 | namespace Wallabag\Wallabag; | 11 | namespace Wallabag\Wallabag; |
12 | 12 | ||
13 | use \PDO; | 13 | use \PDO; |
14 | use WallabagBundle\Entity; | 14 | use CoreBundle\Entity; |
15 | 15 | ||
16 | class Database { | 16 | class Database { |
17 | 17 | ||