Advertisement
Guest User

Untitled

a guest
Aug 4th, 2016
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.76 KB | None | 0 0
  1.  
  2. function setMenu(menuItem) {
  3.     $('li').removeClass('active');
  4.     $(menuItem).addClass('active');
  5. }
  6. $(function () {
  7.     var UserModel = Backbone.Model.extend({
  8.         defaults: {
  9.             userId: null,
  10.             login: "",
  11.             password: "",
  12.             master: null,
  13.             client: null,
  14.             phoneNumbers: [],
  15.             roles: [{"roleId": 2, "roleName": "manager"}]
  16.         },
  17.         url: function () {
  18.             return "rest/users/" + (this.id ? this.id : '');
  19.         }
  20.     });
  21.     var UsersCollection = Backbone.Collection.extend({
  22.         model: UserModel,
  23.         url: "rest/users/findByRole/manager",
  24.         getUser: function (userId) { // check user
  25.             var findResult = this.find(function (user) {
  26.                 if (user.get("userId") == userId) {
  27.                     return user;
  28.                 }
  29.                 return null;
  30.             });
  31.             return findResult;
  32.         }
  33.  
  34.     });
  35.     var users = new UsersCollection();
  36.     var UsersView = Backbone.View.extend({
  37.         el: $('.content'),
  38.         template: _.template($('#users').html()),
  39.         initialize: function () {
  40.             this.render();
  41.         },
  42.         render: function () {
  43.             setMenu('.users');
  44.             users.fetch({async: false});
  45.             var models = {"users": users.toJSON()};
  46.             this.$el.html(this.template(models));
  47.             users.each(function (user) {
  48.                 $('#table-body').append(
  49.                         '<tr>' +
  50.                         '<td>' + user.get('userId') + '</td>' +
  51.                         '<td>' + user.get('login') + '</td>' +
  52.                         '<td>' + user.get('password') + '</td>' +
  53.                         '<td><a href="#editUser/' + user.get('userId') +
  54.                         '">Edit</a> / <a href="#deleteUser/' + user.get('userId') +
  55.                         '">Delete</a></td>' +
  56.                         '</tr>'
  57.                         )
  58.             });
  59.         }
  60.     });
  61.  
  62.     var AddUserView = Backbone.View.extend({
  63.         el: $('.content'),
  64.         events: {
  65.             'click #addSbmt': 'submitForm'
  66.         },
  67.         template: _.template($('#addUser').html()),
  68.         initialize: function () {
  69.             this.render();
  70.         },
  71.         render: function () {
  72.             setMenu('.addUser');
  73.             this.$el.html(this.template({}));
  74.         },
  75.         submitForm: function () {
  76.             var user = new UserModel();
  77.             user.set('login', $('#login').val());
  78.             user.set('password', $('#password').val());
  79.             user.save();
  80.             window.location.hash = 'users';
  81.             return;
  82.         }
  83.     });
  84.  
  85.  
  86.     var EditUserView = Backbone.View.extend({
  87.         el: $('.content'),
  88.         events: {
  89.             'click #updateSbmt': 'submitForm'
  90.         },
  91.         template: _.template($('#editUser').html()),
  92.         initialize: function (options) {
  93.             console.log(users);
  94.             console.log("id = " + options.id);
  95.             this.user = users.getUser(options.id);
  96.             console.log(this.user);
  97.             this.user.fetch({async: false});
  98.             this.render();
  99.         },
  100.         render: function () {
  101.             var model = {'user': this.user.toJSON()};
  102.             this.$el.html(this.template({}));
  103.             $('#userId').val(model.user.userId);
  104.             $('#login').val(model.user.login);
  105.             $('#password').val(model.user.password);
  106.         },
  107.         submitForm: function () {
  108.  
  109.             var user = users.getUser($('#userId').val());
  110.             //  user.set('userId', $('#userId').val());
  111.             user.set('login', $('#login').val());
  112.             user.set('password', $('#password').val());
  113.             user.save({async: false});
  114.             window.location.hash = 'users';
  115.         }
  116.     });
  117.  
  118.     var MainRouter = Backbone.Router.extend({
  119.         routes: {
  120.             "": "users",
  121.             "users": "users",
  122.             "addUser": "addUser",
  123.             "editUser/:id": "editUser",
  124.             "deleteUser/:id": "deleteUser"
  125.         },
  126.         initialize: function () {
  127.             Backbone.history.start();
  128.         },
  129.         users: function () {
  130.             new UsersView();
  131.         },
  132.         addUser: function () {
  133.             new AddUserView();
  134.         },
  135.         editUser: function (id) {
  136.             new EditUserView({id: id});
  137.         },
  138.         deleteUser: function (id) {
  139.             $.ajax({
  140.                 url: 'http://localhost:8080/backbonetask/rest/users?userId=' + id,
  141.                 type: 'DELETE',
  142.                 success: function (result) {
  143.                     window.location.hash = 'users';
  144.                 }
  145.             });
  146.         }
  147.     });
  148.     var mainRouter = new MainRouter();
  149. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement