Skip to content

Commit 0ebc1cc

Browse files
committed
Merge pull request #82 from FoxUSA/Fox-Working
Fox working
2 parents b8d6c18 + eda1f57 commit 0ebc1cc

22 files changed

+282
-168
lines changed

OpenNote/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
/bower_components
22
/node_modules
3+
/Service

OpenNote/bower.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88
"dependencies": {
99
"jquery": "2.0.3",
1010
"bootstrap": "3.1.1",
11-
"angular": "1.2.16",
12-
"angular-route": "1.2.16",
13-
"angular-resource": "1.2.16",
14-
"angular-sanitize": "1.2.16",
15-
"angular-animate": "1.2.16",
16-
"angular-mocks": "1.2.16",
11+
"angular": "1.2.21",
12+
"angular-route": "1.2.21",
13+
"angular-resource": "1.2.21",
14+
"angular-sanitize": "1.2.21",
15+
"angular-animate": "1.2.21",
16+
"angular-mocks": "1.2.21",
1717
"ckeditor": "ckeditor/ckeditor-releases#full/4.4.x",
1818
"angular-ui-tree": "2.1.2",
1919
"alertify": "0.3.10",

OpenNote/index.html

Lines changed: 12 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
<head>
44
<meta charset="UTF-8">
55
<meta name="description" content="description">
6+
7+
<!-- Disable scrolling and zooming to make app feed more native -->
8+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
69

710
<title>OpenNote</title>
811

@@ -42,13 +45,6 @@
4245
<script src="openNote/openNote.js" type="text/javascript"></script>
4346
<script src="openNote/openNote.config.js" type="text/javascript"></script>
4447
<script src="openNote/router.js" type="text/javascript"></script>
45-
46-
<!-- Controllers -->
47-
<script src="openNote/controllers/loginController.js" type="text/javascript"></script>
48-
<script src="openNote/controllers/folderController.js" type="text/javascript"></script>
49-
<script src="openNote/controllers/noteController.js" type="text/javascript"></script>
50-
<script src="openNote/controllers/listController.js" type="text/javascript"></script>
51-
<script src="openNote/controllers/searchController.js" type="text/javascript"></script>
5248

5349
<!-- Services -->
5450
<script src="openNote/services/userService.js" type="text/javascript"></script>
@@ -62,50 +58,19 @@
6258
<script src="openNote/factories/folderFactory.js" type="text/javascript"></script>
6359
<script src="openNote/factories/noteFactory.js" type="text/javascript"></script>
6460

65-
<!-- Animations -->
66-
<script src="openNote/animations/waveAnimation.js" type="text/javascript"></script>
61+
<!-- Controllers -->
62+
<script src="openNote/controllers/loginController.js" type="text/javascript"></script>
63+
<script src="openNote/controllers/folderController.js" type="text/javascript"></script>
64+
<script src="openNote/controllers/noteController.js" type="text/javascript"></script>
65+
<script src="openNote/controllers/listController.js" type="text/javascript"></script>
66+
<script src="openNote/controllers/searchController.js" type="text/javascript"></script>
6767

6868
</head>
6969
<body>
70-
<div id="menu" class="ng-hide fadeIn" ng-show="showMenu">
71-
<div class="navbar-header">
72-
<div class="left">
73-
<button type="button" class="customButton" id="home" onclick="window.location.href='#/folder';" data-intro="{{helpContent.homeButton}}">Notes</button>
74-
</div>
75-
<div class="right">
76-
<button type="button" class="navbar-toggle noPadding noMargin" data-toggle="collapse" data-target=".navbar-collapse">
77-
Options
78-
</button>
79-
</div>
80-
</div>
81-
<div class="navbar-collapse collapse noShadow">
82-
<ul class="nav navbar-nav navbar-right">
83-
<li ng-repeat="button in buttons">
84-
<button type="button" class="customButton" ng-click="button.action();" data-intro="{{button.helpText}}">{{button.text}}</button>
85-
</li>
86-
<li ng-show="showHelpButton">
87-
<button type="button" class="customButton" onclick="introJs().start();">Help</button>
88-
</li>
89-
<li ng-show="showLogOutButton">
90-
<button type="button" class="customButton" ng-click="logOut();">Log out</button>
91-
</li>
92-
</ul>
93-
</div>
94-
</div>
70+
<div id="menu" class="ng-hide fadeIn" ng-show="showMenu" ng-include="'openNote/partials/navBarPartial.html'"></div>
9571

96-
<div class="col-lg-2 col-md-3 col-sm-4">
97-
<div id="sideBar" class="ng-hide noPadding fadeIn" ng-controller="listController" ng-show="showSideBar" data-intro="{{helpContent.listArea}}">
98-
<div id="folderList">
99-
<div ui-tree="options" id="tree-root">
100-
<ol ui-tree-nodes="" ng-model="data.foldersInside" >
101-
<li ng-repeat="folder in data.foldersInside" ui-tree-node ng-include="'openNote/partials/treePartial.html'" data-collapsed="!node.collapsed"></li>
102-
</ol>
103-
</div>
104-
</div>
105-
</div>
106-
</div>
72+
<div class="col-lg-2 col-md-3 col-sm-4" ng-include="'openNote/partials/listPartial.html'"></div>
10773

108-
<div class="col-lg-10 col-md-9 col-sm-8" ng-view data-intro="{{helpContent.viewArea}}">
109-
</div>
74+
<div class="col-lg-10 col-md-9 col-sm-8" ng-view data-intro="{{helpContent.viewArea}}"> </div>
11075
</body>
11176
</html>

OpenNote/openNote/animations/waveAnimation.js

Lines changed: 0 additions & 13 deletions
This file was deleted.

OpenNote/openNote/controllers/folderController.js

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11

2-
openNote.controller("folderController", function($scope, $rootScope, $location, $routeParams, folderFactory, config) {
2+
openNote.controller("folderController", function( $scope,
3+
$rootScope,
4+
$location,
5+
$routeParams,
6+
folderFactory,
7+
config,
8+
$timeout) {
39
$rootScope.buttons = [];
410
$scope.folderEditMode = false;
511
$scope.currentFolder = new folderFactory();
@@ -54,12 +60,14 @@ openNote.controller("folderController", function($scope, $rootScope, $location,
5460
/**
5561
* Load folder contents
5662
*/
57-
$scope.currentFolder.$get({id:$routeParams.id}).then(function(data){
58-
//Do they have anything to display?
59-
if($scope.currentFolder.id==null && $scope.currentFolder.foldersInside.length==0){
60-
$scope.currentFolder.name=null;//resets title
61-
alertify.alert("It looks like you dont have any folders. You can create one using the \"New Folder\" button in the top right of the page.");
62-
}
63+
$timeout(function(){
64+
$scope.currentFolder.$get({id:$routeParams.id}).then(function(data){
65+
//Do they have anything to display?
66+
if($scope.currentFolder.id==null && $scope.currentFolder.foldersInside.length==0){
67+
$scope.currentFolder.name=null;//resets title
68+
alertify.alert("It looks like you dont have any folders. You can create one using the \"New Folder\" button in the top right of the page.");
69+
}
70+
});
6371
});
6472

6573
/**
@@ -74,7 +82,7 @@ openNote.controller("folderController", function($scope, $rootScope, $location,
7482
* fade out all folders
7583
*/
7684
$scope.fadeOutFolders = function(callback){
77-
if($scope.currentFolder.foldersInside.length>0)
85+
if($scope.currentFolder.foldersInside !=null && $scope.currentFolder.foldersInside.length>0)
7886
$(".folder").fadeOut(config.fadeSpeedShort(),function(){
7987
$scope.$apply(function(){
8088
callback();

OpenNote/openNote/controllers/listController.js

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@
66
/**
77
* Control
88
*/
9-
openNote.controller("listController", function($scope, $rootScope, folderFactory) {
9+
openNote.controller("listController", function( $scope,
10+
$rootScope,
11+
folderFactory,
12+
$timeout,
13+
userService) {
1014
$scope.data = new folderFactory();
1115

1216
/**
@@ -43,7 +47,11 @@ openNote.controller("listController", function($scope, $rootScope, folderFactory
4347
* Load list view
4448
*/
4549
$rootScope.$on("reloadListView", function(event, args) {
46-
$scope.data.$get({levels:100, includeNotes: false});
50+
$scope.data.$get({levels:100, includeNotes: false}).then(function(result){
51+
$scope.treeBuffer = 0;
52+
$scope.data=result;
53+
increaseTreeBuffer();
54+
});
4755
});
4856

4957
/**
@@ -76,7 +84,6 @@ openNote.controller("listController", function($scope, $rootScope, folderFactory
7684

7785
sourceFolder.__proto__=folderType.__proto__;//Cast this object as a resources
7886

79-
8087
sourceFolder.parrentFolderID=destID;
8188
sourceFolder.$update().then(function(){//wait for a response
8289
//fire off an event to tell everyone we just modified a folder
@@ -90,9 +97,24 @@ openNote.controller("listController", function($scope, $rootScope, folderFactory
9097
$rootScope.$emit("reloadListView", {}); //refresh either way
9198
//event.source.nodeScope.$$apply = false;
9299
//TODO if they cancel reset list instead of re pulling it
93-
94100
});
95101
}
96102
}
97103
};
104+
105+
/**
106+
* Render list slowly
107+
*/
108+
var increaseTreeBuffer = function(){
109+
if($scope.treeBuffer<=100) {
110+
$scope.treeBuffer++;
111+
$timeout(increaseTreeBuffer, 500);
112+
}
113+
else
114+
$rootScope.$emit("listLoaded", {});//Tell the world we are done
115+
}
116+
117+
//Load the lists initially
118+
if(userService.hasValidToken())
119+
$rootScope.$emit("reloadListView");
98120
});

OpenNote/openNote/controllers/loginController.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,11 @@ openNote.controller("loginController", function($scope, $rootScope, userService,
9292
$scope.$apply(function(){
9393
alertify.success("Credentials Accepted");
9494
$rootScope.$emit("reloadListView", {}); //send and event to tell the list view to reload
95-
$location.path("/folder/");
95+
96+
if($rootScope.entryURL==null)//send them to the page if they requested
97+
$location.path("/folder/");
98+
else
99+
$location.path($rootScope.entryURL)
96100
});
97101
});
98102
}

OpenNote/openNote/controllers/noteController.js

Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,7 @@ openNote.controller("noteController", function( $scope, $rootScope, $routeParams
3333
return {
3434
text: "Clear",
3535
action: function(){
36-
alertify.confirm("Are you sure you want to clear your changes?",
37-
function(confirm) {
38-
if(!confirm)
39-
return;
40-
41-
$(".notePartial").fadeOut(config.fadeSpeedShort(),function(){
42-
$scope.$apply(function(){
43-
$location.url("/folder/"+$scope.note.folderID);
44-
});
45-
});
46-
}
47-
);
36+
$scope.clear();
4837
},
4938
helpText: $rootScope.helpContent.clearButton
5039
};
@@ -63,6 +52,8 @@ openNote.controller("noteController", function( $scope, $rootScope, $routeParams
6352
CKEDITOR.replace("note", config);
6453
$rootScope.buttons=[];
6554

55+
attachWindowUnload();
56+
6657
//Add new buttons
6758
$rootScope.buttons.push(saveButton());
6859
$rootScope.buttons.push(clearButton());
@@ -100,7 +91,6 @@ openNote.controller("noteController", function( $scope, $rootScope, $routeParams
10091
* Save a note
10192
*/
10293
$scope.save = function(){
103-
10494
$scope.note.note = CKEDITOR.instances["note"].getData();
10595

10696
//Insert only logic
@@ -109,6 +99,7 @@ openNote.controller("noteController", function( $scope, $rootScope, $routeParams
10999

110100
$(".notePartial").fadeOut(config.fadeSpeedShort());
111101
$scope.note.$save().then(function(){
102+
detachWindowUnload();
112103
$location.url("/note/"+$scope.note.id)
113104
alertify.success("Note Saved"); //all done. close the notify dialog
114105
});
@@ -127,17 +118,52 @@ openNote.controller("noteController", function( $scope, $rootScope, $routeParams
127118
var folderID = $scope.note.folderID;//need to keep track of this because we are about to delete it
128119
$(".notePartial").fadeOut(config.fadeSpeedShort());
129120
$scope.note.$remove({id: $scope.note.id}).then(function(){
121+
detachWindowUnload();
130122
alertify.success("Note Deleted",5); //all done. close the notify dialog
131123
$location.url("/folder/"+folderID);
132124
});
133125
}
134126
);
135127
}
136128

129+
/**
130+
* Reset changes
131+
*/
132+
$scope.clear = function(){
133+
alertify.confirm("Are you sure you want to clear your changes?",
134+
function(confirm) {
135+
if(!confirm)
136+
return;
137+
138+
$(".notePartial").fadeOut(config.fadeSpeedShort(),function(){
139+
$scope.$apply(function(){
140+
detachWindowUnload();
141+
$location.url("/folder/"+$scope.note.folderID);
142+
});
143+
});
144+
});
145+
};
146+
137147
/**
138148
* Mark html as trusted
139149
*/
140150
$scope.trustHTML = function(html) {
141151
return $sce.trustAsHtml(html);
142152
}
153+
154+
/**
155+
* Attach window on-load listener
156+
*/
157+
var attachWindowUnload = function(){
158+
window.onbeforeunload = function() {
159+
return "Are you sure you want to navigate away?";//Keep the page from closing
160+
};
161+
}
162+
163+
/**
164+
* Remove window on-load listener
165+
*/
166+
var detachWindowUnload = function(){
167+
window.onbeforeunload = null;
168+
}
143169
});

OpenNote/openNote/controllers/searchController.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ openNote.controller("searchController", function( $scope,
4848
* fade out all folders
4949
*/
5050
$scope.fadeOutFolders = function(callback){
51-
if($scope.currentFolder.foldersInside.length>0)
51+
if($scope.currentFolder.foldersInside !=null && $scope.currentFolder.foldersInside.length>0)
5252
$(".folder").fadeOut(config.fadeSpeedShort(),function(){
5353
$scope.$apply(function(){
5454
callback();

OpenNote/openNote/directives/randomFadeInDirective.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@ openNote.directive("randomFadeInDirective", function($timeout,config) {
55
return {
66
restrict: "C",//class
77
link: function(scope, element, attrs) {
8-
$timeout(function(){
9-
element.fadeIn(config.fadeSpeedLong());
10-
},500);//give everything time to load
8+
element.hide().fadeIn(config.fadeSpeedLong());
119
}
1210
};
1311
});

0 commit comments

Comments
 (0)