diff --git a/app/controllers/main.controller.js b/app/controllers/main.controller.js index e4f61a9..3388baa 100644 --- a/app/controllers/main.controller.js +++ b/app/controllers/main.controller.js @@ -1,176 +1,170 @@ var pageviewChartModel = require('../models/pageviewchart.model'); module.exports = function($scope, pageViews, searchService, chartService) { chart = chartService.createChart('myChart', new pageviewChartModel()); $scope.dateFrom = new Date(Date.parse("2016-01-01")); $scope.dateTo = new Date(Date.parse("2016-04-01")); chart.setDateRange($scope.dateFrom, $scope.dateTo); $scope.groups = []; $scope.search = { str: "", list: [] }; $scope.chart = { selected: "Line" }; $scope.dateToStr = function(date) { var day = date.getDate() + ''; var month = date.getMonth() + 1 + ''; var year = date.getFullYear() + ''; var month = month < 10 ? '0' + month: month; - console.log(month); var day = day < 10 ? '0' + day: day; return year+month+day; }; $scope.addNewArticle = function (name) { pageViews.query({ project: "sv.wikipedia", article: name, from: $scope.dateToStr($scope.dateFrom), to: $scope.dateToStr($scope.dateTo), }).$promise.then(function(result) { result.article.name = name; $scope.groups.push({ articles:[result.article], name: name }); chart.addDataset(name, result.article.views); }); $scope.search = { str: "", list: [] }; }; function reloadAll() { var g = angular.copy($scope.groups, g); $scope.groups = []; chart.clearDataset(); angular.forEach(g, function (val, key) { $scope.addNewArticle(val.name); }); chart.setDateRange($scope.dateFrom, $scope.dateTo); } $scope.projects = [ // TODO: Proper externalization and language checking {name: "Wikipedia", url: "$lang$.wikipedia", multilang: true}, {name: "Wikiversity", url: "$lang$.wikiversity", multilang: true}, {name: "Wikisource", url: "$lang$.wikisource", multilang: true}, {name: "Wikinews", url: "$lang$.wikinews", multilang: true}, {name: "Wikibooks", url: "$lang$.wikibooks", multilang: true}, {name: "Wikiquote", url: "$lang$.wikiquote", multilang: true}, {name: "Wikispecies", url: "species.wikimedia", multilang: false}, {name: "Wikivoyage", url: "$lang$.wikivoyage", multilang: true}, {name: "Wikidata", url: "www.wikidata", multilang: false}, {name: "Wikicommons", url: "commons.wikimedia", multilang: false}, {name: "Metawiki", url: "meta.wikimedia", multilang: false} ]; $scope.chosen = { proj: $scope.projects[0].name, lang: "Svenska" }; $scope.changeChosen = function(name, dropdown){ $scope.chosen[dropdown] = name; }; - $scope.$watch('search.str.length', function () { - var searchstr = $scope.search.str; - if(searchstr.length <= 0) { - $scope.search.list = []; - return; - } - searchService.query({ + $scope.searchArticle = function (str) { + var searchstr = str; + return searchService.query({ namespace: 'sv.wikipedia', //TODO str: searchstr - }).then(function(data) { - if($scope.search.str == searchstr) - $scope.search.list = data.data; + }).then(function(response) { + return response.data.url; }); - }); + }; // DATEPICKER // TODO: Move everything related to bottom bar date pickers // to separate controller $scope.today = function() { $scope.dt = new Date(); }; $scope.today(); $scope.clear = function() { $scope.dt = null; }; $scope.inlineOptions = { customClass: getDayClass, minDate: new Date(), showWeeks: true }; $scope.dateOptions = { formatYear: 'yy', maxDate: new Date(), minDate: new Date(), startingDay: 1 }; $scope.toggleMin = function() { $scope.inlineOptions.minDate = $scope.inlineOptions.minDate ? null : new Date(); $scope.dateOptions.minDate = $scope.inlineOptions.minDate; }; $scope.toggleMin(); $scope.openFrom = function() { $scope.popupFrom.opened = true; }; $scope.openTo = function() { $scope.popupTo.opened = true; }; $scope.setDate = function (year, month, day) { $scope.dt = new Date(year, month, day); }; $scope.popupFrom = { opened: false }; $scope.popupTo = { opened: false }; $scope.$watch('dateFrom', reloadAll); $scope.$watch('dateTo', reloadAll); function getDayClass(data) { var date = data.date, mode = data.mode; if (mode === 'day') { var dayToCheck = new Date(date).setHours(0, 0, 0, 0); for (var i = 0; i < $scope.events.length; i++) { var currentDay = new Date($scope.events[i].date).setHours(0, 0, 0, 0); if (dayToCheck === currentDay) { return $scope.events[i].status; } } } return ''; } }; diff --git a/app/index.html b/app/index.html index ac069b4..2413c18 100644 --- a/app/index.html +++ b/app/index.html @@ -1,155 +1,154 @@ Wikistats
- +
-
- - {{ s }} - + +
+ No Results Found

{{group.name}}
  • {{article.name}}
  • diff --git a/app/services/search.service.js b/app/services/search.service.js index 34e3d12..0f29a65 100644 --- a/app/services/search.service.js +++ b/app/services/search.service.js @@ -1,21 +1,21 @@ module.exports = function($http) { return { query: function(obj) { //TODO: validate return $http.jsonp('https://' + obj.namespace + '.org/w/api.php?format=json&list=search&utf8=&srlimit=5' + '&action=query&callback=JSON_CALLBACK&srsearch=' + obj.str, { transformResponse: function(data, headersGetter, status) { var obj = angular.fromJson(data); var titles = []; angular.forEach(obj.query.search, function(val, key) { titles.push(val.title); }); - return titles; + return {url: titles}; } }); } }; };