refactoring access mode to support server changes
This commit is contained in:
+20
-18
@@ -15,16 +15,16 @@
|
||||
<!-- Styles for local elements -->
|
||||
<link rel="stylesheet" href="css/base.css" />
|
||||
<!-- ReactJs scripts -->
|
||||
<script src="https://unpkg.com/react@15.3.1/dist/react.js"></script>
|
||||
<script src="https://unpkg.com/react-dom@15.3.1/dist/react-dom.js"></script>
|
||||
<script src="https://unpkg.com/babel-core@5.8.38/browser.min.js"></script>
|
||||
<script src="https://unpkg.com/react@15.4/dist/react.js"></script>
|
||||
<script src="https://unpkg.com/react-dom@15.4/dist/react-dom.js"></script>
|
||||
<script src="https://unpkg.com/babel-standalone@6.24.0/babel.min.js"></script>
|
||||
<script src="tinode.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="mountPoint"></div>
|
||||
<script type="text/babel">
|
||||
// Name of this application, used in the User-Agent
|
||||
var APP_NAME = "TinodeReact/0.8";
|
||||
var APP_NAME = "TinodeReact/0.10";
|
||||
|
||||
// Host name and port to connect to
|
||||
// var HOST = "api.tinode.co";
|
||||
@@ -145,28 +145,29 @@
|
||||
},
|
||||
handleMenuAction: function(action) {
|
||||
var topic = Tinode.getTopic(this.props.topic);
|
||||
var metaParam = function(p) {
|
||||
var am = topic.getAccessMode();
|
||||
am.updateWant(p);
|
||||
topic.setMeta({sub: {mode: am.getWant()}});
|
||||
}
|
||||
switch (action) {
|
||||
case "Edit...":
|
||||
console.log("Edit topic not implemented");
|
||||
console.log("Topic editing not implemented");
|
||||
break;
|
||||
case "Clear messages":
|
||||
topic.delMessages({before: 0, hard: false});
|
||||
break;
|
||||
case "Mute":
|
||||
var m = topic.getAccessMode().clearMode('P');
|
||||
topic.setMeta({sub: {mode: m.toString()}});
|
||||
metaParam('-P');
|
||||
break;
|
||||
case "Unmute":
|
||||
var m = topic.getAccessMode().addMode('P');
|
||||
topic.setMeta({sub: {mode: m.toString()}});
|
||||
metaParam('+P');
|
||||
break;
|
||||
case "Block":
|
||||
var m = topic.getAccessMode().addMode('X');
|
||||
topic.setMeta({sub: {mode: m.toString()}});
|
||||
metaParam('+X');
|
||||
break;
|
||||
case "Unblock":
|
||||
var m = topic.getAccessMode().clearMode('X').addMode('RWP');
|
||||
topic.setMeta({sub: {mode: m.toString()}});
|
||||
metaParam('-X');
|
||||
break;
|
||||
case "Delete":
|
||||
topic.delTopic();
|
||||
@@ -175,13 +176,14 @@
|
||||
}
|
||||
},
|
||||
getMenuItems: function() {
|
||||
var mode = Tinode.getMeTopic().getAccessMode(this.props.topic);
|
||||
var acs = Tinode.getMeTopic().getAccessMode(this.props.topic);
|
||||
console.log(acs);
|
||||
if (Tinode.getTopicType(this.props.topic) === "grp") {
|
||||
return ["Edit...", "Clear messages", mode.canPresence() ? "Mute" : "Unmute",
|
||||
mode.isBanned() ? "Unblock" : "Block", "Delete"];
|
||||
return ["Edit...", "Clear messages", acs.isMuted() ? "Unmute" : "Mute",
|
||||
acs.isBanned() ? "Unblock" : "Block", "Delete"];
|
||||
} else {
|
||||
return ["Clear messages", mode.canPresence() ? "Mute" : "Unmute",
|
||||
mode.isBanned() ? "Unblock" : "Block", "Delete"];
|
||||
return ["Clear messages", acs.isMuted() ? "Unmute" : "Mute",
|
||||
acs.isBanned() ? "Unblock" : "Block", "Delete"];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user