PageRenderTime 46ms CodeModel.GetById 19ms RepoModel.GetById 1ms app.codeStats 0ms

/examples/login-example/public/js/collections/employee.js

http://github.com/jspears/bobamo
JavaScript | 64 lines | 56 code | 7 blank | 1 comment | 3 complexity | 6330c8f2af2eb7cd93a61e0a11daf22c MD5 | raw file
Possible License(s): Apache-2.0
  1. define(['Backbone', 'jquery'], function (Backbone, $) {
  2. var Employee = Backbone.Model.extend({
  3. url:function () {
  4. return "/api/employee/"+this.id+'?populate[manager]=firstName,lastName,id'
  5. },
  6. initialize:function onIntialize() {
  7. this.reports = new EmployeeCollection();
  8. this.reports.url = '/api/employee/' + this.id + '/reports';
  9. },
  10. parse:function (resp) {
  11. console.log('Employee#parse', resp);
  12. return resp.payload || resp;
  13. },
  14. defaults:{
  15. title:'',
  16. url:'default.png',
  17. firstName:null,
  18. lastName:null,
  19. officePhone:null,
  20. cellPhone:null,
  21. email:null,
  22. twitterId:null,
  23. manager:{
  24. id:null,
  25. firstName:null,
  26. lastName:null
  27. }
  28. }
  29. });
  30. var EmployeeCollection = Backbone.Collection.extend({
  31. model:Employee,
  32. parse:function (resp) {
  33. console.log('EmployeeCollection#parse', resp);
  34. return resp.payload || resp;
  35. },
  36. url:"/api/employee",
  37. findByName:function (key) {
  38. // TODO: Modify service to include firstName in search
  39. var url = (key == '') ? '../api/employee' : "../api/employee/finder/search?term=" + key;
  40. console.log('findByName: ' + key);
  41. var self = this;
  42. $.ajax({
  43. url:url,
  44. dataType:"json",
  45. success:function (data) {
  46. console.log('success', data);
  47. console.log("search success: " + data);
  48. self.reset(data.payload);
  49. }
  50. });
  51. }
  52. });
  53. return {
  54. EmployeeCollection:EmployeeCollection,
  55. Employee:Employee
  56. };
  57. });