Advertisement
Guest User

Untitled

a guest
Aug 4th, 2016
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.68 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.             this.user = new UserModel();
  94.             this.user.set('id', options.id);
  95.             this.user.fetch({async: false});
  96.             this.render();
  97.         },
  98.         render: function () {
  99.             var model = {'user': this.user.toJSON()};
  100.             this.$el.html(this.template({}));
  101.             $('#userId').val(model.user.userId);
  102.             $('#login').val(model.user.login);
  103.             $('#password').val(model.user.password);
  104.         },
  105.         submitForm: function () {
  106.             var user = new UserModel();
  107.             user.set('id', "");
  108.             user.set('userId', parseInt($('#userId').val()));
  109.             user.set('login', $('#login').val());
  110.             user.set('password', $('#password').val());
  111.             user.save();
  112.             window.location.hash = 'users';
  113.         }
  114.     });
  115.  
  116.  
  117.     var MainRouter = Backbone.Router.extend({
  118.         routes: {
  119.             "": "users",
  120.             "users": "users",
  121.             "addUser": "addUser",
  122.             "editUser/:id": "editUser",
  123.             "deleteUser/:id": "deleteUser"
  124.         },
  125.         initialize: function () {
  126.             Backbone.history.start();
  127.         },
  128.         users: function () {
  129.             new UsersView();
  130.         },
  131.         addUser: function () {
  132.             new AddUserView();
  133.         },
  134.         editUser: function (id) {
  135.             new EditUserView({id: id});
  136.         },
  137.         deleteUser: function (id) {
  138.             $.ajax({
  139.                 url: 'http://localhost:8080/backbonetask/rest/users?userId=' + id,
  140.                 type: 'DELETE',
  141.                 success: function (result) {
  142.                     window.location.hash = 'users';
  143.                 }
  144.             });
  145.         }
  146.     });
  147.     var mainRouter = new MainRouter();
  148. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement