Commit c2b972be authored by Siddhant Sanyam's avatar Siddhant Sanyam

Resolved the Error handler

parents 7d7b70af 15d6eafd
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
/UNGProject/nbproject/ /UNGProject/nbproject/
/UNGProject/jquery_sheet_editor/ /UNGProject/jquery_sheet_editor/
/UNGProject/js/jquery/ /UNGProject/js/jquery/
/UNGProject/css/images/
/UNGProject/svg-edit/
/UNGProject/dav
# buildout # buildout
/bin/ /bin/
......
This diff is collapsed.
This diff is collapsed.
...@@ -121,8 +121,7 @@ div#wrapper_header { ...@@ -121,8 +121,7 @@ div#wrapper_header {
/* left */ /* left */
div.header-left { div.header-left {
margin-top: -4px; margin-top: -4px;
min-width: 32em; width: 32em;
width: 40%;
position: absolute; position: absolute;
} }
div.header-left h2 { div.header-left h2 {
...@@ -156,6 +155,11 @@ div#wrapper_header div.field a[name="document_title"]:hover { ...@@ -156,6 +155,11 @@ div#wrapper_header div.field a[name="document_title"]:hover {
background: none repeat scroll 0 0 #FFFFD6; background: none repeat scroll 0 0 #FFFFD6;
border: 1px solid #AAAAAA; border: 1px solid #AAAAAA;
} }
/* research bar */
div.input form {
margin-top: 0.5em;
float:right;
}
/* right */ /* right */
div.header-right{ div.header-right{
......
...@@ -25,20 +25,26 @@ SVGEditor = function() { ...@@ -25,20 +25,26 @@ SVGEditor = function() {
/** /**
* SVG documents * SVG documents
* editable documents must implements the following methods *
* getType : returns the type of a document * editable documents must implements the following arguments and methods
* type : a unique type ID
* saveEdition : set the argument as the new content of the document. Change last modification time and display the changes * saveEdition : set the argument as the new content of the document. Change last modification time and display the changes
* setAsCurrentDocument : set the document as currentDocument in the local storage and display its properties in the current page * setAsCurrentDocument : set the document as currentDocument in the local storage and display its properties in the current page
*
* @param arg : a json JSONTextDocument object to load
*/ */
var JSONIllustrationDocument = function() { var JSONIllustrationDocument = function(arg) {
JSONDocument.call(this);//inherits properties from JSONDocument JSONDocument.call(this,arg);//inherits properties from JSONDocument
this.type = "illustration"; if(arg) {this.load(arg);}
else {
this.type = "illustration";
}
} }
JSONIllustrationDocument.prototype = new JSONDocument();//inherits methods from JSONDocument JSONIllustrationDocument.prototype = new JSONDocument();//inherits methods from JSONDocument
JSONIllustrationDocument.prototype.saveEdition = function(content) { JSONIllustrationDocument.prototype.saveEdition = function(content) {
this.setLastUser(getCurrentUser()); this.setLastUser(getCurrentUser().getName());
this.setContent(content); this.setContent(content);
this.setLastModification(currentTime()); this.setLastModification(currentTime());
this.setAsCurrentDocument(); this.setAsCurrentDocument();
...@@ -53,8 +59,6 @@ JSONIllustrationDocument.prototype.setAsCurrentDocument = function() { ...@@ -53,8 +59,6 @@ JSONIllustrationDocument.prototype.setAsCurrentDocument = function() {
} }
getCurrentDocument = function() { getCurrentDocument = function() {
var doc = new JSONIllustrationDocument(); return new JSONIllustrationDocument(JSON.parse(localStorage.getItem("currentDocument")));
doc.load(JSON.parse(localStorage.getItem("currentDocument")));
return doc;
} }
...@@ -31,21 +31,29 @@ var Xinha = function() { ...@@ -31,21 +31,29 @@ var Xinha = function() {
/** /**
* Text documents * Text documents
* editable documents must implements the following methods *
* getType : returns the type of a document * editable documents must implements the following arguments and methods
* type : a unique type ID
* saveEdition : set the argument as the new content of the document. Change last modification time and display the changes * saveEdition : set the argument as the new content of the document. Change last modification time and display the changes
* setAsCurrentDocument : set the document as currentDocument in the local storage and display its properties in the current page * setAsCurrentDocument : set the document as currentDocument in the local storage and display its properties in the current page
*/
var JSONTextDocument = function() {
JSONDocument.call(this);//inherits properties from JSONDocument /**
this.type = "text"; * class JSONTextDocument
* @param arg : a json JSONTextDocument object to load
*/
var JSONTextDocument = function(arg) {
JSONDocument.call(this,arg);//inherits properties from JSONDocument
if(arg) {this.load(arg);}
else {
this.type = "text";
}
} }
JSONTextDocument.prototype = new JSONDocument();//inherits methods from JSONDocument JSONTextDocument.prototype = new JSONDocument();//inherits methods from JSONDocument
JSONTextDocument.prototype.saveEdition = function(content) { JSONTextDocument.prototype.saveEdition = function(content) {
this.setLastUser(getCurrentUser()); this.setLastUser(getCurrentUser().getName());
this.setContent(content); this.setContent(content);
this.setLastModification(currentTime()); this.setLastModification(currentTime());
this.setAsCurrentDocument(); this.setAsCurrentDocument();
...@@ -60,7 +68,5 @@ JSONTextDocument.prototype.setAsCurrentDocument = function() { ...@@ -60,7 +68,5 @@ JSONTextDocument.prototype.setAsCurrentDocument = function() {
} }
getCurrentDocument = function() { getCurrentDocument = function() {
var doc = new JSONTextDocument(); return new JSONTextDocument(JSON.parse(localStorage.getItem("currentDocument")));
doc.load(JSON.parse(localStorage.getItem("currentDocument")));
return doc;
} }
...@@ -21,7 +21,6 @@ var Page = function(page) { ...@@ -21,7 +21,6 @@ var Page = function(page) {
this.html = window.document; this.html = window.document;
this.xml = null; this.xml = null;
this.editor = null; this.editor = null;
//define as current page //define as current page
currentPage = this; currentPage = this;
if(page!=undefined) {this.loadXML("xml/"+page+".xml");} if(page!=undefined) {this.loadXML("xml/"+page+".xml");}
...@@ -139,13 +138,17 @@ setCurrentPage = function(page) {currentPage = page;} ...@@ -139,13 +138,17 @@ setCurrentPage = function(page) {currentPage = page;}
/* /*
* User Class * User Class
* stores useful information about a user and provides methods to manipulate them * stores useful information about a user and provides methods to manipulate them
* @param arg : a json User object to load
*/ */
var User = function(details) { var User = function(arg) {
this.name = "unknown"; if(arg) {this.load(arg);}
this.language = "en"; else {
this.storage = "http://www.unhosted-dav.com"; this.name = "unknown";
this.identityProvider = "http://www.webfinger.com"; this.language = "en";
this.displayPreferences = 15;//number of displayed document in the list this.storage = "http://www.unhosted-dav.com";
this.identityProvider = "http://www.webfinger.com";
this.displayPreferences = 15;//number of displayed document in the list
}
} }
User.prototype = new UngObject();//inherits from UngObject User.prototype = new UngObject();//inherits from UngObject
User.prototype.load({//add methods thanks to the UngObject.load method User.prototype.load({//add methods thanks to the UngObject.load method
...@@ -168,9 +171,7 @@ User.prototype.load({//add methods thanks to the UngObject.load method ...@@ -168,9 +171,7 @@ User.prototype.load({//add methods thanks to the UngObject.load method
}); });
getCurrentUser = function() { getCurrentUser = function() {
var user = new User(); return new User(JSON.parse(localStorage.getItem("currentUser")));
user.load(JSON.parse(localStorage.getItem("currentUser")));
return user;
} }
setCurrentUser = function(user) {localStorage.setItem("currentUser", JSON.stringify(user));} setCurrentUser = function(user) {localStorage.setItem("currentUser", JSON.stringify(user));}
...@@ -182,18 +183,24 @@ setCurrentUser = function(user) {localStorage.setItem("currentUser", JSON.string ...@@ -182,18 +183,24 @@ setCurrentUser = function(user) {localStorage.setItem("currentUser", JSON.string
* to manipulate these elements. * to manipulate these elements.
*/ */
/* JSON document */ /**
var JSONDocument = function() { * JSON document
this.language = getCurrentUser().getLanguage(); * @param arg : a json JSONDocument object to load
this.version = null; */
var JSONDocument = function(arg) {
this.author=getCurrentUser().getName(); if(arg) {this.load(arg);}
this.lastUser=getCurrentUser().getName(); else {
this.title="Untitled"; this.language = getCurrentUser().getLanguage();
this.content=""; this.version = null;
this.creation=currentTime();
this.lastModification=currentTime(); this.author=getCurrentUser().getName();
this.state=this.states.draft; this.lastUser=getCurrentUser().getName();
this.title="Untitled";
this.content="";
this.creation=currentTime();
this.lastModification=currentTime();
this.state=JSONDocument.prototype.states.draft;
}
} }
JSONDocument.prototype = new UngObject();//inherits from UngObject JSONDocument.prototype = new UngObject();//inherits from UngObject
...@@ -240,7 +247,8 @@ JSONDocument.prototype.load({//add methods thanks to the UngObject.load method ...@@ -240,7 +247,8 @@ JSONDocument.prototype.load({//add methods thanks to the UngObject.load method
save: function(instruction) { save: function(instruction) {
var doc = this; var doc = this;
saveFile(getDocumentAddress(this), doc, instruction); saveFile(getDocumentAddress(this), doc, instruction);
} },
remove: function(instruction) {deleteFile(getDocumentAddress(this), instruction);}
}); });
JSONDocument.prototype.states = { JSONDocument.prototype.states = {
draft:{"fr":"Brouillon","en":"Draft"}, draft:{"fr":"Brouillon","en":"Draft"},
...@@ -248,9 +256,7 @@ JSONDocument.prototype.states = { ...@@ -248,9 +256,7 @@ JSONDocument.prototype.states = {
deleted:{"fr":"Supprimé","en":"Deleted"} deleted:{"fr":"Supprimé","en":"Deleted"}
} }
getCurrentDocument = function() { getCurrentDocument = function() {
var doc = new JSONDocument(); return new JSONDocument(JSON.parse(localStorage.getItem("currentDocument")));
doc.load(JSON.parse(localStorage.getItem("currentDocument")));
return doc;
} }
setCurrentDocument = function(doc) {localStorage.setItem("currentDocument",JSON.stringify(doc));} setCurrentDocument = function(doc) {localStorage.setItem("currentDocument",JSON.stringify(doc));}
...@@ -269,28 +275,29 @@ getDocumentAddress = function(doc) {return "http://sidunhosted.com/ungdav/"+doc. ...@@ -269,28 +275,29 @@ getDocumentAddress = function(doc) {return "http://sidunhosted.com/ungdav/"+doc.
* open a dialog box to edit document information * open a dialog box to edit document information
*/ */
editDocumentSettings = function() { editDocumentSettings = function() {
loadFile("xml/xmlElements.xml", "html", function(data) { saveCurrentDocument();
$("rename", data).dialog({ loadFile("xml/xmlElements.xml", "html", function(data) {
autoOpen: true, $("rename", data).dialog({
height: 131, autoOpen: true,
width: 389, height: 131,
modal: true, width: 389,
buttons: { modal: true,
"Save": function(){ buttons: {
var doc = getCurrentDocument(); "Save": function(){
doc.setTitle($(this).find("#name").attr("value")); var doc = getCurrentDocument();
doc.setLanguage($(getCurrentDocument()).find("#language").attr("value")); doc.setTitle($(this).find("#name").attr("value"));
doc.setVersion($(getCurrentDocument()).find("#version").attr("value")); doc.setLanguage($(getCurrentDocument()).find("#language").attr("value"));
saveCurrentDocument(); doc.setVersion($(getCurrentDocument()).find("#version").attr("value"));
doc.setAsCurrentDocument();//diplay modifications saveCurrentDocument();
$(this).dialog("close"); doc.setAsCurrentDocument();//diplay modifications
}, $(this).dialog("close");
Cancel: function() { },
$(this).dialog("close"); Cancel: function() {
} $(this).dialog("close");
} }
}); }
} });
}
)} )}
saveCurrentDocument = function() { saveCurrentDocument = function() {
......
...@@ -33,49 +33,132 @@ UngObject.prototype.inherits = function(superClass) { ...@@ -33,49 +33,132 @@ UngObject.prototype.inherits = function(superClass) {
this.prototype.load(superClass.prototype); this.prototype.load(superClass.prototype);
} }
/* return true only if two objects are equals */
UngObject.prototype.equals = function(object) {
for (var property in object) {
if (this.hasOwnProperty(property)) {
var isEquals = this[property]&&typeof(this[property])=="object" ? UngObject.prototype.equals.call(this[property],object[property]) : this[property]===object[property];
if (!isEquals) {return false}
}
}
return true;
}
/** /**
* Class List * Class List
* this class provides usual API to manipulate list structure * this class provides usual API to manipulate list structure
* @param arg : a json list object
* @param contentType : the type of the elements of the list
*/ */
var List = function(arg) { var List = function(arg, contentType) {
this.content = new Array(); if(arg && arg.headElement) {
if(arg) {this.content = arg;} if(contentType) {
this.length = this.content.length; this.headElement=new contentType(arg.headElement);
} else {
this.headElement = arg.headElement;
}
this.length = arg.length;
this.previous = new List(arg.previous, contentType);
}
else {
this.nullElement();
}
} }
List.prototype = new UngObject(); List.prototype = new UngObject();
List.prototype.load ({ List.prototype.load({
nullElement: function() {
this.headElement = null;
this.previous = undefined;
this.length = 0;
},
size: function() {return this.length;}, size: function() {return this.length;},
put: function(key,value) { head: function() {return this.headElement;},
if(!this.content[key]) {this.length=this.length+1;} tail: function() {return this.previous;},
alert(""+this.length+this.content[key]); isEmpty: function() {return this.head()===null;},
this.content[key]=value; equals: function(list) {
return this.head().equals(list.head()) && this.tail().equals(list.tail());
}, },
add: function(element) {this.put(this.size(),element);}, add: function(value) {
get: function(i) {return this.content[i];}, var t = new List();
concat: function(list) {while(!list.isEmpty()) {this.add(list.pop())}}, t.load(this);
remove: function(i) {delete this.content[i];this.length--;}, this.headElement = value;
isEmpty: function() {return this.size()==0;}, this.previous = t;
head: function() {return this.isEmpty() ? null : this.get(this.size()-1);}, this.length = t.size()+1;
pop: function() {
if(this.isEmpty()) {return null;}
var element = this.get(this.size()-1);
this.remove(this.size()-1);
return element;
}, },
recursiveCall: function(instruction) { get: function(i) {
var list = new List(); if(i>=this.size()) {return null;}
list.load(this); if(i==0) {return this.head();}
if(list.isEmpty()) {return false;} return this.tail().get(i-1);
var result = instruction(list.pop()); },
return result ? result : list.recursiveCall(instruction); set: function(i,element) {
if(i>=this.size()) {error("set out of bounds, "+i+" : "+this.size(),this);return}
if(i==0) {
this.headElement=element;
} else {
this.tail().set(i-1,element);
}
},
remove: function(i) {
if(i>=this.size()) {error("remove out of bounds, "+i+" : "+this.size(),this);return}//particular case
if(i==0) {this.pop();return}//particular case
if(i==1) {//init
this.previous = this.tail().tail();
} else {//recursion
this.tail().remove(i-1);
}
this.length--;
},
pop: function() {
if(this.isEmpty()) {error("pop on empty list",this);return null;}
var h = this.head();
this.load(this.tail())
return h;
}, },
find: function(object) { find: function(object) {
for(var i = 0; i<this.length; i++) {if(this.get(i)===object) {return i;}} if(this.isEmpty()) {return -1}//init-false
return -1; var elt = this.head();
if(object.equals) {//init-true
if(object.equals(this.head())) {return 0;}//with an adapted comparator
} else {
if(object===this.head()) {return 0;}//with usual comparator
}
var recursiveResult = this.tail().find(object);//recursion
return recursiveResult>=0 ? this.tail().find(object)+1 : recursiveResult;
}, },
contains: function(object) { return (find(object)!=-1); } contains: function(object) {if(this.isEmpty()) {return false} else {return object===this.head() ? true : this.tail().contains(object)}},
insert: function(element,i) {
if(i>this.size()) {error("insert out of bounds, "+i+" : "+this.size(),this);return}//particular case
if(i==0) {//init
this.add(element);
} else {//recursion
this.tail().insert(element,i-1);
this.length++;
}
},
replace: function(oldElement,newElement) {
if(this.isEmpty()) {error("<<element not found>> when trying to replace",this);return}//init-false
if(oldElement===this.head()) {
this.set(0,newElement);//init-true
} else {
this.tail().replace(oldElement,newElement);//recursion
}
},
removeElement: function(element) {//remove each occurence of the element in this list
if(this.isEmpty()) {return}
this.tail().removeElement(element);
if(element.equals) {//init-true
if(element.equals(this.head())) {this.pop();}//with an adapted comparator
} else {
if(element===this.head()) {this.pop();}//with usual comparator
}
}
}); });
error: function(message,object) {
errorObject = object;
console.log(message);
}
/** /**
* returns the current date * returns the current date
...@@ -87,17 +170,17 @@ currentTime = function() {return (new Date()).toUTCString();} ...@@ -87,17 +170,17 @@ currentTime = function() {return (new Date()).toUTCString();}
// save // save
saveXHR = function(address) { saveXHR = function(address) {
$.ajax({ $.ajax({
url: address, url: address,
type: "PUT", type: "PUT",
headers: { headers: {
Authorization: "Basic "+btoa("smik:asdf")}, Authorization: "Basic "+btoa("smik:asdf")},
fields: { fields: {
withCredentials: "true" withCredentials: "true"
}, },
data: JSON.stringify(getCurrentDocument()), data: JSON.stringify(getCurrentDocument()),
success: function(){alert("saved");}, success: function(){alert("saved");},
error: function(xhr) { alert("error while saving");} error: function(xhr) { alert("error while saving");}
}); });
}; };
/** /**
...@@ -108,13 +191,14 @@ saveXHR = function(address) { ...@@ -108,13 +191,14 @@ saveXHR = function(address) {
*/ */
loadFile = function(address, type, instruction) { loadFile = function(address, type, instruction) {
$.ajax({ $.ajax({
url: address, url: address,
type: "GET", type: "GET",
dataType: type, dataType: type,
headers: { Authorization: "Basic "+btoa("smik:asdf")}, headers: { Authorization: "Basic "+btoa("smik:asdf")},
fields: { withCredentials: "true" }, fields: { withCredentials: "true" },
success: instruction, success: instruction,
error: function(type) {t=type;alert("er");} error: function(type) {alert("Error "+type.status+" : fail while trying to load "+address);}
}); });
} }
...@@ -129,28 +213,41 @@ saveFile = function(address, content, instruction) { ...@@ -129,28 +213,41 @@ saveFile = function(address, content, instruction) {
fields: { withCredentials: "true" }, fields: { withCredentials: "true" },
success: instruction, success: instruction,
error: function(type) { error: function(type) {
if(type.status==201) {instruction();}//ajax thinks that 201 is an error... if(type.status==201 || type.status==204) {instruction();}//ajax thinks that 201 is an error...
} }
}); });
}; }
deleteFile = function(address, instruction) {
$.ajax({
url: address,
type: "DELETE",
headers: { Authorization: "Basic "+btoa("smik:asdf")},
fields: { withCredentials: "true" },
success: instruction,
error: function(type) {
alert(type.status);//ajax thinks that 201 is an error...
}
});
}
// load // load
loadXHR = function(address) { loadXHR = function(address) {
$.ajax({ $.ajax({
url: address, url: address,
type: "GET", type: "GET",
dataType: "json", dataType: "json",
cache:false, cache:false,
headers: { headers: {
Authorization: "Basic "+btoa("smik:asdf")}, Authorization: "Basic "+btoa("smik:asdf")},
fields: { fields: {
withCredentials: "true" withCredentials: "true"
}, },
success: function(data){ success: function(data){
var cDoc = getCurrentDocument(); var cDoc = getCurrentDocument();
cDoc.load(data); cDoc.load(data);
cDoc.setAsCurrentDocument(); cDoc.setAsCurrentDocument();
} }
}); });
} }
......
...@@ -10,45 +10,62 @@ setCurrentDocumentID = function(ID) {return localStorage.setItem("currentDocumen ...@@ -10,45 +10,62 @@ setCurrentDocumentID = function(ID) {return localStorage.setItem("currentDocumen
/** /**
* class DocumentList * class DocumentList
* This class provides methods to manipulate the list of documents of the current user * This class provides methods to manipulate the list of documents of the current user
* As the list is stored in the localStorage, we are obliged to call "setDocumentList" after
* any content modification
* @param arg : a documentList json object to load
*/ */
var DocumentList = function() { var DocumentList = function(arg) {
List.call(this); //List.call(this);
this.displayedPage = 1; if(arg) {
this.selectionList = new List(); this.load(arg);
this.load(new List(arg,JSONDocument));
this.selectionList = new List(arg.selectionList,JSONDocument);//load methods of selectionList
}
else {
this.displayedPage = 1;
this.selectionList = new List();
}
} }
DocumentList.prototype = new List(); DocumentList.prototype = new List();
DocumentList.prototype.load({ DocumentList.prototype.load({
/* override : returns the ith document */ addDocument: function(doc) {
get: function(i) { this.add(doc);
var doc = new JSONDocument(); setDocumentList(this);
doc.load(this.content[i]); this.display();
return doc;
}, },
/* override : put an element at the specified position */ removeDocument: function(doc) {
put: function(i, doc) { var i = this.find(doc);
this.content[i]=doc; this.get(i).remove()//delete the file
if(!this.content[i]) {this.length++;} this.remove(i);//remove from the list
setDocumentList(this); setDocumentList(this);
this.display();
}, },
getSelectionList: function() { getSelectionList: function() { return this.selectionList; },
var list = new List();
list.load(this.selectionList);
return list;
},
resetSelectionList: function() { resetSelectionList: function() {
this.selectionList = new List(); this.selectionList = new List();
for(var i=0; i<this.length; i++) { for(var i=0; i<this.size(); i++) {
$("tr td.listbox-table-select-cell input#"+i).attr("checked",false); $("tr td.listbox-table-select-cell input#"+i).attr("checked",false);//uncheck
} }
setDocumentList(this); setDocumentList(this);
$("span#selected_row_number a").html(0);//display the selected row number
}, },
checkAll: function() { checkAll: function() {
for(var i=0; i<this.length; i++) { this.selectionList = new List();
this.selectionList.put(i,this.get(i)); for(var i=0; i<this.size(); i++) {
$("tr td.listbox-table-select-cell input#"+this.get(i).getID()).attr("checked",true); this.getSelectionList().add(this.get(i));
$("tr td.listbox-table-select-cell input#"+i).attr("checked",true);
} }
setDocumentList(this); setDocumentList(this);
$("span#selected_row_number a").html(this.size());//display the selected row number
},
deleteSelectedDocuments: function() {
var selection = this.getSelectionList();
while(!selection.isEmpty()) {
var doc = selection.pop();
this.removeDocument(doc);
}
}, },
getDisplayedPage: function() {return this.displayedPage;}, getDisplayedPage: function() {return this.displayedPage;},
...@@ -56,6 +73,7 @@ DocumentList.prototype.load({ ...@@ -56,6 +73,7 @@ DocumentList.prototype.load({
/* display the list of documents in the web page */ /* display the list of documents in the web page */
displayContent: function() { displayContent: function() {
$("table.listbox tbody").html("");//empty the previous displayed list
var n = this.size(); var n = this.size();
for(var i=0;i<n;i++) { for(var i=0;i<n;i++) {
var ligne = new Line(this.get(i),i); var ligne = new Line(this.get(i),i);
...@@ -83,21 +101,22 @@ DocumentList.prototype.load({ ...@@ -83,21 +101,22 @@ DocumentList.prototype.load({
/* update the ith document information */ /* update the ith document information */
update: function(i) { update: function(i) {
var line = this; var list = this;
var doc = line.get(i); var doc = list.get(i);
loadFile(getDocumentAddress(doc),"json",function(data) { loadFile(getDocumentAddress(doc),"json",function(data) {
doc.load(data);//todo : replace by data.header doc.load(data);//todo : replace by data.header
doc.setContent("");// doc.setContent("");//
line.put(i,doc); list.set(i,doc);
setDocumentList(list);
}); });
} }
}); });
getDocumentList = function() { getDocumentList = function() {
var list = new DocumentList(); return new DocumentList(JSON.parse(localStorage.getItem("documentList")));
list.load(JSON.parse(localStorage.getItem("documentList"))); }
return list; setDocumentList = function(list) {
localStorage.setItem("documentList",JSON.stringify(list));
} }
setDocumentList = function(list) {localStorage.setItem("documentList",JSON.stringify(list));}
/** /**
...@@ -120,20 +139,22 @@ Line.prototype = { ...@@ -120,20 +139,22 @@ Line.prototype = {
return $("tr td.listbox-table-select-cell input#"+this.getID()).attr("checked"); return $("tr td.listbox-table-select-cell input#"+this.getID()).attr("checked");
}, },
/* add the document of this line to the list of selected documents */
addToSelection: function() { addToSelection: function() {
var list = getDocumentList(); var list = getDocumentList();
list.getSelectionList().put(this.getID(),this); list.getSelectionList().add(this.getDocument());
setDocumentList(list); setDocumentList(list);
}, },
/* remove the document of this line from the list of selected documents */
removeFromSelection: function() { removeFromSelection: function() {
var list = getDocumentList(); var list = getDocumentList();
list.getSelectionList().remove(this.getID()); list.getSelectionList().removeElement(this.getDocument());
setDocumentList(list); setDocumentList(list);
}, },
/* check or uncheck the line */
changeState: function() { changeState: function() {
this.isSelected() ? this.addToSelection() : this.removeFromSelection(); this.isSelected() ? this.addToSelection() : this.removeFromSelection();
test = getDocumentList().getSelectionList(); $("span#selected_row_number a").html(getDocumentList().getSelectionList().size());//display the selected row number
$("span#selected_row_number a").html(getDocumentList().getSelectionList().size());
}, },
/* load the document information in the html of a default line */ /* load the document information in the html of a default line */
...@@ -180,11 +201,7 @@ var createNewDocument = function(type) { ...@@ -180,11 +201,7 @@ var createNewDocument = function(type) {
newDocument.setType(type); newDocument.setType(type);
newDocument.save(function() { newDocument.save(function() {
getDocumentList().add(newDocument); getDocumentList().addDocument(newDocument);
startDocumentEdition(newDocument); startDocumentEdition(newDocument);
}); });
} }
var deleteSelectedDocuments = function() {
}
\ No newline at end of file
...@@ -36,7 +36,6 @@ ...@@ -36,7 +36,6 @@
var initUser = function() { var initUser = function() {
var user = getCurrentUser(); var user = getCurrentUser();
if(!user) { user = new User();}
user.setAsCurrentUser(); user.setAsCurrentUser();
} }
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment