did semi full refuctor

This commit is contained in:
okalintu
2016-08-01 20:40:20 +03:00
parent 8e160783d2
commit 444ea7eb74
15 changed files with 107 additions and 436 deletions
+7 -9
View File
@@ -1,18 +1,16 @@
<h1> Jäsenlista </h1>
<h1> Jäsenlista </h1>
<script src="../js/post_member.js"></script>
<script src="../js/remove_member.js"></script>
<div ng-app="getMemberApp" ng-controller="getController">
<div >
<table id="choose-address-table" class="ui-widget ui-widget-content">
<thead>
<tr ng-repeat="ui-widget-header">
<th>ID</th>
<th>Etunimi</th>
<th>Sukunimi</th>
<th>Sähköposti</th>
<th>AYY-jäsen</th>
<th>Sähköposti</th>
<th>AYY-jäsen</th>
<th>JAS-listalla</th>
<th>Asuinpaikka</th>
</tr>
@@ -32,5 +30,5 @@
</tr>
</tbody>
</table>
</div>
</div>
+9 -15
View File
@@ -1,37 +1,31 @@
<h1> Lisää jäsen </h1>
<script src="../js/post_member.js"></script>
<div ng-app="postApp" ng-controller="postController">
<h1> Lis jsen </h1>
<div id="input_form">
<form name="memberForm" ng-submit="submitForm()">
<div class="form-group">
<label>Etunimi: </label>
<input id="firstNameField" required type="text" placeholder="Sähkö" class="form-control" ng-model="firstName"></input>
<label>Etunimi: </label>
<input id="firstNameField" required type="text" placeholder="Shk" class="form-control" ng-model="firstName"></input>
</div>
<div class="form-group">
<label>Sukunimi: </label>
<input id="lastNameField" required type="text" placeholder="Insinööri" class="form-control" ng-model="lastName"></input>
<label>Sukunimi: </label>
<input id="lastNameField" required type="text" placeholder="Insinri" class="form-control" ng-model="lastName"></input>
</div>
<div class="form-group">
<label>Sähköposti: </label>
<label>Shkposti: </label>
<input id="emailField" required type="text" placeholder="sahko.insinoori@aalto.fi" class="form-control" ng-model="email"></input>
</div>
<div class="form-group">
<label>AYY jäsen: </label>
<label>AYY jsen: </label>
<input type="checkbox" id="AYY" value="0" ng-model="AYY"></input>
</div>
<div class="form-group">
<label>JAS-listaan: </label>
<label>JAS-listaan: </label>
<input type="checkbox" id="JAS" value="0" ng-model="JAS"></input>
</div>
<div class="form-group">
<label>Asuinkunta: </label>
<label>Asuinkunta: </label>
<input id="PORField" required type="text" placeholder="Otaniemi" class="form-control" ng-model="POR"></input>
</div>
<button ng-click="send()" type="submit" id="sendmember">Tallenna</button>
</form>
</div>
</div>
-5
View File
@@ -1,5 +0,0 @@
var appData = {
"views": {
}
}
-43
View File
@@ -1,43 +0,0 @@
$(function() {
// if(Modernizr.history){
var $mainContent = $("#main-content"),
$pageWrap = $("#page-content-wrapper"),
baseHeight = 0,
$el;
$pageWrap.height($pageWrap.height());
baseHeight = $pageWrap.height() - $mainContent.height();
$("nav").delegate("a", "click", function() {
_link = $(this).attr("href");
//history.pushState(null, null, _link);
loadContent(_link);
return false;
});
function loadContent(href){
$mainContent
.find("#main-content")
.fadeOut(200, function() {
$mainContent.hide().load(href + " #main-content", function() {
$mainContent.fadeIn(200, function() {
$pageWrap.animate({
height: baseHeight + $mainContent.height() + "px"
});
});
console.log(href);
});
});
}
$(window).bind('popstate', function(){
_link = location.pathname.replace(/^.*[\\\/]/, ''); //get filename only
loadContent(_link);
});
//} // otherwise, history is not supported, so nothing fancy here.
});
-59
View File
@@ -1,59 +0,0 @@
//Here are the links to put inside index
//https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js
//https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.map
//https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.6/angular.min.js
//https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.6/angular.min.js.map
/*Lataa koko data js:ään controlleri, jolla oma scope, jossa muuttujia
https://docs.angularjs.org/api/ng/directive/ngRepeat check this
*/
/*
Hae koko datapaketti serveriltä. Näytä lista kokonaan.
Typeeminen hakukenttään -> datapaketin filteröintiä
interaktiivinen, reaaliaikainen setti
*/
var app = angular.module("getMemberApp", []);
app.controller("getController", function($scope, $http){
$http.get("/members/api/members").then(function(response){
$scope.members = response.data.records;
});
$scope.removeMember = function(id){
var index = -1;
var comArr = eval( $scope.members );
for( var i = 0; i < comArr.length; i++ ) {
if( comArr[i].id === id ) {
index = i;
break;
}
}
if( index === -1 ) {
alert( "Something gone wrong" );
}
$scope.members.splice( index, 1 );
};
});
/*$.get("/members/api/members", function(data){
alert(data);
});
function getAll() {
return $http.get('/members/api/members');
}
function createUser(user) {
return $http.post('members/api/members', user);
}
function updateUser(user) {
return $http.put('/members/api/members', user.id, user);
}
function deleteUser(user) {
return $http.delete('/members/api/members', user);
}
*/
+18
View File
@@ -0,0 +1,18 @@
app.controller("getController", function($scope, $http){
$http.get("/members/api/members").then(function(response){
$scope.members = response.data;
});
});
app.controller("postController", function($scope, $http) {
$scope.firstName = "";
$scope.lastName = "";
$scope.email = "";
$scope.AYY = "";
$scope.JAS = "";
$scope.POR = "";
$scope.send = function() {
$http.post("/members/api/member", {"first_name":$scope.firstName, "last_name":$scope.lastName, "email":$scope.email, "AYY":$scope.AYY, "jas":$scope.JAS, "POR":$scope.POR});
}
});
+20
View File
@@ -0,0 +1,20 @@
var app = angular.module('memberApp', ['ngRoute']);
app.config(['$routeProvider', function($routeProvider){
$routeProvider
.when('/',{
templateUrl:"/static/html/jasenlista.html",
controller:'getController',
})
.when('/list',{
templateUrl:"/static/html/jasenlista.html",
controller:'getController',
})
.when('/add',{
templateUrl:"/static/html/lisaa_jasen.html",
controller:'postController',
})
.otherwise({
'redirectTo':"/"
})
}]);
File diff suppressed because one or more lines are too long
-49
View File
@@ -1,49 +0,0 @@
/*var firstNameField = document.getElementById('firstNameField').value;
var lastNameField = document.getElementById('lastNameField').value;
var emailField = document.getElementById('emailField').value;
var ayy = document.getElementById('AYY').value;
var jas = document.getElementById('JAS').value;
var porField = document.getElementById('PORField').value;
*/
function postMember(data){
//post json dada to server
//url /members/api/member
$http.post("/members/api/member", JSON.stringify(data));
}
var app = angular.module("sendMember", []);
app.controller("postController", function($scope) {
$scope.firstName = "";
$scope.lastName = "";
$scope.email = "";
$scope.AYY = "";
$scope.JAS = "";
$scope.POR = "";
$scope.send = function() {
postMember({"first_name":$scope.firstName, "last_name":$scope.lastName, "email":$scope.email, "AYY":$scope.AYY, "jas":$scope.JAS, "POR":$scope.POR});
}
});
/*
var subButton = document.getElementById('sendmember');
$(subButton).click(function(){
console.log("Jee");
$.post("/members/api/member",
{
first_name: document.getElementById('firstNameField').value,
last_name: document.getElementById('lastNameField').value,
email: document.getElementById('emailField').value,
AYY: document.getElementById('AYY').value,
jas: document.getElementById('JAS').value,
POR: document.getElementById('PORField').value
},
function(data, status){
alert("Data: " + data + "\nStatus: " + status);
});
});
*/
-18
View File
@@ -1,18 +0,0 @@
var app = angular.module("removeMember", []);
app.controller("getController", function($scope) {
$scope.removeMember = function(id){
var index = -1;
var comArr = eval( $scope.members );
for( var i = 0; i < comArr.length; i++ ) {
if( comArr[i].id === id ) {
index = i;
break;
}
}
if( index === -1 ) {
alert( "Something gone wrong" );
}
$scope.members.splice( index, 1 );
};
)};
-61
View File
@@ -1,61 +0,0 @@
/*
var CommentBox = React.createClass
({
loadCommentsFromServer: function() {
$.ajax({
url: this.props.url,
dataType: 'json',
cache: false,
success: function(data) {
this.setState({data: data});
}.bind(this),
error: function(xhr, status, err) {
console.error(this.props.url, status, err.toString());
}.bind(this)
});
},
handleCommentSubmit: function(comment)
{
var comments = this.state.data;
// Optimistically set an id on the new comment. It will be replaced by an
// id generated by the server. In a production application you would likely
// not use Date.now() for this and would have a more robust system in place.
comment.id = Date.now();
var newComments = comments.concat([comment]);
this.setState({data: newComments});
$.ajax
({
url: this.props.url,
dataType: 'json',
type: 'POST',
data: comment,
success: function(data) {
this.setState({data: data});
}.bind(this),
error: function(xhr, status, err) {
this.setState({data: comments});
console.error(this.props.url, status, err.toString());
}.bind(this)
});
},
getInitialState: function()
{
return {data: []};
},
componentDidMount: function()
{
this.loadCommentsFromServer();
setInterval(this.loadCommentsFromServer, this.props.pollInterval);
},
render: function()
{
return (
<div className="commentBox">
<h1>Comments</h1>
<CommentList data={this.state.data} />
<CommentForm onCommentSubmit={this.handleCommentSubmit} />
</div>
);
}
});
*/
-172
View File
@@ -1,172 +0,0 @@
<!DOCTYPE html>
<html lang="en" ng-app="memberlistApp">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="uli uli">
<meta name="author" content="veedeeämkoo">
<title>Jäsenrekisteri</title>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<!-- Bootstrap -->
<link href = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel = "stylesheet">
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<!-- Custom CSS -->
<link href="../static/css/simple-sidebar.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src = "https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src = "https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<!--AngularJS-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.6/angular.min.js"></script>
<script src = "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular-route.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js'></script>
{%load staticfiles %}
</head>
<body>
<div id="wrapper">
<!-- Sidebar -->
<div id="sidebar-wrapper">
<ul class="sidebar-nav">
<li><a href="#/list">Listaa jäsenet</a></li>
<li><a href="#/add">Lisää jäsen</a></li>
</ul>
</div>
<!-- /#sidebar-wrapper -->
<!-- Page Content -->
<div class="col-lg-12">
<h1>Aalto-yliopiston Sähköinsinöörikilta RY:n jäsenrekisteri</h1>
<div ng-view></div>
<script src="../js/remove_member.js"></script>
<script src="../js/post_member.js"></script>
<script type="text/ng-template" id="addStudent.htm">
<div ng-app="getMemberApp" ng-controller="getController">
<table id="choose-address-table" class="ui-widget ui-widget-content">
<thead>
<tr ng-repeat="ui-widget-header">
<th>ID</th>
<th>Etunimi</th>
<th>Sukunimi</th>
<th>Sähköposti</th>
<th>AYY-jäsen</th>
<th>JAS-listalla</th>
<th>Asuinpaikka</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="x in members">
<td>{{ x.id }}</td>
<td>{{ x.first_name }}</td>
<td>{{ x.last_name }}</td>
<td>{{ x.email }}</td>
<td>{{ x.AYY }}</td>
<td>{{ x.jas }}</td>
<td>{{ x.POR }}</td>
<td>
<input type="button" value="Remove" class="btn btn-primary" ng-click="removeMember(x.id)"></input>
</td>
</tr>
</tbody>
</table>
</div>
</script>
<script type="text/ng-template" id="viewStudents.htm">
<div ng-app="postApp" ng-controller="postController">
<div id="input_form">
<form name="memberForm" ng-submit="submitForm()">
<div class="form-group">
<label>Etunimi: </label>
<input id="firstNameField" required type="text" placeholder="Sähkö" class="form-control" ng-model="firstName"></input>
</div>
<div class="form-group">
<label>Sukunimi: </label>
<input id="lastNameField" required type="text" placeholder="Insinööri" class="form-control" ng-model="lastName"></input>
</div>
<div class="form-group">
<label>Sähköposti: </label>
<input id="emailField" required type="text" placeholder="sahko.insinoori@aalto.fi" class="form-control" ng-model="email"></input>
</div>
<div class="form-group">
<label>AYY jäsen: </label>
<input type="checkbox" id="AYY" value="0" ng-model="AYY"></input>
</div>
<div class="form-group">
<label>JAS-listaan: </label>
<input type="checkbox" id="JAS" value="0" ng-model="JAS"></input>
</div>
<div class="form-group">
<label>Asuinkunta: </label>
<input id="PORField" required type="text" placeholder="Otaniemi" class="form-control" ng-model="POR"></input>
</div>
<button ng-click="send()" type="submit" id="sendmember">Tallenna</button>
</form>
</div>
</div>
</script>
</div>
<!-- /#page-content -->
<script>
var memberlistApp = angular.module("memberlistApp", ['ngRoute']);
memberlistApp.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/list', {
templateUrl: 'addStudent.htm',
controller: 'AddStudentController'
}).
when('/add', {
templateUrl: 'viewStudents.htm',
controller: 'ViewStudentsController'
}).
otherwise({
redirectTo: '/list'
});
}]);
memberlistApp.controller('AddStudentController', function($scope) {
$scope.content = "This page will be used to display add student form";
});
memberlistApp.controller('ViewStudentsController', function($scope) {
$scope.content = "This page will be used to display all the students";
});
</script>
<!--<script src="../static/appData.js"></script>
<script src="lib/angular/angular.js"></script>
<script src="../static/js/app.js"></script>
<script src="../static/js/services.js"></script>
<script src="../static/js/controllers.js"></script>-->
</div>
</body>
</html>
+46
View File
@@ -0,0 +1,46 @@
<!DOCTYPE html>
<html lang="en" ng-app="memberApp">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="uli uli">
<meta name="author" content="veedeeämkoo">
<title>Jäsenrekisteri</title>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<link href = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel = "stylesheet">
<script src = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.6/angular.js"></script>
<script src = "http://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular-route.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
{%load staticfiles %}
<script src="/static/js/members_routers.js"></script>
<script src="/static/js/members_controllers.js"></script>
<link href="/static/css/simple-sidebar.css" rel="stylesheet">
</head>
<body>
<div id="wrapper">
<!-- Sidebar -->
<div id="sidebar-wrapper">
<ul class="sidebar-nav">
<li><a href="#/list">Listaa jäsenet</a></li>
<li><a href="#/add">Lisää jäsen</a></li>
</ul>
</div>
<!-- /#sidebar-wrapper -->
<!-- Page Content -->
<div class="col-lg-12">
<h1>Aalto-yliopiston Sähköinsinöörikilta RY:n jäsenrekisteri</h1>
<div ng-view></div>
</div>
</body>
</html>
+1 -1
View File
@@ -5,7 +5,7 @@ from members.models import Member, MemberRequest
import json
def index(request, *args, **kwargs):
return render(request, 'index.html',{})
return render(request, 'members_index.html',{})
def members(request, *args, **kwargs):
mems = list(map(lambda m: m.get_dict(),Member.objects.all()))