зеркало из https://github.com/mozilla/gecko-dev.git
Merge m-c to inbound, a=merge
This commit is contained in:
Коммит
949b4e4075
|
@ -15,7 +15,7 @@
|
|||
<project name="platform_build" path="build" remote="b2g" revision="e862ab9177af664f00b4522e2350f4cb13866d73">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="dd50945885765697f9fad93e05f6d8c78e1d742c"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="47c91ffe7f500ca1aaa60de0aabf4d2429120733"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<project name="platform_build" path="build" remote="b2g" revision="e862ab9177af664f00b4522e2350f4cb13866d73">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="dd50945885765697f9fad93e05f6d8c78e1d742c"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="47c91ffe7f500ca1aaa60de0aabf4d2429120733"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="dd50945885765697f9fad93e05f6d8c78e1d742c"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="47c91ffe7f500ca1aaa60de0aabf4d2429120733"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="2d58f4b9206b50b8fda0d5036da6f0c62608db7c"/>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
</project>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="dd50945885765697f9fad93e05f6d8c78e1d742c"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="47c91ffe7f500ca1aaa60de0aabf4d2429120733"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="bfdb6348725a33bdcdc4e17999cb500be6beedb5"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="a6f9a1245d98c51172c15afecb9ade1a6ca511e2"/>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<project name="platform_build" path="build" remote="b2g" revision="e862ab9177af664f00b4522e2350f4cb13866d73">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="dd50945885765697f9fad93e05f6d8c78e1d742c"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="47c91ffe7f500ca1aaa60de0aabf4d2429120733"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<project name="platform_build" path="build" remote="b2g" revision="05a36844c1046a1eb07d5b1325f85ed741f961ea">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="dd50945885765697f9fad93e05f6d8c78e1d742c"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="47c91ffe7f500ca1aaa60de0aabf4d2429120733"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="dd50945885765697f9fad93e05f6d8c78e1d742c"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="47c91ffe7f500ca1aaa60de0aabf4d2429120733"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="2d58f4b9206b50b8fda0d5036da6f0c62608db7c"/>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<project name="platform_build" path="build" remote="b2g" revision="e862ab9177af664f00b4522e2350f4cb13866d73">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="dd50945885765697f9fad93e05f6d8c78e1d742c"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="47c91ffe7f500ca1aaa60de0aabf4d2429120733"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"git": {
|
||||
"git_revision": "dd50945885765697f9fad93e05f6d8c78e1d742c",
|
||||
"git_revision": "47c91ffe7f500ca1aaa60de0aabf4d2429120733",
|
||||
"remote": "https://git.mozilla.org/releases/gaia.git",
|
||||
"branch": ""
|
||||
},
|
||||
"revision": "68f78bcc8c51fea5242ba041b3b107e3acbfa4ac",
|
||||
"revision": "ee1e170ff1a948463eb3a2e6a73c33c345b38b18",
|
||||
"repo_path": "integration/gaia-central"
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
</project>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="dd50945885765697f9fad93e05f6d8c78e1d742c"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="47c91ffe7f500ca1aaa60de0aabf4d2429120733"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="bfdb6348725a33bdcdc4e17999cb500be6beedb5"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="a6f9a1245d98c51172c15afecb9ade1a6ca511e2"/>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<project name="platform_build" path="build" remote="b2g" revision="05a36844c1046a1eb07d5b1325f85ed741f961ea">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="dd50945885765697f9fad93e05f6d8c78e1d742c"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="47c91ffe7f500ca1aaa60de0aabf4d2429120733"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="62cfa11ae7d77f6330de019a5aa79607e35be7d1"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
|
||||
|
|
|
@ -114,7 +114,7 @@
|
|||
<vbox id="identity-popup-securityView-body">
|
||||
<!-- (EV) Certificate Information -->
|
||||
<description id="identity-popup-content-verified-by"
|
||||
when-connection="secure-ev">&identity.connectionVerified;</description>
|
||||
when-connection="secure-ev">&identity.connectionVerified1;</description>
|
||||
<description id="identity-popup-content-owner"
|
||||
when-connection="secure-ev"
|
||||
class="header"/>
|
||||
|
|
|
@ -165,30 +165,6 @@ html {
|
|||
width: 100%;
|
||||
}
|
||||
|
||||
.contact-list-empty {
|
||||
background-image: url("../shared/img/empty_contacts.svg");
|
||||
background-repeat: no-repeat;
|
||||
background-position: top center;
|
||||
padding-top: 28%;
|
||||
padding-bottom: 5%;
|
||||
text-align: center;
|
||||
color: #4a4a4a;
|
||||
font-weight: lighter;
|
||||
}
|
||||
|
||||
.panel-text-medium,
|
||||
.panel-text-large {
|
||||
margin: 3px;
|
||||
}
|
||||
|
||||
.panel-text-medium {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
.panel-text-large {
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
.contact > .details > .username {
|
||||
font-size: 1.3rem;
|
||||
line-height: 20px;
|
||||
|
|
|
@ -274,18 +274,61 @@ html[dir="rtl"] .tab-view li:nth-child(2).selected ~ .slide-bar {
|
|||
border: 0.1rem solid #5cccee;
|
||||
}
|
||||
|
||||
/* Rooms and contacts shared CSS */
|
||||
|
||||
.contact-list-empty,
|
||||
.room-list-empty {
|
||||
background-image: url("../shared/img/empty_contacts.svg");
|
||||
background-repeat: no-repeat;
|
||||
background-position: top center;
|
||||
padding-top: 19%;
|
||||
padding-bottom: 3%;
|
||||
text-align: center;
|
||||
color: #4a4a4a;
|
||||
font-weight: lighter;
|
||||
}
|
||||
|
||||
.contact-list-empty {
|
||||
padding-top: 27%;
|
||||
}
|
||||
|
||||
.room-list-empty {
|
||||
margin: 5% 15px;
|
||||
background-image: url("../shared/img/empty_conversations.svg");
|
||||
}
|
||||
|
||||
.panel-text-medium,
|
||||
.panel-text-large {
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
.panel-text-medium {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
.panel-text-large {
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
|
||||
/* Rooms */
|
||||
.rooms {
|
||||
min-height: 100px;
|
||||
padding: 0 1rem;
|
||||
}
|
||||
|
||||
.rooms > h1 {
|
||||
font-weight: bold;
|
||||
color: #999;
|
||||
color: #666;
|
||||
padding: .5rem 0;
|
||||
height: 3rem;
|
||||
line-height: 3rem;
|
||||
font-size: 1.1rem;
|
||||
margin: 0 15px;
|
||||
}
|
||||
|
||||
.new-room-view {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.new-room-view > .context-checkbox-checked {
|
||||
|
@ -293,11 +336,10 @@ html[dir="rtl"] .tab-view li:nth-child(2).selected ~ .slide-bar {
|
|||
}
|
||||
|
||||
.new-room-view > .context {
|
||||
margin: .5rem 0 .5rem;
|
||||
flex: 1;
|
||||
border-radius: 3px 3px 0 0;
|
||||
padding: .5rem 1rem ;
|
||||
margin-left: -1rem;
|
||||
margin-right: -1rem;
|
||||
margin: 1rem 0 .5rem;
|
||||
padding: 1rem 15px;
|
||||
}
|
||||
|
||||
.new-room-view > .context > .context-enabled {
|
||||
|
@ -330,11 +372,11 @@ html[dir="rtl"] .tab-view li:nth-child(2).selected ~ .slide-bar {
|
|||
}
|
||||
|
||||
.new-room-view > .btn {
|
||||
flex: 1;
|
||||
height: 3rem;
|
||||
display: block;
|
||||
font-size: 1.2rem;
|
||||
margin: 0 auto 1rem;
|
||||
width: 100%;
|
||||
margin: 0 15px 1rem 15px;
|
||||
padding: .5rem 1rem;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
@ -349,10 +391,6 @@ html[dir="rtl"] .tab-view li:nth-child(2).selected ~ .slide-bar {
|
|||
max-height: 335px; /* XXX better computation needed */
|
||||
min-height: 7px;
|
||||
overflow: auto;
|
||||
border-top: 1px solid #ccc;
|
||||
border-bottom: 1px solid #ccc;
|
||||
margin-left: -1rem;
|
||||
margin-right: -1rem;
|
||||
}
|
||||
|
||||
.room-list:empty {
|
||||
|
@ -360,15 +398,16 @@ html[dir="rtl"] .tab-view li:nth-child(2).selected ~ .slide-bar {
|
|||
}
|
||||
|
||||
.room-list > .room-entry {
|
||||
padding: .2rem 1rem;
|
||||
padding: .2rem 15px;
|
||||
/* Always show the default pointer, even over the text part of the entry. */
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.room-list > .room-entry > h2 {
|
||||
display: inline-block;
|
||||
font-size: 1rem;
|
||||
color: #777;
|
||||
font-size: 1.3rem;
|
||||
line-height: 2.4rem;
|
||||
color: #000;
|
||||
/* See .room-entry-context-item for the margin/size reductions. */
|
||||
width: calc(100% - 1rem - 16px);
|
||||
}
|
||||
|
@ -378,19 +417,6 @@ html[dir="rtl"] .tab-view li:nth-child(2).selected ~ .slide-bar {
|
|||
color: #000;
|
||||
}
|
||||
|
||||
.room-list > .room-entry > h2 > .room-notification {
|
||||
display: none;
|
||||
background: #00a0ec;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
-moz-margin-end: .3rem;
|
||||
}
|
||||
|
||||
.room-list > .room-entry.room-active > h2 > .room-notification {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.room-list > .room-entry:hover {
|
||||
background: #dbf7ff;
|
||||
}
|
||||
|
@ -462,6 +488,23 @@ html[dir="rtl"] .tab-view li:nth-child(2).selected ~ .slide-bar {
|
|||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.room-list > .room-entry > h2:before {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
background-image: url("../shared/img/icons-14x14.svg#hello");
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
width: 13px;
|
||||
height: 13px;
|
||||
-moz-margin-end: 1rem;
|
||||
margin-bottom: -3px;
|
||||
}
|
||||
|
||||
.room-list > .room-entry.room-active > h2:before {
|
||||
background-image: url("../shared/img/icons-14x14.svg#hello-active");
|
||||
}
|
||||
|
||||
|
||||
/* Keep ".room-list > .room-entry > h2" in sync with these. */
|
||||
.room-entry-context-item {
|
||||
display: inline-block;
|
||||
|
@ -744,7 +787,7 @@ html[dir="rtl"] .generate-url-spinner {
|
|||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
-moz-margin-end: .2rem;
|
||||
margin-bottom: -2px;
|
||||
margin-bottom: -3px;
|
||||
}
|
||||
|
||||
.dropdown-menu-item.status-available:before,
|
||||
|
|
|
@ -580,7 +580,6 @@ loop.panel = (function(_, mozL10n) {
|
|||
React.createElement("div", {className: roomClasses, onClick: this.handleClickEntry,
|
||||
onMouseLeave: this.handleMouseLeave},
|
||||
React.createElement("h2", null,
|
||||
React.createElement("span", {className: "room-notification"}),
|
||||
this.props.room.decryptedContext.roomName,
|
||||
React.createElement("button", {className: copyButtonClasses,
|
||||
onClick: this.handleCopyButtonClick,
|
||||
|
@ -652,28 +651,50 @@ loop.panel = (function(_, mozL10n) {
|
|||
this.setState(this.props.store.getStoreState());
|
||||
},
|
||||
|
||||
_getListHeading: function() {
|
||||
var numRooms = this.state.rooms.length;
|
||||
if (numRooms === 0) {
|
||||
return mozL10n.get("rooms_list_no_current_conversations");
|
||||
}
|
||||
return mozL10n.get("rooms_list_current_conversations", {num: numRooms});
|
||||
},
|
||||
|
||||
_getUserDisplayName: function() {
|
||||
return this.props.userProfile && this.props.userProfile.email ||
|
||||
mozL10n.get("display_name_guest");
|
||||
},
|
||||
|
||||
_renderNoRoomsView: function() {
|
||||
return (
|
||||
React.createElement("div", {className: "room-list"},
|
||||
React.createElement("div", {className: "room-list-empty"},
|
||||
React.createElement("p", {className: "panel-text-large"},
|
||||
mozL10n.get("no_conversations_message_heading")
|
||||
),
|
||||
React.createElement("p", {className: "panel-text-medium"},
|
||||
mozL10n.get("no_conversations_start_message")
|
||||
)
|
||||
),
|
||||
this._renderNewRoomButton()
|
||||
)
|
||||
);
|
||||
},
|
||||
|
||||
_renderNewRoomButton: function() {
|
||||
return (
|
||||
React.createElement(NewRoomView, {dispatcher: this.props.dispatcher,
|
||||
mozLoop: this.props.mozLoop,
|
||||
pendingOperation: this.state.pendingCreation ||
|
||||
this.state.pendingInitialRetrieval,
|
||||
userDisplayName: this._getUserDisplayName()})
|
||||
);
|
||||
},
|
||||
|
||||
render: function() {
|
||||
if (this.state.error) {
|
||||
// XXX Better end user reporting of errors.
|
||||
console.error("RoomList error", this.state.error);
|
||||
}
|
||||
|
||||
if (!this.state.rooms.length) {
|
||||
return this._renderNoRoomsView();
|
||||
}
|
||||
|
||||
return (
|
||||
React.createElement("div", {className: "rooms"},
|
||||
React.createElement("h1", null, this._getListHeading()),
|
||||
React.createElement("h1", null, mozL10n.get("rooms_list_recent_conversations")),
|
||||
React.createElement("div", {className: "room-list"},
|
||||
this.state.rooms.map(function(room, i) {
|
||||
return (
|
||||
|
@ -685,11 +706,7 @@ loop.panel = (function(_, mozL10n) {
|
|||
);
|
||||
}, this)
|
||||
),
|
||||
React.createElement(NewRoomView, {dispatcher: this.props.dispatcher,
|
||||
mozLoop: this.props.mozLoop,
|
||||
pendingOperation: this.state.pendingCreation ||
|
||||
this.state.pendingInitialRetrieval,
|
||||
userDisplayName: this._getUserDisplayName()})
|
||||
this._renderNewRoomButton()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -580,7 +580,6 @@ loop.panel = (function(_, mozL10n) {
|
|||
<div className={roomClasses} onClick={this.handleClickEntry}
|
||||
onMouseLeave={this.handleMouseLeave}>
|
||||
<h2>
|
||||
<span className="room-notification" />
|
||||
{this.props.room.decryptedContext.roomName}
|
||||
<button className={copyButtonClasses}
|
||||
onClick={this.handleCopyButtonClick}
|
||||
|
@ -652,28 +651,50 @@ loop.panel = (function(_, mozL10n) {
|
|||
this.setState(this.props.store.getStoreState());
|
||||
},
|
||||
|
||||
_getListHeading: function() {
|
||||
var numRooms = this.state.rooms.length;
|
||||
if (numRooms === 0) {
|
||||
return mozL10n.get("rooms_list_no_current_conversations");
|
||||
}
|
||||
return mozL10n.get("rooms_list_current_conversations", {num: numRooms});
|
||||
},
|
||||
|
||||
_getUserDisplayName: function() {
|
||||
return this.props.userProfile && this.props.userProfile.email ||
|
||||
mozL10n.get("display_name_guest");
|
||||
},
|
||||
|
||||
_renderNoRoomsView: function() {
|
||||
return (
|
||||
<div className="room-list">
|
||||
<div className="room-list-empty">
|
||||
<p className="panel-text-large">
|
||||
{mozL10n.get("no_conversations_message_heading")}
|
||||
</p>
|
||||
<p className="panel-text-medium">
|
||||
{mozL10n.get("no_conversations_start_message")}
|
||||
</p>
|
||||
</div>
|
||||
{this._renderNewRoomButton()}
|
||||
</div>
|
||||
);
|
||||
},
|
||||
|
||||
_renderNewRoomButton: function() {
|
||||
return (
|
||||
<NewRoomView dispatcher={this.props.dispatcher}
|
||||
mozLoop={this.props.mozLoop}
|
||||
pendingOperation={this.state.pendingCreation ||
|
||||
this.state.pendingInitialRetrieval}
|
||||
userDisplayName={this._getUserDisplayName()} />
|
||||
);
|
||||
},
|
||||
|
||||
render: function() {
|
||||
if (this.state.error) {
|
||||
// XXX Better end user reporting of errors.
|
||||
console.error("RoomList error", this.state.error);
|
||||
}
|
||||
|
||||
if (!this.state.rooms.length) {
|
||||
return this._renderNoRoomsView();
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="rooms">
|
||||
<h1>{this._getListHeading()}</h1>
|
||||
<h1>{mozL10n.get("rooms_list_recent_conversations")}</h1>
|
||||
<div className="room-list">{
|
||||
this.state.rooms.map(function(room, i) {
|
||||
return (
|
||||
|
@ -685,11 +706,7 @@ loop.panel = (function(_, mozL10n) {
|
|||
);
|
||||
}, this)
|
||||
}</div>
|
||||
<NewRoomView dispatcher={this.props.dispatcher}
|
||||
mozLoop={this.props.mozLoop}
|
||||
pendingOperation={this.state.pendingCreation ||
|
||||
this.state.pendingInitialRetrieval}
|
||||
userDisplayName={this._getUserDisplayName()} />
|
||||
{this._renderNewRoomButton()}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1401,24 +1401,6 @@ html[dir="rtl"] .room-context-btn-close {
|
|||
max-width: 400px;
|
||||
}
|
||||
|
||||
.standalone .room-conversation .media {
|
||||
background: #000;
|
||||
}
|
||||
|
||||
.standalone .room-conversation .video_wrapper.remote_wrapper {
|
||||
background-color: #4e4e4e;
|
||||
width: calc(75% - 10px); /* Take the left margin into account. */
|
||||
}
|
||||
|
||||
.standalone .room-conversation .conversation-toolbar {
|
||||
background: #000;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.standalone .room-conversation .conversation-toolbar .btn-hangup-entry {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.standalone .room-conversation-wrapper .ended-conversation {
|
||||
position: relative;
|
||||
height: auto;
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
<svg width="119" height="70" viewBox="0 0 119 70" xmlns="http://www.w3.org/2000/svg"><g fill="#D8D8D8"><path d="M96.767 5c12.017 0 21.763 8.244 21.763 18.41 0 5.061-2.416 9.647-6.323 12.975.679 2.303 2.022 5.429 4.677 8.481-.454.773-7.931-1.954-13.201-3.994-2.175.613-4.497.949-6.916.949-12.02 0-21.766-8.243-21.766-18.41 0-10.166 9.746-18.41 21.766-18.41z" fill-opacity=".8"/><path d="M21.763 5c-12.017 0-21.763 8.244-21.763 18.41 0 5.061 2.416 9.647 6.323 12.975-.679 2.303-2.022 5.429-4.677 8.481.454.773 7.931-1.954 13.201-3.994 2.175.613 4.497.949 6.916.949 12.02 0 21.766-8.243 21.766-18.41 0-10.166-9.746-18.41-21.766-18.41z" fill-opacity=".8"/><path d="M56.742 4c-18.631 0-33.742 12.782-33.742 28.543 0 7.847 3.747 14.957 9.803 20.117-1.052 3.571-3.135 8.418-7.251 13.149.704 1.199 12.296-3.03 20.467-6.193 3.372.951 6.973 1.471 10.723 1.471 18.637 0 33.746-12.78 33.746-28.544 0-15.761-15.11-28.543-33.746-28.543z" stroke="#FBFBFB" stroke-width="4"/></g></svg>
|
После Ширина: | Высота: | Размер: 969 B |
|
@ -74,6 +74,7 @@ browser.jar:
|
|||
content/browser/loop/shared/img/telefonica@2x.png (content/shared/img/telefonica@2x.png)
|
||||
content/browser/loop/shared/img/ellipsis-v.svg (content/shared/img/ellipsis-v.svg)
|
||||
content/browser/loop/shared/img/empty_contacts.svg (content/shared/img/empty_contacts.svg)
|
||||
content/browser/loop/shared/img/empty_conversations.svg (content/shared/img/empty_conversations.svg)
|
||||
content/browser/loop/shared/img/avatars.svg (content/shared/img/avatars.svg)
|
||||
|
||||
# Shared scripts
|
||||
|
|
|
@ -799,6 +799,20 @@ describe("loop.panel", function() {
|
|||
|
||||
sinon.assert.calledOnce(fakeWindow.close);
|
||||
});
|
||||
|
||||
it("should render the no rooms view when no rooms available", function() {
|
||||
var view = createTestComponent();
|
||||
var node = view.getDOMNode();
|
||||
|
||||
expect(node.querySelectorAll(".room-list-empty").length).to.eql(1);
|
||||
});
|
||||
|
||||
it("should call mozL10n.get for room empty strings", function() {
|
||||
var view = createTestComponent();
|
||||
|
||||
sinon.assert.calledWithExactly(document.mozL10n.get,
|
||||
"no_conversations_message_heading");
|
||||
});
|
||||
});
|
||||
|
||||
describe("loop.panel.NewRoomView", function() {
|
||||
|
|
|
@ -13,7 +13,6 @@ FIREFOX_PREFERENCES = {
|
|||
"devtools.debugger.remote-enabled": True,
|
||||
"media.volume_scale": "0",
|
||||
"loop.gettingStarted.seen": True,
|
||||
"loop.seenToS": "seen",
|
||||
|
||||
# this dialog is fragile, and likely to introduce intermittent failures
|
||||
"media.navigator.permission.disabled": True,
|
||||
|
|
|
@ -115,9 +115,6 @@ function run_test() {
|
|||
// Revert fake login state
|
||||
MozLoopServiceInternal.fxAOAuthTokenData = null;
|
||||
|
||||
// clear test pref
|
||||
Services.prefs.clearUserPref("loop.seenToS");
|
||||
|
||||
LoopCallsInternal.mocks.webSocket = undefined;
|
||||
});
|
||||
|
||||
|
|
|
@ -71,6 +71,7 @@ body {
|
|||
|
||||
.showcase > section > .example {
|
||||
margin-bottom: 6em;
|
||||
background: #fbfbfb;
|
||||
}
|
||||
|
||||
.showcase > section > h2 {
|
||||
|
@ -94,10 +95,6 @@ body {
|
|||
color: #555;
|
||||
}
|
||||
|
||||
.showcase .checkbox-wrapper label {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.showcase .checkbox.checked {
|
||||
background-image: url("../content/shared/img/check.svg#check-blue");
|
||||
}
|
||||
|
|
|
@ -441,6 +441,18 @@
|
|||
});
|
||||
|
||||
// Local mocks
|
||||
var mockMozLoopNoRooms = _.cloneDeep(navigator.mozLoop);
|
||||
mockMozLoopNoRooms.rooms.getAll = function(version, callback) {
|
||||
callback(null, []);
|
||||
};
|
||||
|
||||
var roomStoreNoRooms = new loop.store.RoomStore(new loop.Dispatcher(), {
|
||||
mozLoop: mockMozLoopNoRooms,
|
||||
activeRoomStore: new loop.store.ActiveRoomStore(new loop.Dispatcher(), {
|
||||
mozLoop: mockMozLoopNoRooms,
|
||||
sdkDriver: mockSDK
|
||||
})
|
||||
});
|
||||
|
||||
var mockMozLoopLoggedIn = _.cloneDeep(navigator.mozLoop);
|
||||
mockMozLoopLoggedIn.userProfile = {
|
||||
|
@ -712,6 +724,21 @@
|
|||
)
|
||||
),
|
||||
|
||||
React.createElement(FramedExample, {cssClass: "fx-embedded-panel",
|
||||
dashed: true,
|
||||
height: 410,
|
||||
summary: "Room list tab (no rooms)",
|
||||
width: 332},
|
||||
React.createElement("div", {className: "panel"},
|
||||
React.createElement(PanelView, {client: mockClient,
|
||||
dispatcher: dispatcher,
|
||||
mozLoop: mockMozLoopNoRooms,
|
||||
notifications: notifications,
|
||||
roomStore: roomStoreNoRooms,
|
||||
selectedTab: "rooms"})
|
||||
)
|
||||
),
|
||||
|
||||
React.createElement(FramedExample, {cssClass: "fx-embedded-panel",
|
||||
dashed: true,
|
||||
height: 410,
|
||||
|
|
|
@ -441,6 +441,18 @@
|
|||
});
|
||||
|
||||
// Local mocks
|
||||
var mockMozLoopNoRooms = _.cloneDeep(navigator.mozLoop);
|
||||
mockMozLoopNoRooms.rooms.getAll = function(version, callback) {
|
||||
callback(null, []);
|
||||
};
|
||||
|
||||
var roomStoreNoRooms = new loop.store.RoomStore(new loop.Dispatcher(), {
|
||||
mozLoop: mockMozLoopNoRooms,
|
||||
activeRoomStore: new loop.store.ActiveRoomStore(new loop.Dispatcher(), {
|
||||
mozLoop: mockMozLoopNoRooms,
|
||||
sdkDriver: mockSDK
|
||||
})
|
||||
});
|
||||
|
||||
var mockMozLoopLoggedIn = _.cloneDeep(navigator.mozLoop);
|
||||
mockMozLoopLoggedIn.userProfile = {
|
||||
|
@ -712,6 +724,21 @@
|
|||
</div>
|
||||
</FramedExample>
|
||||
|
||||
<FramedExample cssClass="fx-embedded-panel"
|
||||
dashed={true}
|
||||
height={410}
|
||||
summary="Room list tab (no rooms)"
|
||||
width={332}>
|
||||
<div className="panel">
|
||||
<PanelView client={mockClient}
|
||||
dispatcher={dispatcher}
|
||||
mozLoop={mockMozLoopNoRooms}
|
||||
notifications={notifications}
|
||||
roomStore={roomStoreNoRooms}
|
||||
selectedTab="rooms" />
|
||||
</div>
|
||||
</FramedExample>
|
||||
|
||||
<FramedExample cssClass="fx-embedded-panel"
|
||||
dashed={true}
|
||||
height={410}
|
||||
|
|
|
@ -700,7 +700,7 @@ you can use these alternative items. Otherwise, their values should be empty. -
|
|||
<!ENTITY identity.connectionSecure "Secure Connection">
|
||||
<!ENTITY identity.connectionNotSecure "Connection is Not Secure">
|
||||
<!ENTITY identity.connectionFile "This page is stored on your computer.">
|
||||
<!ENTITY identity.connectionVerified "&brandShortName; verified that you are securely connected to this site, run by:">
|
||||
<!ENTITY identity.connectionVerified1 "You are securely connected to this site, run by:">
|
||||
<!ENTITY identity.connectionInternal "This is a secure &brandShortName; page.">
|
||||
|
||||
<!-- Strings for connection state warnings. -->
|
||||
|
|
|
@ -137,6 +137,12 @@ no_contacts_message_heading=No contacts yet
|
|||
## LOCALIZATION NOTE(no_contacts_import_or_add): Subheading inviting the user
|
||||
## to add people to his contact list
|
||||
no_contacts_import_or_add=Import or add someone
|
||||
## LOCALIZATION NOTE(no_conversations_message_heading): Title shown when user
|
||||
## has no conversations available.
|
||||
no_conversations_message_heading=There are no conversations yet
|
||||
## LOCALIZATION NOTE(no_converastions_start_message): Subheading inviting the
|
||||
## user to start a new conversation.
|
||||
no_conversations_start_message=start a new conversation!
|
||||
|
||||
## LOCALIZATION NOTE(import_failed_description simple): Displayed when an import of
|
||||
## contacts fails. This is displayed in the error field.
|
||||
|
@ -308,15 +314,11 @@ tour_label=Tour
|
|||
rooms_default_room_name_template=Conversation {{conversationLabel}}
|
||||
rooms_leave_button_label=Leave
|
||||
rooms_list_copy_url_tooltip=Copy Link
|
||||
## LOCALIZATION NOTE (rooms_list_current_conversations):
|
||||
## Semicolon-separated list of plural forms. See:
|
||||
## http://developer.mozilla.org/en/docs/Localization_and_Plurals
|
||||
## We prefer to have no number in the string, but if you need it for your
|
||||
## language please use {{num}}.
|
||||
rooms_list_current_conversations=Current conversation;Current conversations
|
||||
## LOCALIZATION NOTE (rooms_list_recent_conversations): String is in all caps
|
||||
## for emphasis reasons, it is a heading. Proceed as appropriate for locale.
|
||||
rooms_list_recent_conversations=RECENT CONVERSATIONS
|
||||
rooms_list_delete_tooltip=Delete conversation
|
||||
rooms_list_deleteConfirmation_label=Are you sure?
|
||||
rooms_list_no_current_conversations=No current conversations
|
||||
rooms_change_failed_label=Conversation cannot be updated
|
||||
rooms_new_room_button_label=Start a conversation
|
||||
rooms_only_occupant_label=You're the first one here.
|
||||
|
|
|
@ -69,10 +69,6 @@
|
|||
background-color: @customToolbarColor@;
|
||||
}
|
||||
|
||||
#navigator-toolbox:not(:-moz-lwtheme)::after {
|
||||
background-color: #aabccf;
|
||||
}
|
||||
|
||||
#urlbar:not(:-moz-lwtheme):not([focused]):hover,
|
||||
.searchbar-textbox:not(:-moz-lwtheme):not([focused]):hover {
|
||||
border-color: hsla(210,54%,20%,.35) hsla(210,54%,20%,.37) hsla(210,54%,20%,.4);
|
||||
|
|
|
@ -104,6 +104,22 @@
|
|||
background-color: ThreeDShadow;
|
||||
}
|
||||
|
||||
@media (-moz-windows-default-theme) {
|
||||
@media (-moz-os-version: windows-vista),
|
||||
(-moz-os-version: windows-win7) {
|
||||
#navigator-toolbox:not(:-moz-lwtheme)::after {
|
||||
background-color: #aabccf;
|
||||
}
|
||||
}
|
||||
|
||||
@media (-moz-os-version: windows-win8),
|
||||
(-moz-os-version: windows-win10) {
|
||||
#navigator-toolbox:not(:-moz-lwtheme)::after {
|
||||
background-color: #c2c2c2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#navigator-toolbox > toolbar {
|
||||
-moz-appearance: none;
|
||||
border-style: none;
|
||||
|
@ -1252,6 +1268,8 @@ toolbarbutton[constrain-size="true"][cui-areatype="toolbar"] > .toolbarbutton-ba
|
|||
border-color: hsl(0,0%,90%);
|
||||
padding: 1px;
|
||||
-moz-padding-end: 3px;
|
||||
transition-property: border-color, box-shadow;
|
||||
transition-duration: .1s;
|
||||
}
|
||||
|
||||
#urlbar:not(:-moz-lwtheme):hover,
|
||||
|
@ -1283,8 +1301,6 @@ toolbarbutton[constrain-size="true"][cui-areatype="toolbar"] > .toolbarbutton-ba
|
|||
.searchbar-textbox {
|
||||
font-size: 1.15em;
|
||||
min-height: 28px;
|
||||
transition-property: border-color, box-shadow;
|
||||
transition-duration: .1s;
|
||||
}
|
||||
|
||||
:root {
|
||||
|
|
Загрузка…
Ссылка в новой задаче