2
import QtQuick.XmlListModel 2.0
3
import Ubuntu.Components 1.2
4
import Ubuntu.Components.ListItems 1.0 as ListItem
5
import Ubuntu.Components.Popups 1.0
7
import "../utils/databasemodule_v2.js" as DB
12
objectName: "choosetopicpage"
13
title: i18n.tr("Choose topic")
16
property var feedsToAdd: null
17
signal topicChoosen(int topicId, var addedFeeds)
19
function reloadPageContent() {
20
suggestionTopicsModel.clear()
22
var tags = DB.loadTags()
24
for (var i = 0; i < tags.rows.length; i++) {
25
var curTag = tags.rows.item(i)
27
suggestionTopicsModel.append({"tagName" : curTag.name, "tagId" : curTag.id})
31
function appendFeedsToTopic(topicId) {
36
for(var i = 0; i < feedsToAdd.length; i++) {
40
// TODO should I remove html tags or not? :)
41
var feedTitle = f.title
42
feedTitle = feedTitle.replace(/<[^>]*>/g, '')
44
var dbResult = DB.addFeed(feedTitle, f.url)
51
DB.updateFeedByXml(dbResult.feedId, f.link, f.description, feedTitle)
52
DB.addFeedTag(dbResult.feedId, tagId)
54
updateList.push({"source" : f.url, "link" : f.link, "id" : dbResult.feedId})
60
topicChoosen(tagId, updateList)
69
left: parent.left; right: parent.right
70
top: parent.top; bottom: parent.bottom
73
model: suggestionTopicsModel
75
header: ListItem.Header {
76
ListItem.ThinDivider { }
77
text: i18n.tr("Add your new feeds to a topic")
82
height: tfNewTopicName.height + units.gu(2)
85
objectName: "newTopic"
88
placeholderText: i18n.tr(" + New topic")
90
width: parent.width - units.gu(4)
92
horizontalCenter: parent.horizontalCenter
93
verticalCenter: parent.verticalCenter
97
var tagName = text.replace(/^\s+|\s+$/g, '') // Trimming whitespaces.
98
if (tagName != "") { // Check that tagName contains only spaces.
100
/* Make first letter capital.
102
tagName = tagName.charAt(0).toUpperCase() + tagName.slice(1)
104
var dbResult = DB.addTag(tagName)
106
if (dbResult.error) {
107
PopupUtils.open(errorDialogComponent, chooseTopicPage,
108
{"text" : i18n.tr("A topic with this name already exists"),
109
"title" : i18n.tr("Warning")})
113
suggestionTopicsModel.append({"tagName" : tagName,
114
"tagId" : dbResult.tagId})
118
appendFeedsToTopic(dbResult.tagId)
120
PopupUtils.open(errorDialogComponent, chooseTopicPage,
121
{"text" : i18n.tr("Topic name can't contain only whitespaces"),
122
"title" : i18n.tr("Warning")})
128
delegate: ListItem.Standard {
129
objectName: "topicItem"
133
console.log("Topic selected", model.tagId, model.tagName)
135
appendFeedsToTopic(model.tagId)
141
id: suggestionTopicsModel