Switched to using html select.

pull/47/head
Mikunj 7 years ago
parent 5f4a44ba8c
commit a9c1f628a4

@ -86,7 +86,7 @@
return m.get('number'); return m.get('number');
}, },
getNumber(number) { getNumber(number) {
return this.models.find(m => m.number === number); return this.models.find(m => m.get('number') === number);
}, },
}); });

@ -15,7 +15,7 @@
templateName: 'blockedUserSettings', templateName: 'blockedUserSettings',
className: 'blockedUserSettings', className: 'blockedUserSettings',
events: { events: {
'click .sync': 'sync', 'click .unblock-button': 'onUnblock',
}, },
initialize() { initialize() {
storage.onready(() => { storage.onready(() => {
@ -25,41 +25,51 @@
}); });
this.listView.render(); this.listView.render();
this.$('.blocked-user-settings').append(this.listView.el); this.blockedUserSettings = this.$('.blocked-user-settings');
this.blockedUserSettings.prepend(this.listView.el);
}); });
}, },
render_attributes() { render_attributes() {
return { return {
blockedHeader: i18n('settingsUnblockHeader'), blockedHeader: i18n('settingsUnblockHeader'),
};
},
});
Whisper.BlockedNumberListView = Whisper.ListView.extend({
itemView: Whisper.View.extend({
tagName: 'li',
templateName: 'blockedNumber',
events: {
'click .unblock-button': 'onUnblock',
},
render_attributes() {
const number = (this.model && this.model.get('number')) || '-';
return {
number,
unblockMessage: i18n('unblockUser'), unblockMessage: i18n('unblockUser'),
} };
}, },
onUnblock() { onUnblock() {
const number = this.model && this.model.get('number'); const number = this.$('select option:selected').val();
if (!number) return; if (!number) return;
if (BlockedNumberController.isBlocked(number)) { if (BlockedNumberController.isBlocked(number)) {
BlockedNumberController.unblock(number); BlockedNumberController.unblock(number);
window.onUnblockNumber(number); window.onUnblockNumber(number);
this.remove(); this.listView.collection.remove(this.listView.collection.where({ number }));
} }
}, },
}), });
Whisper.BlockedNumberListView = Whisper.View.extend({
tagName: 'select',
initialize(options) {
this.options = options || {};
this.listenTo(this.collection, 'add', this.addOne);
this.listenTo(this.collection, 'reset', this.addAll);
this.listenTo(this.collection, 'remove', this.addAll);
},
addOne(model) {
const number = model.get('number');
if (number) {
this.$el.append(`<option value="${number}">${number}</option>`);
}
},
addAll() {
this.$el.html('');
this.collection.each(this.addOne, this);
},
render() {
this.addAll();
return this;
},
}); });
})(); })();

@ -34,15 +34,10 @@
</p> </p>
</div> </div>
</script> </script>
<script type='text/x-tmpl-mustache' id='blockedNumber'>
<div class='blocked-number'>
<div class='wordwrap'>{{ number }}</div>
<button class='grey unblock-button'>{{ unblockMessage }}</button>
</div>
</script>
<script type='text/x-tmpl-mustache' id='blockedUserSettings'> <script type='text/x-tmpl-mustache' id='blockedUserSettings'>
<h3>{{ blockedHeader }}</h3> <h3>{{ blockedHeader }}</h3>
<div class='blocked-user-settings'> <div class='blocked-user-settings'>
<button class='grey unblock-button'>{{ unblockMessage }}</button>
</div> </div>
</script> </script>
<script type='text/x-tmpl-mustache' id='settings'> <script type='text/x-tmpl-mustache' id='settings'>

@ -39,23 +39,24 @@
} }
} }
.blocked-number { .blocked-user-settings {
display: flex; display: flex;
flex: 1; flex: 1;
flex-direction: row; flex-direction: row;
justify-content: center; align-items: center;
} }
.blocked-number { .blocked-user-settings {
div { select {
flex: 1; flex: 1;
flex-wrap: wrap-reverse; cursor: pointer;
word-break: break-all; font-size: 14px;
} }
button { button {
line-height: 36px; line-height: 28px;
padding: 0 20px; padding: 0 20px;
margin: 0 0 20px 20px; margin: auto;
margin-left: 20px;
} }
} }

Loading…
Cancel
Save