summaryrefslogtreecommitdiffstats
path: root/js/news.js
blob: 9ca51136017d2ae3c03a0b6b933b9797444851e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
News = {
	DropDownMenu: {
		fade:function(menu){
			$(menu).toggle();
			return false;
		},
		dropdown:function(button){
			var list = $(button).parent().find('ul.dropdownmenu');
			if (list.css('display') == 'none')
				list.slideDown('fast').show();
			else
				list.slideUp('fast');

			return false;
		},
		selectItem:function(item, folderid){
			var parent = $(item).parent().parent();
			parent.find('.dropdownBtn').text($(item).text());
			parent.find(':input[name="folderid"]').val(folderid);
			parent.find('ul.dropdownmenu').slideUp('fast');
		}
	},
	Folder: {
		submit:function(button){
			var displayname = $("#folder_add_name").val().trim();

			if(displayname.length == 0) {
				OC.dialogs.alert(t('news', 'Name of the folder cannot be empty.'), t('news', 'Error'));
				return false;
			}

			$(button).attr("disabled", true);
			$(button).prop('value', t('news', 'Adding...'));

			var folderid = 0;

			var url;
			url = OC.filePath('news', 'ajax', 'createfolder.php');

			$.post(url, { name: displayname, parentid: folderid },
				function(jsondata){
					if(jsondata.status == 'success'){
						// FIXME: this should receive json by default
						var $folder = $(jsondata.data.listfolder);
						var title = $folder.children('.title').html();
						var id = $folder.data('id');
						var data = { 
							title: title
						};
						News.Objects.Menu.addNode(0, News.MenuNodeType.Folder, id, data);
						$('#addfolder_dialog').dialog('close');
					} else {
						OC.dialogs.alert(jsondata.data.message, t('news', 'Error'));
					}
					$("#folder_add_name").val('');
					$(button).attr("disabled", false);
					$(button).prop('value', t('news','Add folder'));
			});
		},
	},
	Feed: {
		id:'',
		submit:function(button){

			var feedurl = $("#feed_add_url").val().trim();

			if(feedurl.length == 0) {
				OC.dialogs.alert(t('news', 'URL cannot be empty.'), t('news', 'Error'));
				return false;
			}

			$(button).attr("disabled", true);
			$(button).prop('value', t('news', 'Adding...'));
			
			var folderid = 0;
			if($('#firstrun').length == 0){
				folderid = $('#addfeed_dialog .inputfolderid').val();
			}

			$.ajax({
				type: "POST",
				url: OC.filePath('news', 'ajax', 'createfeed.php'),
				data: { 'feedurl': feedurl, 'folderid': folderid },
				dataType: "json",
				success: function(jsondata){
					if($('#firstrun').length > 0){
						window.location.reload(); 
					} else {
						if(jsondata.status == 'success'){						
							// FIXME: this should receive json by default
							var $feed = $(jsondata.data.listfeed);
							var title = $feed.children('.title').html();
							var icon = $feed.children('.title').css('background-image').replace(/"/g,"").replace(/url\(|\)$/ig, "");;
							var unreadCount = $feed.children('.unread_items_count').html();
							var id = $feed.data('id');
							var data = { 
								title: title,
								unreadCount: unreadCount,
								icon: icon
							};
							News.Objects.Menu.addNode(folderid, News.MenuNodeType.Feed, id, data);
							News.Objects.Menu.load(News.MenuNodeType.Feed, jsondata.data.feedid);

							$('#addfeed_dialog').dialog('close');
						} else {
							OC.dialogs.alert(jsondata.data.message, t('news', 'Error'));
						}
						$("#feed_add_url").val('');
						$(button).attr("disabled", false);
						$(button).prop('value', t('news', 'Add feed'));
					}
				},
				error: function(xhr) {
					OC.dialogs.alert(t('news', 'Error while parsing the feed'), t('news', 'Fatal Error'));
					$("#feed_add_url").val('');
					$(button).attr("disabled", false);
					$(button).prop('value', t('news', 'Add feed'));
				}
			});
		},
		
	},

}